gest366/modules/anagrafiche/actions.php
Alessandro f22b89901c Aggiornare 'modules/anagrafiche/actions.php'
Inserita la verifica se esiste una posizione generata e verifica se e'  cliente o fornitore e salva il contenuto della cella ragione_sociale del form html.
2021-05-02 11:12:25 +02:00

453 lines
20 KiB
PHP

<?php
if( $docroot == '' ){
die( _("Accesso negato!") );
}
switch( $html->form('op', 'post') ){
case "update":
$idanagrafica = $_POST['id_record'];
if( $modules_info[$module_name]["permessi"] == 'rw' ){
//leggo tutti i valori passati dal POST e li salvo in un array
$html_post = array();
foreach ($_POST as $key => $value) {
$html_post[$key] = save($value);
}
if( isset($_POST['id_record']) ){
include ($docroot . "/lib/salva_personalizzati.php");
$data_nascita = saveDate($html_post['data_nascita']);
if( $data_nascita == '' ){
$data_nascita = '';
}
( $_POST['perc_netto'] == 'on' ) ? $perc_netto=1 : $perc_netto=0;
( $_POST['perc_iva'] == 'on' ) ? $perc_iva=1 : $perc_iva=0;
$perc_agente = force_decimal($_POST['perc_agente']);
$query = "UPDATE an_anagrafiche SET ".
"componente_filename=\"".$html_post['componente_filename']."\",".
"ragione_sociale=\"".$html_post['ragione_sociale']."\",".
"tipo=\"".$html_post['tipo']."\",".
"piva=\"".$html_post['piva']."\",".
"codice_fiscale=\"".$html_post['codice_fiscale']."\",".
"data_nascita=\"".$data_nascita."\",".
"luogo_nascita=\"".$html_post['luogo_nascita']."\",".
"sesso=\"".$html_post['sesso']."\",".
"capitale_sociale=\"".$html_post['capitale_sociale']."\",".
"indirizzo=\"".$html_post['indirizzo']."\",".
"indirizzo2=\"".$html_post['indirizzo2']."\",".
"citta=\"".$html_post['citta']."\",".
"cap=\"".$html_post['cap']."\",".
"provincia=\"".$html_post['provincia']."\",".
"km=\"".str_replace( ",", ".", $html_post['km'] )."\",".
"id_nazione=\"".$html_post['nazione']."\",".
"telefono=\"".$html_post['telefono']."\",".
"cellulare=\"".$html_post['cellulare']."\",".
"fax=\"".$html_post['fax']."\",".
"email=\"".$html_post['email']."\",".
"idsede_fatturazione=\"".$html_post['idsede_fatturazione']."\",".
"note=\"".$html_post['note']."\",".
"codiceri=\"".$html_post['codiceri']."\",".
"codicerea=\"".$html_post['codicerea']."\",".
"appoggiobancario=\"".$html_post['appoggiobancario']."\",".
"filiale=\"".$html_post['filiale']."\",".
"codiceiban=\"".$html_post['codiceiban']."\",".
"bic=\"".$html_post['bic']."\",".
"diciturafissafattura=\"".$html_post['diciturafissafattura']."\",".
"idpagamento=\"".$html_post['idpagamento']."\",".
"idlistino=\"".$html_post['idlistino']."\",".
"idiva=\"".$html_post['idiva']."\",".
"settore=\"".$html_post['settore']."\",".
"marche=\"".$html_post['marche']."\",".
"dipendenti=\"".$html_post['dipendenti']."\",".
"macchine=\"".$html_post['macchine']."\",".
"idagente=\"".$html_post['idagente']."\",".
"idrelazione=\"".$html_post['idrelazione']."\",".
"sitoweb=\"".$html_post['sitoweb']."\",".
"idzona=\"".$html_post['idzona']."\",".
"nome_cognome=\"".$html_post['nome_cognome']."\",".
"iscrizione_tribunale=\"".$html_post['iscrizione_tribunale']."\",".
"cciaa=\"".$html_post['cciaa']."\",".
"cciaa_citta=\"".$html_post['cciaa_citta']."\",".
"n_alboartigiani=\"".$html_post['n_alboartigiani']."\",".
"foro_competenza=\"".$html_post['foro_competenza']."\",".
"colore=\"".$html_post['colore']."\",".
"colore_marker=\"".$html_post['colore_marker']."\",".
"cod_sogei=\"".$html_post['cod_sogei']."\",".
"lng=\"".$html_post['lng']."\",".
"lat=\"".$html_post['lat']."\",".
"cod_sogei_pec=\"".$html_post['cod_sogei_pec']."\",".
"perc_agente=\"".$perc_agente."\",".
"perc_netto=\"".$perc_netto."\",".
"esigibilita_iva=\"".$html_post['esigibilita_iva']."\",".
"identificativo_xml=\"".$html_post['identificativo_xml']."\",".
"perc_iva=\"".$perc_iva."\",".
"default_ritenuta_acconto=\"".$html_post['default_ritenuta_acconto']."\",". // release 2.3.5
"default_rivalsa_inps=\"".$html_post['default_rivalsa_inps']."\",". // release 2.3.5
"idtipointervento_default=\"".$html_post['idtipointervento_default']."\"".
"WHERE idanagrafica='$idanagrafica' ".$additional_where['Anagrafiche'];
$rs = $dbo->query( $query );
// log anagrafiche
add_storico($idanagrafica,"Eseguito modifica salvataggio anagrafica");
// testo se inserito banca appoggiobancario
$idbanca_vendite=$html_post['idbanca_vendite'];
if( $idbanca_vendite > 0 ){
$rs_banca = $dbo->fetchArray("SELECT * FROM co_banche WHERE id='".$idbanca_vendite."'");
$query = "UPDATE an_anagrafiche SET idbanca_vendite='".$idbanca_vendite."', appoggiobancario='".$rs_banca[0]['nome']."', filiale='".$rs_banca[0]['filiale']."',codiceiban='".$rs_banca[0]['iban']."',bic='".$rs_banca[0]['bic']."' WHERE idanagrafica='$idanagrafica'";
$rs = $dbo->query( $query );
}
/*
Salvataggio info componente (campo `contenuto`)
*/
$filename = save( $_POST['componente_filename'] );
$post_array = array();
foreach( $_POST as $impostazione_post=>$valore_impostazione_post ){
//Creo l'array con tutti i valori passati dal POST
$impostazione_post = str_replace( "_", " ", $impostazione_post );
$post_array[$impostazione_post] = save($valore_impostazione_post);
}
$nome = save($_POST['Nome']);
//Lettura info componente
if( file_exists($docroot."/files/my_impianti/".$filename) )
$contenuto = file_get_contents( $docroot."/files/my_impianti/".$filename );
else
$contenuto = '';
//Converto 'contenuto' di questo componente in un array
$ini_array = parse_ini_string( $contenuto, true );
//Creo variabile contenuto temporaneo
$contenuto_tmp = array();
//Resetto il valore di contenuto
$contenuto = '';
//Per ogni sezione dell'array estratto dal file ini
foreach ($ini_array as $sezione => $array_impostazioni){
$sezione = str_replace( "\r\n", "\n", $sezione );
$sezione = str_replace( "\n", "<br/>", $sezione );
$contenuto .= "[&quot;".$sezione."&quot;]\n";
//Per ogni impostazione
foreach ($array_impostazioni as $impostazione => $valore_impostazione){
//Quando trovo l'impostazione 'valore' la sostituisco con il valore passato dal post
if ($impostazione=='valore'){
$da = array($impostazione => $valore_impostazione);
$a = array($impostazione => $post_array[$sezione]);
$contenuto_tmp = array_replace($ini_array[$sezione], $da, $a);
foreach ($contenuto_tmp as $impostazione_tmp => $valore_impostazione_tmp){
$valore = $valore_impostazione_tmp;
$valore = str_replace( "\r\n", "\n", $valore );
$valore = str_replace( "\n", "<br/>", $valore );
$contenuto .= save($impostazione_tmp)." = &quot;".save($valore)."&quot;\n";
}
}
}
}
$dbo->query("UPDATE an_anagrafiche SET contenuto=\"".($contenuto)."\" WHERE idanagrafica='".$idanagrafica."'");
array_push( $_SESSION['infos'], "Informazioni per l'anagrafica ''".$html_post['ragione_sociale']."'' salvate correttamente!");
//Aggiorno il codice anagrafica se non è già presente, altrimenti lo ignoro
$esiste = $dbo->fetchNum("SELECT idanagrafica FROM an_anagrafiche WHERE codice=\"".$html_post['codice']."\" AND NOT idanagrafica=\"".$idanagrafica."\"", 1);
//Aggiorno gli agenti
$dbo->query("DELETE FROM an_anagrafiche_agenti WHERE idanagrafica=\"".$idanagrafica."\"");
$rs = $dbo->fetchArray("SELECT idagente FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."'");
$idagente = $rs[0]['idagente'];
$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
//Aggiorno le tipologie di anagrafica
$dbo->query("DELETE FROM an_tipianagrafiche_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\"");
foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
$dbo->query("INSERT INTO an_tipianagrafiche_anagrafiche(idtipoanagrafica,idanagrafica) VALUES( \"".$idtipoanagrafica."\", \"".$idanagrafica."\" )");
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
$tipoanagrafica_desc = $rs[0]['descrizione'];
if (($tipoanagrafica_desc=='Azienda') and ( get_var("Azienda predefinita") == "0" ))
array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
}
//Verifico se esiste già l'associazione dell'anagrafica a conti del partitario
$rs = $dbo->fetchArray("SELECT idconto_cliente, idconto_fornitore FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\"");
$idconto_cliente = $rs[0]['idconto_cliente'];
$idconto_fornitore = $rs[0]['idconto_fornitore'];
//TECNOGEST aggiornamento intestazione conto partitario
$rs = $dbo->fetchArray("SELECT id, descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto_cliente."\"");
if ($idconto_cliente <> '0' ){
$dbo->query("UPDATE co_pianodeiconti3 SET descrizione=\"".$html_post['ragione_sociale']."\" WHERE id=\"".$idconto_cliente."\"");
}
else{
$rs = $dbo->fetchArray("SELECT id, descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto_fornitore."\"");
$dbo->query("UPDATE co_pianodeiconti3 SET descrizione=\"".$html_post['ragione_sociale']."\" WHERE id=\"".$idconto_fornitore."\"");
}
//FINE
//Creo il relativo conto nel partitario se non esiste
if( $idconto_cliente == '0' ){
foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica=\"".$idtipoanagrafica."\"");
if( $rs[0]['descrizione'] == '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 );
$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$html_post['ragione_sociale']."\", (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."\"");
}
}
}
if( $idconto_fornitore == '0' ){
foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica=\"".$idtipoanagrafica."\"");
if( $rs[0]['descrizione'] == '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 );
$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$html_post['ragione_sociale']."\", (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."\"");
}
}
}
//Verifica dell'esistenza codice anagrafica
if( $esiste ){
array_push( $_SESSION['errors'], "Il codice anagrafica inserito esiste già! Inserirne un'altro...");
}
else{
$dbo->query("UPDATE an_anagrafiche SET codice=\"".$html_post['codice']."\" WHERE idanagrafica=\"".$idanagrafica."\"");
}
}
}
else{
array_push( $_SESSION['errors'], "Permesso negato!");
}
break;
case "add":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$idtipoanagrafica = $html->form( 'idtipoanagrafica', 'post', false );
$ragione_sociale = $html->form( 'ragione_sociale', 'post' );
$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
$tipoanagrafica_desc = $rs[0]['descrizione'];
//Inserimento anagrafica base
if( sizeof($idtipoanagrafica) > 0 && $ragione_sociale != '' ){
//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 ) VALUES ( \"".save($ragione_sociale)."\", \"".$codice."\", \"".$idagente."\" )";
$dbo->query($query);
$idanagrafica = $dbo->last_inserted_id();
if ( $idagente != 0 ){
$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
}
// log anagrafiche
add_storico($idanagrafica,"Eseguito inserimento nuova anagrafica");
}
//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_desc = $rs[0]['descrizione'];
if ($tipoanagrafica_desc=='Azienda')
array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
}
//Creo il relativo conto nel partitario
if( $tipoanagrafica_desc == '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."\", \"".$ragione_sociale."\", (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_desc == '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."\", \"".$ragione_sociale."\", (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."\"");
}
$id_record = $idanagrafica;
array_push( $_SESSION['infos'], "Aggiunta nuova anagrafica di tipo ''".$tipoanagrafica_desc."''" );
}
break;
case "delete":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
//Disattivo solamente l'anagrafica
$dbo->query("UPDATE an_anagrafiche SET deleted=1 WHERE idanagrafica=\"".$id_record."\" ".$additional_where['Anagrafiche']);
array_push( $_SESSION['infos'], "Anagrafica eliminata!" );
// log anagrafiche
add_storico($idanagrafica,"Anagrafica disattivata");
}
break;
case "sendemail":
$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$oggetto = html_entity_decode($_POST['oggetto']);
$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);
$messaggio->Subject=($oggetto);
$messaggio->Body=strip_tags($testo_email);
if(!$messaggio->Send()){
array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
}else{
array_push( $_SESSION['infos'], "Email to SMS inviata correttamente" );
// log anagrafiche
add_storico($idanagrafica,"Inviato nuovo SMS");
}
break;
case "sendemail_web":
$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );
$oggetto = html_entity_decode($_POST['oggetto']);
$test=get_var("Form Mail Lab");
$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);
$messaggio->Subject=($oggetto);
$messaggio->Body=strip_tags($testo_email);
$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));
if ($mail_cc != ""){
$messaggio->AddCC($mail_cc);
}
if(!$messaggio->Send()){
array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
}else{
array_push( $_SESSION['infos'], "Email inviata correttamente" );
// log anagrafiche
add_storico($_POST['id_record'],"Inviato nuova MAIL");
}
break;
}
?>