Example #1
0
function getItemPrice($item,$partner=0)
{
    global $admin_aziend,$gTables;
    $artico=gaz_dbi_get_row($gTables['artico'],'codice',$item);
    if ($partner>0) {
       $partner=gaz_dbi_get_row($gTables['clfoco'],'codice',$partner);
       $list=$partner['listin'];
       if (substr($partner['codice'],0,3)== $admin_aziend['mascli'] && $list>0 && $list<=3){
           $price=$artico["preve$list"];
       } else {
           $price=$artico["preacq"];
       }
       $sconto=$partner['sconto'];
    } else { // prezzo articolo
       $sconto=0;
       $price=$artico["preve1"];
    }
    return CalcolaImportoRigo(1,$price,$sconto,$admin_aziend['decimal_price']);
}
Example #2
0
 function contractCalc($id_contract)
 {
   //recupero il contratto da calcolare
   global $gTables,$admin_aziend;
   $this->contract_castle=array();
   $contract = gaz_dbi_get_row($gTables['contract'],"id_contract",$id_contract);
   $this->contract_castel[$contract['vat_code']]['impcast']=$contract['current_fee'];
   
   $result = gaz_dbi_dyn_query('*', $gTables['contract_row'], $gTables['contract_row'].'.id_contract ='.$id_contract, $gTables['contract_row'].'.id_row');
   while ($row = gaz_dbi_fetch_array($result)) {
       $r_val = CalcolaImportoRigo($row['quanti'], $row['price'],array($row['discount']));
       if (!isset($this->contract_castel[$row['vat_code']])) {
           $this->contract_castel[$row['vat_code']]['impcast']=0.00;
       }
       $this->contract_castel[$row['vat_code']]['impcast']+=$r_val;
   }
   $this->add_value_to_VAT_castle($this->contract_castel,444,$admin_aziend['taxstamp_vat']);
 }    
Example #3
0
    $agente = getNewAgente($row['id_agente']);
    $item_head['bot']= array(array('lun' => 50,'nam'=>$agente['indspe']),
                              array('lun' => 60,'nam'=>$agente['citspe'].' ('.$agente['prospe'].') '.$agente['telefo']),
                              array('lun' => 37,'nam'=>substr($_GET['datini'],6,2).'.'.substr($_GET['datini'],4,2).'.'.substr($_GET['datini'],0,4).'-'.substr($_GET['datfin'],6,2).'.'.substr($_GET['datfin'],4,2).'.'.substr($_GET['datfin'],0,4))
                          );
    $aRiportare['top'][1]['nam'] = 0;
    $aRiportare['bot'][1]['nam'] = 0;
    $pdf->setRiporti('');
    $pdf->setPageTitle('Agente: '.$agente['ragso1'].' '.$agente['ragso2']);
    $pdf->setItemGroup($item_head);
    $pdf->AddPage('P',$config->getValue('page_format'));
 }
 if ($row['tipdoc'] == 'FNC') {
       $row['quanti'] = -$row['quanti'];
 }
 $row_importo = CalcolaImportoRigo($row['quanti'],$row['prelis'],array($row['scochi'],$row['sconto']));
 $row_provvig = round($row_importo*$row['provvigione']/100,3);
 $tot_prov += $row_provvig;
 $aRiportare['top'][1]['nam'] = gaz_format_number($tot_prov);
 $aRiportare['bot'][1]['nam'] = gaz_format_number($tot_prov);
 if ($ctrlDoc != $row['id_tes']) {
    if ($row['tipdoc'] == 'FAD') {
        $desdoc =  'da '.$strScript['admin_docven.php'][0][$row['tipdoc']].' n.'.$row['numdoc'].' del '.$row['datemi'].' -> Fattura n.'.$row['numfat'].'/'.$row['seziva'].' del '.$row['datfat'].' a '.$row['ragso1'].' '.$row['ragso2'];
    } else {
        $desdoc =  'da '.$strScript['admin_docven.php'][0][$row['tipdoc']].' n.'.$row['numfat'].'/'.$row['seziva'].' del '.$row['datfat'].' a '.$row['ragso1'].' '.$row['ragso2'];
    }
    $pdf -> Cell(187,4,$desdoc,1,1);
 }
 $pdf -> Cell(25,4,$row['codart'],1);
 $pdf -> Cell(74,4,$row['descri'],1);
 $pdf -> Cell(5,4,$row['unimis'],1);
Example #4
0
          </tr>\n";
$totimp_body=0.00;
$totivafat=0.00;
$totimpfat=0.00;
$castle=array();
$rit=0;
$carry=0;
foreach ($form['rows'] as $k => $v) {
        //creo il castelletto IVA
        $imprig=0;
        if ($v['tiprig'] <= 1) {
            $imprig = CalcolaImportoRigo($v['quanti'], $v['prelis'], $v['sconto']);
            $v_for_castle = CalcolaImportoRigo($v['quanti'], $v['prelis'], array($v['sconto'],$form['sconto']));
            if ($v['tiprig'] == 1) {//ma se del tipo forfait
                $imprig = CalcolaImportoRigo(1, $v['prelis'], 0);
                $v_for_castle = CalcolaImportoRigo(1, $v['prelis'], $form['sconto']);
            }
            if (!isset($castle[$v['codvat']])) {
                $castle[$v['codvat']]['impcast'] = 0.00;
            }
            $totimp_body += $imprig;
            $castle[$v['codvat']]['impcast'] += $v_for_castle;
            $rit+=round($imprig*$v['ritenuta']/100,2);
        } elseif ($v['tiprig'] == 3) {
            $carry+=$v['prelis'];
        }
        $descrizione=$v['descri'];
        echo "<input type=\"hidden\" value=\"".$v['codart']."\" name=\"rows[$k][codart]\">\n";
        echo "<input type=\"hidden\" value=\"".$v['status']."\" name=\"rows[$k][status]\">\n";
        echo "<input type=\"hidden\" value=\"".$v['tiprig']."\" name=\"rows[$k][tiprig]\">\n";
        echo "<input type=\"hidden\" value=\"".$v['id_doc']."\" name=\"rows[$k][id_doc]\">\n";
Example #5
0
function getAccountedTickets($id_cash)
{
    global $gTables,$admin_aziend;
    $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 = "id_con = 0 AND id_contract = ".intval($id_cash)." AND tipdoc = 'VCO'";
    $orderby = "datemi ASC, numdoc ASC";
    $result = gaz_dbi_dyn_query('tesdoc.*,
                    pay.tippag,pay.numrat,pay.incaut,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['all']=array();
    $tot=0;
    while ($tes = gaz_dbi_fetch_array($result)) {
           $cast_vat=array();
           $cast_acc=array();
           $tot_tes=0;
           //recupero i dati righi per creare i castelletti
           $rs_rig = gaz_dbi_dyn_query("*", $gTables['rigdoc'], "id_tes = ".$tes['id_tes'],"id_rig");
           while ($v = gaz_dbi_fetch_array($rs_rig)) {
                 if ($v['tiprig'] <= 1) {    //ma solo se del tipo normale o forfait
                    if ($v['tiprig'] == 0) { // tipo normale
                       $tot_row = CalcolaImportoRigo($v['quanti'], $v['prelis'],array($v['sconto'],$tes['sconto'],-$v['pervat']));
                    } else {                 // tipo forfait
                       $tot_row = CalcolaImportoRigo(1,$v['prelis'],-$v['pervat']);
                    }
                    if (!isset($cast_vat[$v['codvat']])) {
                       $cast_vat[$v['codvat']]['totale']=0.00;
                       $cast_vat[$v['codvat']]['imponi']=0.00;
                       $cast_vat[$v['codvat']]['impost']=0.00;
                       $cast_vat[$v['codvat']]['periva']=$v['pervat'];
                    }
                    $cast_vat[$v['codvat']]['totale']+=$tot_row;
                    // calcolo il totale del rigo stornato dell'iva
                    $imprig=round($tot_row/(1+($v['pervat']/100)),2);
                    $cast_vat[$v['codvat']]['imponi']+=$imprig;
                    $cast_vat[$v['codvat']]['impost']+=$tot_row-$imprig;
                    $tot+=$tot_row;
                    $tot_tes+=$tot_row;
                    // inizio AVERE
                    if (!isset($cast_acc[$admin_aziend['ivacor']]['A'])) {
                        $cast_acc[$admin_aziend['ivacor']]['A']=0;
                    }
                    $cast_acc[$admin_aziend['ivacor']]['A']+=$tot_row-$imprig;
                    if (!isset($cast_acc[$v['codric']]['A'])) {
                        $cast_acc[$v['codric']]['A']=0;
                    }
                    $cast_acc[$v['codric']]['A']+=$imprig;
                    // inizio DARE
                    if ($tes['clfoco']>100000000) { // c'è un cliente selezionato
                        if (!isset($cast_acc[$tes['clfoco']]['D'])) {
                            $cast_acc[$tes['clfoco']]['D']=0;
                        }
                        $cast_acc[$tes['clfoco']]['D']+=$tot_row;
                      if ($tes['tippag']=='K') { // ha pagato con carta incasso direttamente sul CC/bancario
                           if (!isset($cast_acc[$tes['clfoco']]['A'])) {
                               $cast_acc[$tes['clfoco']]['A']=0;
                           }
                           $cast_acc[$tes['clfoco']]['A']+=$tot_row;
                           if (!isset($cast_acc[$tes['id_bank']]['D'])) {
                               $cast_acc[$tes['id_bank']]['D']=0;
                           }
                           $cast_acc[$tes['id_bank']]['D']+=$tot_row;
                        }else{
                                                                
                        if ($tes['incaut']=='S') { //  ha pagato contanti vado per cassa 
                        if (!isset($cast_acc[$tes['clfoco']]['A'])) {
                               $cast_acc[$tes['clfoco']]['A']=0;
                           }
                           $cast_acc[$tes['clfoco']]['A']+=$tot_row;
                           if (!isset($cast_acc[$admin_aziend['cassa_']]['D'])) {
                               $cast_acc[$admin_aziend['cassa_']]['D']=0;
                           }
                           $cast_acc[$admin_aziend['cassa_']]['D']+=$tot_row;
                        }
                       }
                    } else {  // il cliente è anonimo 
                        if ($tes['tippag']=='K'){ // paga con carta incasso direttamente sul CC/bancario
                        if (!isset($cast_acc[$tes['id_bank']]['D'])) {
                               $cast_acc[$tes['id_bank']]['D']=0;
                           }
                           $cast_acc[$tes['id_bank']]['D']+=$tot_row;
                         } else { //vado per cassa
                        if (!isset($cast_acc[$admin_aziend['cassa_']]['D'])) {
                            $cast_acc[$admin_aziend['cassa_']]['D']=0;
                        }
                        $cast_acc[$admin_aziend['cassa_']]['D']+=$tot_row;
                    }
                 }
              }
           }
           $doc['all'][]= array('tes'=>$tes,
                                    'vat'=>$cast_vat,
                                    'acc'=>$cast_acc,
                                    'tot'=>$tot_tes);
           if ($tes['clfoco']>100000000) {
                 $doc['invoice'][]= array('tes'=>$tes,
                                          'vat'=>$cast_vat,
                                          'acc'=>$cast_acc,
                                          'tot'=>$tot_tes);
           } else {
                 $doc['ticket'][]= array('tes'=>$tes,
                                         'vat'=>$cast_vat,
                                         'acc'=>$cast_acc,
                                         'tot'=>$tot_tes);
           }
    }
    $doc['tot']=$tot;
    return $doc;
}
Example #6
0
function FattureDaDdt($period,$sezione=1,$cliente=0,$excludeDdt=array())
{
    global $gTables;
    $annoemissione = substr($period['fine'],0,4);
    $rs_ultimo_documento = gaz_dbi_dyn_query("*", $gTables['tesdoc'], "YEAR(datemi) = $annoemissione AND tipdoc LIKE 'F%' AND seziva = $sezione","protoc DESC",0,1);
    $ultimo_documento = gaz_dbi_fetch_array($rs_ultimo_documento);
    // ricavo il progressivo annuo, ma se e' il primo documento dell'anno, resetto il contatore
    if ($ultimo_documento) {
        $last_pr = $ultimo_documento['protoc'];
    } else {
        $last_pr = 0;
    }
    $rs_ultima_fa = gaz_dbi_dyn_query("numdoc, numfat*1 AS fattura", $gTables['tesdoc'], "YEAR(datemi) = $annoemissione AND tipdoc LIKE 'FA%' AND seziva = $sezione","fattura DESC",0,1);
    $ultima_fa = gaz_dbi_fetch_array($rs_ultima_fa);
    // ricavo il progressivo annuo delle Fattura, ma se e' la prima Fattura dell'anno, resetto il contatore
    if ($ultima_fa) {
        $last_nu = $ultima_fa['fattura'] ;
    } else {
        $last_nu = 0;
    }
    //preparo la query al database
    $clientesel = '';
    if ($cliente > 0) {
        $clientesel = ' AND clfoco = '.$cliente;
    }
    $orderby = "ragso1 ASC, pagame ASC, numdoc ASC, id_rig ASC";
    $where = "tipdoc = 'DDT' AND datemi BETWEEN '".$period['inizio']."' AND '".$period['fine']."' AND seziva = '$sezione' ".$clientesel;
    //recupero i dati dal DB (testate+cliente+pagamento+righi)
    $field = 'tes.id_tes,tes.clfoco,tes.numdoc,tes.pagame,tes.traspo,tes.speban,tes.banapp,tes.datemi,
              CONCAT(ana.ragso1,\' \',ana.ragso2,\' \',ana.citspe,\' \',ana.prospe) AS ragsoc,
              cli.codice,cli.ragdoc,
              pag.tippag,pag.incaut,pag.numrat,pag.descri AS despag,
              rig.id_tes,rig.id_rig,rig.codart,rig.descri,rig.unimis,rig.quanti,rig.prelis,rig.tiprig,rig.sconto';
    $from = $gTables['tesdoc'].' AS tes '.
            'LEFT JOIN '.$gTables['clfoco'].' AS cli ON tes.clfoco=cli.codice '.
            'LEFT JOIN '.$gTables['anagra'].' AS ana ON cli.id_anagra=ana.id '.
            'LEFT JOIN '.$gTables['pagame'].' AS pag ON pag.codice=tes.pagame '.
            'LEFT JOIN '.$gTables['rigdoc'].' AS rig ON rig.id_tes=tes.id_tes ';
    $result = gaz_dbi_dyn_query($field, $from, $where, $orderby);
    $ctrlnum = gaz_dbi_num_rows($result);
    $fatture = array();
    if ($ctrlnum) {
       //creo l'array associativo testate-righi
       $ctrlc = 0;
       $ctrlp = 0;
       $ctrld = 0;
       $totale_imponibile = 0;
       while ($row = gaz_dbi_fetch_array($result)) {
             if (in_array($row['id_tes'],$excludeDdt) and $ctrld != $row['id_tes']) { // se Š tra gli esclusi vado avanti ma mantengo il riferimento
                $fatture['no'][] = array('id'=>$row['id_tes'],
                                                   'ragionesociale'=>$row['ragsoc'],
                                                   'numero'=>$row['numdoc'],
                                                   'data'=>$row['datemi'],
                                                   'pagamento'=>$row['despag']
                                                   );
                continue;
             }
             if ($row['clfoco'] != $ctrlc or $row['pagame'] != $ctrlp or ($row['id_tes'] != $ctrld and $row['ragdoc'] == 'N')) {  //se Š un'altro cliente o il cliente ha un pagamento diverso dal precedente
                    if ($ctrlc > 0 and $ctrlp > 0)  {  //se non Š la prima fattura pongo il totale della precedente nell'array
                       $fatture['yes'][$last_pr]['totale'] = $totale_imponibile;
                    }
                    $totale_imponibile = 0;
                    $last_pr ++;
                    $last_nu ++;
                    // nuova testata fattura
                    $fatture['yes'][$last_pr] = array('numero'=>$last_nu,'codicecliente'=>$row['clfoco'],'ragionesociale'=>$row['ragsoc']);
                    $fatture['yes'][$last_pr]['speseincasso'] = $row['numrat']*$row['speban'];
                    //$totale_imponibile += $fatture['yes'][$last_pr]['speseincasso'];
             }
             if ($row['id_tes'] != $ctrld) {  //se Š un'altro ddt
                   if ($row['clfoco'] == $ctrlc and $row['pagame'] != $ctrlp){
                        $fatture['yes'][$last_pr]['righi'][] = array('codice'=>'_MSG_',
                                                   'descrizione'=>' Cliente con diversi pagamenti! '
                                                   );
                   }
                   $fatture['yes'][$last_pr]['righi'][] = array('codice'=>'_DES_',
                                                   'numero'=>$row['numdoc'],
                                                   'id'=>$row['id_tes'],
                                                   'data'=>$row['datemi'],
                                                   'codpag'=>$row['pagame'],
                                                   'despag'=>$row['despag']
                                                   );
                   if ($row['incaut'] == 'S') {
                        $fatture['yes'][$last_pr]['righi'][] = array('codice'=>'_MSG_',
                                                   'descrizione'=>' Pagamento che prevede l\'incasso automatico! '
                                                   );
                   }
                   if (($row['tippag'] == 'B' or $row['tippag'] == 'T') and $row['banapp'] == 0) {
                        $fatture['yes'][$last_pr]['righi'][] = array('codice'=>'_MSG_',
                                                   'descrizione'=>' ATTENZIONE! MANCA LA BANCA D\'APPOGGIO ! '
                                                   );
                   }
                   if ($row['traspo'] > 0) {
                      $fatture['yes'][$last_pr]['righi'][] = array('codice'=>'_TRA_',
                                                   'descrizione'=>'TRASPORTO',
                                                   'importo'=>$row['traspo']
                                                   );
                      $totale_imponibile += $row['traspo'];
                   }
             }
             $importo_rigo = CalcolaImportoRigo($row['quanti'], $row['prelis'], $row['sconto']);
             if ($row['tiprig'] == 1) {
                   $importo_rigo = CalcolaImportoRigo(1, $row['prelis'], 0);
             }
             $totale_imponibile += $importo_rigo;
             //aggiungo il rigo
             $fatture['yes'][$last_pr]['righi'][] = array('codice'=>$row['codart'],
                                                   'descrizione'=>$row['descri'],
                                                   'unitamisura'=>$row['unimis'],
                                                   'quantita'=>$row['quanti'],
                                                   'prezzo'=>$row['prelis'],
                                                   'sconto'=>$row['sconto'],
                                                   'importo'=>$importo_rigo);
             $ctrld = $row['id_tes'];
             $ctrlc = $row['clfoco'];
             $ctrlp = $row['pagame'];
       }
       $fatture['yes'][$last_pr]['totale'] = $totale_imponibile;
    }
    return $fatture;
}
Example #7
0
}
echo "</table>\n";
if (isset($_GET['anteprima']) and $msg == "") {
    $result = gaz_dbi_dyn_query($gTables['rigdoc'].".*,".$gTables['tesdoc'].".id_tes,".$gTables['tesdoc'].".tipdoc,".$gTables['tesdoc'].".numdoc,".$gTables['tesdoc'].".datemi,".$gTables['tesdoc'].".datfat,".$gTables['tesdoc'].".imball,".$gTables['tesdoc'].".clfoco,".$gTables['tesdoc'].".caumag,".$gTables['tesdoc'].".sconto as scochi", $gTables['rigdoc']." LEFT JOIN ".$gTables['tesdoc']." ON ".$gTables['rigdoc'].".id_tes = ".$gTables['tesdoc'].".id_tes LEFT JOIN ".$gTables['caumag']." ON ".$gTables['tesdoc'].".caumag = ".$gTables['caumag'].".codice", "tiprig = 0 AND id_mag = 0 AND caumag > 0 AND datemi BETWEEN $datainizio AND $datafine ", " datemi ASC, ".$gTables['tesdoc'].".id_tes ASC, id_rig ASC");
    $numrow = gaz_dbi_num_rows($result);
    echo "<table class=\"Tlarge\">";
    if ($numrow > 0) {
       echo "<tr><td class=\"FacetFieldCaptionTD\" colspan=\"6\" >$numrow ".$script_transl[5]."</td></tr>";
       require("../../modules/vendit/lang.".$admin_aziend['lang'].".php");
       $desdoc = $strScript["admin_docven.php"][0];
       require("../../modules/acquis/lang.".$admin_aziend['lang'].".php");
       $desdoc += $strScript["admin_docacq.php"][0];
       while ($row = gaz_dbi_fetch_array($result)) {
             echo "<tr>\n";
             $valore = CalcolaImportoRigo($row['quanti'], $row['prelis'], $row['sconto']) ;
             $valore = CalcolaImportoRigo(1, $valore, $row['scochi']) ;
             $descri = $desdoc[$row['tipdoc']]." n.".$row['numdoc'];
             echo "<td class=\"FacetDataTD\" align=\"center\">".gaz_format_date($row["datemi"])." &nbsp;</td>\n";
             echo "<td class=\"FacetDataTD\" align=\"center\">".$row["caumag"]." - ".$row["descri"]."</td>\n";
             echo "<td class=\"FacetDataTD\" align=\"center\">$descri</td>\n";
             echo "<td class=\"FacetDataTD\" align=\"center\">".$row["codart"]."</td>\n";
             echo "<td class=\"FacetDataTD\" align=\"center\">".gaz_format_quantity($row["quanti"],1,$admin_aziend['decimal_quantity'])."</td>\n";
             echo "<td class=\"FacetDataTD\" align=\"right\">".gaz_format_number($valore)." </td>";
             echo "</tr>\n";
       }
       echo "<tr><td colspan=\"6\" align=\"center\"><input type=\"submit\" name=\"insert\" value=\"".strtoupper($script_transl[0])." !\"></TD></TR>";
    } else {
       echo "<tr><td class=\"FacetDataTDred\" align=\"center\">".$script_transl[6]."</td></tr>";
    }
}
?>
Example #8
0
        $ctr_mv='';
        echo "<tr>";
        $linkHeaders=new linkHeaders($script_transl['header']);
        $linkHeaders->output();
        echo "</tr>";
        $sum=0.00;
        while (list($key, $mv) = each($m)) {
            $datedoc = substr($mv['datdoc'],8,2).'-'.substr($mv['datdoc'],5,2).'-'.substr($mv['datdoc'],0,4);
            $datereg = substr($mv['datreg'],8,2).'-'.substr($mv['datreg'],5,2).'-'.substr($mv['datreg'],0,4);
            $movQuanti = $mv['quanti']*$mv['operat'];
            $sum += $movQuanti;
            echo "<tr><td class=\"FacetDataTD\">".$datereg." &nbsp;</td>";
            echo "<td  align=\"center\" class=\"FacetDataTD\">".$mv['caumag'].'-'.substr($mv['descri'],0,20)." &nbsp</td>";
            echo "<td class=\"FacetDataTD\">".substr($mv['desdoc'].' del '.$datedoc.' - '.$mv['ragsoc'],0,85)." &nbsp;</td>";
            echo "<td align=\"right\" class=\"FacetDataTD\">".number_format($mv['prezzo'],$admin_aziend['decimal_price'],',','.')." &nbsp;</td>";
            echo "<td align=\"right\" class=\"FacetDataTD\">".gaz_format_number(CalcolaImportoRigo($mv['quanti'],$mv['prezzo'],array($mv['scochi'],$mv['scorig'])))." &nbsp;</td>";
            echo "<td align=\"right\" class=\"FacetDataTD\">".$mv['unimis']." &nbsp;</td>\n";
            echo "<td align=\"right\" class=\"FacetDataTD\">".gaz_format_quantity($movQuanti,1,$admin_aziend['decimal_quantity'])." &nbsp;</td>\n";
            echo "</tr>\n";
            $ctr_mv = $mv['artico'];
         }
         echo "\t<tr class=\"FacetFieldCaptionTD\">\n";
         echo '<td colspan="7" align="right"><input type="submit" name="print" value="';
         echo $script_transl['print'];
         echo '">';
         echo "\t </td>\n";
         echo "\t </tr>\n";
  }
  echo "</table></form>";
}
?>
Example #9
0
function getDocumentsAcconts($type='___',$vat_section=1,$date=false,$protoc=999999999)
{
    global $gTables,$admin_aziend;
    $type = substr($type,0,2);
    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,
                        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
                $carry=0;
                $cast_vat=array();
                $cast_acc=array();
                $totimpdoc=0;
                $totimp_decalc=0.00;
                $n_vat_decalc=0;
                $spese_incasso=0;
                $rit=0;
                if (($tes['tippag'] == 'B' ||
                    $tes['tippag'] == 'T') && $tes['addebitospese'] == 'S' ) {
                        $spese_incasso = $tes['numrat']*$tes['speban'];
                } elseif ($tes['tippag'] == 'R') { // il pagamento prevede una imposta di bollo fissa
                    if (!isset($cast_vat[$admin_aziend['taxstamp_vat']]['imponi'])) {
                        $cast_vat[$admin_aziend['taxstamp_vat']]['periva'] = 0;
                        $cast_vat[$admin_aziend['taxstamp_vat']]['imponi'] = $tes['stamp'];
                    } else {
                        $cast_vat[$admin_aziend['taxstamp_vat']]['imponi'] += $tes['stamp'];
                    }
                    if (!isset($cast_acc[$admin_aziend['boleff']]['import'])) {
                        $cast_acc[$admin_aziend['boleff']]['import'] = $tes['stamp'];
                    } else {
                        $cast_acc[$admin_aziend['boleff']]['import'] += $tes['stamp'];
                    }
                }
           } else {
                $spese_incasso=0;
           }
           if ($tes['traspo']>0) {
                   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) {
                   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) {
                   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
           $rs_rig = gaz_dbi_dyn_query("*", $gTables['rigdoc'], "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']]['imponi'])) {
                    $cast_vat[$r['codvat']]['imponi']=0;
                    $cast_vat[$r['codvat']]['periva']=$r['pervat'];
                 }
                 $cast_vat[$r['codvat']]['imponi']+=$importo;
                 $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;
                 if ($r['pervat']>0) {
                     $totimp_decalc += $importo;
                     $n_vat_decalc++;
                 }
                 $rit+=round($importo*$r['ritenuta']/100,2);
              } elseif($r['tiprig'] == 3) {
                 $carry += $r['prelis'] ;
              }
           }
           // aggiungo i valori della testata al castelletto IVA
           $somma_spese = $tes['traspo'] + $spese_incasso + $tes['spevar'];
           $last=count($cast_vat);
           $acc_val=$somma_spese;
           foreach ($cast_vat as $k=> $v) {
                   $vat = gaz_dbi_get_row($gTables['aliiva'],"codice",$k);
                   if ($v['periva']>0) {
                      $last--;
                      if ($last == 0) {
                         $v['imponi'] += $acc_val;
                         $totimpdoc += $acc_val;
                      } else {
                         $decalc=round($somma_spese*$v['imponi']/$totimp_decalc,2);
                         $v['imponi'] += $decalc;
                         $totimpdoc += $decalc;
                         $acc_val-=$decalc;
                      }
                   }
                   $cast_vat[$k]['imponi'] = $v['imponi']  ;
           }
           // fine aggiunta spese non documentate al castelletto IVA
           $doc[$tes['protoc']]['tes']=$tes;
           $doc[$tes['protoc']]['vat']=$cast_vat;
           $doc[$tes['protoc']]['acc']=$cast_acc;
           $doc[$tes['protoc']]['car']=$carry;
           $doc[$tes['protoc']]['rit']=$rit;
           $ctrlp=$tes['protoc'];
    }
    return $doc;
}
Example #10
0
                             array('lun' => 17,'nam'=>'Prezzo'),
                             array('lun' => 18,'nam'=>'Importo'),
                             array('lun' => 10,'nam'=>'U.M.'),
                             array('lun' => 20,'nam'=>'Mov.Quant.')
                            )
              );

$pdf = new Report_template();
$pdf->setVars($admin_aziend,$title);
$pdf->SetTopMargin(39);
$pdf->SetFooterMargin(20);
$config = new Config;
$pdf->AddPage('L',$config->getValue('page_format'));
$pdf->SetFont('helvetica','',7);
if (sizeof($result) > 0) {
  while (list($key, $row) = each($result)) {
      $datadoc = substr($row['datdoc'],8,2).'-'.substr($row['datdoc'],5,2).'-'.substr($row['datdoc'],0,4);
      $datareg = substr($row['datreg'],8,2).'-'.substr($row['datreg'],5,2).'-'.substr($row['datreg'],0,4);
      $movQuanti = $row['quanti']*$row['operat'];
      $pdf->Cell(20,3,$datareg,1,0,'C');
      $pdf->Cell(40,3,$row['caumag'].'-'.substr($row['descri'],0,22),1);
      $pdf->Cell(70,3,$row['artico'].' - '.$row['desart'],1);
      $pdf->Cell(70,3,$row['desdoc'].' del '.$datadoc,1);
      $pdf->Cell(17,3,number_format($row['prezzo'],$admin_aziend['decimal_price'],',','.'),1,0,'R');
      $pdf->Cell(18,3,gaz_format_number(CalcolaImportoRigo($row['quanti'],$row['prezzo'],array($row['scochi'],$row['scorig']))),1,0,'R');
      $pdf->Cell(10,3,$row['unimis'],1,0,'C');
      $pdf->Cell(20,3,gaz_format_quantity($movQuanti,1,$admin_aziend['decimal_quantity']),1,1,'R');
  }
}
$pdf->Output();
?>
 function getXMLrows()
 {
     $this->tot_trasporto += $this->trasporto;
     if ($this->taxstamp < 0.01 && $this->tesdoc['taxstamp'] >= 0.01) {
         $this->taxstamp = $this->tesdoc['taxstamp'];
     }
     $from = $this->gTables[$this->tableName] . ' AS rows
              LEFT JOIN ' . $this->gTables['aliiva'] . ' AS vat
              ON rows.codvat=vat.codice';
     $rs_rig = gaz_dbi_dyn_query('rows.*,vat.tipiva AS tipiva, vat.fae_natura AS natura', $from, "rows.id_tes = " . $this->testat, "id_tes DESC, id_rig");
     $this->riporto = 0.0;
     $this->ritenuta = 0.0;
     $righiDescrittivi = array();
     $last_normal_row = 0;
     $nr = 1;
     $results = array();
     $dom = new DOMDocument();
     while ($rigo = gaz_dbi_fetch_array($rs_rig)) {
         $rigo['imp_sconto'] = 0.0;
         if ($rigo['tiprig'] <= 1) {
             $last_normal_row = $nr;
             // mi potrebbe servire se alla fine dei righi mi ritrovo con dei descrittivi non ancora indicizzati perché seguono l'ultimo rigo normale
             // se ho avuto dei righi descrittivi che hanno preceduto  questo allora li inputo a questo rigo
             if (isset($righiDescrittivi[0])) {
                 foreach ($righiDescrittivi[0] as $v) {
                     $righiDescrittivi[$nr][] = $v;
                     // faccio il push su un array indicizzato con $nr (numero rigo)
                 }
             }
             unset($righiDescrittivi[0]);
             // svuoto l'array per prepararlo ad eventuali nuovi righi descrittivi
             $rigo['importo'] = CalcolaImportoRigo($rigo['quanti'], $rigo['prelis'], $rigo['sconto']);
             $rigo['imp_sconto'] = number_format(CalcolaImportoRigo($rigo['quanti'], $rigo['prelis'], 0) - $rigo['importo'], 2, '.', '');
             $v_for_castle = CalcolaImportoRigo($rigo['quanti'], $rigo['prelis'], array($rigo['sconto'], $this->tesdoc['sconto']));
             if ($rigo['tiprig'] == 1) {
                 $rigo['importo'] = CalcolaImportoRigo(1, $rigo['prelis'], 0);
                 $v_for_castle = CalcolaImportoRigo(1, $rigo['prelis'], $this->tesdoc['sconto']);
             }
             if (!isset($this->castel[$rigo['codvat']])) {
                 $this->castel[$rigo['codvat']] = 0;
             }
             if (!isset($this->body_castle[$rigo['codvat']])) {
                 $this->body_castle[$rigo['codvat']]['impcast'] = 0;
             }
             $this->body_castle[$rigo['codvat']]['impcast'] += $v_for_castle;
             $this->castel[$rigo['codvat']] += $v_for_castle;
             $this->totimp_body += $rigo['importo'];
             $this->ritenuta += round($rigo['importo'] * $rigo['ritenuta'] / 100, 2);
             $this->totimp_doc += $v_for_castle;
             // aggiungo all'accumulatore l'eventuale iva non esigibile (split payment PA)
             if ($rigo['tipiva'] == 'T') {
                 $this->ivasplitpay += round($v_for_castle * $rigo['pervat'] / 100, 2);
             }
         } elseif ($rigo['tiprig'] == 2) {
             // descrittivo
             // faccio prima il parsing XML e poi il push su un array ancora da indicizzare (0)
             $righiDescrittivi[0][] = htmlspecialchars($rigo['descri'], ENT_XML1);
         } elseif ($rigo['tiprig'] == 6 || $rigo['tiprig'] == 8) {
             $body_text = gaz_dbi_get_row($this->gTables['body_text'], "id_body", $rigo['id_body_text']);
             $dom->loadHTML($body_text['body_text']);
             $rigo['descri'] = strip_tags($dom->saveXML());
             $res = explode("\n", wordwrap($rigo['descri'], 60, "\n"));
             // faccio il push ricorsivo su un array ancora da indicizzare (0)
             foreach ($res as $v) {
                 $ctrl_v = trim($v);
                 if (!empty($ctrl_v)) {
                     $righiDescrittivi[0][] = $v;
                 }
             }
         } elseif ($rigo['tiprig'] == 3) {
             // var.totale fattura
             $this->riporto += $rigo['prelis'];
         }
         $results[$nr] = $rigo;
         $nr++;
         //creo il castelletto IVA ma solo se del tipo normale o forfait
     }
     /* se finiti i righi ho incontrato dei descrittivi che non sono stati
           imputati a dei righi normali perché successivi a questi allora
           li imputo all'ultimo normale incontrato
        */
     if (isset($righiDescrittivi[0])) {
         foreach ($righiDescrittivi[0] as $v) {
             $righiDescrittivi[$last_normal_row][] = $v;
             // faccio il push su un array indicizzato con $nr (numero rigo)
         }
     }
     unset($righiDescrittivi[0]);
     // se ho dei trasporti lo aggiungo ai righi del relativo DdT
     if ($this->trasporto >= 0.1) {
         $rigo_T = array('tiprig' => 'T', 'descri' => 'TRASPORTO', 'importo' => $this->trasporto, 'pervat' => $this->expense_pervat['aliquo'], 'ritenuta' => 0, 'natura' => $this->expense_pervat['fae_natura']);
         $results[$nr] = $rigo_T;
         $nr++;
     }
     foreach ($results as $k => $v) {
         // associo l'array dei righi descrittivi con quello del righo corrispondente
         $r[$k] = $v;
         if (isset($righiDescrittivi[$k])) {
             $r[$k]['descrittivi'] = $righiDescrittivi[$k];
         }
     }
     return $r;
 }
Example #12
0
    function getStockValue($id_mov=false,$item_code=null,$date=null,$stock_eval_method=null,$decimal_price=2)
     /* Questa funzione serve per restituire la valorizzazione dello scarico
        a seconda del metodo (WMA,LIFO,FIFO) scelto per ottenerla.
        Puo' essere sufficiente valorizzare il solo $id_mov, ma questo costringe
        la funzione ad una query per ottenere gli altri valori; oppure il solo
        codice dell'articolo, in questo caso si prende in considerazione l'ultimo
        movimento riferito all'articolo
     */
    {
      global $gTables;
      if (!$id_mov && empty($item_code)){ // non ho nulla!
         return array('q'=>0,'v'=>0,'q_g'=>0,'v_g'=>0);
      } elseif (!$id_mov && !empty($item_code)) {    // ho il codice articolo  senza id
         if ($date){ // ho anche la data
            $rs_last_mov = gaz_dbi_dyn_query("*", $gTables['movmag'], "artico = '".$item_code."' AND datreg <= '$date'","datreg DESC, id_mov DESC",0,1);
         } else {   // non ho la data limite
            $rs_last_mov = gaz_dbi_dyn_query("*", $gTables['movmag'], "artico = '".$item_code."'","datreg DESC, id_mov DESC",0,1);
         }
         $last_mov = gaz_dbi_fetch_array($rs_last_mov);
         if ($last_mov) {
             $id_mov=$last_mov['id_mov'];
             $date=$last_mov['datreg'];
         } else {
             return array('q'=>0,'v'=>0,'q_g'=>0,'v_g'=>0);
         }
      } elseif (!$date || empty($item_code)) {    //ho il solo id_mov
         $mm = gaz_dbi_get_row($gTables['movmag'],"id_mov",$id_mov);
         $date=$mm['datreg'];
         $item_code=$mm['artico'];
      }
      if (!$stock_eval_method) {
        $stock_eval_method = $this->getStockEvalMethod();
      }
      $rs_last_inventory = gaz_dbi_dyn_query("*", $gTables['movmag'], "artico = '$item_code' AND caumag = 99 AND (datreg < '".$date."' OR (datreg = '".$date."' AND id_mov <= $id_mov ))","datreg DESC, id_mov DESC",0,1);
      $last_inventory = gaz_dbi_fetch_array($rs_last_inventory);
      if ($last_inventory) {
        $last_invDate =$last_inventory['datreg'];
        $last_invPrice=$last_inventory['prezzo'];
        $last_invQuanti=$last_inventory['quanti'];
      } else {
        $last_invDate='2000-01-01';
        $last_invPrice=0;
        $last_invQuanti=0;
      }
      $utsdatePrev= mktime(0,0,0,intval(substr($date,5,2)),intval(substr($date,8,2))-1,intval(substr($date,0,4)));
      $datePrev = date("Y-m-d",$utsdatePrev);
      $where="artico = '$item_code' AND (datreg BETWEEN '$last_invDate' AND '$datePrev' OR (datreg = '$date' AND id_mov <= $id_mov))";
      $orderby="datreg ASC, id_mov ASC"; //ordino in base alle date 
      $return_val=array();
      $accumulatore=array();
      switch ($stock_eval_method) { //calcolo il nuovo valore in base al metodo scelto in configurazione azienda
            case "0": //standard
            case "3": // FIFO
                 $rs_movmag = gaz_dbi_dyn_query("*", $gTables['movmag'],"caumag < 98 AND ". $where,$orderby);
                 // Qui metto i valori dell'ultimo inventario
                 $accumulatore[0]=array('q'=>$last_invQuanti,'v'=>$last_invPrice);
                 $giacenza=array('q_g'=>$last_invQuanti,'v_g'=>$last_invPrice*$last_invQuanti);
                 $return_val[0]=array('q'=>$last_invQuanti,'v'=>$last_invPrice,
                                      'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                 // Fine valorizzazione con ultimo inventario
                 while ($r = gaz_dbi_fetch_array($rs_movmag)) {
                    // questo e' il prezzo che usero' solo per gli acquisti
                    $row_val=CalcolaImportoRigo(1,$r['prezzo'],array($r['scorig'],$r['scochi']),$decimal_price);
                    if ($r['operat']==1) { //carico
                          $accumulatore[]=array('q'=>$r['quanti'],'v'=>$row_val);
                          $giacenza['q_g']+=$r['quanti'];
                          $giacenza['v_g']+=$r['quanti']*$row_val;
                          if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                              $return_val[0] = array('q'=>$r['quanti'],'v'=>$row_val,
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                          }
                    } elseif ($r['operat']==-1) { //scarico
                        $return_val=array(); //azzero l'accumulatore per il ritorno
                        foreach ($accumulatore as $k=>$acc_val) {   //attraverso l'accumulatore
                          if ($acc_val['q']>$r['quanti']) { // la quantita' nell'accumulatore e' sufficiente per coprire lo scarico
                            $accumulatore[$k]['q'] -= $r['quanti'];
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=$r['quanti']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                               $return_val[] = array('q'=>$r['quanti'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            $r['quanti']=0;
                            break;
                          } elseif ($acc_val['q']==$r['quanti']) {  // la quantita' da scaricare e' la stessa nell'accumulatore
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=$r['quanti']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                               $return_val[] = array('q'=>$r['quanti'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            unset ($accumulatore[$k]);
                            $r['quanti']=0;
                            break;
                          } else {  // la quantita' da scaricare e' maggiore di quella nell'accumulatore
                            $r['quanti'] -= $acc_val['q'];
                            $giacenza['q_g']-=$acc_val['q'];
                            $giacenza['v_g']-=$acc_val['q']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento che voglio valorizzare: lo accumulo
                               $return_val[] = array('q'=>$acc_val['q'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            unset ($accumulatore[$k]);
                          }
                        }
                        // esco dal loop ma potrebbe accadere che i carichi non erano sufficienti a coprire lo scarico
                        if ($r['quanti']>0) { // e' il movimento che voglio valorizzare: lo accumulo
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=0;
                            if ($r['id_mov']==$id_mov) { // e' il movimento che voglio valorizzare: lo accumulo
                               $return_val[] = array('q'=>-$r['quanti'],'v'=>0,
                                                  'q_g'=>$giacenza['q_g'],'v_g'=>0);
                            }
                        }
                    }
                 }
            break;
            case "1": // WMA
                 $rs_movmag = gaz_dbi_dyn_query("*", $gTables['movmag'], $where." AND caumag < 98",$orderby);
                 $giacenza=array('q_g'=>$last_invQuanti,'v_g'=>$last_invPrice*$last_invQuanti);
                 $return_val[0] = array('q'=>$last_invQuanti,'v'=>$last_invPrice,
                                      'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                 while ($r = gaz_dbi_fetch_array($rs_movmag)) {
                    if ($r['operat']==1) { //carico
                          $row_val=CalcolaImportoRigo(1,$r['prezzo'],array($r['scorig'],$r['scochi']),$decimal_price);
                          $giacenza['q_g']+=$r['quanti'];
                          $giacenza['v_g']+=$r['quanti']*$row_val;
                    } elseif ($r['operat']==-1) { //scarico
                          if ($giacenza['q_g']<=0) {
                             $giacenza['v_g']=0;
                             $row_val=0;
                          } else {
                             $row_val=$giacenza['v_g']/$giacenza['q_g'];
                          }
                          if ($giacenza['q_g']<=$r['quanti']){
                             $row_val=0;
                          }
                          $giacenza['q_g']-=$r['quanti'];
                          $giacenza['v_g']-=$r['quanti']*$row_val;
                    }
                    if ($r['id_mov']==$id_mov) { // e' il movimento che voglio valorizzare
                          $return_val[0] = array('q'=>$r['quanti'],'v'=>$row_val,
                                              'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                    }
                 }
            break;
            case "2": // LIFO
                 $rs_movmag = gaz_dbi_dyn_query("*", $gTables['movmag'], $where." AND caumag < 98",$orderby);
                 // Qui metto i valori dell'ultimo inventario
                 $accumulatore[0]=array('q'=>$last_invQuanti,'v'=>$last_invPrice);
                 $giacenza=array('q_g'=>$last_invQuanti,'v_g'=>$last_invPrice*$last_invQuanti);
                 $return_val[0]=array('q'=>$last_invQuanti,'v'=>$last_invPrice,
                                      'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                 // Fine valorizzazione con ultimo inventario
                 while ($r = gaz_dbi_fetch_array($rs_movmag)) {
                    // questo e' il prezzo che usero' solo per gli acquisti
                    $row_val=CalcolaImportoRigo(1,$r['prezzo'],array($r['scorig'],$r['scochi']));
                    if ($r['operat']==1) { //carico
                          $accumulatore[]=array('q'=>$r['quanti'],'v'=>$row_val);
                          $giacenza['q_g']+=$r['quanti'];
                          $giacenza['v_g']+=$r['quanti']*$row_val;
                          if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                              $return_val[0] = array('q'=>$r['quanti'],'v'=>$row_val,
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                          }
                    } elseif ($r['operat']==-1) { //scarico
                        $return_val=array(); //azzero l'accumulatore per il ritorno
                        $accumulatore=array_reverse($accumulatore);
                        foreach ($accumulatore as $k=>$acc_val) {   //attraverso l'accumulatore
                          if ($acc_val['q']>$r['quanti']) { // la quantita' nell'accumulatore e' sufficiente per coprire lo scarico
                            $accumulatore[$k]['q'] -= $r['quanti'];
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=$r['quanti']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                               $return_val[] = array('q'=>$r['quanti'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            $r['quanti']=0;
                            break;
                          } elseif ($acc_val['q']==$r['quanti']) {  // la quantita' da scaricare e' la stessa nell'accumulatore
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=$r['quanti']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento di riferimento
                               $return_val[] = array('q'=>$r['quanti'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            unset ($accumulatore[$k]);
                            $r['quanti']=0;
                            break;
                          } else {  // la quantita' da scaricare e' maggiore di quella nell'accumulatore
                            $r['quanti'] -= $acc_val['q'];
                            $giacenza['q_g']-=$acc_val['q'];
                            $giacenza['v_g']-=$acc_val['q']*$acc_val['v'];
                            if ($r['id_mov']==$id_mov) { // e' il movimento che voglio valorizzare: lo accumulo
                               $return_val[] = array('q'=>$acc_val['q'],'v'=>$acc_val['v'],
                                                     'q_g'=>$giacenza['q_g'],'v_g'=>$giacenza['v_g']);
                            }
                            unset ($accumulatore[$k]);
                          }
                        }
                        $accumulatore=array_reverse($accumulatore);
                        // esco dal loop ma potrebbe accadere che i carichi non erano sufficienti a coprire lo scarico
                        if ($r['quanti']>0) { // e' il movimento che voglio valorizzare: lo accumulo
                            $giacenza['q_g']-=$r['quanti'];
                            $giacenza['v_g']-=0;
                            if ($r['id_mov']==$id_mov) { // e' il movimento che voglio valorizzare: lo accumulo
                               $return_val[] = array('q'=>-$r['quanti'],'v'=>0,
                                                  'q_g'=>$giacenza['q_g'],'v_g'=>0);
                            }
                        }
                    }
                 }

            break;
            default:
      }
      return $return_val;
    }
Example #13
0
 function getRigo()
 {
     $from = $this->gTables[$this->tableName] . ' AS rows
              LEFT JOIN ' . $this->gTables['aliiva'] . ' AS vat
              ON rows.codvat=vat.codice';
     $rs_rig = gaz_dbi_dyn_query('rows.*,vat.tipiva AS tipiva', $from, "rows.id_tes = " . $this->testat, "id_tes DESC, id_rig");
     $this->tottraspo += $this->trasporto;
     if ($this->taxstamp < 0.01 && $this->tesdoc['taxstamp'] >= 0.01) {
         $this->taxstamp = $this->tesdoc['taxstamp'];
     }
     $this->riporto = 0.0;
     $this->ritenuta = 0.0;
     $results = array();
     while ($rigo = gaz_dbi_fetch_array($rs_rig)) {
         if ($rigo['tiprig'] <= 1) {
             $rigo['importo'] = CalcolaImportoRigo($rigo['quanti'], $rigo['prelis'], $rigo['sconto']);
             $v_for_castle = CalcolaImportoRigo($rigo['quanti'], $rigo['prelis'], array($rigo['sconto'], $this->tesdoc['sconto']));
             if ($rigo['tiprig'] == 1) {
                 $rigo['importo'] = CalcolaImportoRigo(1, $rigo['prelis'], 0);
                 $v_for_castle = CalcolaImportoRigo(1, $rigo['prelis'], $this->tesdoc['sconto']);
             }
             if (!isset($this->castel[$rigo['codvat']])) {
                 $this->castel[$rigo['codvat']] = 0;
             }
             if (!isset($this->body_castle[$rigo['codvat']])) {
                 $this->body_castle[$rigo['codvat']]['impcast'] = 0;
             }
             $this->body_castle[$rigo['codvat']]['impcast'] += $v_for_castle;
             $this->castel[$rigo['codvat']] += $v_for_castle;
             $this->totimp_body += $rigo['importo'];
             $this->ritenuta += round($rigo['importo'] * $rigo['ritenuta'] / 100, 2);
         } elseif ($rigo['tiprig'] > 5 && $rigo['tiprig'] < 9) {
             $body_text = gaz_dbi_get_row($this->gTables['body_text'], "id_body", $rigo['id_body_text']);
             $rigo['descri'] = $body_text['body_text'];
         } elseif ($rigo['tiprig'] == 3) {
             $this->riporto += $rigo['prelis'];
         }
         $results[] = $rigo;
         //creo il castelletto IVA ma solo se del tipo normale o forfait
     }
     return $results;
 }
Example #14
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;
}
Example #15
0
$pdf->Cell(50,4,$script_transl['bank'],'LTB',0);
$pdf->Cell(11,4,':','TB',0,'R');
$pdf->Cell(125,4,$bank['descri'],'RTB',1);
$pdf->Cell(50,4,$script_transl['doc_type'],'LTB',0);
$pdf->Cell(11,4,':','TB',0,'R');
$pdf->Cell(125,4,$script_transl['doc_type_value'][$contract['doc_type']],'RTB',1);
$pdf->Cell(50,4,$script_transl['cod_revenue'],'LTB',0);
$pdf->Cell(11,4,':','TB',0,'R');
$pdf->Cell(125,4,$contract['cod_revenue'].' - '.$revenue['descri'],'RTB',1);
$pdf->Cell(50,4,$script_transl['vat_code'],'LTB',0);
$pdf->Cell(11,4,':','TB',0,'R');
$pdf->Cell(125,4,$contract['vat_code'].' - '.$vat['descri'],'RTB',1);
$pdf->Cell(50,4,$script_transl['initial_fee'],'LTB',0);
$pdf->Cell(11,4,':','TB',0,'R');
$pdf->Cell(125,4,$contract['initial_fee'],'RTB',1);
$pdf->Ln(4);
if (gaz_dbi_num_rows($rs_rows)){
   $pdf->Cell(186,4,$script_transl['rows_title'],0,1,'C');
}
while ($row = gaz_dbi_fetch_array($rs_rows)) {
      $importo = CalcolaImportoRigo($row['quanti'], $row['price'], $row['discount']);
      $pdf->Cell(90,4,$row['descri'],1);
      $pdf->Cell(11,4,$row['unimis'],1,0,'C');
      $pdf->Cell(20,4,gaz_format_quantity($row['quanti'],1,$admin_aziend['decimal_quantity']),1,0,'R');
      $pdf->Cell(25,4,number_format($row['price'],$admin_aziend['decimal_price'],',',''),1,0,'R');
      $pdf->Cell(10,4,gaz_format_quantity($row['discount'],1,9),1,0,'R');
      $pdf->Cell(30,4,number_format($importo,2,',',''),1,1,'R');
}

$pdf->Output();
?>
Example #16
0
 foreach ($form['rows'] as $k=>$v) {
         $descrizione=$v['descri'];
         // addizione ai totali peso,pezzi,volume
         $artico = gaz_dbi_get_row($gTables['artico'],'codice',$v['codart']);
         $form['net_weight'] += $v['quanti']*$artico['peso_specifico'];
         if ($artico['pack_units']>0) {
            $form['units'] += intval(round($v['quanti']/$artico['pack_units']));
         }
         $form['volume'] += $v['quanti']*$artico['volume_specifico'];
         // fine addizione peso,pezzi,volume
         // calcolo importo totale (iva inclusa) del rigo e creazione castelletto IVA
         if ($v['tiprig'] <= 1) {    //ma solo se del tipo normale o forfait
            if ($v['tiprig'] == 0) { // tipo normale
                $tot_row = CalcolaImportoRigo($v['quanti'], $v['prelis'],array($v['sconto'],$form['sconto'],-$v['pervat']));
            } else {                 // tipo forfait
                $tot_row = CalcolaImportoRigo(1,$v['prelis'],-$v['pervat']);
            }
            if (!isset($castel[$v['codvat']])) {
               $castel[$v['codvat']]=0.00;
            }
            $castel[$v['codvat']]+=$tot_row;
            // calcolo il totale del rigo stornato dell'iva
            $imprig=round($tot_row/(1+$v['pervat']/100),2);
            $tot+=$tot_row;
         }
         // fine calcolo importo rigo, totale e castelletto IVA
         $nr=$k+1;
         echo "<input type=\"hidden\" value=\"".$v['status']."\" name=\"rows[$k][status]\">\n";
         echo "<input type=\"hidden\" value=\"".$v['codart']."\" name=\"rows[$k][codart]\">\n";
         echo "<input type=\"hidden\" value=\"".$v['tiprig']."\" name=\"rows[$k][tiprig]\">\n";
         echo "<input type=\"hidden\" value=\"".$v['codvat']."\" name=\"rows[$k][codvat]\">\n";
Example #17
0
 $ctrl_tes = 0;
 $total_order = 0;
 foreach ($form['righi'] as $k => $v) {
      $checkin = ' disabled ';
      $imprig = 0;
      //calcolo importo rigo
      switch($v['tiprig']) {
             case "0":
                  $imprig = CalcolaImportoRigo($form['righi'][$k]['quanti'], $form['righi'][$k]['prelis'], $form['righi'][$k]['sconto']);
                  if ($v['id_doc'] == 0) {
                      $checkin = ' checked';
                      $total_order += $imprig;
                  }
             break;
             case "1":
                  $imprig = CalcolaImportoRigo(1, $form['righi'][$k]['prelis'], 0);
                  if ($v['id_doc'] == 0) {
                      $checkin = ' checked';
                      $total_order += $imprig;
                  }
             break;
             case "2":
                  $checkin = '';
             break;
             case "3":
                  $checkin = '';
             break;
             case "6":
                  $body_text = gaz_dbi_get_row($gTables['body_text'],'id_body',$v['id_body_text']);
                  $v['descri'] = substr($body_text['body_text'],0,80);
                  $checkin = '';
Example #18
0
     $data['codric'] = $item['codcon'];
 } else {
     $data['codric'] = $admin_aziend['impven'];
 }
 $data['status'] = 'INSERT';
 if (strtoupper($item['unimis'])==strtoupper($vr['unimis'])) {
     // unita' di misura coincidenti
     $data['quanti'] = $vr['quanti'];
     $data['unimis'] = $vr['unimis'];
     $data['prelis'] = $vr['prezzoweb'];
     rigbroInsert($data);
 } else {
     require("lang.".$admin_aziend['lang'].".php");
     $script_transl=$strScript['import_gaziecart.php'];
     // nel caso in cui il sito usa una unita' diversa dalla normale
     $r_tot=CalcolaImportoRigo($vr['quanti'], $vr['prezzoweb'], 0);
     $data['unimis'] = $item['unimis'];
     if($item['web_multiplier']<>0) {
        $q=round($item['web_multiplier']*$vr['quanti'],intval($admin_aziend['decimal_quantity']));
     } else {
        $q=$vr['quanti'];
     }
     $price=floatval($r_tot/$q);
     $data['quanti'] = $q;
     $data['prelis'] = $price;
     rigbroInsert($data);
     $dr['tiprig'] = 2;
     $dr['id_tes'] =$ultimo_id;
     $dr['descri'] = '\'--> '.$script_transl['des1'].$vr['quanti'].' '.$vr['unimis'].' x '.$vr['prezzoweb'].' '.$admin_aziend['curr_name'];
     $dr['status'] = 'INSERT';
     rigbroInsert($dr);
Example #19
0
  while ($row = gaz_dbi_fetch_array($result)) {
    $selected="";
    if($form["caumag"] == $row['codice']) {
       $selected = " selected ";
    }
    echo "<option value=\"".$row['codice']."\"".$selected.">".$row['codice']."-".substr($row['descri'],0,20)."</option>\n";
  }
  echo "</select></tr>\n";
}
//fine piede
echo "<tr><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[32]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[33]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[34]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">%$script_transl[24]<input type=\"text\" name=\"sconto\" value=\"".$form["sconto"]."\" maxlength=\"6\" size=\"1\" onchange=\"this.form.submit()\"></td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[32]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[19]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[35]</td><td class=\"FacetFieldCaptionTD\" align=\"right\">$script_transl[36] ".$admin_aziend['symbol']."</td>\n";
$chk_add_iva_tes = 0;
$i=count($form['rows']);
foreach ($castel as $key => $value) {
      $result = gaz_dbi_get_row($gTables['aliiva'],"codice",$key);
      $impcast = CalcolaImportoRigo(1, $value, $form['sconto']);
      if ($key == $form['ivaspe']){
          $impcast += $form['traspo'] + $form['speban']*$form['numrat'] + $form['spevar'];
          $chk_add_iva_tes = 1;
      }
      $ivacast =  round($impcast * $result['aliquo'])/ 100;
      $totimpmer += $value;
      $totimpfat += $impcast;
      $totivafat += $ivacast;
      if ($i > 0) {
        echo "<tr><td align=\"right\">".number_format ($impcast,2, '.', '')."</td><td align=\"right\">".$result['descri']." ".number_format ($ivacast,2, '.', '')."</td>\n";
      }
}

if ($chk_add_iva_tes == 0){// se le spese della testata non sono state aggiunte perchè non si è incontrato uno stesso codice IVA
   $result = gaz_dbi_get_row($gTables['aliiva'],"codice",$form['ivaspe']);
Example #20
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;
}
Example #21
0
}

require("../../library/include/header.php");
$script_transl=HeadMain(0,0,'admin_movmag');
print "<form method=\"POST\">\n";
echo "<input type=\"hidden\" value=\"".$form['id_mov']."\" name=\"id_mov\">\n";
print "<div align=\"center\" class=\"FacetFormHeaderFont\">".$script_transl['del_this']."</div>\n";
print "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" class=\"FacetFormTABLE\" align=\"center\">\n";
$anagrafica = new Anagrafica();
$a_part = $anagrafica->getPartner($form['clfoco']);
$partner =  $a_part['ragso1']." ".$a_part['ragso2'];
print "<tr><td class=\"FacetFieldCaptionTD\">n. ID </td><td class=\"FacetDataTD\">".$form["id_mov"]."</td></tr>";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[1]."</td><td class=\"FacetDataTD\">".$form["datreg"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[2]."</td><td class=\"FacetDataTD\">".$causal["descri"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl["operat"]."</td><td class=\"FacetDataTD\">".$script_transl["operat_value"][$form["operat"]]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl["partner"]."</td><td class=\"FacetDataTD\">".$partner."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[8]."</td><td class=\"FacetDataTD\">".$form["datdoc"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[7]."</td><td class=\"FacetDataTD\">".$form["artico"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[12]."</td><td class=\"FacetDataTD\">".$form["quanti"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[13]."</td><td class=\"FacetDataTD\">".$form["prezzo"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[14]."</td><td class=\"FacetDataTD\">".$form["scorig"]."</td></tr>\n";
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl[10]."</td><td class=\"FacetDataTD\">".$form["scochi"]."</td></tr>\n";
$valore = CalcolaImportoRigo($form['quanti'], $form['prezzo'], $form['scorig']) ;
$valore = CalcolaImportoRigo(1, $valore, $form['scochi']) ;
print "<tr><td class=\"FacetFieldCaptionTD\">".$script_transl["amount"]."</td><td class=\"FacetDataTD\">".gaz_format_number($valore)."</td></tr>\n";
print "<td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"Return\" value=\"".$script_transl['return']."\"><input type=\"submit\" name=\"Delete\" value=\"".strtoupper($script_transl['delete'])."!\"></td></tr>";
?>
</table>
</form>
</body>
</html>
Example #22
0
$totali['max_valcode'] = "";
$totali['max_quacode'] = "";
$castelletto_articoli = array();
while ($rigo_documenti = gaz_dbi_fetch_array($rs_documenti)) {
      if ($rigo_documenti['scotes'] > 0){
         if ($rigo_documenti['tiprig'] == 0){
             $valore = CalcolaImportoRigo(1, CalcolaImportoRigo($rigo_documenti['quanti'], $rigo_documenti['prelis'], $rigo_documenti['scorig']), $rigo_documenti['scotes']);
         } else {
             $valore = CalcolaImportoRigo(1, CalcolaImportoRigo(1, $rigo_documenti['prelis'], $rigo_documenti['scorig']), $rigo_documenti['scotes']);
         }

      } else {
         if ($rigo_documenti['tiprig'] == 0){
            $valore = CalcolaImportoRigo($rigo_documenti['quanti'], $rigo_documenti['prelis'], $rigo_documenti['scorig']);
         } else {
            $valore = CalcolaImportoRigo(1, $rigo_documenti['prelis'], $rigo_documenti['scorig']);
         }
      }
      $totali['valore'] += $valore;
      $totali['quanti'] += $rigo_documenti['quanti'];
      if (!isset($castelletto_articoli[$rigo_documenti['codart']])) {
          $castelletto_articoli[$rigo_documenti['codart']] = array('catmer'=>$rigo_documenti['catmer'],
                                                                      'descri'=>$rigo_documenti['descri'],
                                                                      'unimis'=>$rigo_documenti['unimis'],
                                                                      'quanti'=>$rigo_documenti['quanti'],
                                                                      'valore'=>$valore,
                                                                      'numven'=>1,
                                                                      'id_tes'=>$rigo_documenti['id_tes'],
                                                                      'ragso1'=>$rigo_documenti['ragso1']." ".$rigo_documenti['ragso2'],
                                                                      'ultven'=>substr($rigo_documenti['datemi'],8,2).
                                                                            ".".substr($rigo_documenti['datemi'],5,2).