fetchArray( $q );
$tot = sizeof($rs);
$imponibile = 0.0;
$iva = 0.0;
$query = "SELECT * FROM co_tipidocumento LEFT JOIN co_documenti ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE co_documenti.id='".$id_record."'";
$rs_parametri = $dbo->fetchArray($query);
$matricola_obb = $rs_parametri[0]['matricola_obb'];
$mod_scorte = $rs_parametri[0]['mod_scorte'];
$vedi_transazione = $rs_parametri[0]['vedi_transazione'];
$mod_transazione = $rs_parametri[0]['mod_transazione'];
$abilita_transazioni = $rs_parametri[0]['mod_transazioni'];
$stato_chiusura = $rs_parametri[0]['sta_concluso'];
$stato_documento = $rs_parametri[0]['idstatodocumento'];
$mod_ord_for = $rs_parametri[0]['mod_ord_for'];
$sta_conto = $rs_parametri[0]['sta_conto'];
$ordine_servizio = $rs_parametri[0]['mod_ordineservizio'];
$id_magazzino_e = $rs_parametri[0]['id_magazzino_e'];
$mod_mag = $rs_parametri[0]['mod_mag'];
if( $tot>0 ){
for( $i=0; $i<$tot; $i++ ){
if( $rs[$i]['idarticolo'] != 0 ){
// $mod_ord_for=get_var_tipodoc2($id_record,'mod_ord_for');
$mancanti = 0;
$serials="";
echo "
\n";
echo $rs[$i]['ordine']."\n";
echo " | \n";
echo "\n";
echo "".nl2br( $rs[$i]['codice_articolo']." - ".$rs[$i]['descrizione'] )."\n";
$a_capo_conto="";
// se il tipo documento prevede un piano dei conti mostro il conto assegnato all'articolo
if ( $sta_conto != '0' ) {
$descrizione_conto=query_secca("","descrizione","co_pianodeiconti3","where id ='".$rs[$i]['idconto']."'");
echo " ".$descrizione_conto."\n";
$a_capo_conto=" ";
}
// ricerca seriali
if( $rs[$i]['serial']!='' ){ echo " SN: ".$rs[$i]['serial']; }
// se il documento prevede gestione seriali
$rs_art = $dbo->fetchArray("select abilita_serial , servizio , qta from mg_articoli where id='".$rs[$i]['idarticolo']."'");
$abilita_pianificazione= $rs_art[0]['servizio'];
if ($matricola_obb == '1' ) {
// $rs_art = $dbo->fetchArray("select abilita_serial , servizio from mg_articoli where id='".$rs[$i]['idarticolo']."'");
$abilita_seriale= $rs_art[0]['abilita_serial'];
// Individuazione dei seriali
if ($abilita_seriale == '1' ) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.($rs[$i]['id'] )), 'serial');
$mancanti = $rs[$i]['qta'] - count($serials);
if ($mancanti > 0) {
$extra = 'class="warning"';
} else {
$mancanti = 0;
}
}
if (!empty($mancanti)) {
echo " Mancano ".$mancanti." numeri seriali \n";
}
if (!empty($serials)) {
echo " SN: ".implode(', ', $serials)."\n";
}
}
$a_capo=" ";
// cerco situazione articolo
$esegue_giacenza_articolo = query_secca("","ges_magazzino","mg_articoli","where id ='".$rs[$i]['idarticolo']."'");
if( ( $mod_scorte != 0 ) && ( $esegue_giacenza_articolo == 1 ) ){
if ( $rs[$i]['id_magazzino_e'] == 0 ) {
$giac_test=$rs_art[0]['qta'];
$giac=number_format( $rs_art[0]['qta'], get_var("Cifre decimali"), ",", "." );
}
else{
$giac=query_secca("","qta","mg_articoli_magazzini","where idmagazzino='".$rs[$i]['id_magazzino_e']."' and idarticolo='".$rs[$i]['idarticolo']."'" );
$giac_test=$giac;
$giac=number_format( $giac, get_var("Cifre decimali"), ",", "." );
}
if ( $giac_test > $rs[$i]['qta'] ) echo $a_capo_conto."Disponibilità: (".$giac.")\n";
if ( $giac_test <= $rs[$i]['qta'] ) echo $a_capo_conto."Disponibilità: (".$giac.")\n";
$a_capo="";
}
// cerco eventuale riferimento a ordine a fornitore generato
if( $rs[$i]['idordine'] != 0 ){
// $mod_ord_for="0";
$qr_ordine = "SELECT numero_esterno,data , or_statiordine.descrizione as stato_ord from or_ordini
left join or_statiordine on or_statiordine.id = or_ordini.idstatoordine
WHERE or_ordini.id='".$rs[$i]['idordine']."'";
$rs_ordine = $dbo->fetchArray( $qr_ordine );
$testo_ordine=$rs_ordine[0]['numero_esterno']." del ".date("d/m/Y", strtotime($rs_ordine[0]['data']))." ".$rs_ordine[0]['stato_ord'];
echo " Ord.Fornitore: ".$testo_ordine."\n";
}
// cerco eventuale riferimento ad un impianto
if( $rs[$i]['id_impianto'] != 0 ){
$testo_ordine=$rs[$i]['matricola_impianto'];
echo " Matricola Impianto: ".$testo_ordine."\n";
}
// se articolo e' di tipo servizio disabilito pulsante aggiunge carrello
if( $rs[$i]['servizio'] != 0 ){
$mod_ord_for="0";
}
// cerco riferimento transazione
$da_transazione="0";
if( $vedi_transazione != 0 ){
$query="SELECT iddocumento , numero_documento , data FROM `co_righe_documenti` left join co_documenti on co_documenti.id = co_righe_documenti.iddocumento
WHERE co_righe_documenti.id='".$rs[$i]['id_riferimento']."'";
$rs_rif = $dbo->fetchArray( $query );
if ( sizeof($rs_rif) > 0 ) {
$da_transazione="1";
$descrizione_documento = get_var_tipodoc2($rs_rif[0]['iddocumento'],'descrizione');
echo $a_capo."Rif. ".$descrizione_documento." Numero: ".$rs_rif[0]['numero_documento']." del ".date("d/m/Y", strtotime($rs_rif[0]['data']) )."\n";
}
}
// verifico se riga di canone
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
if( $rs[$i]['riga_canone'] == "1" ){
$des_tmp="Qta Scalare";
echo " | \n";
echo $des_tmp."\n";
echo " | \n";
//Possibilità modificare impostazione posizione a contratto
echo "\n";
echo " | \n";
}
else{
if( $rs[$i]['riga_canone'] == "2" ){
$des_tmp="Costo Imposto";
echo "\n";
echo $des_tmp."\n";
echo " | \n";
//Possibilità modificare impostazione posizione a contratto
echo "\n";
echo " | \n";
}
else{
$des_tmp="";
echo "\n";
echo $des_tmp."\n";
echo " | \n";
echo "\n";
echo $des_tmp."\n";
echo " | \n";
}
}
}
//Magazzino
if( $rs[$i]['id_magazzino_e'] != "0" ){
$nome_magazzino=query_secca("","nome","mg_magazzini","where id ='".$rs[$i]['id_magazzino_e']."'");
}
else{
$nome_magazzino="Principale";
}
if ($mod_mag == '0' ) $nome_magazzino="Non gestito";
echo "\n";
echo $nome_magazzino."\n";
echo " | \n";
echo "\n";
echo "\n";
echo " ".number_format($rs[$i]['qta'], get_var("Cifre decimali"), ",", ".")."\n";
//Funzione pulsanti veloci aggiunta
if( $ordine_servizio == "0" ){
echo " | \n";
// pulsante aggiungi uno
echo " \n";
echo " | \n";
echo " \n";
// pulsante rimuovi uno
echo " \n";
echo " | \n";
}
//FINE Funzione pulsanti veloci
//Um
echo "\n";
echo $rs[$i]['um']."\n";
echo " | \n";
//Costo unitario
echo "\n";
echo number_format( $rs[$i]['subtotale']/$rs[$i]['qta'], get_var("Cifre decimali"), ",", "." )." €\n";
if( $rs[$i]['riga_canone'] == "2" ) echo " Imposto da Canone\n";
echo " | \n";
//Iva
echo "\n";
echo number_format( $rs[$i]['iva'], get_var("Cifre decimali"), ",", "." )." €\n";
echo " ".$rs[$i]['desc_iva']."\n";
echo " | \n";
//Imponibile
echo "\n";
echo number_format( $rs[$i]['subtotale'], get_var("Cifre decimali"), ",", "." )." €\n";
if( $rs[$i]['sconto'] > 0 ){
if( $rs[$i]['tipo_sconto']=='2' ){
$testo=number_format( $rs[$i]['sconto_primo'], get_var("Cifre decimali"), ",", "" );
if( $rs[$i]['sconto_extra'] > 0 ) $testo=$testo."+".number_format( $rs[$i]['sconto_extra'], get_var("Cifre decimali"), ",", "." );
if( $rs[$i]['sconto_extra1'] > 0 ) $testo=$testo."+".number_format( $rs[$i]['sconto_extra1'], get_var("Cifre decimali"), ",", "." );
$testo=$testo."%";
$testo=$testo."(".number_format( $rs[$i]['sconto'], get_var("Cifre decimali"), ",", "" ).")";
echo " sconto ".$testo."\n";
}
else{
echo " sconto ".number_format( $rs[$i]['sconto'], get_var("Cifre decimali"), ",", "" )."€\n";
}
}
echo " | \n";
//Possibilità di rimuovere una riga solo se il codumento non e' in stato concluso come da impostazion
echo "\n";
if( $stato_chiusura <> $stato_documento ){
echo " \n";
}
//Frecce per orinare righe del documento
echo "\n";
echo "";
echo "\n";
echo "\n";
echo "";
echo "\n";
if( $abilita_transazioni != 0 ){
echo " | \n";
echo " ".number_format($rs[$i]['qta_evasa'], get_var("Cifre decimali"), ",", ".")."\n";
echo " | \n";
}
// se ordine di servizio mostro id riga
if ( $ordine_servizio == "1" ) {
echo "\n";
echo $rs[$i]['id']."\n";
echo " | \n";
}
echo "\n";
echo "
\n";
$imponibile_art += $rs[$i]['subtotale'];
$iva_art += $rs[$i]['iva'];
$sconto += $rs[$i]['sconto'];
}
//Righe generiche
else{
echo "\n";
echo $rs[$i]['ordine']."\n";
echo " | \n";
echo "\n";
$desc=$rs[$i]['descrizione'];
if ($rs[$i]['grassetto'] == '1'){
$Descrizionetesto = wordwrap ($desc, 200 , " " ,1);
echo "".$Descrizionetesto."\n";
}
else{
echo nl2br( $rs[$i]['descrizione'] );
}
$descrizione_conto=query_secca("","descrizione","co_pianodeiconti3","where id ='".$rs[$i]['idconto']."'");
echo " ".$descrizione_conto."\n";
// cerco riferimento transazione
$da_transazione="0";
if( $vedi_transazione != 0 ){
$query="SELECT iddocumento , numero_documento , data FROM `co_righe_documenti` left join co_documenti on co_documenti.id = co_righe_documenti.iddocumento
WHERE co_righe_documenti.id='".$rs[$i]['id_riferimento']."'";
$rs_rif = $dbo->fetchArray( $query );
if ( sizeof($rs_rif) > 0 ) {
$da_transazione="1";
$descrizione_documento = get_var_tipodoc2($rs_rif[0]['iddocumento'],'descrizione');
echo " Rif. ".$descrizione_documento." Numero: ".$rs_rif[0]['numero_documento']." del ".date("d/m/Y", strtotime($rs_rif[0]['data']) )."\n";
}
}
// cerco eventuale riferimento a ordine a fornitore generato
if( $rs[$i]['idordine'] != 0 ){
$mod_ord_for="0";
$qr_ordine = "SELECT numero_esterno,data , or_statiordine.descrizione as stato_ord from or_ordini
left join or_statiordine on or_statiordine.id = or_ordini.idstatoordine
WHERE or_ordini.id='".$rs[$i]['idordine']."'";
$rs_ordine = $dbo->fetchArray( $qr_ordine );
$testo_ordine=$rs_ordine[0]['numero_esterno']." del ".date("d/m/Y", strtotime($rs_ordine[0]['data']))." ".$rs_ordine[0]['stato_ord'];
echo " Ord.Fornitore: ".$testo_ordine."\n";
}
// cerco eventuale riferimento ad un impianto
if( $rs[$i]['id_impianto'] != 0 ){
$testo_ordine=$rs[$i]['matricola_impianto'];
echo " Matricola Impianto: ".$testo_ordine."\n";
}
echo " | \n";
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
$des_tmp="";
echo "\n";
echo $des_tmp."\n";
echo " | \n";
echo "\n";
echo $des_tmp."\n";
echo " | \n";
}
$nome_magazzino="";
echo "\n";
echo $nome_magazzino."\n";
echo " | \n";
echo "\n";
echo " ".number_format($rs[$i]['qta'], get_var("Cifre decimali"), ",", ".")."\n";
echo " | \n";
//Funzione pulsanti veloci aggiunta
if( $rs[$i]['riga_varia'] == "0" ){
if( $ordine_servizio == "0" ){
echo " \n";
// pulsante aggiungi uno
echo " \n";
echo " | \n";
echo " \n";
// pulsante rimuovi uno
echo " \n";
echo " | \n";
}
//FINE Funzione pulsanti veloci
}
else{
if( $ordine_servizio == "0" ){
echo "\n";
echo "\n";
echo " | \n";
echo "\n";
echo "\n";
echo " | \n";
}
}
//FINE Funzione pulsanti veloci
//Um
echo "\n";
echo $rs[$i]['um']."\n";
echo " | \n";
//Costo unitario
echo "\n";
echo number_format( $rs[$i]['subtotale']/$rs[$i]['qta'], get_var("Cifre decimali"), ",", "" )." €\n";
echo " | \n";
//Iva
echo "\n";
echo number_format( $rs[$i]['iva'], get_var("Cifre decimali"), ",", "." )." €\n";
echo " ".$rs[$i]['desc_iva']."\n";
echo " | \n";
//Imponibile
echo "\n";
echo number_format( $rs[$i]['subtotale'], get_var("Cifre decimali"), ",", "." )." €\n";
if( $rs[$i]['sconto'] > 0 ){
if( $rs[$i]['tipo_sconto']=='2' ){
$testo=number_format( $rs[$i]['sconto_primo'], get_var("Cifre decimali"), ",", "" );
if( $rs[$i]['sconto_extra'] > 0 ) $testo=$testo."+".number_format( $rs[$i]['sconto_extra'], get_var("Cifre decimali"), ",", "." );
if( $rs[$i]['sconto_extra1'] > 0 ) $testo=$testo."+".number_format( $rs[$i]['sconto_extra1'], get_var("Cifre decimali"), ",", "." );
$testo=$testo."%";
$testo=$testo."(".number_format( $rs[$i]['sconto'], get_var("Cifre decimali"), ",", "" ).")";
echo " sconto ".$testo."\n";
}
else{
echo " sconto ".number_format( $rs[$i]['sconto'], get_var("Cifre decimali"), ",", "" )."€\n";
}
}
echo " | \n";
//Possibilità di rimuovere una riga solo se il dcoumento non e' in stato concluso
echo "\n";
if( $stato_chiusura <> $stato_documento ){
echo " \n";
}
//Frecce per orinare righe della fattura
echo "\n";
echo "";
echo "\n";
echo "\n";
echo "";
if( $abilita_transazioni != 0 ){
echo " | \n";
echo " ".number_format($rs[$i]['qta_evasa'], get_var("Cifre decimali"), ",", ".")."\n";
echo " | \n";
}
echo "\n";
echo "
\n";
$imponibile_gen += $rs[$i]['subtotale'];
$iva_gen += $rs[$i]['iva'];
$sconto += $rs[$i]['sconto'];
}
}
$imponibile += $imponibile_int;
$totale_iva += $iva_int;
$totale += $imponibile_int;
$imponibile += $imponibile_pre;
$totale_iva += $iva_pre;
$totale += $imponibile_pre;
$imponibile += $imponibile_con;
$totale_iva += $iva_con;
$totale += $imponibile_con;
$imponibile += $imponibile_art;
$totale_iva += $iva_art;
$totale += $imponibile_art;
$imponibile += $imponibile_gen;
$totale_iva += $iva_gen;
$totale += $imponibile_gen;
}
// $col_span='8';
if( $ordine_servizio == "1" ) $col_span='7';
if( $ordine_servizio == "0" ) $col_span='9';
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
$col_span='9';
}
//IMPONIBILE
echo "\n";
echo " IMPONIBILE:\n";
echo " | \n";
echo "\n";
echo " ".number_format( $imponibile, get_var("Cifre decimali"), ",", "." )." €\n";
echo " | |
\n";
//SCONTO
if( abs($sconto) > 0 ){
echo "\n";
echo " SCONTO:\n";
echo " | \n";
echo "\n";
echo " ".number_format( $sconto, get_var("Cifre decimali"), ",", "." )." €\n";
echo " | |
\n";
//IMPONIBILE SCONTATO
echo "\n";
echo " IMPONIBILE SCONTATO:\n";
echo " | \n";
echo "\n";
echo " ".number_format( $imponibile - $sconto, get_var("Cifre decimali"), ",", "." )." €\n";
echo " | |
\n";
$totale -= $sconto;
}
//RIVALSA INPS
if( abs($records[0]['rivalsainps'])>0 ){
echo "\n";
echo " RIVALSA INPS:";
echo " | \n";
//Rivalsa INPS
echo "\n";
echo number_format( $records[0]['rivalsainps'], get_var("Cifre decimali"), ",", "." )." €";
echo " | |
\n";
$totale += $records[0]['rivalsainps'];
}
$testo_iva="IVA";
if ( $split_p == '1' ) $testo_iva="IVA A CARICO DEL DESTINATARIO:";
//IVA
$totale_iva += $records[0]['iva_rivalsainps'];
if( abs($totale_iva)>0 ){
echo "\n";
echo " ".$testo_iva."";
echo " | \n";
echo "\n";
echo number_format( $totale_iva, get_var("Cifre decimali"), ",", "." )." €";
echo " | |
\n";
$totale += $totale_iva;
}
//TOTALE
echo "\n";
echo " TOTALE:";
echo " | \n";
echo "\n";
echo " ".number_format( $totale, get_var("Cifre decimali"), ",", "." )." €\n";
echo " | |
\n";
$netto_a_pagare = $totale;
if ( $split_p == '1' ) $netto_a_pagare -= $totale_iva;
//Mostra marca da bollo se c'è
if( abs($records[0]['bollo'])>0 ){
echo "\n";
echo " MARCA DA BOLLO:";
echo " | \n";
//Marca da bollo
$marca_da_bollo = str_replace( ",", ".", $records[0]['bollo'] );
echo "\n";
echo number_format( $marca_da_bollo, get_var("Cifre decimali"), ",", "." )." €";
echo " | |
\n";
$netto_a_pagare += $marca_da_bollo;
}
//RITENUTA D'ACCONTO
if( abs($records[0]['ritenutaacconto'])>0 ){
echo "\n";
echo " RITENUTA D'ACCONTO:";
echo " | \n";
//Ritenuta d'acconto
echo "\n";
echo number_format( $records[0]['ritenutaacconto'], get_var("Cifre decimali"), ",", "." )." €";
echo " | |
\n";
$netto_a_pagare -= $records[0]['ritenutaacconto'];
}
//NETTO A PAGARE
if( $totale != $netto_a_pagare ){
echo "\n";
echo " NETTO A PAGARE:";
echo " | \n";
echo "\n";
echo " ".number_format( $netto_a_pagare, get_var("Cifre decimali"), ",", "." )." €\n";
echo " | |
\n";
}
?>