示例#1
0
    }
echo "</table>\n";
echo "<div class=\"FacetSeparatorTD\" align=\"center\">$script_transl[2]</div>\n";
echo "<table class=\"Tlarge\">\n";
echo "<input type=\"hidden\" value=\"".$form['numrat']."\" name=\"numrat\">\n";
echo "<input type=\"hidden\" value=\"".$form['expense_vat']."\" name=\"expense_vat\">\n";
echo "<input type=\"hidden\" value=\"".$form['spevar']."\" name=\"spevar\">\n";
echo "<input type=\"hidden\" value=\"".$form['stamp']."\" name=\"stamp\">\n";
echo "<input type=\"hidden\" value=\"".$form['round_stamp']."\" name=\"round_stamp\">\n";
echo "<input type=\"hidden\" value=\"".$form['cauven']."\" name=\"cauven\">\n";
echo "<input type=\"hidden\" value=\"".$form['caucon']."\" name=\"caucon\">\n";
echo "<input type=\"hidden\" value=\"".$form['caumag']."\" name=\"caumag\">\n";

$somma_spese = $form['traspo'] + $form['speban']*$form['numrat'] + $form['spevar'];
$calc = new Compute;
$calc->add_value_to_VAT_castle($castle,$somma_spese,$form['expense_vat']);
if ($calc->total_exc > $admin_aziend['taxstamp_limit'] && $form['virtual_taxstamp'] > 0 ) {
   $form['taxstamp'] = $admin_aziend['taxstamp'];
}

echo "<tr>";
echo "<td align=\"right\" class=\"FacetFieldCaptionTD\">$script_transl[26]</td>\n";
echo "<td colspan=\"2\" class=\"FacetDataTD\"><input type=\"text\" name=\"imball\" value=\"".$form['imball']."\" maxlength=\"50\" size=\"25\" class=\"FacetInput\">\n";
$select_spediz = new SelectValue("imballo");
$select_spediz -> output('imball', 'imball');
echo "</td>";
echo "<td align=\"right\" class=\"FacetFieldCaptionTD\">$script_transl[27]</td>\n";
echo "<td colspan=\"3\" class=\"FacetDataTD\"><input type=\"text\" name=\"spediz\" value=\"".$form["spediz"]."\" maxlength=\"50\" size=\"25\" class=\"FacetInput\">\n";
$select_spediz = new SelectValue("spedizione");
$select_spediz -> output('spediz', 'spediz');
echo "<td align=\"right\" class=\"FacetFieldCaptionTD\">$script_transl[14]</td>";
示例#2
0
function getDocumentsAccounts($type='___',$vat_section=1,$date=false,$protoc=999999999)
{
    global $gTables,$admin_aziend;
    $calc = new Compute;
    $type = substr($type,0,1);
    if ($date){
       $p=' AND (YEAR(datfat)*1000000+protoc) <= '.(substr($date,0,4)*1000000+$protoc);
       $d=' AND datfat <= '.$date;
    } else {
       $d='';
       $p='';
    }
    $from =  $gTables['tesdoc'].' AS tesdoc
             LEFT JOIN '.$gTables['pagame'].' AS pay
             ON tesdoc.pagame=pay.codice
             LEFT JOIN '.$gTables['clfoco'].' AS customer
             ON tesdoc.clfoco=customer.codice
             LEFT JOIN '.$gTables['anagra'].' AS anagraf
             ON customer.id_anagra=anagraf.id';
    $where = "id_con = 0 AND seziva = $vat_section AND tipdoc LIKE '$type"."__' $d $p";
    $orderby = "datfat ASC, protoc ASC";
    $result = gaz_dbi_dyn_query('tesdoc.*,
                        pay.tippag,pay.numrat,pay.incaut,pay.tipdec,pay.giodec,pay.tiprat,pay.mesesc,pay.giosuc,pay.id_bank,
                        customer.codice,
                        customer.speban AS addebitospese,
                        CONCAT(anagraf.ragso1,\' \',anagraf.ragso2) AS ragsoc,CONCAT(anagraf.citspe,\' (\',anagraf.prospe,\')\') AS citta',
                        $from,$where,$orderby);
    $doc=array();
    $ctrlp=0;
    while ($tes = gaz_dbi_fetch_array($result)) {
           if ($tes['protoc'] <> $ctrlp) { // la prima testata della fattura
                if ($ctrlp>0 && ($doc[$ctrlp]['tes']['stamp'] >= 0.01 || $doc[$ctrlp]['tes']['taxstamp'] >= 0.01 )) { // non è il primo ciclo faccio il calcolo dei bolli del pagamento e lo aggiungo ai castelletti
					$calc->payment_taxstamp($calc->total_imp+$calc->total_vat+$carry-$rit-$ivasplitpay+$taxstamp, $doc[$ctrlp]['tes']['stamp'],$doc[$ctrlp]['tes']['round_stamp']*$doc[$ctrlp]['tes']['numrat']);
					$calc->add_value_to_VAT_castle($doc[$ctrlp]['vat'],$taxstamp+$calc->pay_taxstamp,$admin_aziend['taxstamp_vat']);
					$doc[$ctrlp]['vat']=$calc->castle;
					// aggiungo il castelleto conti
					if (!isset($doc[$ctrlp]['acc'][$admin_aziend['boleff']])) {
						$doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] = 0;
					}
					$doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] += $taxstamp+$calc->pay_taxstamp;
                }    
                $carry=0;
                $ivasplitpay=0;
                $cast_vat=array();
                $cast_acc=array();
                $somma_spese=0;
                $totimpdoc=0;
                $totimp_decalc=0.00;
                $n_vat_decalc=0;
                $spese_incasso=$tes['numrat']*$tes['speban'];
                $taxstamp=0;
                $rit=0;
           } else {
                $spese_incasso=0;
           }
           // aggiungo il bollo sugli esenti/esclusi se nel DdT c'è ma non è ancora stato mai aggiunto
           if ($tes['taxstamp']>=0.01 && $taxstamp<0.01) {
                $taxstamp=$tes['taxstamp'];
           }           
	   if ($tes['virtual_taxstamp'] == 0 || $tes['virtual_taxstamp'] == 3) { //  se è a carico dell'emittente non lo aggiungo al castelletto IVA
		$taxstamp = 0.00;
	   }
           if ($tes['traspo']>=0.01) {
                   if (!isset($cast_acc[$admin_aziend['imptra']]['import'])) {
                      $cast_acc[$admin_aziend['imptra']]['import'] = $tes['traspo'];
                   } else {
                      $cast_acc[$admin_aziend['imptra']]['import'] += $tes['traspo'];
                   }
           }
           if ($spese_incasso>=0.01) {
                   if (!isset($cast_acc[$admin_aziend['impspe']]['import'])) {
                      $cast_acc[$admin_aziend['impspe']]['import'] = $spese_incasso;
                   } else {
                      $cast_acc[$admin_aziend['impspe']]['import'] += $spese_incasso;
                   }
           }
           if ($tes['spevar']>=0.01) {
                   if (!isset($cast_acc[$admin_aziend['impvar']]['import'])) {
                      $cast_acc[$admin_aziend['impvar']]['import'] = $tes['spevar'];
                   } else {
                      $cast_acc[$admin_aziend['impvar']]['import'] += $tes['spevar'];
                   }
           }
           //recupero i dati righi per creare il castelletto
           $from =  $gTables['rigdoc'].' AS rows
                    LEFT JOIN '.$gTables['aliiva'].' AS vat
                    ON rows.codvat=vat.codice';
           $rs_rig = gaz_dbi_dyn_query('rows.*,vat.tipiva AS tipiva',$from, "rows.id_tes = ".$tes['id_tes'],"id_tes DESC");
           while ($r = gaz_dbi_fetch_array($rs_rig)) {
              if ($r['tiprig'] <= 1) {//ma solo se del tipo normale o forfait
                 //calcolo importo rigo
                 $importo = CalcolaImportoRigo($r['quanti'],$r['prelis'],array($r['sconto'],$tes['sconto']));
                 if ($r['tiprig'] == 1) {
                    $importo = CalcolaImportoRigo(1,$r['prelis'], $tes['sconto']);
                 }
                 //creo il castelletto IVA
                 if (!isset($cast_vat[$r['codvat']]['impcast'])) {
                    $cast_vat[$r['codvat']]['impcast']=0;
                    $cast_vat[$r['codvat']]['ivacast']=0;
                    $cast_vat[$r['codvat']]['periva']=$r['pervat'];
                    $cast_vat[$r['codvat']]['tipiva']=$r['tipiva'];
                 }
                 $cast_vat[$r['codvat']]['impcast']+=$importo;
                 $cast_vat[$r['codvat']]['ivacast']+=round(($importo*$r['pervat'])/ 100,2);
                 $totimpdoc += $importo;
                 //creo il castelletto conti
                 if (!isset($cast_acc[$r['codric']]['import'])) {
                    $cast_acc[$r['codric']]['import'] = 0;
                 }
                 $cast_acc[$r['codric']]['import']+=$importo;
                 $rit+=round($importo*$r['ritenuta']/100,2);
                 // aggiungo all'accumulatore l'eventuale iva non esigibile (split payment PA)   
                 if ($r['tipiva']=='T') {
                    $ivasplitpay += round(($importo*$r['pervat'])/ 100,2);
                 }
              } elseif($r['tiprig'] == 3) {
                 $carry += $r['prelis'] ;
              }
           }
           $doc[$tes['protoc']]['tes']=$tes;
           $doc[$tes['protoc']]['acc']=$cast_acc;
           $doc[$tes['protoc']]['car']=$carry;
           $doc[$tes['protoc']]['isp']=$ivasplitpay;
           $doc[$tes['protoc']]['rit']=$rit;
           $somma_spese += $tes['traspo'] + $spese_incasso + $tes['spevar'] ;
           $calc->add_value_to_VAT_castle($cast_vat,$somma_spese,$tes['expense_vat']);
           $doc[$tes['protoc']]['vat']=$calc->castle;
           $ctrlp=$tes['protoc'];
    }
    if ($doc[$ctrlp]['tes']['stamp'] >= 0.01 || $taxstamp >= 0.01 ) { // a chiusura dei cicli faccio il calcolo dei bolli del pagamento e lo aggiungo ai castelletti
        $calc->payment_taxstamp($calc->total_imp+$calc->total_vat+$carry-$rit-$ivasplitpay+$taxstamp, $doc[$ctrlp]['tes']['stamp'],$doc[$ctrlp]['tes']['round_stamp']*$doc[$ctrlp]['tes']['numrat']);
        // aggiungo al castelletto IVA
	$calc->add_value_to_VAT_castle($doc[$ctrlp]['vat'],$taxstamp+$calc->pay_taxstamp,$admin_aziend['taxstamp_vat']);
        $doc[$ctrlp]['vat']=$calc->castle;
        // aggiungo il castelleto conti
        if (!isset($doc[$ctrlp]['acc'][$admin_aziend['boleff']])) {
           $doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] = 0;
        }
        $doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] += $taxstamp+$calc->pay_taxstamp;
    }    
    return $doc;
}
示例#3
0
 function setTotal()
 {
     $calc = new Compute();
     $this->totivafat = 0.0;
     $this->totimpfat = 0.0;
     $this->totimpmer = 0.0;
     $this->tot_ritenute = $this->ritenuta;
     $this->virtual_taxstamp = $this->tesdoc['virtual_taxstamp'];
     $this->impbol = 0.0;
     $this->totriport = $this->riporto;
     $this->speseincasso = $this->tesdoc['speban'] * $this->pagame['numrat'];
     $this->cast = array();
     if (!isset($this->castel)) {
         $this->castel = array();
     }
     if (!isset($this->totimp_body)) {
         $this->totimp_body = 0;
     }
     $this->totimpmer = $this->totimp_body;
     $this->totimp_body = 0;
     $somma_spese = $this->tottraspo + $this->speseincasso + $this->tesdoc['spevar'];
     $calc->add_value_to_VAT_castle($this->body_castle, $somma_spese, $this->tesdoc['expense_vat']);
     if ($this->tesdoc['stamp'] > 0) {
         $calc->payment_taxstamp($calc->total_imp + $this->totriport + $calc->total_vat - $calc->total_isp - $this->tot_ritenute + $this->taxstamp, $this->tesdoc['stamp'], $this->tesdoc['round_stamp'] * $this->pagame['numrat']);
         $this->impbol = $calc->pay_taxstamp;
     }
     $this->totimpfat = $calc->total_imp;
     $this->totivafat = $calc->total_vat;
     $this->totivasplitpay = $calc->total_isp;
     // aggiungo gli eventuali bolli al castelletto
     if ($this->virtual_taxstamp == 0 || $this->virtual_taxstamp == 3) {
         //  se è a carico dell'emittente non lo aggiungo al castelletto IVA
         $this->taxstamp = 0.0;
     }
     if ($this->impbol >= 0.01 || $this->taxstamp >= 0.01) {
         $calc->add_value_to_VAT_castle($calc->castle, $this->taxstamp + $this->impbol, $this->azienda['taxstamp_vat']);
     }
     $this->cast = $calc->castle;
     $this->riporto = 0;
     $this->ritenute = 0;
     $this->castel = array();
 }
 function setXMLtot()
 {
     $calc = new Compute();
     $this->totivafat = 0.0;
     $this->totimpfat = 0.0;
     $this->totimpmer = 0.0;
     $this->tot_ritenute = $this->ritenuta;
     $this->virtual_taxstamp = $this->tesdoc['virtual_taxstamp'];
     $this->impbol = 0.0;
     $this->BolloVirtuale = '';
     // ovviamente il bollo potrà essere solo virtuale ma comunque lo setto per evidenziare l'errore
     if ($this->tesdoc['virtual_taxstamp'] == 2 || $this->tesdoc['virtual_taxstamp'] == 3) {
         // bollo virtualmente assolto
         $this->BolloVirtuale = 'SI';
     }
     $this->totriport = $this->riporto;
     $this->speseincasso = $this->tesdoc['speban'] * $this->pagame['numrat'];
     if (!isset($this->castel)) {
         $this->castel = array();
     }
     if (!isset($this->totimp_body)) {
         $this->totimp_body = 0;
     }
     $this->totimpmer = $this->totimp_body;
     $this->totimp_body = 0;
     if (!isset($this->totimp_doc)) {
         $this->totimp_doc = 0;
     }
     $this->totimpfat = $this->totimp_doc;
     $this->totimp_doc = 0;
     $somma_spese = $this->tot_trasporto + $this->speseincasso + $this->tesdoc['spevar'];
     $calc->add_value_to_VAT_castle($this->body_castle, $somma_spese, $this->tesdoc['expense_vat']);
     if ($this->tesdoc['stamp'] > 0) {
         $calc->payment_taxstamp($calc->total_imp + $this->totriport + $calc->total_vat - $this->tot_ritenute + $this->taxstamp - $this->ivasplitpay, $this->tesdoc['stamp'], $this->tesdoc['round_stamp'] * $this->pagame['numrat']);
         $this->impbol = $calc->pay_taxstamp;
     }
     $this->totimpfat = $calc->total_imp;
     $this->totivafat = $calc->total_vat;
     // aggiungo gli eventuali bolli al castelletto
     $chk_taxstamp = true;
     if ($this->virtual_taxstamp == 0 || $this->virtual_taxstamp == 3) {
         //  se è a carico dell'emittente non lo aggiungo al castelletto IVA
         $chk_taxstamp = false;
     }
     if ($this->impbol >= 0.01 || $this->taxstamp >= 0.01 && $chk_taxstamp) {
         $this->impbol += $this->taxstamp;
         $calc->add_value_to_VAT_castle($calc->castle, $this->impbol, $this->azienda['taxstamp_vat']);
     } elseif (!$chk_taxstamp) {
         // bollo da non addebitare ma esistente
         $this->impbol = $this->taxstamp;
     }
     $this->cast = $calc->castle;
     $this->riporto = 0;
     $this->ritenute = 0;
 }
示例#5
0
function getDocumentsBill($upd=false)
{
    global $gTables,$admin_aziend;
    $calc = new Compute;
    $from =  $gTables['tesdoc'].' AS tesdoc
             LEFT JOIN '.$gTables['pagame'].' AS pay
             ON tesdoc.pagame=pay.codice
             LEFT JOIN '.$gTables['clfoco'].' AS customer
             ON tesdoc.clfoco=customer.codice
             LEFT JOIN '.$gTables['anagra'].' AS anagraf
             ON anagraf.id=customer.id_anagra';
    $where = "(tippag = 'B' OR tippag = 'T' OR tippag = 'V') AND geneff = '' AND tipdoc LIKE 'FA_'";
    $orderby = "datfat ASC, protoc ASC, id_tes ASC";
    $result = gaz_dbi_dyn_query('tesdoc.*,
                        pay.tippag,pay.numrat,pay.tipdec,pay.giodec,pay.tiprat,pay.mesesc,pay.giosuc,
                        customer.codice, customer.speban AS addebitospese,
                        CONCAT(anagraf.ragso1,\' \',anagraf.ragso2) AS ragsoc,CONCAT(anagraf.citspe,\' (\',anagraf.prospe,\')\') AS citta',
                        $from,$where,$orderby);
    $doc=array();
    $ctrlp=0;
    while ($tes = gaz_dbi_fetch_array($result)) {
           //il numero di protocollo contiene anche l'anno nei primi 4 numeri
           $year_prot=intval(substr($tes['datfat'],0,4))*1000000+$tes['protoc'];
           if ($year_prot <> $ctrlp) { // la prima testata della fattura
                if ($ctrlp>0 && ($doc[$ctrlp]['tes']['stamp'] >= 0.01 || $taxstamp >= 0.01 )) { // non è il primo ciclo faccio il calcolo dei bolli del pagamento e lo aggiungo ai castelletti
					$calc->payment_taxstamp($calc->total_imp+$calc->total_vat+$carry-$rit+$taxstamp, $doc[$ctrlp]['tes']['stamp'],$doc[$ctrlp]['tes']['round_stamp']*$doc[$ctrlp]['tes']['numrat']);
					$calc->add_value_to_VAT_castle($doc[$ctrlp]['vat'],$taxstamp+$calc->pay_taxstamp,$admin_aziend['taxstamp_vat']);
					$doc[$ctrlp]['vat']=$calc->castle;
					// aggiungo il castelleto conti
					if (!isset($doc[$ctrlp]['acc'][$admin_aziend['boleff']])) {
						$doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] = 0;
					}
					$doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] += $taxstamp+$calc->pay_taxstamp;
                }    
                $carry=0;
                $somma_spese=0;
                $cast_vat=array();
                $totimp_decalc=0.00;
                $n_vat_decalc=0;
                $totimpdoc=0;
                $spese_incasso=$tes['numrat']*$tes['speban'];
                $taxstamp=0;
                $rit=0;
           } else {
                $spese_incasso=0;
           }
           // aggiungo il bollo sugli esenti/esclusi se nel DdT c'è ma non è ancora stato mai aggiunto
           if ($tes['taxstamp']>=0.01 && $taxstamp<0.01) {
                $taxstamp=$tes['taxstamp'];
           }           
	   if ($tes['virtual_taxstamp'] == 0 || $tes['virtual_taxstamp'] == 3 ) { //  se è a carico dell'emittente non lo aggiungo al castelletto IVA
		$taxstamp = 0.00;
	   }
           //recupero i dati righi per creare il castelletto
           $from =  $gTables['rigdoc'].' AS rows
                    LEFT JOIN '.$gTables['aliiva'].' AS vat
                    ON rows.codvat=vat.codice';
           $rs_rig = gaz_dbi_dyn_query('rows.*,vat.tipiva AS tipiva',$from, "rows.id_tes = ".$tes['id_tes'],"id_tes DESC");
           while ($r = gaz_dbi_fetch_array($rs_rig)) {
              if ($r['tiprig'] <= 1) {//ma solo se del tipo normale o forfait
                 //calcolo importo rigo
                 $importo = CalcolaImportoRigo($r['quanti'],$r['prelis'],array($r['sconto'],$tes['sconto']));
                 if ($r['tiprig'] == 1) {
                    $importo = CalcolaImportoRigo(1,$r['prelis'], $tes['sconto']);
                 }
                 //creo il castelletto IVA
                 if (!isset($cast_vat[$r['codvat']]['import'])) {
                    $cast_vat[$r['codvat']]['impcast']=0;
                    $cast_vat[$r['codvat']]['ivacast']=round(($importo*$r['pervat'])/ 100,2);;
                    $cast_vat[$r['codvat']]['import']=0;
                    $cast_vat[$r['codvat']]['periva']=$r['pervat'];
                    $cast_vat[$r['codvat']]['tipiva']=$r['tipiva'];
                 }
                 $cast_vat[$r['codvat']]['impcast']+=$importo;
                 $cast_vat[$r['codvat']]['import']+=$importo;
                 $totimpdoc += $importo;
                 $rit+=round($importo*$r['ritenuta']/100,2);
              } elseif($r['tiprig'] == 3) {
                 $carry += $r['prelis'] ;
              }
           }
           $doc[$year_prot]['tes']=$tes;
           $doc[$year_prot]['car']=$carry;
           $doc[$year_prot]['rit']=$rit;
           $ctrlp=$year_prot;
           $somma_spese += $tes['traspo'] + $spese_incasso + $tes['spevar'] ;
           $calc->add_value_to_VAT_castle($cast_vat,$somma_spese,$tes['expense_vat']);
           $doc[$ctrlp]['vat']=$calc->castle;
	   
	   // segno l'effetto come generato
	   if ($upd) {
                gaz_dbi_query ("UPDATE ".$gTables['tesdoc']." SET geneff = 'S' WHERE id_tes = ".$tes['id_tes'].";");
           }
    }
    if ($doc[$ctrlp]['tes']['stamp'] >= 0.01 || $taxstamp >= 0.01 ) { // a chiusura dei cicli faccio il calcolo dei bolli del pagamento e lo aggiungo ai castelletti
        $calc->payment_taxstamp($calc->total_imp+$calc->total_vat+$carry-$rit+$taxstamp, $doc[$ctrlp]['tes']['stamp'],$doc[$ctrlp]['tes']['round_stamp']*$doc[$ctrlp]['tes']['numrat']);
        // aggiungo al castelletto IVA
		$calc->add_value_to_VAT_castle($doc[$ctrlp]['vat'],$taxstamp+$calc->pay_taxstamp,$admin_aziend['taxstamp_vat']);
        $doc[$ctrlp]['vat']=$calc->castle;
        // aggiungo il castelleto conti
        if (!isset($doc[$ctrlp]['acc'][$admin_aziend['boleff']])) {
           $doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] = 0;
        }
        $doc[$ctrlp]['acc'][$admin_aziend['boleff']]['import'] += $doc[$ctrlp]['tes']['taxstamp']+$calc->pay_taxstamp;
    }
    return $doc;
}