Add non-local and local-only VAT customers reports to new quarterly report
This commit is contained in:
parent
c3bb76340f
commit
f0db9a3c3b
@ -30,6 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/ccountry.class.php';
|
||||||
|
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
$langs->load("compta");
|
$langs->load("compta");
|
||||||
@ -351,6 +352,152 @@ else
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
// Get country 2-letters code
|
||||||
|
global $mysoc;
|
||||||
|
$country_id = $mysoc->country_id;
|
||||||
|
$country = new Ccountry($db);
|
||||||
|
$country->fetch($country_id);
|
||||||
|
|
||||||
|
// Print listing of other-country customers as additional report
|
||||||
|
// This matches tax requirements to list all same-country customers (only)
|
||||||
|
print '<h3>Other countries customers</h3>';
|
||||||
|
print 'Based on 2 first letters of VAT number being different from your company\'s country';
|
||||||
|
$coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
|
||||||
|
|
||||||
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
|
print "<tr class=\"liste_titre\">";
|
||||||
|
print '<td align="left">'.$langs->trans("Num")."</td>";
|
||||||
|
print '<td align="left">'.$langs->trans("Customer")."</td>";
|
||||||
|
print "<td>".$langs->trans("VATIntra")."</td>";
|
||||||
|
print "<td align=\"right\">".$langs->trans("AmountHTVATRealReceived")."</td>";
|
||||||
|
print "<td align=\"right\">".$vatcust."</td>";
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
if (is_array($coll_list)) {
|
||||||
|
$var=true;
|
||||||
|
$total = 0;
|
||||||
|
$totalamount = 0;
|
||||||
|
$i = 1;
|
||||||
|
foreach($coll_list as $coll) {
|
||||||
|
if (substr($coll->tva_intra, 0, 2) == $country->code) {
|
||||||
|
// Only use different-country VAT codes
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||||
|
$var=!$var;
|
||||||
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
|
if (empty($intra)) {
|
||||||
|
if ($coll->assuj == '1') {
|
||||||
|
$intra = $langs->trans('Unknown');
|
||||||
|
} else {
|
||||||
|
//$intra = $langs->trans('NotRegistered');
|
||||||
|
$intra = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
|
print '<td class="nowrap">'.$i."</td>";
|
||||||
|
$company_static->id=$coll->socid;
|
||||||
|
$company_static->name=$coll->name;
|
||||||
|
$company_static->client=1;
|
||||||
|
print '<td class="nowrap">'.$company_static->getNomUrl(1,'customer').'</td>';
|
||||||
|
$find = array(' ','.');
|
||||||
|
$replace = array('','');
|
||||||
|
print '<td class="nowrap">'.$intra."</td>";
|
||||||
|
print "<td class=\"nowrap\" align=\"right\">".price($coll->amount)."</td>";
|
||||||
|
print "<td class=\"nowrap\" align=\"right\">".price($coll->tva)."</td>";
|
||||||
|
$totalamount = $totalamount + $coll->amount;
|
||||||
|
$total = $total + $coll->tva;
|
||||||
|
print "</tr>\n";
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$x_coll_sum = $total;
|
||||||
|
|
||||||
|
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").':</td>';
|
||||||
|
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||||
|
print '<td class="nowrap" align="right">'.price($total).'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
} else {
|
||||||
|
$langs->load("errors");
|
||||||
|
if ($coll_list == -1) {
|
||||||
|
print '<tr><td colspan="5">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||||
|
} else if ($coll_list == -2) {
|
||||||
|
print '<tr><td colspan="5">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||||
|
} else {
|
||||||
|
print '<tr><td colspan="5">' . $langs->trans("Error") . '</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
// Print listing of same-country customers as additional report
|
||||||
|
// This matches tax requirements to list all same-country customers (only)
|
||||||
|
print '<h3>Same country customers with VAT</h3>';
|
||||||
|
print 'Based on 2 first letters of VAT number being the same as your company\'s country';
|
||||||
|
$coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
|
||||||
|
|
||||||
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
|
print "<tr class=\"liste_titre\">";
|
||||||
|
print '<td align="left">'.$langs->trans("Num")."</td>";
|
||||||
|
print '<td align="left">'.$langs->trans("Customer")."</td>";
|
||||||
|
print "<td>".$langs->trans("VATIntra")."</td>";
|
||||||
|
print "<td align=\"right\">".$langs->trans("AmountHTVATRealReceived")."</td>";
|
||||||
|
print "<td align=\"right\">".$vatcust."</td>";
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
if (is_array($coll_list)) {
|
||||||
|
$var=true;
|
||||||
|
$total = 0; $totalamount = 0;
|
||||||
|
$i = 1;
|
||||||
|
foreach ($coll_list as $coll) {
|
||||||
|
if (substr($coll->tva_intra, 0, 2) != $country->code) {
|
||||||
|
// Only use same-country VAT codes
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||||
|
$var=!$var;
|
||||||
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
|
if (empty($intra)) {
|
||||||
|
if ($coll->assuj == '1') {
|
||||||
|
$intra = $langs->trans('Unknown');
|
||||||
|
} else {
|
||||||
|
//$intra = $langs->trans('NotRegistered');
|
||||||
|
$intra = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "<tr ".$bc[$var].">";
|
||||||
|
print '<td class="nowrap">'.$i."</td>";
|
||||||
|
$company_static->id=$coll->socid;
|
||||||
|
$company_static->name=$coll->name;
|
||||||
|
$company_static->client=1;
|
||||||
|
print '<td class="nowrap">'.$company_static->getNomUrl(1, 'customer').'</td>';
|
||||||
|
$find = array(' ', '.');
|
||||||
|
$replace = array('', '');
|
||||||
|
print '<td class="nowrap">'.$intra."</td>";
|
||||||
|
print "<td class=\"nowrap\" align=\"right\">".price($coll->amount)."</td>";
|
||||||
|
print "<td class=\"nowrap\" align=\"right\">".price($coll->tva)."</td>";
|
||||||
|
$totalamount = $totalamount + $coll->amount;
|
||||||
|
$total = $total + $coll->tva;
|
||||||
|
print "</tr>\n";
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$x_coll_sum = $total;
|
||||||
|
|
||||||
|
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").':</td>';
|
||||||
|
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||||
|
print '<td class="nowrap" align="right">'.price($total).'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
} else {
|
||||||
|
$langs->load("errors");
|
||||||
|
if ($coll_list == -1) {
|
||||||
|
print '<tr><td colspan="5">'.$langs->trans("ErrorNoAccountancyModuleLoaded").'</td></tr>';
|
||||||
|
} else if ($coll_list == -2) {
|
||||||
|
print '<tr><td colspan="5">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
|
||||||
|
} else {
|
||||||
|
print '<tr><td colspan="5">'.$langs->trans("Error").'</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user