2528 lines
110 KiB
PHP
2528 lines
110 KiB
PHP
|
<?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;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
?>
|
||
|
|
||
|
|