Perf: Enhance performance of VAT report

This commit is contained in:
Laurent Destailleur 2021-03-22 18:11:44 +01:00
parent df9546662a
commit 5d6fb0cfea
3 changed files with 218 additions and 31 deletions

View File

@ -52,16 +52,16 @@ if (empty($min)) {
// Define modetax (0 or 1)
// 0=normal, 1=option vat for services is on debit, 2=option on payments for products
$modetax = $conf->global->TAX_MODE;
$modetax = (empty($conf->global->TAX_MODE) ? 0 : $conf->global->TAX_MODE);
if (GETPOSTISSET("modetax")) {
$modetax = GETPOST("modetax", 'int');
$modetax = GETPOSTINT("modetax");
}
if (empty($modetax)) {
$modetax = 0;
}
// Security check
$socid = GETPOST('socid', 'int');
$socid = GETPOSTINT('socid');
if ($user->socid) {
$socid = $user->socid;
}
@ -120,7 +120,7 @@ if ($modetax == 2) {
$calcmode .= ' <span class="opacitymedium">('.$langs->trans("TaxModuleSetupToModifyRules", DOL_URL_ROOT.'/admin/taxes.php').')</span>';
// Set period
$period = $form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
$prevyear = $year_start;
$prevyear = $date_start_year;
$prevquarter = $q;
if ($prevquarter > 1) {
$prevquarter--;
@ -128,7 +128,7 @@ if ($prevquarter > 1) {
$prevquarter = 4;
$prevyear--;
}
$nextyear = $year_start;
$nextyear = $date_start_year;
$nextquarter = $q;
if ($nextquarter < 4) {
$nextquarter++;
@ -198,6 +198,10 @@ $y = $year_current;
$total = 0;
$i = 0;
$columns = 5;
$span = $columns;
if ($modetax != 1) {
$span += 2;
}
// Load arrays of datas
$x_coll = tax_by_thirdparty('vat', $db, 0, $date_start, $date_end, $modetax, 'sell');
@ -226,7 +230,21 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
$invoice_customer->id = $x_coll[$my_coll_thirdpartyid]['facid'][$id];
$invoice_customer->ref = $x_coll[$my_coll_thirdpartyid]['facnum'][$id];
$invoice_customer->type = $x_coll[$my_coll_thirdpartyid]['type'][$id];
$company_static->fetch($x_coll[$my_coll_thirdpartyid]['company_id'][$id]);
//$company_static->fetch($x_coll[$my_coll_thirdpartyid]['company_id'][$id]);
$company_static->id = $x_coll[$my_coll_thirdpartyid]['company_id'][$id];
$company_static->name = $x_coll[$my_coll_thirdpartyid]['company_name'][$id];
$company_static->name_alias = $x_coll[$my_coll_thirdpartyid]['company_alias'][$id];
$company_static->email = $x_coll[$my_coll_thirdpartyid]['company_email'][$id];
$company_static->tva_intra = $x_coll[$my_coll_thirdpartyid]['tva_intra'][$id];
$company_static->client = $x_coll[$my_coll_thirdpartyid]['company_client'][$id];
$company_static->fournisseur = $x_coll[$my_coll_thirdpartyid]['company_fournisseur'][$id];
$company_static->status = $x_coll[$my_coll_thirdpartyid]['company_status'][$id];
$company_static->code_client = $x_coll[$my_coll_thirdpartyid]['company_customer_code'][$id];
$company_static->code_compta_client = $x_coll[$my_coll_thirdpartyid]['company_customer_accounting_code'][$id];
$company_static->code_fournisseur = $x_coll[$my_coll_thirdpartyid]['company_supplier_code'][$id];
$company_static->code_compta_fournisseur = $x_coll[$my_coll_thirdpartyid]['company_supplier_accounting_code'][$id];
$x_both[$my_coll_thirdpartyid]['coll']['detail'][] = array(
'id' =>$x_coll[$my_coll_thirdpartyid]['facid'][$id],
'descr' =>$x_coll[$my_coll_thirdpartyid]['descr'][$id],
@ -241,7 +259,9 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
'drate' =>$x_coll[$my_coll_thirdpartyid]['drate'][$id],
'datef' =>$x_coll[$my_coll_thirdpartyid]['datef'][$id],
'datep' =>$x_coll[$my_coll_thirdpartyid]['datep'][$id],
'company_link'=>$company_static->getNomUrl(1, '', 20),
'ddate_start'=>$x_coll[$my_coll_thirdpartyid]['ddate_start'][$id],
'ddate_end' =>$x_coll[$my_coll_thirdpartyid]['ddate_end'][$id],
'totalht' =>$x_coll[$my_coll_thirdpartyid]['totalht_list'][$id],
@ -290,7 +310,21 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
$invoice_supplier->id = $x_paye[$my_paye_thirdpartyid]['facid'][$id];
$invoice_supplier->ref = $x_paye[$my_paye_thirdpartyid]['facnum'][$id];
$invoice_supplier->type = $x_paye[$my_paye_thirdpartyid]['type'][$id];
$company_static->fetch($x_paye[$my_paye_thirdpartyid]['company_id'][$id]);
//$company_static->fetch($x_paye[$my_paye_thirdpartyid]['company_id'][$id]);
$company_static->id = $x_paye[$my_paye_thirdpartyid]['company_id'][$id];
$company_static->name = $x_paye[$my_paye_thirdpartyid]['company_name'][$id];
$company_static->name_alias = $x_paye[$my_paye_thirdpartyid]['company_alias'][$id];
$company_static->email = $x_paye[$my_paye_thirdpartyid]['company_email'][$id];
$company_static->tva_intra = $x_paye[$my_paye_thirdpartyid]['tva_intra'][$id];
$company_static->client = $x_paye[$my_paye_thirdpartyid]['company_client'][$id];
$company_static->fournisseur = $x_paye[$my_paye_thirdpartyid]['company_fournisseur'][$id];
$company_static->status = $x_paye[$my_paye_thirdpartyid]['company_status'][$id];
$company_static->code_client = $x_paye[$my_paye_thirdpartyid]['company_customer_code'][$id];
$company_static->code_compta_client = $x_paye[$my_paye_thirdpartyid]['company_customer_accounting_code'][$id];
$company_static->code_fournisseur = $x_paye[$my_paye_thirdpartyid]['company_supplier_code'][$id];
$company_static->code_compta_fournisseur = $x_paye[$my_paye_thirdpartyid]['company_supplier_accounting_code'][$id];
$x_both[$my_paye_thirdpartyid]['paye']['detail'][] = array(
'id' =>$x_paye[$my_paye_thirdpartyid]['facid'][$id],
'descr' =>$x_paye[$my_paye_thirdpartyid]['descr'][$id],
@ -305,7 +339,9 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
'drate' =>$x_paye[$my_coll_thirdpartyid]['drate'][$id],
'datef' =>$x_paye[$my_paye_thirdpartyid]['datef'][$id],
'datep' =>$x_paye[$my_paye_thirdpartyid]['datep'][$id],
'company_link'=>$company_static->getNomUrl(1, '', 20),
'ddate_start'=>$x_paye[$my_paye_thirdpartyid]['ddate_start'][$id],
'ddate_end' =>$x_paye[$my_paye_thirdpartyid]['ddate_end'][$id],
'totalht' =>price2num($x_paye[$my_paye_thirdpartyid]['totalht_list'][$id]),
@ -325,11 +361,6 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
$x_paye_sum = 0;
$x_paye_ht = 0;
$span = $columns;
if ($modetax != 1) {
$span += 2;
}
//print '<tr><td colspan="'.($span+1).'">'..')</td></tr>';
// Customers invoices
@ -514,7 +545,7 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
}
}
if (count($x_coll) == 0) { // Show a total ine if nothing shown
if (count($x_coll) == 0) { // Show a total line if nothing shown
print '<tr class="liste_total">';
print '<td colspan="4"></td>';
print '<td class="right">'.$langs->trans("Total").':</td>';
@ -598,7 +629,9 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
}
// Company name
print '<td class="left">'.$fields['company_link'].'</td>';
print '<td class="tdmaxoverflow150">';
print $fields['company_link'];
print '</td>';
// Description
print '<td class="left">';

View File

@ -235,7 +235,21 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
$invoice_customer->id = $x_coll[$my_coll_rate]['facid'][$id];
$invoice_customer->ref = $x_coll[$my_coll_rate]['facnum'][$id];
$invoice_customer->type = $x_coll[$my_coll_rate]['type'][$id];
$company_static->fetch($x_coll[$my_coll_rate]['company_id'][$id]);
//$company_static->fetch($x_coll[$my_coll_rate]['company_id'][$id]);
$company_static->id = $x_coll[$my_coll_rate]['company_id'][$id];
$company_static->name = $x_coll[$my_coll_rate]['company_name'][$id];
$company_static->name_alias = $x_coll[$my_coll_rate]['company_alias'][$id];
$company_static->email = $x_coll[$my_coll_rate]['company_email'][$id];
$company_static->tva_intra = $x_coll[$my_coll_rate]['tva_intra'][$id];
$company_static->client = $x_coll[$my_coll_rate]['company_client'][$id];
$company_static->fournisseur = $x_coll[$my_coll_rate]['company_fournisseur'][$id];
$company_static->status = $x_coll[$my_coll_rate]['company_status'][$id];
$company_static->code_client = $x_coll[$my_coll_rate]['company_customer_code'][$id];
$company_static->code_compta_client = $x_coll[$my_coll_rate]['company_customer_accounting_code'][$id];
$company_static->code_fournisseur = $x_coll[$my_coll_rate]['company_supplier_code'][$id];
$company_static->code_compta_fournisseur = $x_coll[$my_coll_rate]['company_supplier_accounting_code'][$id];
$x_both[$my_coll_rate]['coll']['detail'][] = array(
'id' =>$x_coll[$my_coll_rate]['facid'][$id],
'descr' =>$x_coll[$my_coll_rate]['descr'][$id],
@ -249,7 +263,9 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
'dtype' =>$x_coll[$my_coll_rate]['dtype'][$id],
'datef' =>$x_coll[$my_coll_rate]['datef'][$id],
'datep' =>$x_coll[$my_coll_rate]['datep'][$id],
'company_link'=>$company_static->getNomUrl(1, '', 20),
'ddate_start'=>$x_coll[$my_coll_rate]['ddate_start'][$id],
'ddate_end' =>$x_coll[$my_coll_rate]['ddate_end'][$id],
'totalht' =>$x_coll[$my_coll_rate]['totalht_list'][$id],
@ -297,7 +313,20 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
$invoice_supplier->id = $x_paye[$my_paye_rate]['facid'][$id];
$invoice_supplier->ref = $x_paye[$my_paye_rate]['facnum'][$id];
$invoice_supplier->type = $x_paye[$my_paye_rate]['type'][$id];
$company_static->fetch($x_paye[$my_paye_rate]['company_id'][$id]);
$company_static->id = $x_paye[$my_paye_rate]['company_id'][$id];
$company_static->name = $x_paye[$my_paye_rate]['company_name'][$id];
$company_static->name_alias = $x_paye[$my_paye_rate]['company_alias'][$id];
$company_static->email = $x_paye[$my_paye_rate]['company_email'][$id];
$company_static->tva_intra = $x_paye[$my_paye_rate]['tva_intra'][$id];
$company_static->client = $x_paye[$my_paye_rate]['company_client'][$id];
$company_static->fournisseur = $x_paye[$my_paye_rate]['company_fournisseur'][$id];
$company_static->status = $x_paye[$my_paye_rate]['company_status'][$id];
$company_static->code_client = $x_paye[$my_paye_rate]['company_customer_code'][$id];
$company_static->code_compta_client = $x_paye[$my_paye_rate]['company_customer_accounting_code'][$id];
$company_static->code_fournisseur = $x_paye[$my_paye_rate]['company_supplier_code'][$id];
$company_static->code_compta_fournisseur = $x_paye[$my_paye_rate]['company_supplier_accounting_code'][$id];
$x_both[$my_paye_rate]['paye']['detail'][] = array(
'id' =>$x_paye[$my_paye_rate]['facid'][$id],
'descr' =>$x_paye[$my_paye_rate]['descr'][$id],
@ -311,7 +340,9 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
'dtype' =>$x_paye[$my_paye_rate]['dtype'][$id],
'datef' =>$x_paye[$my_paye_rate]['datef'][$id],
'datep' =>$x_paye[$my_paye_rate]['datep'][$id],
'company_link'=>$company_static->getNomUrl(1, '', 20),
'ddate_start'=>$x_paye[$my_paye_rate]['ddate_start'][$id],
'ddate_end' =>$x_paye[$my_paye_rate]['ddate_end'][$id],
'totalht' =>price2num($x_paye[$my_paye_rate]['totalht_list'][$id]),
@ -420,6 +451,19 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
if ($invoice_type == 'customer' && $vat_rate_show == $rate) {
if (is_array($x_both[$rate]['coll']['detail'])) {
foreach ($x_both[$rate]['coll']['detail'] as $index => $fields) {
/*$company_static->id = $fields['company_id'];
$company_static->name = $fields['company_name'];
$company_static->name_alias = $fields['company_alias'];
$company_static->email = $fields['company_email'];
$company_static->tva_intra = $fields['tva_intra'];
$company_static->client = $fields['company_client'];
$company_static->fournisseur = $fields['company_fournisseur'];
$company_static->status = $fields['company_status'];
$company_static->code_client = $fields['company_client'];
$company_static->code_compta_client = $fields['company_customer_code'];
$company_static->code_fournisseur = $fields['company_customer_accounting_code'];
$company_static->code_compta_fournisseur = $fields['company_supplier_accounting_code'];*/
// Define type
// We MUST use dtype (type in line). We can use something else, only if dtype is really unknown.
$type = (isset($fields['dtype']) ? $fields['dtype'] : $fields['ptype']);
@ -446,7 +490,10 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
else print '<td></td>';
// Company name
print '<td class="left">' . $fields['company_link'] . '</td>';
print '<td class="tdmaxoverflow150">';
//print $company_static->getNomUrl(1);
print $fields['company_link'];
print '</td>';
// Description
print '<td class="left">';
@ -635,6 +682,19 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
if ($invoice_type == 'supplier' && $vat_rate_show == $rate) {
foreach ($x_both[$rate]['paye']['detail'] as $index => $fields) {
/*$company_static->id = $fields['company_id'];
$company_static->name = $fields['company_name'];
$company_static->name_alias = $fields['company_alias'];
$company_static->email = $fields['company_email'];
$company_static->tva_intra = $fields['tva_intra'];
$company_static->client = $fields['company_client'];
$company_static->fournisseur = $fields['company_fournisseur'];
$company_static->status = $fields['company_status'];
$company_static->code_client = $fields['company_client'];
$company_static->code_compta_client = $fields['company_customer_code'];
$company_static->code_fournisseur = $fields['company_customer_accounting_code'];
$company_static->code_compta_fournisseur = $fields['company_supplier_accounting_code'];*/
// Define type
// We MUST use dtype (type in line). We can use something else, only if dtype is really unknown.
$type = (isset($fields['dtype']) ? $fields['dtype'] : $fields['ptype']);
@ -664,7 +724,10 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
}
// Company name
print '<td class="left">' . $fields['company_link'] . '</td>';
print '<td class="tdmaxoverflow150">';
//print $company_static->getNomUrl(1);
print $fields['company_link'];
print '</td>';
// Description
print '<td class="left">';

View File

@ -143,7 +143,11 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " 0 as payment_id, 0 as payment_amount";
$sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
@ -184,7 +188,11 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,";
$sql .= " pa.datep as datep";
@ -265,8 +273,20 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$list[$assoc['company_id']]['dtype'][] = $assoc['dtype'];
$list[$assoc['company_id']]['datef'][] = $db->jdate($assoc['datef']);
$list[$assoc['company_id']]['datep'][] = $db->jdate($assoc['datep']);
$list[$assoc['company_id']]['company_name'][] = $assoc['company_name'];
$list[$assoc['company_id']]['company_id'][] = $assoc['company_id'];
$list[$assoc['company_id']]['company_alias'][] = $assoc['company_alias'];
$list[$assoc['company_id']]['company_email'][] = $assoc['company_email'];
$list[$assoc['company_id']]['company_tva_intra'][] = $assoc['company_tva_intra'];
$list[$assoc['company_id']]['company_client'][] = $assoc['company_client'];
$list[$assoc['company_id']]['company_fournisseur'][] = $assoc['company_fournisseur'];
$list[$assoc['company_id']]['company_customer_code'][] = $assoc['company_customer_code'];
$list[$assoc['company_id']]['company_supplier_code'][] = $assoc['company_supplier_code'];
$list[$assoc['company_id']]['company_customer_accounting_code'][] = $assoc['company_customer_accounting_code'];
$list[$assoc['company_id']]['company_supplier_accounting_code'][] = $assoc['company_supplier_accounting_code'];
$list[$assoc['company_id']]['company_status'][] = $assoc['company_status'];
$list[$assoc['company_id']]['drate'][] = $assoc['rate'];
$list[$assoc['company_id']]['ddate_start'][] = $db->jdate($assoc['date_start']);
$list[$assoc['company_id']]['ddate_end'][] = $db->jdate($assoc['date_end']);
@ -308,7 +328,11 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " 0 as payment_id, 0 as payment_amount";
$sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
@ -349,7 +373,11 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,";
$sql .= " pa.datep as datep";
@ -430,8 +458,20 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$list[$assoc['company_id']]['dtype'][] = $assoc['dtype'];
$list[$assoc['company_id']]['datef'][] = $db->jdate($assoc['datef']);
$list[$assoc['company_id']]['datep'][] = $db->jdate($assoc['datep']);
$list[$assoc['company_id']]['company_name'][] = $assoc['company_name'];
$list[$assoc['company_id']]['company_id'][] = $assoc['company_id'];
$list[$assoc['company_id']]['company_alias'][] = $assoc['company_alias'];
$list[$assoc['company_id']]['company_email'][] = $assoc['company_email'];
$list[$assoc['company_id']]['company_tva_intra'][] = $assoc['company_tva_intra'];
$list[$assoc['company_id']]['company_client'][] = $assoc['company_client'];
$list[$assoc['company_id']]['company_fournisseur'][] = $assoc['company_fournisseur'];
$list[$assoc['company_id']]['company_customer_code'][] = $assoc['company_customer_code'];
$list[$assoc['company_id']]['company_supplier_code'][] = $assoc['company_supplier_code'];
$list[$assoc['company_id']]['company_customer_accounting_code'][] = $assoc['company_customer_accounting_code'];
$list[$assoc['company_id']]['company_supplier_accounting_code'][] = $assoc['company_supplier_accounting_code'];
$list[$assoc['company_id']]['company_status'][] = $assoc['company_status'];
$list[$assoc['company_id']]['drate'][] = $assoc['rate'];
$list[$assoc['company_id']]['ddate_start'][] = $db->jdate($assoc['date_start']);
$list[$assoc['company_id']]['ddate_end'][] = $db->jdate($assoc['date_end']);
@ -539,8 +579,20 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
$list[$assoc['company_id']]['dtotal_ttc'][] = $assoc['total_ttc'];
$list[$assoc['company_id']]['dtype'][] = 'ExpenseReportPayment';
$list[$assoc['company_id']]['datef'][] = $assoc['datef'];
$list[$assoc['company_id']]['company_name'][] = '';
$list[$assoc['company_id']]['company_id'][] = '';
$list[$assoc['company_id']]['company_alias'][] = '';
$list[$assoc['company_id']]['company_email'][] = '';
$list[$assoc['company_id']]['company_tva_intra'][] = '';
$list[$assoc['company_id']]['company_client'][] = '';
$list[$assoc['company_id']]['company_fournisseur'][] = '';
$list[$assoc['company_id']]['company_customer_code'][] = '';
$list[$assoc['company_id']]['company_supplier_code'][] = '';
$list[$assoc['company_id']]['company_customer_accounting_code'][] = '';
$list[$assoc['company_id']]['company_supplier_accounting_code'][] = '';
$list[$assoc['company_id']]['company_status'][] = '';
$list[$assoc['company_id']]['user_id'][] = $assoc['fk_user_author'];
$list[$assoc['company_id']]['drate'][] = $assoc['rate'];
$list[$assoc['company_id']]['ddate_start'][] = $db->jdate($assoc['date_start']);
@ -635,7 +687,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$total_localtax2 = 'total_localtax2';
// CAS DES BIENS/PRODUITS
// CASE OF PRODUCTS/GOODS
// Define sql request
$sql = '';
@ -645,7 +697,11 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " 0 as payment_id, 0 as payment_amount";
$sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f";
@ -684,7 +740,11 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,";
$sql .= " pa.datep as datep";
@ -722,7 +782,6 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
}
$sql .= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid";
}
//print $sql;
if (!$sql) {
return -1;
@ -763,8 +822,20 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$list[$assoc['rate']]['dtype'][] = $assoc['dtype'];
$list[$assoc['rate']]['datef'][] = $db->jdate($assoc['datef']);
$list[$assoc['rate']]['datep'][] = $db->jdate($assoc['datep']);
$list[$assoc['rate']]['company_name'][] = $assoc['company_name'];
$list[$assoc['rate']]['company_id'][] = $assoc['company_id'];
$list[$assoc['rate']]['company_alias'][] = $assoc['company_alias'];
$list[$assoc['rate']]['company_email'][] = $assoc['company_email'];
$list[$assoc['rate']]['company_tva_intra'][] = $assoc['company_tva_intra'];
$list[$assoc['rate']]['company_client'][] = $assoc['company_client'];
$list[$assoc['rate']]['company_fournisseur'][] = $assoc['company_fournisseur'];
$list[$assoc['rate']]['company_customer_code'][] = $assoc['company_customer_code'];
$list[$assoc['rate']]['company_supplier_code'][] = $assoc['company_supplier_code'];
$list[$assoc['rate']]['company_customer_accounting_code'][] = $assoc['company_customer_accounting_code'];
$list[$assoc['rate']]['company_supplier_accounting_code'][] = $assoc['company_supplier_accounting_code'];
$list[$assoc['rate']]['company_status'][] = $assoc['company_status'];
$list[$assoc['rate']]['ddate_start'][] = $db->jdate($assoc['date_start']);
$list[$assoc['rate']]['ddate_end'][] = $db->jdate($assoc['date_end']);
@ -795,7 +866,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
}
// CAS DES SERVICES
// CASE OF SERVICES
// Define sql request
$sql = '';
@ -805,7 +876,11 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " 0 as payment_id, 0 as payment_amount";
$sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f";
@ -844,7 +919,11 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
$sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
$sql .= " d.date_start as date_start, d.date_end as date_end,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
$sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef,";
$sql .= " s.nom as company_name, s.name_alias as company_alias, s.rowid as company_id, s.client as company_client, s.fournisseur as company_fournisseur, s.email as company_email,";
$sql .= " s.code_client as company_customer_code, s.code_fournisseur as company_supplier_code,";
$sql .= " s.code_compta as company_customer_accounting_code, s.code_compta_fournisseur as company_supplier_accounting_code,";
$sql .= " s.status as company_status, s.tva_intra as company_tva_intra,";
$sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
$sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,";
$sql .= " pa.datep as datep";
@ -922,11 +1001,23 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
$list[$assoc['rate']]['dtype'][] = $assoc['dtype'];
$list[$assoc['rate']]['datef'][] = $db->jdate($assoc['datef']);
$list[$assoc['rate']]['datep'][] = $db->jdate($assoc['datep']);
$list[$assoc['rate']]['company_name'][] = $assoc['company_name'];
$list[$assoc['rate']]['company_id'][] = $assoc['company_id'];
$list[$assoc['rate']]['ddate_start'][] = $db->jdate($assoc['date_start']);
$list[$assoc['rate']]['ddate_end'][] = $db->jdate($assoc['date_end']);
$list[$assoc['rate']]['company_name'][] = $assoc['company_name'];
$list[$assoc['rate']]['company_id'][] = $assoc['company_id'];
$list[$assoc['rate']]['company_alias'][] = $assoc['company_alias'];
$list[$assoc['rate']]['company_email'][] = $assoc['company_email'];
$list[$assoc['rate']]['company_tva_intra'][] = $assoc['company_tva_intra'];
$list[$assoc['rate']]['company_client'][] = $assoc['company_client'];
$list[$assoc['rate']]['company_fournisseur'][] = $assoc['company_fournisseur'];
$list[$assoc['rate']]['company_customer_code'][] = $assoc['company_customer_code'];
$list[$assoc['rate']]['company_supplier_code'][] = $assoc['company_supplier_code'];
$list[$assoc['rate']]['company_customer_accounting_code'][] = $assoc['company_customer_accounting_code'];
$list[$assoc['rate']]['company_supplier_accounting_code'][] = $assoc['company_supplier_accounting_code'];
$list[$assoc['rate']]['company_status'][] = $assoc['company_status'];
$list[$assoc['rate']]['facid'][] = $assoc['facid'];
$list[$assoc['rate']]['facnum'][] = $assoc['facnum'];
$list[$assoc['rate']]['type'][] = $assoc['type'];