From f0db9a3c3b0bb4532348b4b744db2cfffe612daf Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Sun, 28 Jun 2015 14:12:38 -0500 Subject: [PATCH] Add non-local and local-only VAT customers reports to new quarterly report --- htdocs/compta/tva/clients.php | 147 ++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/htdocs/compta/tva/clients.php b/htdocs/compta/tva/clients.php index 5d8dce0fd73..8a75c21e92b 100644 --- a/htdocs/compta/tva/clients.php +++ b/htdocs/compta/tva/clients.php @@ -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/date.lib.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("compta"); @@ -351,6 +352,152 @@ else print ''; +// 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 '

Other countries customers

'; +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 ""; +print ""; +print '"; +print '"; +print ""; +print ""; +print ""; +print "\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 ""; + print '"; + $company_static->id=$coll->socid; + $company_static->name=$coll->name; + $company_static->client=1; + print ''; + $find = array(' ','.'); + $replace = array('',''); + print '"; + print ""; + print ""; + $totalamount = $totalamount + $coll->amount; + $total = $total + $coll->tva; + print "\n"; + $i++; + } + } + $x_coll_sum = $total; + + print ''; + print ''; + print ''; + print ''; +} else { + $langs->load("errors"); + if ($coll_list == -1) { + print ''; + } else if ($coll_list == -2) { + print ''; + } else { + print ''; + } +} +print '
'.$langs->trans("Num")."'.$langs->trans("Customer")."".$langs->trans("VATIntra")."".$langs->trans("AmountHTVATRealReceived")."".$vatcust."
'.$i."'.$company_static->getNomUrl(1,'customer').''.$intra."".price($coll->amount)."".price($coll->tva)."
'.$langs->trans("Total").':'.price($totalamount).''.price($total).'
' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '
' . $langs->trans("FeatureNotYetAvailable") . '
' . $langs->trans("Error") . '
'; + +// Print listing of same-country customers as additional report +// This matches tax requirements to list all same-country customers (only) +print '

Same country customers with VAT

'; +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 ""; +print ""; +print '"; +print '"; +print ""; +print ""; +print ""; +print "\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 ""; + print '"; + $company_static->id=$coll->socid; + $company_static->name=$coll->name; + $company_static->client=1; + print ''; + $find = array(' ', '.'); + $replace = array('', ''); + print '"; + print ""; + print ""; + $totalamount = $totalamount + $coll->amount; + $total = $total + $coll->tva; + print "\n"; + $i++; + } + } + $x_coll_sum = $total; + + print ''; + print ''; + print ''; + print ''; +} else { + $langs->load("errors"); + if ($coll_list == -1) { + print ''; + } else if ($coll_list == -2) { + print ''; + } else { + print ''; + } +} + llxFooter();
'.$langs->trans("Num")."'.$langs->trans("Customer")."".$langs->trans("VATIntra")."".$langs->trans("AmountHTVATRealReceived")."".$vatcust."
'.$i."'.$company_static->getNomUrl(1, 'customer').''.$intra."".price($coll->amount)."".price($coll->tva)."
'.$langs->trans("Total").':'.price($totalamount).''.price($total).'
'.$langs->trans("ErrorNoAccountancyModuleLoaded").'
'.$langs->trans("FeatureNotYetAvailable").'
'.$langs->trans("Error").'