gest366/modules/documenti/actions.php

2528 lines
110 KiB
PHP
Raw Permalink Normal View History

2021-02-24 20:40:04 +00:00
<?php
// release 2.0.8
include_once(__DIR__."/../../core.php");
include_once($docroot."/modules/articoli/modutil.php");
include_once($docroot."/lib/function_fatpa.php");
include_once($docroot."/lib/function_fatpa_import.php");
$iddocumento = $id_record;
switch( $html->form('op', 'post') ){
case "add":
$idanagrafica = save( $_POST['idanagrafica'] );
// testo se nuova anagrafica
$new_anagrafica = save( $_POST['new_anagrafica'] );
if( $new_anagrafica != '' ){
$new_localita = save( $_POST['new_localita'] );
$idtipoanagrafica = $html->form( 'idtipoanagrafica', 'post', false );
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
$tipoanagrafica_desc = $rs[0]['descrizione'];
//Leggo l'ultimo codice anagrafica per calcolare il successivo
$rs = $dbo->fetchArray("SELECT codice FROM an_anagrafiche ORDER BY CAST(codice AS SIGNED) DESC LIMIT 0,1");
$codice = get_next_code( $rs[0]['codice'], 1, get_var("Formato codice anagrafica") );
//Se ad aggiungere un cliente è un agente, lo imposto come agente di quel cliente
//Lettura tipologia della nuova anagrafica
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
$tipoanagrafica_dst = $rs[0]['descrizione'];
//Lettura tipologia dell'utente loggato
$agente_is_logged = false;
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='".$user_idanagrafica."'");
for( $i=0; $i<sizeof($rs); $i++ ){
if( $rs[$i]['descrizione']=='Agente' ){
$agente_is_logged = true;
$i = sizeof($rs);
}
}
( $agente_is_logged ) ? $idagente=$user_idanagrafica : $idagente=0;
//Inserisco l'anagrafica
$query = "INSERT INTO an_anagrafiche( ragione_sociale, codice, idagente,citta ) VALUES ( \"".$new_anagrafica."\", \"".$codice."\", \"".$idagente."\", \"".$new_localita."\" )";
$dbo->query($query);
$idanagrafica = $dbo->last_inserted_id();
//Inserisco il rapporto dell'anagrafica (cliente, tecnico, ecc)
for( $t=0; $t<sizeof($idtipoanagrafica); $t++ ){
$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$idanagrafica."\", \"".$idtipoanagrafica[$t]."\")";
$dbo->query($query);
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica[$t]."'");
$tipoanagrafica_dst = $rs[0]['descrizione'];
if ($tipoanagrafica_dst=='Azienda')
array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
}
if ( sizeof($idtipoanagrafica) == '0' ){
$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$idanagrafica."\", '1')";
$dbo->query($query);
$tipoanagrafica_dst = 'Cliente' ;
$tipoanagrafica_desc = 'Cliente' ;
}
if ( $idagente != 0 ){
$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
}
//Creo il relativo conto nel partitario
if( $tipoanagrafica_dst == 'Cliente' ){
//Calcolo prossimo numero cliente
$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Crediti clienti e crediti diversi'");
$new_numero = $rs[0]['max_numero'] + 1;
$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
//Creazione conto
$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$new_anagrafica."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Crediti clienti e crediti diversi'), 1, 1 )");
$idconto = $dbo->last_inserted_id();
//Collegamento conto
$dbo->query("UPDATE an_anagrafiche SET idconto_cliente=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
}
else if( $tipoanagrafica_dst == 'Fornitore' ){
//Calcolo prossimo numero cliente
$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Debiti fornitori e debiti diversi'");
$new_numero = $rs[0]['max_numero'] + 1;
$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
//Creazione conto
$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$new_anagrafica."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Debiti fornitori e debiti diversi'), 1, 1 )");
$idconto = $dbo->last_inserted_id();
//Collegamento conto
$dbo->query("UPDATE an_anagrafiche SET idconto_fornitore=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
}
array_push( $_SESSION['infos'], "Aggiunta nuova anagrafica di tipo ''".$tipoanagrafica_dst."''" );
}
$data = saveDate( $_POST['data'] );
$dir = $_POST['dir'];
$idtipodocumento = save( $_POST['idtipodocumento'] );
// cerco impostazioni tipo documento
$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
$dir=get_var_tipodoc($idtipodocumento,'dir');
$idconto=get_var_tipodoc($idtipodocumento,'idconto');
$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
// $idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');
$idstato = get_var_tipodoc($idtipodocumento,'sta_apertura');
$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');
$nuovo_id_protocollo=0;
$query = "SELECT esigibilita_iva , idagente , idbanca_vendite , default_ritenuta_acconto , default_rivalsa_inps FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."'";
$rs = $dbo->fetchArray($query);
$idagente = $rs[0]['idagente'];
$idbanca_vendite = $rs[0]['idbanca_vendite'];
$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
$split_p='0';
if ($rs[0]['esigibilita_iva'] == 'S' ) $split_p='1';
if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );
if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);
if( $dir=='entrata' ){
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
else{
$numero_esterno = '';
$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
if( $forza_numerazione =='1' ){
// forzatura numero progressivo
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
}
// ricerco ultimo id protocollo
if( $mod_prodotollo=='1' ){
$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."' ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
}
// se documento e' un ordine di servizio ricerco il contratto
$idcontratto='0';
if( $ordine_servizio=='1' ){
$query="SELECT co_contratti.id AS idcontratto, an_anagrafiche.idanagrafica, numero, nome FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica
WHERE an_anagrafiche.idanagrafica='".$idanagrafica."' AND idstato NOT IN (SELECT `id` FROM co_staticontratti WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato') ORDER BY id desc";
$rs = $dbo->fetchArray($query);
$idcontratto = $rs[0]['idcontratto'];
}
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$numero_documento=$suffisso.$numero_esterno;
if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
//Tipo di pagamento predefinito dall'anagrafica
$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
$rs = $dbo->fetchArray($query);
$idpagamento = $rs[0]['id'];
// se pagaemnto non impostato cerco se pagamento impostato per default
if( $idpagamento=='') $idpagamento=$idpagamento_new;
// impostazione data protocollo
if( date ('d') <= 15){
$data_prot = date ('Y/m/15');
}else{
$data_prot = date ('Y/m/t');
}
$query = "INSERT INTO co_documenti ( split_p , idritenutaacconto,idrivalsainps,id_contratto,idbanca_vendite,id_protocollo,data_prot,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede ) VALUES
( \"".$split_p."\", \"".$default_ritenuta_acconto."\", \"".$default_rivalsa_inps."\",\"".$idcontratto."\",\"".$idbanca_vendite."\",\"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idagente."\", \"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\",
\"".$data."\", \"".$idstato."\", (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\") )";
$dbo->query($query);
$iddocumento = $dbo->last_inserted_id();
$id_record = $iddocumento;
// log anagrafiche
add_storico_doc($iddocumento,"Creazione nuovo documento");
//Collego l'intervento al contratto
if( $idcontratto != "0" ){
$query = "INSERT INTO co_righe_contratti( `idcontratto`, `idintervento` ) VALUES( \"".$idcontratto."\", \"".$iddocumento."\")";
$dbo->query( $query );
}
array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero."!" );
}
break;
case "update":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( isset($_POST['id_record']) ){
include ($docroot . "/lib/salva_personalizzati.php");
$stato_per_chiusura = get_var_tipodoc2($iddocumento,'sta_concluso');
$dir=get_var_tipodoc2($iddocumento,'dir');
$numero_esterno = save( $_POST['numero_esterno'] );
$data = saveDate( $_POST['data'] );
$idagente = save( $_POST['idagente'] );
$note = save( $_POST['note'] );
$buono_ordine = save( $_POST['buono_ordine'] );
$note_aggiuntive = save( $_POST['note_aggiuntive'] );
$idstatodocumento = save($_POST['idstatodocumento']);
$idpagamento = save($_POST['idpagamento']);
$idcausalet = save($_POST['idcausalet']);
$idspedizione = save($_POST['idspedizione']);
$idporto = save($_POST['idporto']);
$idaspettobeni = save($_POST['idaspettobeni']);
$idvettore = save($_POST['idvettore']);
$n_colli = save($_POST['n_colli']);
$idsede = save($_POST['idsede']);
$idconto = save($_POST['idconto']);
$matricola = save($_POST['matricola']);
$numero_documento = save($_POST['numero_documento']);
$totale_imponibile = get_imponibile_fattura($iddocumento);
$totale_fattura = get_totale_fattura($iddocumento);
$idbanca_vendite=save( $_POST['idbanca_vendite']);
$idmezzo = save($_POST['idmezzo']);
$datatrasporto = saveDate( $_POST['datatrasporto'] );
$oratrasporto = save($_POST['oratrasporto']);
( $_POST['stp_prezzi'] == 'on' ) ? $stp_prezzi=1 : $stp_prezzi=0;
( $_POST['stp_sconti'] == 'on' ) ? $stp_sconti=1 : $stp_sconti=0;
( $_POST['stp_immagini'] == 'on' ) ? $stp_immagini=1 : $stp_immagini=0;
( $_POST['stp_descestesa'] == 'on' ) ? $stp_descestesa=1 : $stp_descestesa=0;
( $_POST['split_p'] == 'on' ) ? $split_p=1 : $split_p=0;
$bassegno=save( $_POST['bassegno']);
$nassegno=save( $_POST['nassegno']);
$tipo_sconto = save( $_POST['tipo_sconto_globale'] );
$sconto_globale = force_decimal($_POST['sconto_globale']);
// se era chiuso mi rileggo le variabili principali
$query = "SELECT * FROM co_documenti WHERE id='".$iddocumento."'";
$rs = $dbo->fetchArray($query);
if( $stato_per_chiusura == $rs[0]['idstatodocumento'] ) {
$idpagamento=$rs[0]['idpagamento'] ;
$idconto = $rs[0]['idconto'] ;
$idbanca_vendite = $rs[0]['idbanca_vendite'] ;
$idcausalet = $rs[0]['idcausalet'] ;
$idaspettobeni = $rs[0]['idaspettobeni'] ;
$idporto = $rs[0]['idporto'] ;
$tipo_sconto = $rs[0]['tipo_sconto_globale'] ;
$sconto_globale = $rs[0]['sconto_globale'] ;
}
$qana = "SELECT id , nome FROM my_impianti WHERE matricola='".$matricola."'";
$rs_matricola = $dbo->fetchArray($qana);
$descrizione_prev = save( $_POST['descrizione_prev'] );
$tempi_consegna = save( $_POST['tempi_consegna'] );
$validita = save($_POST['validita']);
$data_bozza = saveDate( $_POST['data_bozza'] );
$data_accettazione = saveDate( $_POST['data_accettazione'] );
$data_conclusione = saveDate( $_POST['data_conclusione'] );
$data_rifiuto = saveDate( $_POST['data_rifiuto'] );
$id_contratto=save( $_POST['id_contratto']);
// dati eventuali documento elettronico
$el_causale_1 = save( $_POST['el_causale_1'] );
$el_causale_2 = save( $_POST['el_causale_2'] );
$el_idrif = save( $_POST['el_idrif'] );
$el_rif_data = saveDate( $_POST['el_rif_data'] );
$el_id_codicecup = save( $_POST['el_id_codicecup'] );
$el_id_codicecig = save( $_POST['el_id_codicecig'] );
$el_rif_codicecommessa = save( $_POST['el_rif_codicecommessa'] );
$el_idrif_ddt1 = save( $_POST['el_idrif_ddt1'] );
$el_idrif_ddt1_data = saveDate( $_POST['el_idrif_ddt1_data'] );
$el_idrif_ddt2 = save( $_POST['el_idrif_ddt2'] );
$el_idrif_ddt2_data = saveDate( $_POST['el_idrif_ddt2_data'] );
$el_modalitapagamento = save( $_POST['el_modalitapagamento'] );
// $idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
// $idrivalsainps = save($_POST['idrivalsainps']);
if( $dir=='uscita' ){
// $idrivalsainps = save($_POST['idrivalsainps']);
// $idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
$bollo = save($_POST['bollo']);
}
else{
// $idrivalsainps = 0;
// $idritenutaacconto = 0;
$bollo = 0;
}
// aggiorno lo stato precedente
$query = "update co_documenti set idstatodocumento_prec = idstatodocumento where id='".$iddocumento."'";
$dbo->query($query);
//Leggo la descrizione del pagamento
$query = "SELECT descrizione , codice_modalita_pagamento_fe FROM co_pagamenti WHERE id='".$idpagamento."'";
$rs = $dbo->fetchArray($query);
$pagamento = $rs[0]['descrizione'];
$codice_modalita_pagamento_fe = $rs[0]['codice_modalita_pagamento_fe'];
//Query di aggiornamento
$query = "UPDATE co_documenti SET bassegno=\"".$bassegno."\" ,nassegno=\"".$nassegno."\" ,id_impianto=\"".$rs_matricola[0]['id']."\" ,nome_impianto=\"".$rs_matricola[0]['nome']."\" ,id_contratto=\"".$id_contratto."\" , tipo_sconto_globale=\"".$tipo_sconto."\" ,sconto_globale=\"".$sconto_globale."\" ,idbanca_vendite=\"".$idbanca_vendite."\" ,matricola=\"".$matricola."\" , numero_documento=\"".$numero_documento."\", data=\"".$data."\", idstatodocumento=\"".$idstatodocumento."\", idagente=\"".$idagente."\", idpagamento=\"".$idpagamento."\",
idcausalet=\"".$idcausalet."\", idspedizione=\"".$idspedizione."\", idporto=\"".$idporto."\", idaspettobeni=\"".$idaspettobeni."\", idvettore=\"".$idvettore."\",
n_colli=\"".$n_colli."\", idsede=\"".$idsede."\", el_causale_1=\"".$el_causale_1."\",el_causale_2=\"".$el_causale_2."\", numero_esterno=\"$numero_esterno\", note=\"$note\", note_aggiuntive=\"$note_aggiuntive\", idconto=\"$idconto\",
idmezzo=\"".$idmezzo."\", datatrasporto=\"".$datatrasporto."\", oratrasporto=\"".$oratrasporto."\",
stp_prezzi=\"".$stp_prezzi."\", stp_sconti=\"".$stp_sconti."\", stp_immagini=\"".$stp_immagini."\", stp_descestesa=\"".$stp_descestesa."\",split_p=\"".$split_p."\",
descrizione_prev=\"$descrizione_prev\", tempi_consegna=\"$tempi_consegna\", validita=\"$validita\", data_bozza=\"$data_bozza\", data_accettazione=\"$data_accettazione\", data_conclusione=\"$data_conclusione\", data_rifiuto=\"$data_rifiuto\",
el_idrif=\"".$el_idrif."\", el_rif_data=\"".$el_rif_data."\",el_id_codicecup=\"".$el_id_codicecup."\",el_id_codicecig=\"".$el_id_codicecig."\",
el_rif_codicecommessa=\"$el_rif_codicecommessa\", el_idrif_ddt1=\"$el_idrif_ddt1\", el_idrif_ddt1_data=\"$el_idrif_ddt1_data\", el_idrif_ddt2=\"$el_idrif_ddt2\", el_idrif_ddt2_data=\"$el_idrif_ddt2_data\", el_modalitapagamento=\"".$codice_modalita_pagamento_fe."\" ,
buono_ordine=\"".$buono_ordine."\", bollo=0, rivalsainps=0, ritenutaacconto=0, iva_rivalsainps=0 WHERE id=\"$iddocumento\"";
$dbo->query($query);
// log anagrafiche
add_storico_doc($iddocumento,"Eseguito salvataggio documento");
//aggiorno intervento se presente un riferimento al documento
$dbo->query( "update in_interventi SET idsede=\"".$idsede."\" WHERE idintervento='$iddocumento'" );
$query = "SELECT descrizione FROM co_statidocumento WHERE id='$idstatodocumento'";
$rs = $dbo->fetchArray($query);
//Ricalcolo inps, ritenuta e bollo (se la fattura non è stata pagata)
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento);
}
else{
ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto, $bollo);
}
aggiorna_sconto($iddocumento);
// leggo stati per piano diei conti e scadenziario
$stato_per_scadenziario = get_var_tipodoc2($iddocumento,'sta_scadenziario');
$stato_conto = get_var_tipodoc2($iddocumento,'sta_conto');
// $stato_per_chiusura = get_var_tipodoc2($iddocumento,'sta_concluso');
$query = "SELECT descrizione FROM co_statidocumento WHERE id='$stato_per_scadenziario'";
$rs_scadenziario = $dbo->fetchArray($query);
$stato_per_scadenziario=$rs_scadenziario[0]['descrizione'];
$query = "SELECT descrizione FROM co_statidocumento WHERE id='$stato_conto'";
$rs_scadenziario = $dbo->fetchArray($query);
$stato_per_conto=$rs_scadenziario[0]['descrizione'];
$query = "SELECT descrizione FROM co_statidocumento WHERE id='$stato_per_chiusura'";
$rs_scadenziario = $dbo->fetchArray($query);
$stato_per_chiusura=$rs_scadenziario[0]['descrizione'];
//Elimino la scadenza e tutti i movimenti, poi se la fattura è emessa le ricalcolo
if( $rs[0]['descrizione']<>$stato_per_chiusura ){
//Elimino la scadenza e tutti i movimenti
if( $rs[0]['descrizione']<>$stato_per_scadenziario ){
elimina_scadenza($iddocumento);
elimina_movimento($iddocumento, 0);
elimina_movimento($iddocumento, 1);
}
else if( $rs[0]['descrizione']==$stato_per_scadenziario ){
elimina_scadenza($iddocumento);
elimina_movimento($iddocumento, 0);
}
if( $rs[0]['descrizione']==$stato_per_scadenziario ){
aggiungi_scadenza($iddocumento, $pagamento);
array_push( $_SESSION['infos'], "Inserimento scadenziario pagamenti!" );
}
if( $rs[0]['descrizione']==$stato_per_conto ){
aggiungi_movimento($iddocumento, $dir);
array_push( $_SESSION['infos'], "Inserimento nel piano dei conti!" );
}
}
//testo se devo creare in automatico documento figlio
$sta_cambio =get_var_tipodoc2($iddocumento,'sta_cambio');
$doc_sucessivo =get_var_tipodoc2($iddocumento,'doc_sucessivo');
$sta_sucessivo =get_var_tipodoc2($iddocumento,'sta_sucessivo');
if ( $sta_cambio == $idstatodocumento && $doc_sucessivo<>'0' && $sta_sucessivo<>'0' ){
//genero automatico documento figlio
$new_iddocumento=doc_duplica($iddocumento,$doc_sucessivo ,$sta_sucessivo);
array_push( $_SESSION['infos'], "Documento sucessivo creato con successo!" );
}
// testo se devo inserire le posizoni dentro l'impianto
$mod_myimpianti =get_var_tipodoc2($iddocumento,'mod_myimpianti');
if ( $mod_myimpianti == $idstatodocumento && $matricola <>'' ){
inserisci_myimpianti($iddocumento , $matricola);
array_push( $_SESSION['infos'], "Inserire posizioni in impianto!" );
}
if( $matricola !='' ){
$dbo->query( "DELETE FROM my_impianti_interventi WHERE idintervento='$iddocumento'" );
$rs = $dbo->fetchArray("SELECT id FROM my_impianti WHERE matricola=\"".$matricola."\"");
$id_myimpianto= $rs[0]['id'];
$dbo->query("INSERT INTO my_impianti_interventi( idintervento, idimpianto ) VALUES( \"".$iddocumento."\", \"".$id_myimpianto."\" )");
}
array_push( $_SESSION['infos'], "Documento modificato correttamente!" );
}
}
break;
//eliminazione documento
case "delete":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
// tolgo la transazione se e' un documento differito
$query = "SELECT idpadre FROM co_documenti_transazioni WHERE idfiglio='$iddocumento'";
$rs = $dbo->fetchArray($query);
for( $i=0; $i<sizeof($rs); $i++ ){
$dbo->query( "UPDATE co_documenti SET idstatodocumento = idstatodocumento_prec , id_differito=0 WHERE id='".$rs[$i]['idpadre']."'" );
}
//Se ci sono degli articoli collegati (ma non collegati a preventivi o interventi) li rimetto nel magazzino
$query = "SELECT id, idarticolo FROM co_righe_documenti WHERE iddocumento='$iddocumento'";
$rs = $dbo->fetchArray($query);
for( $i=0; $i<sizeof($rs); $i++ ){
rimuovi_articolo_dafattura( $rs[$i]['idarticolo'], $iddocumento, $rs[$i]['id'] );
}
// cerco documenti padre arrivati da transazioni precedenti
$query = "SELECT id_doc_padre FROM co_documenti WHERE id='$iddocumento'";
$rs = $dbo->fetchArray($query);
// cerco riferimento ad interventi impianto
$dbo->query( "DELETE FROM my_impianti_interventi WHERE idintervento='$iddocumento'" );
if ( cerca_modulo("HelpDesk") > 0 ) {
//scangio eventuale schede helpdesk
$dbo->query( "UPDATE ca_callcenter SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
}
if ( cerca_modulo("Noleggio") > 0 ) {
//scangio eventuale schede noleggio
$dbo->query( "UPDATE ms_noleggio SET idpreventivo = '0' WHERE idpreventivo='".$iddocumento."'" );
}
if ( cerca_modulo("Domini") > 0 ) {
//scangio eventuale schede dominio
$dbo->query( "UPDATE web_domini SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
}
if ( cerca_modulo("Laboratorio") > 0 ) {
//scangio eventuale schede laboratorio
$dbo->query( "UPDATE lb_laboratorio SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
$rs_test = $dbo->fetchArray("SELECT * FROM lb_laboratorio WHERE n_ddt='".$iddocumento."'");
if (sizeof($rs_test) > 0) {
$dbo->query( "UPDATE lb_laboratorio SET n_ddt = '0' , rma='' , note='' WHERE n_ddt='".$iddocumento."'" );
}
}
// svuoto collegaemnto ad eventuale documento di canone
$dbo->query( "UPDATE co_contratti SET id_documento = '0' WHERE id_documento='".$iddocumento."'" );
// testo se il documento e' stato completamente evaso
$rs_test = $dbo->fetchArray("SELECT * FROM co_righe_documenti WHERE qta <> qta_evasa and iddocumento='".$rs[0]['id_doc_padre']."'");
if (sizeof($rs_test) > 0) {
agg_doc_stato_rip($rs[0]['id_doc_padre']);
}
$dbo->query( "DELETE FROM co_documenti_transazioni WHERE idfiglio='$iddocumento'" );
$dbo->query( "DELETE FROM or_ordini_transazioni WHERE idfiglio='$iddocumento'" );
$dbo->query( "DELETE FROM co_documenti WHERE id='$iddocumento'" );
$dbo->query( "DELETE FROM co_righe_documenti WHERE iddocumento='$iddocumento'" );
$dbo->query( "DELETE FROM co_scadenziario WHERE iddocumento='$iddocumento'" );
$dbo->query( "DELETE FROM mg_movimenti WHERE iddocumento='$iddocumento'" );
// elimino eventuali pianificazioni
$dbo->query( "DELETE FROM in_interventi WHERE idintervento='$iddocumento'" );
$dbo->query( "DELETE FROM in_interventi_tecnici WHERE idintervento='$iddocumento'" );
$dbo->query( "DELETE FROM mg_articoli_interventi WHERE idintervento='$iddocumento'" );
$dbo->query( "DELETE FROM in_righe_interventi WHERE idintervento='$iddocumento'" );
// elimino allegati e progressivi al documento
$dbo->query( "DELETE FROM zz_files WHERE externalid='$iddocumento'" );
$dbo->query( "DELETE FROM co_documenti_progressivo WHERE id_documento='$iddocumento'" );
elimina_scadenza($iddocumento);
elimina_movimento($iddocumento);
array_push( $_SESSION['infos'], "Documento eliminato!" );
// log anagrafiche
add_storico_doc($iddocumento,"Eliminazione nuovo documento");
}
break;
case "reopen":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( $id_record != '' ){
if( $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Bozza') WHERE id='".$id_record."'") ){
elimina_scadenza( $id_record );
elimina_movimento( $id_record , 1 );
ricalcola_costiagg_fattura( $id_record );
array_push( $_SESSION['infos'], "Fattura riaperta!" );
// log anagrafiche
add_storico_doc($id_record,"Riapertura del documento");
}
}
}
break;
case "addarticolo":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( $iddocumento != '' && isset($_POST['idarticolo']) ){
$idarticolo = save( $_POST['idarticolo'] );
$idmagazzino = save( $_POST['idmagazzino'] );
$id_matricola = save( $_POST['id_matricola'] );
$idrivalsainps = save( $_POST['idrivalsainps'] );
$idritenutaacconto = save( $_POST['idritenutaacconto'] );
$descrizione = save( $_POST['descrizione'] );
$descrizione_art = save( $_POST['descrizione'] );
// cerco iva articoli preimpostata
$idiva=query_secca("","idiva_vendita","mg_articoli","where id ='".$idarticolo."'");
if( $idiva=='0' ){
$idiva = get_var("Iva predefinita");
}
$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
$qta = force_decimal( $_POST['qta'] );
$prezzo = force_decimal( $_POST['prezzo'] );
$lotto = "";
$serial = save( $_POST['serial'] );
$altro = "";
$idtiposconto = save( $_POST['idtiposconto'] );
$sconto = force_decimal($_POST['sconto']);
$sconto_extra = force_decimal($_POST['sconto_extra']);
$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
$per_agente = force_decimal($_POST['per_agente']);
$ins_doppia=0;
$riga_canone=0;
$riga_canone1=0;
// cerco evantuali posizioni di contratto fisse se presente un contratto associato
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$idarticolo);
$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$idarticolo);
$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
$qta_disp=$qta_scalare - $qta_consumata;
if( $qta_scalare != '' ){
$riga_canone=1;
if( $qta_disp >= $qta ){
$prezzo="0";
}else{
$qta_new=$qta - $qta_disp;;
$prezzo_new =$prezzo;
$qta=$qta_disp;
$prezzo="0";
$ins_doppia=1;
$riga_canone1=2;
$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
}
}else{
// la qta disponibile non presente , cerco eventuale prezzo imposto
$riga_canone1=2;
$riga_canone=2;
$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
if( $prezzo_new != '' ) $prezzo=$prezzo_new;
if( $prezzo_new == '' ) $riga_canone=0;
}
$forza_zero=cerca_contratti_a_zero($records[0]['id_contratto']);
if( $forza_zero == '1' ){
$prezzo_new=0;
$prezzo=0;
$riga_canone1=2;
$riga_canone=2;
}
}
if($idtiposconto=='2'){
$sconto_prc = $sconto;
$sconto = ($prezzo * $sconto_prc)/100;
$sconto_new = ($prezzo_new * $sconto_prc)/100;
}else{
$sconto_prc = $sconto;
}
if($idtiposconto=='2'){
$sconto_extra = $sconto_extra;
$sconto1 = (($prezzo - $sconto) * $sconto_extra)/100;
$sconto1_new = (($prezzo_new - $sconto_new) * $sconto_extra)/100;
}else{
$sconto1 = $sconto_extra;
}
if($idtiposconto=='2'){
$sconto_extra1 = $sconto_extra1;
$sconto2 = (($prezzo - $sconto - $sconto1 ) * $sconto_extra1)/100;
$sconto2_new = (($prezzo_new - $sconto_new - $sconto1_new ) * $sconto_extra1)/100;
}else{
$sconto2 = $sconto_extra1;
}
$sconto = ( $sconto + $sconto1 + $sconto2 ) *$qta;
$sconto_new = ( $sconto_new + $sconto1_new + $sconto2_new ) *$qta_new;
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" && $riga_canone != '0' ){
$sconto=0;
$sconto_new=0;
$sconto_prc=0;
$sconto_extra=0;
$sconto_extra1=0;
}
add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo*$qta, $sconto, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino , $riga_canone ,$id_matricola,$per_agente );
if($ins_doppia=='1'){
add_articolo_infattura2( $iddocumento, $idarticolo, $descrizione, $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino , $riga_canone1 ,$id_matricola,$per_agente );
}
array_push( $_SESSION['infos'], "Articolo aggiunto!" );
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento);
}
else{
ricalcola_costiagg_fattura($iddocumento);
}
}
}
break;
case "addriga":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( $iddocumento != '' ){
//Selezione costi da intervento
$descrizione = save( $_POST['descrizione'] );
$importo_manuale = force_decimal( $_POST['subtot'] );
$qta = force_decimal($_POST['qta']);
$idiva = save($_POST['idiva']);
$id_matricola = save( $_POST['id_matricola'] );
$um = save($_POST['um']);
$subtot = $importo_manuale*$qta;
$idconto = save( $_POST['idconto_riga'] );
$idtiposconto = save( $_POST['idtiposconto'] );
$sconto = force_decimal($_POST['sconto']);
$sconto_extra = force_decimal($_POST['sconto_extra']);
$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
$per_agente = force_decimal($_POST['per_agente']);
if($idtiposconto=='2'){
$sconto_prc = $sconto;
$sconto = ($importo_manuale * $sconto_prc)/100;
}else{
$sconto_prc = $sconto;
}
if($idtiposconto=='2'){
$sconto_extra = $sconto_extra;
$sconto1 = (($importo_manuale - $sconto) * $sconto_extra)/100;
}else{
$sconto1 = $sconto_extra;
}
if($idtiposconto=='2'){
$sconto_extra1 = $sconto_extra1;
$sconto2 = (($importo_manuale - $sconto - $sconto1 ) * $sconto_extra1)/100;
}else{
$sconto2 = $sconto_extra1;
}
$sconto = ( $sconto + $sconto1 + $sconto2 ) *$qta;
// cerco dati agente
$query = "SELECT idanagrafica FROM co_documenti WHERE id='".$iddocumento."'";
$rs = $dbo->fetchArray($query);
$query = "SELECT idagente , default_ritenuta_acconto , default_rivalsa_inps FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
$rs = $dbo->fetchArray($query);
$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
$rs_agente = $dbo->fetchArray($query);
$perc_agente = $rs_agente[0]['perc_agente'];
$perc_netto = $rs_agente[0]['perc_netto'];
$perc_iva = $rs_agente[0]['perc_iva'];
if ($per_agente != '0' ) {
$perc_agente=$per_agente;
}
//calcolo percentuali agente
if($perc_netto =='1'){
$val_agente=($importo_manuale * $qta) - $sconto ;
$val_agente = ($val_agente * $perc_agente)/100;
}else{
$val_agente = (($importo_manuale * $qta) * $perc_agente)/100;
}
if( $perc_iva =='1'){
$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
$val_agente=$val_agente + $agente_iva ;
}
//Calcolo iva
$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
$rs = $dbo->fetchArray($query);
$iva = ($subtot-$sconto)/100*$rs[0]['percentuale'];
$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
$desc_iva = $rs[0]['descrizione'];
//Calcolo rivalsa inps
$query = "SELECT * FROM co_rivalsainps WHERE id='".$html->form('idrivalsainps', 'post')."'";
$rs = $dbo->fetchArray($query);
$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
$idrivalsainps=$html->form('idrivalsainps', 'post');
//Calcolo ritenuta d'acconto
$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$html->form('idritenutaacconto', 'post')."'";
$rs = $dbo->fetchArray($query);
$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];
$idritenutaacconto=$html->form('idritenutaacconto', 'post');
if( $default_rivalsa_inps != "0" ){
$idrivalsainps=$default_rivalsa_inps;
$query = "SELECT * FROM co_rivalsainps WHERE id='".$default_rivalsa_inps."'";
$rs = $dbo->fetchArray($query);
$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
}
if( $default_ritenuta_acconto != "0" ){
$idritenutaacconto=$default_ritenuta_acconto;
//Calcolo ritenuta d'acconto
$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$default_ritenuta_acconto."'";
$rs = $dbo->fetchArray($query);
$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];
}
// Info matricola
$qana = "SELECT * FROM my_impianti WHERE matricola='".$id_matricola."'";
$rs_matricola = $dbo->fetchArray($qana);
$matricola_impianto=$rs_matricola[0]['id'];
//Aggiunta riga generica sul documento
$query = "INSERT INTO co_righe_documenti( id_impianto , matricola_impianto , iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto,idconto,tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1,importo_agente,importo_iva_agente,perc_agente)
VALUES( '".$matricola_impianto."','".$id_matricola."',\"$iddocumento\", \"".$idiva."\", \"$desc_iva\", \"$iva\", \"$iva_indetraibile\", \"$descrizione\", \"$subtot\", \"$sconto\", \"$um\", \"$qta\", \"".$idrivalsainps."\",
\"".$rivalsainps."\", \"".$idritenutaacconto."\", \"".$ritenutaacconto."\" , \"".$idconto."\", \"".$idtiposconto."\", \"".$sconto_prc."\",\"".$sconto_extra."\",\"".$sconto_extra1."\",\"".$val_agente."\",\"".$agente_iva."\",\"".$perc_agente."\" )";
if( $dbo->query($query) ){
array_push( $_SESSION['infos'], "Riga aggiunta!" );
// log anagrafiche
add_storico_doc($iddocumento,"Aggiunto articolo generico ".$descrizione." con quantità = ".$qta);
//Ricalcolo inps, ritenuta e bollo
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento);
}
else{
ricalcola_costiagg_fattura($iddocumento);
}
}
}
}
break;
case "addriga_g":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( $iddocumento != '' ){
$descrizione = save( $_POST['descrizione'] );
//Aggiunta riga generica sul documento
$query = "INSERT INTO co_righe_documenti( iddocumento, descrizione , riga_varia)
VALUES( \"$iddocumento\", \"$descrizione\", '1' )";
if( $dbo->query($query) ){
array_push( $_SESSION['infos'], "Riga aggiunta!" );
// log anagrafiche
add_storico_doc($iddocumento,"Aggiunto commento ".$descrizione);
}
}
}
break;
case "editriga":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( isset($_POST['idriga']) ){
//Selezione costi da intervento
$ins_doppia=0;
$idriga = $html->form('idriga', 'post');
$idmagazzino = save( $_POST['idmagazzino'] );
$id_matricola = save( $_POST['id_matricola'] );
$descrizione = save( $_POST['descrizione'] );
$importo_manuale = save( $_POST['subtot'] );
$importo_manuale = str_replace( ",", ".", $importo_manuale );
$prezzo = force_decimal( $_POST['subtot'] );
$qta = save($_POST['qta']);
$qta = str_replace( ",", ".", $qta );
$idiva = save($_POST['idiva']);
$um = save($_POST['um']);
$idconto = save( $_POST['idconto_riga'] );
$subtot = $importo_manuale*$qta;
$idtiposconto = save( $_POST['idtiposconto'] );
$sconto = force_decimal($_POST['sconto']);
$sconto_extra = force_decimal($_POST['sconto_extra']);
$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
$idmagazzino_old=query_secca("","id_magazzino_e","co_righe_documenti","where id='".$idriga."'");
$per_agente = force_decimal($_POST['per_agente']);
// Info matricola
$qana = "SELECT * FROM my_impianti WHERE matricola='".$id_matricola."'";
$rs_matricola = $dbo->fetchArray($qana);
$matricola_impianto=$rs_matricola[0]['id'];
// cerco evantuali posizioni di contratto fisse se presente un contratto associato
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
$query = "SELECT idarticolo , qta , riga_canone FROM co_righe_documenti WHERE id='".$idriga."'";
$rs = $dbo->fetchArray($query);
if( $rs[0]['idarticolo'] != '0' ){
$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$rs[0]['idarticolo']);
$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$rs[0]['idarticolo']);
$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$rs[0]['idarticolo']);
$qta_disp=$qta_scalare - $qta_consumata + $rs[0]['qta'];
if( ( $qta_scalare != '' ) && ( $rs[0]['riga_canone'] == '1')){
if( $qta_disp >= $qta ){
$importo_manuale="0";
}else{
$qta_new=$qta - $qta_disp;;
$prezzo_new =$importo_manuale;
$qta=$qta_disp;
$importo_manuale="0";
$ins_doppia=1;
$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$rs[0]['idarticolo']);
if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
}
}else{
// la qta disponibile non presente , cerco eventuale prezzo imposto
$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
if( $prezzo_new != '' ) $importo_manuale=$prezzo_new;
}
}
}
if($idtiposconto=='2'){
$sconto_prc = $sconto;
$sconto = ($importo_manuale*$sconto_prc)/100;
$sconto_new = ($prezzo_new * $sconto_prc)/100;
}else{
$sconto_prc = $sconto;
}
if($idtiposconto=='2'){
$sconto_extra = $sconto_extra;
$sconto1 = (($importo_manuale - $sconto) * $sconto_extra)/100;
$sconto1_new = (($importo_manuale - $sconto_new) * $sconto_extra)/100;
}else{
$sconto1 = $sconto_extra;
}
if($idtiposconto=='2'){
$sconto_extra1 = $sconto_extra1;
$sconto2 = (($importo_manuale - $sconto - $sconto1) * $sconto_extra1)/100;
$sconto2_new = (($importo_manuale - $sconto_new - $sconto1_new) * $sconto_extra1)/100;
}else{
$sconto2 = $sconto_extra1;
}
$sconto = ( $sconto + $sconto1 + $sconto2 ) *$qta;
$sconto_new = ( $sconto_new + $sconto1_new + $sconto2_new ) *$qta;
// impostazioni documento$esegue_movimento=get_var_tipodoc2($iddocumento,"mod_mov");
$esegue_movimento=get_var_tipodoc2($iddocumento,"mod_mov");
$esegue_giacenza = get_var_tipodoc2($iddocumento,"mod_mag");
$id_magazzino_e = get_var_tipodoc2($iddocumento,"id_magazzino_e");
$id_magazzino_u = get_var_tipodoc2($iddocumento,"id_magazzino_u");
$id_tipo_u = get_var_tipodoc2($iddocumento,"id_tipo_u");
$dir = get_var_tipodoc2($iddocumento,"dir");
$agg_prezzo_e = get_var_tipodoc2($iddocumento,"agg_prezzo_e");
$agg_prezzo_u = get_var_tipodoc2($iddocumento,"agg_prezzo_u");
if ( $idmagazzino >= '0' ) $id_magazzino_e=$idmagazzino;
// cerco dati agente
$query = "SELECT idanagrafica FROM co_documenti WHERE id='".$iddocumento."'";
$rs = $dbo->fetchArray($query);
$query = "SELECT idagente , default_ritenuta_acconto , default_rivalsa_inps FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
$rs = $dbo->fetchArray($query);
$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
$rs_agente = $dbo->fetchArray($query);
$perc_agente = $rs_agente[0]['perc_agente'];
$perc_netto = $rs_agente[0]['perc_netto'];
$perc_iva = $rs_agente[0]['perc_iva'];
if ($per_agente != '0' ) {
$perc_agente=$per_agente;
}
//calcolo percentuali agente
if($perc_netto =='1'){
$val_agente=($importo_manuale * $qta) - $sconto ;
$val_agente = ($val_agente * $perc_agente)/100;
}else{
$val_agente = (($importo_manuale * $qta) * $perc_agente)/100;
}
if( $perc_iva =='1'){
$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
$val_agente=$val_agente + $agente_iva ;
}
//Lettura idarticolo dalla riga documento
$rs = $dbo->fetchArray("SELECT idarticolo, qta FROM co_righe_documenti WHERE id=\"".$idriga."\"");
$idarticolo = $rs[0]['idarticolo'];
$old_qta = $rs[0]['qta'];
$subtot = $importo_manuale*$qta;
//Calcolo iva
$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
$rs = $dbo->fetchArray($query);
$iva = ($subtot-$sconto)/100*$rs[0]['percentuale'];
$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
$desc_iva = $rs[0]['descrizione'];
//Calcolo rivalsa inps
$query = "SELECT * FROM co_rivalsainps WHERE id='".$html->form('idrivalsainps', 'post')."'";
$rs = $dbo->fetchArray($query);
$rivalsainps = $importo_manuale*$qta / 100 * $rs[0]['percentuale'];
//Calcolo ritenuta d'acconto
$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$html->form('idritenutaacconto', 'post')."'";
$rs = $dbo->fetchArray($query);
$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];
$idrivalsainps=$html->form('idrivalsainps', 'post');
$idritenutaacconto=$html->form('idritenutaacconto', 'post');
if( $default_rivalsa_inps != "0" ){
$idrivalsainps=$default_rivalsa_inps;
$query = "SELECT * FROM co_rivalsainps WHERE id='".$default_rivalsa_inps."'";
$rs = $dbo->fetchArray($query);
$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
}
if( $default_ritenuta_acconto != "0" ){
$idritenutaacconto=$default_ritenuta_acconto;
//Calcolo ritenuta d'acconto
$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$default_ritenuta_acconto."'";
$rs = $dbo->fetchArray($query);
$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];
}
//Modifica riga generica sul documento
$query = "UPDATE co_righe_documenti SET matricola_impianto=\"".$id_matricola."\", id_impianto=\"".$matricola_impianto."\", id_magazzino_e=\"".$id_magazzino_e."\", idconto=\"".$idconto."\", idiva=\"".$idiva."\", desc_iva=\"".$desc_iva."\", iva=\"".$iva."\", iva_indetraibile=\"".$iva_indetraibile."\", descrizione=\"".$descrizione."\",
subtotale=\"".$subtot."\", sconto=\"".$sconto."\", tipo_sconto=\"".$idtiposconto."\", sconto_primo=\"".$sconto_prc."\", sconto_extra=\"".$sconto_extra."\", sconto_extra1=\"".$sconto_extra1."\",
um=\"".$um."\", qta=\"".$qta."\", idritenutaacconto=\"".$idritenutaacconto."\",
ritenutaacconto=\"".$ritenutaacconto."\", idrivalsainps=\"".$idrivalsainps."\", rivalsainps=\"".$rivalsainps."\" ,
importo_agente=\"".$val_agente."\",importo_iva_agente=\"".$agente_iva."\",perc_agente=\"".$perc_agente."\" WHERE id=\"".$idriga."\"";
if( $dbo->query($query) ){
// log anagrafiche
add_storico_doc($iddocumento,"Modificato articolo ".$descrizione." con quantità = ".$qta);
if($ins_doppia=='1'){
add_articolo_infattura2( $iddocumento, $idarticolo, $descrizione, $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino ,$id_matricola);
}
//Se ho movimentato una riga collegata ad un articolo di magazzino, movimento il magazzino
if( $idarticolo != '' ){
( $dir == 'entrata' ) ? $sign='-' : $sign='+';
if( $esegue_movimento== 1 ) {
//Lettura dati del movimento in magazzino per poterlo modificare
$rs = $dbo->fetchArray("SELECT id, qta FROM mg_movimenti WHERE idarticolo=\"".$idarticolo."\" AND qta=\"".$sign.$old_qta."\" AND iddocumento=\"".$iddocumento."\"");
$idmovimento = $rs[0]['id'];
//Aggiorno il movimento del magazzino
$query = "UPDATE mg_movimenti SET qta=\"".$sign.$qta."\" WHERE id=\"".$idmovimento."\"";
$dbo->query( $query );
}
//Aggiorno la quantità articolo (qtà_attuale - qtà_precedentemente_movimentata + nuova_qtà)
if( $esegue_giacenza== 1 ) {
if ( $idmagazzino_old == $id_magazzino_e ){
if( $id_magazzino_e == 0 ) {
$tabella=" mg_articoli ";
$where =" WHERE id='".$idarticolo."'";
} else{
$tabella=" mg_articoli_magazzini ";
$where =" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_e."' ";
}
if( $dir == "entrata" ){
$query = "UPDATE ".$tabella." SET qta= qta +".$old_qta.$sign.$qta.$where;
}
else{
$query = "UPDATE ".$tabella." SET qta=qta -".$old_qta.$sign.$qta.$where;
}
$dbo->query( $query );
}
else{
// ripristino giacenza prima di cambio magazzino
if( $idmagazzino_old == 0 ) {
$tabella=" mg_articoli ";
$where =" WHERE id='".$idarticolo."'";
} else{
$tabella=" mg_articoli_magazzini ";
$where =" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$idmagazzino_old."' ";
}
if( $dir == "entrata" ){
$query = "UPDATE ".$tabella." SET qta= qta +".$old_qta.$where;
}
else{
$query = "UPDATE ".$tabella." SET qta=qta -".$old_qta.$where;
}
$dbo->query( $query );
// ricalcolo nuova giacenza su mahazzino nupvo
if( $id_magazzino_e == 0 ) {
$tabella=" mg_articoli ";
$where =" WHERE id='".$idarticolo."'";
} else{
$tabella=" mg_articoli_magazzini ";
$where =" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_e."' ";
}
if( $dir == "entrata" ){
$query = "UPDATE ".$tabella." SET qta= qta ".$sign.$qta.$where;
}
else{
$query = "UPDATE ".$tabella." SET qta=qta ".$sign.$qta.$where;
}
$dbo->query( $query );
}
}
// testo se devo fare movimenti su altri magazzini
if( $id_magazzino_u != 0 ) {
( $id_tipo_u == '1' ) ? $sign='+' : $sign='-';
$tabella=" mg_articoli_magazzini ";
$where =" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_u."' ";
if( $id_tipo_u == "1" ){
$query = "UPDATE ".$tabella." SET qta= qta -".$old_qta.$sign.$qta.$where;
}
else{
$query = "UPDATE ".$tabella." SET qta=qta +".$old_qta.$sign.$qta.$where;
}
$dbo->query( $query );
}
if( $agg_prezzo_e == 1 ) { // aggiornaemnto prezzo di aquisto
$dbo->query( "UPDATE mg_articoli SET prezzo_acquisto=".$importo_manuale." WHERE id='".$idarticolo."'");
}
if( $agg_prezzo_u == 1 ) { // aggiornaemnto prezzo di vendita
$dbo->query( "UPDATE mg_articoli SET prezzo_vendita=".$importo_manuale." WHERE id='".$idarticolo."'");
}
}
array_push( $_SESSION['infos'], "Riga modificata!" );
//Ricalcolo inps, ritenuta e bollo
if( $dir=='entrata' )
ricalcola_costiagg_fattura($iddocumento);
else
ricalcola_costiagg_fattura($iddocumento);
}
}
}
break;
case "editriga_canone":
$idriga = $html->form('idriga', 'post');
$idtiposconto = save( $_POST['idtipoassistenza'] );
if ( $idtiposconto =='2' ) {
$query = "UPDATE co_righe_documenti SET riga_canone='0' WHERE id=\"".$idriga."\"";
if( $dbo->query($query) ){
array_push( $_SESSION['infos'], "Condizione posizione modificata" );
// log anagrafiche
add_storico_doc($iddocumento,"Condizione posizione modificata");
}
}
break;
//Scollegamento articolo da documento
case "unlink_articolo":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( $iddocumento != '' && isset($_POST['idarticolo']) ){
$idriga = $html->form( 'idriga', 'post' );
$idarticolo = $html->form( 'idarticolo', 'post' );
rimuovi_articolo_dafattura( $idarticolo, $iddocumento, $idriga );
// rimuovo eventuali seriali associato
$dbo->query("update mg_prodotti set id_riga_documento='0' WHERE id_riga_documento='".$idriga."'");
if( $dbo->query("DELETE FROM co_righe_documenti WHERE iddocumento='".$iddocumento."' AND id='".$idriga."'") ){
//Ricalcolo inps, ritenuta e bollo
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento);
}
else{
ricalcola_costiagg_fattura($iddocumento, 0, 0, 0);
}
array_push( $_SESSION['infos'], "Articolo rimosso!" );
}
}
}
break;
//Scollegamento riga generica da documento
case "unlink_riga":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( isset($_POST['idriga']) ){
$idriga = $html->form('idriga', 'post');
//Se la riga è stata creata da un ordine, devo riportare la quantità evasa nella tabella degli ordini
//al valore di prima, riaggiungendo la quantità che sto togliendo
$rs = $dbo->fetchArray( "SELECT qta, descrizione, idarticolo, idordine, idiva FROM co_righe_documenti WHERE iddocumento=\"".$iddocumento."\" AND id=\"".$idriga."\"" );
//Rimpiazzo la quantità negli ordini
$dbo->query( "UPDATE or_righe_ordini SET qta_evasa=qta_evasa-".$rs[0]['qta']." WHERE descrizione=\"".$rs[0]['descrizione']."\" AND idarticolo=\"".$rs[0]['idarticolo']."\" AND idordine=\"".$rs[0]['idordine']."\" AND idiva=\"".$rs[0]['idiva']."\"" );
//Se la riga è stata creata da un ddt, devo riportare la quantità evasa nella tabella dei ddt
//al valore di prima, riaggiungendo la quantità che sto togliendo
$rs = $dbo->fetchArray( "SELECT qta, descrizione, idarticolo, idddt, idiva FROM co_righe_documenti WHERE iddocumento=\"".$iddocumento."\" AND id=\"".$idriga."\"" );
//Rimpiazzo la quantità nei ddt
$dbo->query( "UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-".$rs[0]['qta']." WHERE descrizione=\"".$rs[0]['descrizione']."\" AND idarticolo=\"".$rs[0]['idarticolo']."\" AND idddt=\"".$rs[0]['idddt']."\" AND idiva=\"".$rs[0]['idiva']."\"" );
$query = "DELETE FROM co_righe_documenti WHERE iddocumento=\"$iddocumento\" AND id=\"$idriga\"";
// log anagrafiche
add_storico_doc($iddocumento,"Rimozione riga ".$rs[0]['descrizione']);
if( $dbo->query($query) ){
//Ricalcolo inps, ritenuta e bollo
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento);
}
else{
ricalcola_costiagg_fattura($iddocumento, 0, 0, 0);
}
array_push( $_SESSION['infos'], "Riga rimossa!" );
}
}
}
break;
//ordino righe in fattura
case "sortrows":
$id = $html->form('id', 'post');
$iddocumento = $html->form('iddocumento', 'post');
$ordine = $html->form('ordine', 'post');
$dbo->query("UPDATE co_righe_documenti SET ordine=".$ordine." WHERE id=".$id."");
array_push( $_SESSION['infos'], "Ordine aggiornato!" );
exit;
break;
case 'add_serial':
$idriga = save( $_POST['idriga'] );
$idarticolo = save( $_POST['idarticolo'] );
// cerco qta riga
$n_qta=query_secca("","qta","co_righe_documenti","where id ='".$idriga."'");
// svuoto eventuali associazioni precedenti
$dbo->query("UPDATE mg_prodotti SET id_riga_documento='0' WHERE idarticolo=".$idarticolo." and id_riga_documento='".$idriga."'");
// ciclo sui seriali passati
for( $i=0; $i<sizeof($_POST['serial']); $i++ ){
$serial = save( $_POST['serial'][$i] );
if ($i < $n_qta ) {
$dbo->query("UPDATE mg_prodotti SET id_riga_documento=".$idriga." WHERE idarticolo=".$idarticolo." and serial='".$serial."'");
}
}
array_push( $_SESSION['infos'], "Abbinamento seriali terminato!" );
break;
case "add_transazione":
$idtipodocumento = save( $_POST['idintervento'] );
if ( $idtipodocumento <> '' ) {
// cerco impostazioni tipo documento
$idanagrafica=get_var_tipodoc2($iddocumento ,'idanagrafica');
$idagente=get_var_tipodoc2($iddocumento ,'idagente');
$idbanca_vendite=get_var_tipodoc2($iddocumento ,'idbanca_vendite');
$idsede=get_var_tipodoc2($iddocumento ,'idsede');
$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
$dir=get_var_tipodoc($idtipodocumento,'dir');
$idconto=get_var_tipodoc($idtipodocumento,'idconto');
$matricola=get_var_documento($iddocumento ,'matricola');
$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
$idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');
$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');
$idmagazzino=get_var_tipodoc($idtipodocumento,'id_magazzino_e');
$data=date("Y-m-d");
if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );
if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);
if( $dir=='entrata' ){
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
else{
$numero_esterno = '';
$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
if( $forza_numerazione =='1' ){
// forzatura numero progressivo
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
}
$numero_documento=$suffisso.$numero_esterno;
if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
//Creazione nuovo documento
//Tipo di pagamento predefinito dall'anagrafica
$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
$rs = $dbo->fetchArray($query);
$idpagamento = $rs[0]['id'];
$tab_testata=" co_documenti ";
$tab_righe=" co_righe_documenti ";
$tab_transazione=" co_documenti_transazioni ";
// testo se devo inserire il protocollo
$nuovo_id_protocollo=0;
$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
if( $mod_prodotollo=='1' ){
$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."' ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
}
// impostazione data protocollo
if( date ('d') <= 15){
$data_prot = date ('Y/m/15');
}else{
$data_prot = date ('Y/m/t');
}
//Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
if( $dir=='entrata' && $idpagamento=='' ) $idpagamento = $idpagamento_new;
$query = "INSERT INTO ".$tab_testata." ( id_protocollo,data_prot,idbanca_vendite,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede , matricola) VALUES
( \"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idbanca_vendite."\",\"".$idagente."\",\"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\", NOW() ,
\"".$idstato."\",\"".$idsede."\",\"".$matricola."\")";
$dbo->query($query);
$iddocumento_new = $dbo->last_inserted_id();
// aggiorno id_doc_padre
$query="update ".$tab_testata." set id_doc_padre = '".$id_record."' where id='".$iddocumento_new."'";
$dbo->query($query);
// genero storico transazione
$query="Insert into ".$tab_transazione." (idpadre,idfiglio,data_transazione,idutente) values (\"".$iddocumento."\", \"".$iddocumento_new."\",NOW(), '".$_SESSION['idutente']."')";
$dbo->query($query);
//Processo solo le righe con qta da evadere maggiore di zero
for( $i=0; $i<sizeof($_POST['qta_da_evadere']); $i++ ){
$qta = save( $_POST['qta_da_evadere'][$i] );
if( $qta > '0' ){
$idrigadocumento = save( $_POST['idrigadocumento'][$i] );
$idarticolo = save( $_POST['idarticolo'][$i] );
$descrizione = save( $_POST['descrizione'][$i] );
$qta = save( $_POST['qta_da_evadere'][$i] );
// $qta_e = save( $_POST['qta_da_evadere'][$i] );
$qta = str_replace( ",", ".", $qta );
$um = save( $_POST['um'][$i] );
// $subtot = save( $_POST['subtot'][$i] * $qta );
$idiva = save( $_POST['idiva'][$i] );
$iva = save( $_POST['iva'][$i]*$qta );
// cerco dati della riga
$query = "SELECT * FROM co_righe_documenti WHERE id='".$idrigadocumento."'";
$rs_riga = $dbo->fetchArray($query);
$idiva = $rs_riga[0]['idiva'];
$desc_iva = $rs_riga[0]['desc_iva'];
$tipo_sconto=$rs_riga[0]['tipo_sconto'];
$sconto_primo=$rs_riga[0]['sconto_primo'];
$sconto_extra=$rs_riga[0]['sconto_extra'];
$sconto_extra1=$rs_riga[0]['sconto_extra1'];
$subtot=$rs_riga[0]['subtotale'] / $rs_riga[0]['qta'];
//Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
if( $idarticolo != '0' ){
// ricalcolo gli sconti in base alla qta evasa
if($tipo_sconto=='2'){
$sconto = ($subtot*$sconto_primo)/100;
}else{
$sconto = $sconto_primo;
}
if($tipo_sconto=='2'){
$sconto1 = (($subtot - $sconto) * $sconto_extra)/100;
}else{
$sconto1 = $sconto_extra;
}
if($tipo_sconto=='2'){
$sconto2 = (($subtot - $sconto - $sconto1) * $sconto_extra1)/100;
}else{
$sconto2 = $sconto_extra1;
}
$sconto = ( $sconto + $sconto1 + $sconto2 ) * $qta ;
$subtot=$subtot * $qta;
$idriga = add_articolo_infattura( $iddocumento_new, $idarticolo, $descrizione, $idiva, $qta, $subtot, $sconto, '0', '', '', '' ,$rs_riga[0]['idconto'],$tipo_sconto,$sconto_primo,$sconto_extra,$sconto_extra1,$idmagazzino,'','','' );
//Imposto la provenienza del documento e la qta ottenuta dalla transazione
$dbo->query( "UPDATE co_righe_documenti SET id_impianto='".$rs_riga[0]['id_impianto']."' ,matricola_impianto='".$rs_riga[0]['matricola_impianto']."' ,id_riferimento='".$idrigadocumento."' , qta_da_transazione='".$qta."' WHERE id=\"".$idriga."\"" );
}
//Inserimento riga normale
else{
// ricalcolo gli sconti in base alla qta evasa
if($tipo_sconto=='2'){
$sconto = ($subtot*$sconto_primo)/100;
}else{
$sconto = $sconto_primo;
}
if($tipo_sconto=='2'){
$sconto1 = (($subtot - $sconto) * $sconto_extra)/100;
}else{
$sconto1 = $sconto_extra;
}
if($tipo_sconto=='2'){
$sconto2 = (($subtot - $sconto - $sconto1) * $sconto_extra1)/100;
}else{
$sconto2 = $sconto_extra1;
}
$sconto = ( $sconto + $sconto1 + $sconto2 ) * $qta ;
// cerco dati agente
$query = "SELECT idanagrafica FROM co_documenti WHERE id='".$iddocumento."'";
$rs = $dbo->fetchArray($query);
$query = "SELECT idagente FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
$rs = $dbo->fetchArray($query);
$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
$rs_agente = $dbo->fetchArray($query);
$perc_agente = $rs_agente[0]['perc_agente'];
$perc_netto = $rs_agente[0]['perc_netto'];
$perc_iva = $rs_agente[0]['perc_iva'];
//calcolo percentuali agente
if($perc_netto =='1'){
$val_agente=($subtot * $qta) - $sconto ;
$val_agente = ($val_agente * $perc_agente)/100;
}else{
$val_agente = (($subtot * $qta) * $perc_agente)/100;
}
if( $perc_iva =='1'){
$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
$val_agente=$val_agente + $agente_iva ;
}
$subtot=$subtot * $qta;
$dbo->query( "INSERT INTO co_righe_documenti( id_impianto,matricola_impianto, iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta,tipo_sconto,sconto_primo,sconto_extra,sconto_extra1 ,importo_agente,importo_iva_agente,perc_agente )
VALUES(\"".$rs_riga[0]['id_impianto']."\",\"".$rs_riga[0]['matricola_impianto']."\", \"$iddocumento_new\", \"$idarticolo\", \"".$idordine."\", \"".$idiva."\", \"".$desc_iva."\", \"$iva\", \"$iva_indetraibile\", \"".$descrizione."\", \"$subtot\", \"$sconto\",
\"$um\", \"$qta\",\"$tipo_sconto\",\"$sconto_primo\",\"$sconto_extra\",\"$sconto_extra1\",\"".$val_agente."\",\"".$agente_iva."\",\"".$perc_agente."\" )" );
$idriga = $dbo->last_inserted_id();
$dbo->query( "UPDATE co_righe_documenti SET id_riferimento=\"".$idrigadocumento."\" , qta_da_transazione='".$qta."' WHERE id=\"".$idriga."\"" );
}
//Scalo la quantità dal documento
$dbo->query("UPDATE co_righe_documenti SET qta_evasa = qta_evasa+".$qta." WHERE id='".$idrigadocumento."'");
}
}
// testo se il docuemnto e' stato completamente evaso
$rs_test = $dbo->fetchArray("SELECT * FROM co_righe_documenti WHERE qta <> qta_evasa and iddocumento='".$iddocumento."'");
if (sizeof($rs_test) > 0) {
}
else {
$stato_transazione_concluso = get_var_tipodoc2($iddocumento,'stato_transazione_concluso');
$stato_attuale = get_var_documento($iddocumento,'idstatodocumento');
if (sizeof($stato_transazione_concluso) > 0) {
agg_doc_stato($iddocumento,$stato_attuale,$stato_transazione_concluso);
array_push( $_SESSION['infos'], "Cambio stato documento in automatico secondo le impostazioni immesse!" );
}
}
array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero_documento."!" );
add_storico_doc($iddocumento,"Creata transazione successiva");
add_storico_doc($iddocumento_new,"Creazione documento da transazione");
}
//array_push( $_SESSION['infos'], $idtipodocumento );
break;
case "fattpaimport":
$f = pathinfo( $_FILES['filexml']['name'] );
$filename = $f['filename'];
$tmp = $_FILES['file_xml']['tmp_name'];
$upload_dir = $docroot."/files/upload_pa";
array_push( $_SESSION['infos'], $f['filename'] );
break;
case "delete_xml":
$nome_file=$records[0]['nome_file_xml'];
$module_name_path = get_var("Percorso XML");
if( @unlink($docroot."/files/".$module_name_path."/".$nome_file) ){
$dbo->query("UPDATE co_documenti SET codice_xml='' , nome_file_xml='' WHERE id=\"".$iddocumento."\"");
$dbo->query( "delete from zz_files where nome='".$nome_file."' and filename='".$nome_file."' and module='".$module_name_path."'");
add_storico_doc($iddocumento,"Eliminazione file XML fattura elettronica");
}
array_push( $_SESSION['infos'], $nome_file );
break;
case "fattpa":
$file=crea_fatturapa($id_record);
$rs = $dbo->fetchArray( "SELECT module_dir,name FROM zz_modules WHERE id=\"".$id_module."\"" );
$module_dir = $rs[0]['module_dir'];
$externalid=$iddocumento;
$module_name_path = get_var("Percorso XML");
$originale = $nfile = $docroot."/files/pa/".$file;
$copia = $nfile = $docroot."/files/".$module_name_path."/".$file;
$dst_dir = $nfile = $docroot."/files/".$module_name_path;
if( !is_dir($dst_dir) ){
if( !mkdir($dst_dir) ){
}
}
//aggiorno in co_documenti
$dbo->query( "UPDATE co_documenti SET nome_file_xml='".$file."' WHERE id=\"".$iddocumento."\"" );
if ( copy($originale,$copia) ){
$dbo->query( "delete from zz_files where nome='".$file."' and filename='".$file."' and module='".$module_name_path."'");
$rs = $dbo->query("INSERT INTO `zz_files`( nome, data, filename, module, externalid,categoria ) VALUES( \"".$file."\", NOW(), \"".$file."\", \"".$module_name_path."\", \"".$externalid."\",'Fattura elettronica' )");
array_push( $_SESSION['infos'], "File caricato correttamente!" );
array_push( $_SESSION['infos'],"Creato documento ".$file);
add_storico_doc($iddocumento,"Creazione file XML fattura elettronica");
}
break;
case "add_newordfornitore":
$qta_or = save( $_POST['qta_or'] );
$idriga = save( $_POST['idriga'] );
$idnewdocumento = save( $_POST['idnewdocumento'] );
$query = "SELECT * FROM co_righe_documenti WHERE id='".$idriga."'";
$rs_ord = $dbo->fetchArray($query);
$descrizione = $rs_ord[0]['descrizione'];
$idarticolo = $rs_ord[0]['idarticolo'];
$idiva = $rs_ord[0]['idiva'];
$query = "SELECT prezzo_acquisto , idfornitore FROM mg_articoli WHERE id='".$idarticolo."'";
$rs_art = $dbo->fetchArray($query);
$prezzo_vendita = $rs_art[0]['prezzo_acquisto'];
$idanagrafica=$rs_art[0]['idfornitore'];
if( $idnewdocumento != '' ){
$idrif_ordine=$idnewdocumento ;
$lotto = "";
$serial = "";
$altro = "";
$qta = force_decimal( $html->form('qta_or', 'post') );
$sconto = "";
$tipo_sconto = "EUR";
$sconto_prc = '';
$sconto = '';
add_articolo_inordine( $id_record,$idriga,$idnewdocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita*$qta, $sconto, $sconto_prc, $tipo_sconto, $lotto, $serial, $altro );
array_push( $_SESSION['infos'], "Articolo aggiunto ad ordine fornitore!" );
}else{
$dir="uscita";
$idtipoordine = '1';
// $data = date(Now);
if( $idanagrafica <> '' ){
$numero = get_new_numeroordine( $data );
$numero_esterno = get_new_numerosecondarioordine( $data );
//Tipo di pagamento predefinito dall'anagrafica fornitore
$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
$rs = $dbo->fetchArray($query);
$idpagamento = $rs[0]['id'];
//Se l'ordine è un ordine cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
if( $dir=='entrata' && $idpagamento=='' )
$idpagamento = get_var("Tipo di pagamento predefinito");
$query = "INSERT INTO or_ordini( numero, numero_esterno, idanagrafica, idtipoordine, idpagamento, data, idstatoordine ) VALUES ( \"".$numero."\", \"".$numero_esterno."\", '$idanagrafica', '$idtipoordine', '$idpagamento', NOW(), (SELECT `id` FROM `or_statiordine` WHERE `descrizione`='Non evaso') )";
$id_record_new = $dbo->query($query);
$idrif_ordine=$id_record_new ;
//aggiungo articolo
$lotto = "";
$serial = "";
$altro = "";
$qta = force_decimal( $html->form('qta_or', 'post') );
$sconto = "";
$tipo_sconto = "EUR";
$sconto_prc = '';
$sconto = '';
add_articolo_inordine($id_record,$idriga,$id_record_new, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita*$qta, $sconto, $sconto_prc, $tipo_sconto, $lotto, $serial, $altro );
array_push( $_SESSION['infos'], "Aggiunto ordine numero ".$numero."!" );
}else{
array_push( $_SESSION['infos'], "Non e' presente il fornitore in anagrafica articolo: Ordine non creato" );
}
}
// aggiorno riferimento idordine della riga documento
$dbo->query( "UPDATE co_righe_documenti SET idordine='".$idrif_ordine."' WHERE id=\"".$idriga."\"" );
break;
//Creazione documento da ordine
case "documento_da_ordine":
$totale_fattura = 0.00;
$data = saveDate( $_POST['data'] );
$idanagrafica = intval( $_POST['idanagrafica'] );
$idarticolo = intval( $_POST['idarticolo'] );
$idpagamento = intval( $_POST['idpagamento'] );
$idconto = intval( $_POST['idconto'] );
$idordine = intval( $_POST['idordine'] );
$idtipodocumento = save( $_POST['idnewdocumento'] );
$n_doc_sec = save( $_POST['n_doc_sec'] );
// ricerca se la numerazione e' progressiva o propria
$query = "SELECT mod_num , dir , idconto , idpagamento , sta_apertura ,descrizione , id_gruppo_tipologia FROM co_tipidocumento WHERE id='".$idtipodocumento."'";
$rs_parametri = $dbo->fetchArray($query);
$numerazione_progressiva = $rs_parametri[0]['mod_num'];
$dir = $rs_parametri[0]['dir'];
// $idconto = $rs_parametri[0]['idconto'];
$idpagamento_new = $rs_parametri[0]['idpagamento'];
$idstato = $rs_parametri[0]['sta_apertura'];
$id_gruppodoc=$rs_parametri[0]['id_gruppo_tipologia'];
$tipo_documento=$rs_parametri[0]['descrizione'];
if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );
if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);
if( $dir=='entrata' ){
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
else{
$numero_esterno = $n_doc_sec;
$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
if( $forza_numerazione =='1' ){
// forzatura numero progressivo
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
}
//Creazione nuovo documento
$dbo->query( "INSERT INTO co_documenti( numero, numero_documento,numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto , id_gruppo_tipologia , id_ordine_padre ) VALUES( \"".$numero."\", \"".$n_doc_sec."\", \"".$numero."\", \"".$data."\", \"".$idanagrafica."\", (SELECT id FROM co_tipidocumento WHERE descrizione='".$tipo_documento."'), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), \"".$idpagamento."\", \"".$idconto."\" ,\"".$id_gruppodoc."\",\"".$idordine."\" )" );
$iddocumento = $dbo->last_inserted_id();
$id_record = $iddocumento;
add_storico_doc($iddocumento,"Creazione documento da Ordine");
//Lettura di tutte le righe della tabella in arrivo
for( $i=0; $i<sizeof($_POST['qta_da_evadere']); $i++ ){
//Processo solo le righe da evadere
if( $_POST['evadere'][$i]=='on' ){
$idrigaordine = save( $_POST['idrigaordine'][$i] );
$idarticolo = save( $_POST['idarticolo'][$i] );
$descrizione = save( $_POST['descrizione'][$i] );
$qta = save( $_POST['qta_da_evadere'][$i] );
$qta = str_replace( ",", ".", $qta );
$um = save( $_POST['um'][$i] );
$subtot = save( $_POST['subtot'][$i]*$qta );
$idiva = save( $_POST['idiva'][$i] );
$iva = save( $_POST['iva'][$i]*$qta );
$sconto = save( $_POST['sconto'][$i] );
$sconto = str_replace( ",", ".", $sconto );
$sconto = $sconto*$qta;
$qprc = "SELECT tipo_sconto, sconto_primo,sconto_extra,sconto_extra1 ,serial FROM or_righe_ordini WHERE id=".$idrigaordine;
$rsprc = $dbo->fetchArray($qprc);
$sconto_primo = $rsprc[0]['sconto_primo'];
$tipo_sconto = $rsprc[0]['tipo_sconto'];
$sconto_extra = $rsprc[0]['sconto_extra'];
$sconto_extra1 = $rsprc[0]['sconto_extra1'];
$serial = $rsprc[0]['serial'];
//Calcolo l'iva indetraibile
$q = "SELECT indetraibile FROM co_iva WHERE id='".$idiva."'";
$rs = $dbo->fetchArray($q);
$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
//Leggo la descrizione iva
$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
$rs = $dbo->fetchArray($query);
$desc_iva = $rs[0]['descrizione'];
//Lettura lotto, serial, altro dalla riga dell'ordine
// $q = "SELECT lotto, serial, altro, descrizione FROM or_righe_ordini WHERE id='".$idrigaordine."'";
// $rs = $dbo->fetchArray($q);
$idconto=0;
//Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
if( $idarticolo != '0' ){
$idiva_acquisto = $idiva;
$prezzo_acquisto = $subtot;
$idriga = add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo_acquisto, $sconto, '0' ,'', $serial, '' , $idconto,$tipo_sconto,$sconto_primo,$sconto_extra,$sconto_extra1,'','','','' );
// $idriga=add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo*$qta, $sconto, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 );
//Imposto la provenienza dell'ordine
$dbo->query( "UPDATE co_righe_documenti SET idordine=\"".$idordine."\" , id_riferimento_riga_ordine=\"".$idrigaordine."\" WHERE id=\"".$idriga."\"" );
}
//Inserimento riga normale
else{
$dbo->query( "INSERT INTO co_righe_documenti( id_riferimento_riga_ordine,iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, tipo_sconto, um, qta , sconto_primo,sconto_extra,sconto_extra1)
VALUES( \"$idrigaordine\",\"$iddocumento\", \"$idarticolo\", \"".$idordine."\", \"".$idiva."\", \"".$desc_iva."\", \"$iva\", \"$iva_indetraibile\", \"".$descrizione."\", \"$subtot\", \"$sconto\", \"$tipo_sconto\", \"$um\", \"$qta\"
,\"$sconto_primo\" ,\"$sconto_extra\" ,\"$sconto_extra1\" )" );
$idriga = $dbo->last_inserted_id();
add_storico_doc($iddocumento,"Inserimento riga generica da Ordine");
}
//Scalo la quantità dall'ordine
$dbo->query("UPDATE or_righe_ordini SET qta_evasa = qta_evasa+".$qta." , id_documento_figlio = ".$iddocumento." WHERE id='".$idrigaordine."'");
}
}
// genero storico transazione
$query="Insert into or_ordini_transazioni (idpadre,idfiglio,data_transazione,idutente) values (\"".$idordine."\", \"".$iddocumento."\",NOW(), '".$_SESSION['idutente']."')";
$dbo->query($query);
// testo righe evasione dell'ordine
$rs_testostato = $dbo->fetchArray("SELECT * FROM or_righe_ordini WHERE qta <> qta_evasa and idordine='".$idordine."'");
if( sizeof($rs_testostato) > 0 ){
$dbo->query( "UPDATE or_ordini SET idstatoordine = 3 where id='".$idordine."'");
}
else{
$dbo->query( "UPDATE or_ordini SET idstatoordine = 2 where id='".$idordine."'");
}
ricalcola_costiagg_fattura($iddocumento);
array_push( $_SESSION['infos'], "Creato nuovo documento da ordine fornitore!" );
break;
case "sendemail_rapportino":
$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$oggetto = html_entity_decode($_POST['oggetto']);
$allegato = $_POST['allegato'];
$testo_email = html_entity_decode($_POST['body'], ENT_QUOTES);
$destinatario=$_POST['destinatario'];
$messaggio = new PHPmailer(str_replace( ",", ".", get_var("Indirizzo per le email in uscita") ));
$messaggio->FromName = str_replace( ",", ".", get_var("Nome Form Mail") );
$messaggio->From = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$messaggio->AddAddress($destinatario);
$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));
if ($mail_cc != ""){
$messaggio->AddCC($mail_cc);
}
$messaggio->Subject=($oggetto);
$testo_email=str_replace("<p>","",$testo_email);
$testo_email=str_replace("</p>","",$testo_email);
$messaggio->CharSet = "UTF-8";
$messaggio->Body=strip_tags($testo_email);
$messaggio->AddAttachment( $allegato );
if(!$messaggio->Send()){
array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
}else{
array_push( $_SESSION['infos'], "Email inviata correttamente" );
add_storico_doc($id_record,"Documento inviato a mezzo mail a:".$destinatario);
}
break;
case "sendemail":
$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$oggetto = html_entity_decode($_POST['oggetto']);
$allegato = $_POST['allegato'];
$allegato_xml = $_POST['allegato_xml'];
$testo_email = html_entity_decode($_POST['body'], ENT_QUOTES);
$destinatario=$_POST['destinatario'];
$messaggio = new PHPmailer(str_replace( ",", ".", get_var("Indirizzo per le email in uscita") ));
$messaggio->FromName = str_replace( ",", ".", get_var("Nome Form Mail") );
$messaggio->From = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$messaggio->AddAddress($destinatario);
$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));
if ($mail_cc != ""){
$messaggio->AddCC($mail_cc);
}
$messaggio->Subject=($oggetto);
$testo_email=str_replace("<p>","",$testo_email);
$testo_email=str_replace("</p>","",$testo_email);
$messaggio->CharSet = "UTF-8";
$messaggio->Body=strip_tags($testo_email);
$messaggio->AddAttachment( $allegato );
if (file_exists($allegato_xml)) {
$messaggio->AddAttachment( $allegato_xml );
}
if(!$messaggio->Send()){
array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
}else{
array_push( $_SESSION['infos'], "Email inviata correttamente" );
add_storico_doc($id_record,"Documento inviato a mezzo mail a:".$destinatario);
}
break;
case"edit_pianifica":
// lettura documento attuale
$query = "SELECT * FROM co_documenti WHERE id='".$iddocumento."'";
$rs_doc= $dbo->fetchArray($query);
$idtecnico = intval( $_POST['idanagrafica'] );
$idstatointervento = save( $_POST['idstatointervento'] );
$idtipointervento = save( $_POST['idtipointervento'] );
$descrizione = save( $_POST['descrizione'] );
$id_matricola = save( $_POST['id_matricola'] );
$idriga = save( $_POST['idriga'] );
$periodo = saveDate( $_POST['data'] );
$periodo_f = saveDate( $_POST['data_f'] );
$orario = savetime( $_POST['orario'] );
$orario_fine = savetime( $_POST['orario_fine'] );
$or=date("H:i", strtotime($orario));
$or_f=date("H:i", strtotime($orario_fine));
$qta = save( $_POST['qta'] );
$qta_min = save( $_POST['qta_min'] );
$qta_min_calcolo = save( $_POST['qta_min'] );
$idsede=$rs_doc[0]['idsede'];
$richiesta=$rs_doc[0]['note'];
$query = "SELECT * FROM in_interventi WHERE idintervento='".$iddocumento."'";
$rs_int= $dbo->fetchArray($query);
$test_da=date("Y-m-d", strtotime($periodo))." ".$or.":00";
$test_a=date("Y-m-d", strtotime($periodo_f))." ".$or_f.":00";
$qana = "SELECT * FROM my_impianti WHERE nome='".$id_matricola."'";
$rs_matricola = $dbo->fetchArray($qana);
$inserisci="1";
$query_s = "SELECT * FROM in_interventi_tecnici WHERE idintervento='".$rs_doc[0]['id']."' and idtecnico='".$idtecnico."'";
$rs_test= $dbo->fetchArray($query_s);
for( $i=0; $i<sizeof($rs_test); $i++ ){
$or_in=$rs_test[$i]['orario_inizio'];
$or_fi=$rs_test[$i]['orario_fine'];
if (( $test_da > $or_in ) && ( $test_da < $or_fi )) {
$inserisci="0";
}
if (( $test_a > $or_in ) && ( $test_a < $or_fi )) {
$inserisci="0";
}
if( $inserisci == '1' ){
if (( $test_da < $or_in ) || ( $test_da < $or_fi )) {
$inserisci="0";
if ( $test_a < $or_fi ) {
$inserisci="1";
}
}
}
}
if( $inserisci == '0' ){
array_push( $_SESSION['errors'], "Pianificazione gia presente per questo tecnico e periodo" );
}
else{
if( sizeof($rs_int) > 0 ){
}
else{
$dbo->query("INSERT INTO in_interventi( idintervento, idanagrafica, idtipointervento, idstatointervento, idsede, data_richiesta ) VALUES
(\"".$rs_doc[0]['id']."\", \"".$rs_doc[0]['idanagrafica']."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$idsede."\", \"".$periodo."\" )" );
}
$dbo->query("INSERT INTO in_interventi_tecnici( id_riga_riferimento_documento,id_impianto,matricola_impianto,descrizione_att ,idintervento, idtecnico, idtipointervento, idstatointervento,km, orario_inizio, orario_fine )
VALUES( \"".$idriga."\",\"".$rs_matricola[0]['id']."\",\"".$rs_matricola[0]['matricola']."\",\"".$descrizione."\",\"".$rs_doc[0]['id']."\", \"".$idtecnico."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$km."\", \"".( date("Y-m-d", strtotime($periodo)) )." ".$or."\", \"".( date("Y-m-d", strtotime($periodo_f)) )." ".$or_f."\")" );
array_push( $_SESSION['infos'], "Pianificazione inserita" );
add_storico_doc($id_record,"Eseguita pianificazione attivita");
}
break;
case "modifica_pianifica":
// lettura documento attuale
$query = "SELECT id FROM co_documenti WHERE id='".$iddocumento."'";
$rs_doc= $dbo->fetchArray($query);
$idtecnico = intval( $_POST['idanagrafica'] );
$idstatointervento = save( $_POST['idstatointervento'] );
$idtipointervento = save( $_POST['idtipointervento'] );
$descrizione = save( $_POST['descrizione1'] );
$idriga = save( $_POST['idriga'] );
$id_matricola = save( $_POST['id_matricola'] );
$periodo = saveDate( $_POST['data'] );
$periodo_f = saveDate( $_POST['data_f'] );
$orario = savetime( $_POST['orario'] );
$orario_fine = savetime( $_POST['orario_fine'] );
$or=date("H:i", strtotime($orario));
$or_f=date("H:i", strtotime($orario_fine));
$test_da=date("Y-m-d", strtotime($periodo))." ".$or.":00";
$test_a=date("Y-m-d", strtotime($periodo_f))." ".$or_f.":00";
$inserisci="1";
$query_s = "SELECT * FROM in_interventi_tecnici WHERE idintervento='".$rs_doc[0]['id']."' and idtecnico='".$idtecnico."'";
$rs_test= $dbo->fetchArray($query_s);
// Info matricola
$qana = "SELECT * FROM my_impianti WHERE matricola='".$id_matricola."'";
$rs_matricola = $dbo->fetchArray($qana);
for( $i=0; $i<sizeof($rs_test); $i++ ){
$or_in=$rs_test[$i]['orario_inizio'];
$or_fi=$rs_test[$i]['orario_fine'];
$id_r=$rs_test[$i]['id'];
if (( $test_da > $or_in ) && ( $test_da < $or_fi ) ) {
if ( $idriga != $id_r ) $inserisci="0";
}
if (( $test_a > $or_in ) && ( $test_a < $or_fi ) ) {
if ( $idriga != $id_r ) $inserisci="0";
}
if( $inserisci == '1' ){
if (( $test_da < $or_in ) || ( $test_da < $or_fi ) ) {
if ( $idriga != $id_r ) $inserisci="0";
if ( $test_a < $or_fi ) {
$inserisci="1";
}
}
}
}
if( $inserisci == '0' ){
array_push( $_SESSION['errors'], "Pianificazione gia presente per questo tecnico e periodo" );
}
else{
// prelevo eventuale firMa e poi elimino old record
$query = "SELECT id , id_riga_riferimento_documento, firma_file , firma_data FROM in_interventi_tecnici WHERE id='".$idriga."'";
$rs_firma= $dbo->fetchArray($query);
$firma_file=$rs_firma[0]['firma_file'];
$firma_data=$rs_firma[0]['firma_data'];
$id_old=$rs_firma[0]['id'];
$id_riga_riferimento_documento=$rs_firma[0]['id_riga_riferimento_documento'];
$dbo->query( "DELETE FROM in_interventi_tecnici WHERE id='$idriga'" );
$qta = save( $_POST['qta'] );
$qta_min = save( $_POST['qta_min'] );
$qta_min_calcolo = save( $_POST['qta_min'] );
$idsede="0";
$dbo->query("INSERT INTO in_interventi_tecnici( id,id_riga_riferimento_documento, id_impianto,matricola_impianto,firma_file,firma_data,descrizione_att,idintervento, idtecnico, idtipointervento, idstatointervento,km, orario_inizio, orario_fine )
VALUES( \"".$id_old."\" , \"".$id_riga_riferimento_documento."\" , \"".$rs_matricola[0]['id']."\",\"".$rs_matricola[0]['matricola']."\" , \"".$firma_file."\",\"".$firma_data."\",\"".$descrizione."\",\"".$rs_doc[0]['id']."\", \"".$idtecnico."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$km."\", \"".( date("Y-m-d", strtotime($periodo)) )." ".$or."\", \"".( date("Y-m-d", strtotime($periodo_f)) )." ".$or_f."\")" );
array_push( $_SESSION['infos'], "Pianificazione modificata" );
add_storico_doc($id_record,"Eseguita modifica pianificazione attivita");
}
break;
case "unlink_pianifica":
$idriga = $_SESSION['idriga_pianificazione'] ;
if( sizeof($idriga) > 0 ){
$dbo->query( "DELETE FROM in_interventi_tecnici WHERE id='$idriga'" );
array_push( $_SESSION['infos'], "Pianificazione eliminata" );
add_storico_doc($id_record,"Rimossa pianificazione attivita");
$_SESSION['idriga_pianificazione'] ="";
}
break;
case "documento_differito";
$iddocumento_padre = save( $_POST['id_documentopadre'] );
doc_differito_crea($id_record,$iddocumento_padre,'0' );
array_push( $_SESSION['infos'], "Creato nuovo documento!" );
add_storico_doc($id_record,"Creazione documento differito");
break;
case "firma":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$query = "SELECT id , idintervento FROM in_interventi_tecnici WHERE id='".$id_record."'";
$rs_doc= $dbo->fetchArray($query);
$id_record=$rs_doc[0]['idintervento'];
$id_riga=$rs_doc[0]['id'];
$directory_exists = false;
if( !file_exists($docroot."/files/interventi") ){
if( @mkdir($docroot."/files/interventi") ){
$directory_exists = true;
}
}
else{
$directory_exists = true;
}
if( $directory_exists ){
if( $html->form('firma_base64', 'post') != '' ){
//Salvataggio firma
$firma_file = "firma_".time().".png";
$firma_nome = $_POST['firma_nome'];
$ifp = @fopen( $docroot."/files/interventi/".$firma_file, "wb" );
$data = explode(',', $html->form('firma_base64', 'post') );
@fwrite( $ifp, base64_decode($data[1]) );
@fclose( $ifp );
if( $dbo->query("UPDATE in_interventi_tecnici SET firma_file=\"".$firma_file."\", firma_data=NOW(), firma_nome = \"".$firma_nome."\" WHERE id=\"".$id_riga."\"") ){
array_push( $_SESSION['infos'], "Firma salvata correttamente!" );
add_storico_doc($id_record,"Eseguita firma attivita");
}
else{
array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma nel database!" );
}
}
else{
array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma! La firma risulta vuota..." );
}
}
else{
array_push( $_SESSION['errors'], "Non è stato possibile creare la cartella <b>/files/interventi</b> per salvare l'immagine della firma!" );
}
}
break;
case "addriga_spese_pianifica":
$idintervento = $html->form('idintervento', 'post');
$idriga = $html->form('idriga', 'post');
$data_mov = saveDate( $_POST['data_mov'] );
$descrizione = $html->form('descrizione', 'post');
$qta = force_decimal( $html->form('qta', 'post') );
$um = "";
$prezzo_vendita = force_decimal( $html->form('prezzo_vendita', 'post') );
$prezzo_acquisto= "0";
$sconto_prc = "0";
$sconto = "0";
$dbo->query("INSERT INTO in_righe_interventi( data_movimento ,idriga_pianifica,descrizione, qta, um, prezzo_vendita, prezzo_acquisto, sconto, sconto_prc, idintervento ) VALUES
( \"".$data_mov."\",\"".$idriga."\",\"".$descrizione."\", \"".$qta."\", \"".$um."\", \"".$prezzo_vendita."\", \"".$prezzo_acquisto."\", \"".$sconto."\", \"".$sconto_prc."\",\"".$idintervento."\" )");
break;
case "delriga":
$idriga = $html->form('idriga', 'post');
$dbo->query("DELETE FROM in_righe_interventi WHERE id='".$idriga."'");
break;
case "delrigaart":
$idriga = $html->form('idriga', 'post');
$dbo->query("DELETE FROM mg_articoli_interventi WHERE id='".$idriga."'");
break;
case "inserisco_riga_come_posizione":
$query = "SELECT * FROM in_righe_interventi WHERE idintervento='".$iddocumento."'";
$rs_riga = $dbo->fetchArray($query);
//Processo solo le righe con qta da evadere maggiore di zero
for( $i=0; $i<sizeof($rs_riga); $i++ ){
$idarticolo=$rs_riga[$i]['idarticolo'];
$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
$qta = $rs_riga[$i]['qta'];
$prezzo = $rs_riga[$i]['prezzo_vendita'];
$ins_doppia=0;
//Calcolo iva
$idiva = get_var("Iva predefinita");
$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
$rs = $dbo->fetchArray($query);
$iva = ($prezzo-$sconto)/100*$rs[0]['percentuale'];
$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
$desc_iva = $rs[0]['descrizione'];
$idconto=get_var_documento($iddocumento,'idconto');
//Aggiunta riga generica sul documento
$query = "INSERT INTO co_righe_documenti( iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps,
rivalsainps, idritenutaacconto, ritenutaacconto,idconto)
VALUES( \"$iddocumento\", \"".$idiva."\", \"$desc_iva\", \"$iva\", \"$iva_indetraibile\", '".$rs_riga[$i]['descrizione']."', \"$prezzo\", \"$sconto\", \"$um\", \"$qta\", '',
'', '', '' , \"".$idconto."\" )";
$dbo->query($query);
}
array_push( $_SESSION['infos'], "Inserito righe come posizioni" );
break;
case "inserisco_art_come_posizione":
$query = "SELECT * FROM mg_articoli_interventi WHERE idintervento='".$iddocumento."'";
$rs_riga = $dbo->fetchArray($query);
//Processo solo le righe con qta da evadere maggiore di zero
$id_magazzino_e = get_var_tipodoc2($iddocumento,"id_magazzino_e");
for( $i=0; $i<sizeof($rs_riga); $i++ ){
$idarticolo=$rs_riga[$i]['idarticolo'];
$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
$qta = $rs_riga[$i]['qta'];
$prezzo = $rs_riga[$i]['prezzo_vendita'];
$ins_doppia=0;
$riga_canone=0;
$riga_canone1=0;
// cerco evantuali posizioni di contratto fisse se presente un contratto associato
if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$idarticolo);
$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$idarticolo);
$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
$qta_disp=$qta_scalare - $qta_consumata;
if( $qta_scalare != '' ){
$riga_canone=1;
if( $qta_disp >= $qta ){
$prezzo="0";
}else{
$qta_new=$qta - $qta_disp;;
$prezzo_new =$prezzo;
$qta=$qta_disp;
$prezzo="0";
$ins_doppia=1;
$riga_canone1=2;
$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
}
}else{
// la qta disponibile non presente , cerco eventuale prezzo imposto
$riga_canone1=2;
$riga_canone=2;
$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
if( $prezzo_new != '' ) $prezzo=$prezzo_new;
if( $prezzo_new == '' ) $riga_canone=0;
}
$forza_zero=cerca_contratti_a_zero($records[0]['id_contratto']);
if( $forza_zero == '1' ){
$prezzo_new=0;
$prezzo=0;
$riga_canone=2;
$riga_canone1=2;
}
}
$idriga = add_articolo_infattura( $iddocumento, $idarticolo, $rs_riga[$i]['descrizione'], $rs_riga[$i]['idiva_vendita'], $qta, $prezzo, 0, '0', '', '', '' ,$idconto,'',0,0,0,$idmagazzino,$riga_canone);
//Imposto la provenienza del documento e la qta ottenuta dalla transazione
$qana = "SELECT matricola FROM my_impianti WHERE id='".$records[0]['id_impianto']."'";
$rs_matricola = $dbo->fetchArray($qana);
$matricola=$rs_matricola[0]['matricola'];
$dbo->query( "UPDATE co_righe_documenti SET inserito_posizione_idriga ='".$rs_riga[$i]['idarticolo']."', id_impianto='".$records[0]['id_impianto']."' ,matricola_impianto='".$matricola."' WHERE id=\"".$idriga."\"" );
if($ins_doppia=='1'){
$idriga = add_articolo_infattura2( $iddocumento, $idarticolo, $rs_riga[$i]['descrizione'], $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', '', '', '' , $idconto,'','','','' ,$idmagazzino , $riga_canone1 );
$dbo->query( "UPDATE co_righe_documenti SET inserito_posizione_idriga ='".$rs_riga[$i]['idarticolo']."', id_impianto='".$records[0]['id_impianto']."' ,matricola_impianto='".$matricola."' WHERE id=\"".$idriga."\"" );
}
}
array_push( $_SESSION['infos'], "Inserito articoli come posizioni" );
break;
case "addarticolo_p":
$idarticolo = $html->form('idarticolo', 'post');
$idriga = $html->form('idriga', 'post');
$data_mov = saveDate( $_POST['data_mov'] );
$idintervento = $html->form('idintervento', 'post');
$descrizione = $html->form('descrizione', 'post');
$idimpianto = $html->form('idimpianto', 'post');
$lotto = $html->form('lotto', 'post');
$serial = $html->form('serial', 'post');
$altro = $html->form('altro', 'post');
$qta = $html->form('qta', 'post', true, 'decimal');
$um = query_secca("","idum","mg_articoli","where id ='".$idarticolo."'");
$um = query_secca("","valore","mg_unitamisura","where id ='".$um."'");
$prezzo_acquisto= "0";
$prezzo_vendita = $html->form('prezzo_vendita', 'post', true, 'decimal');
$sconto_unitario= "0";
$sconto_prc = "0";
//Aggiunto il collegamento fra l'articolo e l'intervento
$dbo->query("INSERT INTO mg_articoli_interventi( data_movimento ,idriga_pianifica,idarticolo, idintervento, idimpianto, idautomezzo, descrizione, lotto, serial, altro, prezzo_vendita, prezzo_acquisto, sconto, sconto_prc, idiva_vendita, qta, um ) VALUES
( \"".$data_mov."\",\"".$idriga."\",'".$idarticolo."', '".$idintervento."', '".$idimpianto."', '".$idautomezzo."', \"".$descrizione."\", \"".$lotto."\", \"".$serial."\", \"".$altro."\", \"".$prezzo_vendita."\", \"".$prezzo_acquisto."\", \"".$sconto_unitario."\", \"".$sconto_prc."\", (SELECT idiva_vendita FROM mg_articoli WHERE id=\"".$idarticolo."\"), \"".$qta."\", \"".$um."\" )");
break;
case "editnumero":
$new_numero = $html->form('new_numero', 'post');
$tipo_documento=get_var_tipodoc2($iddocumento,'idtipodocumento');
$query = "SELECT numero_esterno FROM co_documenti WHERE numero_esterno='".$new_numero."' and idtipodocumento='".$tipo_documento."'";
$rs = $dbo->fetchArray($query);
if (sizeof($rs) > 0) {
array_push( $_SESSION['errors'], "Il numero documento ".$new_numero." gia presente in archivio" );
}
else{
$suffisso=get_var_tipodoc2($iddocumento,'txt_suffisso');
$suffisso_anno=get_var_tipodoc2($iddocumento,'suffisso_anno');
$numero_documento=$suffisso.$new_numero;
if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
$dbo->query( "UPDATE co_documenti SET numero_esterno = '".$new_numero."' , numero_documento = '".$numero_documento."' WHERE id='".$iddocumento."'" );
array_push( $_SESSION['infos'], "Modifica numero documento salvata" );
add_storico_doc($iddocumento,"Modificato numero documento");
}
break;
case "editnumero_protocollo":
$new_numero = $html->form('new_numero', 'post');
$query = "SELECT numero_esterno FROM co_documenti WHERE id_protocollo='".$new_numero."'";
$rs = $dbo->fetchArray($query);
if (sizeof($rs) > 0) {
array_push( $_SESSION['errors'], "Il numero protoccolo ".$new_numero." gia presente in archivio" );
}
else{
$dbo->query( "UPDATE co_documenti SET id_protocollo = '".$new_numero."' WHERE id='".$iddocumento."'" );
array_push( $_SESSION['infos'], "Modifica numero portocollo salvata" );
add_storico_doc($iddocumento,"Modificato numero protocollo");
}
break;
case "editanagrafica":
$new_anagrafica = $html->form('idanagrafica_new', 'post');
$idagente=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");
$idbanca_vendite=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");
$dbo->query( "UPDATE co_documenti SET idanagrafica = '".$new_anagrafica."' , idbanca_vendite='".$idbanca_vendite."' , idagente='".$idagente."' , idsede='0' , matricola='' WHERE id='".$iddocumento."'" );
array_push( $_SESSION['infos'], "Modifica anagrafica documento salvata" );
add_storico_doc($iddocumento,"Modificato anagrafica documento");
break;
case "add_duplica":
$idtipodocumento = save( $_POST['idintervento'] );
$idanagrafica = save( $_POST['idanagrafica'] );
if ( $idtipodocumento <> '' ) {
// cerco impostazioni tipo documento
$idagente=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$idanagrafica."'");
$idbanca_vendite=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");
$idsede=get_var_tipodoc2($iddocumento ,'idsede');
$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
$dir=get_var_tipodoc($idtipodocumento,'dir');
$idconto=get_var_tipodoc($idtipodocumento,'idconto');
$matricola=get_var_documento($iddocumento ,'matricola');
$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
$idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');
$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');
$idmagazzino=get_var_tipodoc($idtipodocumento,'id_magazzino_e');
$data=date("Y-m-d");
if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );
if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);
if( $dir=='entrata' ){
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
else{
$numero_esterno = '';
$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
if( $forza_numerazione =='1' ){
// forzatura numero progressivo
if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
}
}
$numero_documento=$suffisso.$numero_esterno;
if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
//Creazione nuovo documento
//Tipo di pagamento predefinito dall'anagrafica
$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
$rs = $dbo->fetchArray($query);
$idpagamento = $rs[0]['id'];
$tab_testata=" co_documenti ";
$tab_righe=" co_righe_documenti ";
$tab_transazione=" co_documenti_transazioni ";
// testo se devo inserire il protocollo
$nuovo_id_protocollo=0;
$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
if( $mod_prodotollo=='1' ){
$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."' ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
}
// impostazione data protocollo
if( date ('d') <= 15){
$data_prot = date ('Y/m/15');
}else{
$data_prot = date ('Y/m/t');
}
//Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
if( $dir=='entrata' && $idpagamento=='' ) $idpagamento = $idpagamento_new;
$query = "INSERT INTO ".$tab_testata." ( id_protocollo,data_prot,idbanca_vendite,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede , matricola) VALUES
( \"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idbanca_vendite."\",\"".$idagente."\",\"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\", NOW() ,
\"".$idstato."\",\"".$idsede."\",\"".$matricola."\")";
$dbo->query($query);
$iddocumento_new = $dbo->last_inserted_id();
$query = "SELECT * FROM co_righe_documenti WHERE iddocumento='".$iddocumento."' order by id";
$rs_riga = $dbo->fetchArray($query);
for( $ri=0; $ri<sizeof($rs_riga); $ri++ ){
if( $rs_riga[$ri]['riga_varia'] == '1' ){
$query = "INSERT INTO co_righe_documenti( iddocumento, descrizione , riga_varia) VALUES( '".$iddocumento_new."','".$rs_riga[$ri]['descrizione']."', '1' )";
$dbo->fetchArray($query);
}else{
if( $rs_riga[$ri]['idarticolo'] == '0' ){
$query = "INSERT INTO co_righe_documenti( iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps, rivalsainps,
idritenutaacconto, ritenutaacconto,idconto,tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1,importo_agente,importo_iva_agente,perc_agente)
VALUES( \"$iddocumento_new\", '".$rs_riga[$ri]['idiva']."','".$rs_riga[$ri]['desc_iva']."','".$rs_riga[$ri]['iva']."','".$rs_riga[$ri]['iva_indetraibile']."','".$rs_riga[$ri]['descrizione']."','
".$rs_riga[$ri]['subtotale']."','".$rs_riga[$ri]['sconto']."','".$rs_riga[$ri]['um']."','".$rs_riga[$ri]['qta']."','".$rs_riga[$ri]['idrivalsainps']."','
".$rs_riga[$ri]['rivalsainps']."','".$rs_riga[$ri]['idritenutaacconto']."','".$rs_riga[$ri]['ritenutaacconto']."','".$rs_riga[$ri]['idconto']."','".$rs_riga[$ri]['tipo_sconto']."',
'".$rs_riga[$ri]['sconto_primo']."','".$rs_riga[$ri]['sconto_extra']."','".$rs_riga[$ri]['sconto_extra1']."','".$rs_riga[$ri]['importo_agente']."','".$rs_riga[$ri]['importo_iva_agente']."','".$rs_riga[$ri]['perc_agente']."')";
$dbo->fetchArray($query);
}else{
$idriga = add_articolo_infattura( $iddocumento_new, $rs_riga[$ri]['idarticolo'], $rs_riga[$ri]['descrizione'], $rs_riga[$ri]['idiva'], $rs_riga[$ri]['qta'], $rs_riga[$ri]['subtotale'],$rs_riga[$ri]['sconto'], '0', '', '', '' ,
$rs_riga[$ri]['idconto'],$rs_riga[$ri]['tipo_sconto'],$rs_riga[$ri]['sconto_primo'],$rs_riga[$ri]['sconto_extra'],$rs_riga[$ri]['sconto_extra1'],$rs_riga[$ri]['id_magazzino'],'','','' );
}
}
}
array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero_documento."!" );
add_storico_doc($iddocumento,"Generato nuovo documento con la funzione duplica");
add_storico_doc($iddocumento_new,"Documento generato da Duplica");
}
break;
case "edit_stato_invio_xml":
$id_progressivo = save( $_POST['id_progressivo'] );
$id_stato_invio = save( $_POST['idintervento'] );
$data_invio_xml = saveDate( $_POST['data_invio_xml'] );
$orario = savetime( $_POST['orario'] );
$or=date("H:i", strtotime($orario));
$data_invio_xml=date("Y-m-d", strtotime($data_invio_xml))." ".$or.":00";
if ( $id_progressivo <> '' ) {
$dbo->query( "UPDATE co_documenti_progressivo SET inviato = '".$id_stato_invio."' , data_invio='".$data_invio_xml."' WHERE id='".$id_progressivo."'" );
array_push( $_SESSION['infos'], "Stato invio modificato" );
}
break;
case "edit_esito_invio_xml":
$id_progressivo = save( $_POST['id_progressivo'] );
$id_stato_invio = save( $_POST['idintervento'] );
$data_invio_xml = saveDate( $_POST['data_invio_xml'] );
$orario = savetime( $_POST['orario'] );
$or=date("H:i", strtotime($orario));
$data_invio_xml=date("Y-m-d", strtotime($data_invio_xml))." ".$or.":00";
if ( $id_progressivo <> '' ) {
$dbo->query( "UPDATE co_documenti_progressivo SET esito = '".$id_stato_invio."' , data_esito='".$data_invio_xml."' WHERE id='".$id_progressivo."'" );
array_push( $_SESSION['infos'], "Stato invio modificato" );
}
break;
case "edit_link_xml":
$id_link = save( $_POST['id_link'] );
$iddocumento = save( $_POST['iddocumento'] );
$query="Insert into co_documenti_transazioni (idpadre,idfiglio,data_transazione,idutente) values (\"".$id_link."\", \"".$iddocumento."\",NOW(), '".$_SESSION['idutente']."')";
$dbo->query($query);
break;
case "add_qta":
$idriga = save( $_POST['idriga'] );
mod_riga($idriga,"A") ;
break;
case "del_qta":
$idriga = save( $_POST['idriga'] );
mod_riga($idriga,"S") ;
break;
case "firma_totale":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$directory_exists = false;
if( !file_exists($docroot."/files/interventi_complessivo") ){
if( @mkdir($docroot."/files/interventi_complessivo") ){
$directory_exists = true;
}
}
else{
$directory_exists = true;
}
if( $directory_exists ){
if( $html->form('firma_base64', 'post') != '' ){
//Salvataggio firma
$firma_file = "firma_".time().".png";
$firma_nome = $_POST['firma_nome'];
$ifp = @fopen( $docroot."/files/interventi_complessivo/".$firma_file, "wb" );
$data = explode(',', $html->form('firma_base64', 'post') );
@fwrite( $ifp, base64_decode($data[1]) );
@fclose( $ifp );
if( $dbo->query("UPDATE in_interventi SET firma_file=\"".$firma_file."\", firma_data=NOW(), firma_nome = \"".$firma_nome."\" WHERE idintervento=\"".$id_record."\"") ){
$dbo->query("UPDATE co_documenti SET firma_file=\"".$firma_file."\", firma_data=NOW(), firma_nome = \"".$firma_nome."\" WHERE id=\"".$id_record."\"");
array_push( $_SESSION['infos'], "Firma salvata correttamente!" );
}
else{
array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma nel database!" );
}
}
else{
array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma! La firma risulta vuota..." );
}
}
else{
array_push( $_SESSION['errors'], "Non è stato possibile creare la cartella <b>/files/interventi</b> per salvare l'immagine della firma!" );
}
}
break;
}
?>