gest366/modules/import_pa/modutil.php

191 lines
7.9 KiB
PHP
Raw Permalink Normal View History

2021-02-24 20:40:04 +00:00
<?php
function addrigafatturapa($iddocumento, $descrizione, $importo_manuale, $qta, $aliva, $um, $ritenuta, $rivalsainps, $rivalsainps_iva, $rivalsainps_ritenuta ,$idcodart,$tipo_sconto,$valore_sconto,$sconto,$sconto_extra,$sconto_extra1){
global $dbo;
if( $iddocumento != '' ){
// leggo impostazioni documento
$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");
//Selezione costi da intervento
$descrizione=save($descrizione);
$importo_manuale = $importo_manuale;
if($qta==''){
$qta=1;
}
$qta = force_decimal($qta);
if($um==''){
$um="pz";
}
$aliva=force_decimal($aliva);
$query="select id from co_iva where percentuale='$aliva' and xml=1";
$rs = $dbo->fetchArray($query);
$idiva=$rs[0]['id'];
$subtot = $importo_manuale*$qta;
$sconto = $sconto*$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'];
if($rivalsainps!=''){
$query="select id from co_rivalsainps where percentuale='$rivalsainps' and id=(select valore from zz_impostazioni where nome='Percentuale rivalsa INPS')";
$rs = $dbo->fetchArray($query);
$idrivalsainps=$rs[0]['id'];
}else{
$idrivalsainps=0;
}
//Calcolo rivalsa inps
$query = "SELECT * FROM co_rivalsainps WHERE id='".$idrivalsainps."'";
$rs = $dbo->fetchArray($query);
$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
if($ritenuta!=''){
$query="select id from co_ritenutaacconto where percentuale='$ritenuta' and id=(select valore from zz_impostazioni where nome='Percentuale ritenuta d\'acconto')";
$rs = $dbo->fetchArray($query);
$idritenutaacconto=$rs[0]['id'];
}else{
$idritenutaacconto=0;
}
//Calcolo ritenuta d'acconto
$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$idritenutaacconto."'";
$rs = $dbo->fetchArray($query);
$ritenutaacconto = ($importo_manuale*$qta +$rivalsainps) / 100 * $rs[0]['percentuale'];
//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 , idarticolo , tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1 )
VALUES( '$iddocumento', '$idiva', '$desc_iva', '$iva', '$iva_indetraibile', '$descrizione', '$subtot', '$sconto', '$um', '$qta', '$idrivalsainps', '$rivalsainps', '$idritenutaacconto', '$ritenutaacconto','$idcodart','$tipo_sconto','$valore_sconto','$sconto_extra','$sconto_extra1' )";
if( $dbo->query($query) ){
if( $esegue_giacenza== 1 ) {
if( $id_magazzino_e == 0 ) {
$tabella=" mg_articoli ";
$where =" WHERE id='".$idcodart."'";
} else{
$tabella=" mg_articoli_magazzini ";
$where =" WHERE idarticolo='".$idcodart."' and idmagazzino='".$id_magazzino_e."' ";
}
$dbo->query( "UPDATE ".$tabella." SET qta=qta+".$qta.$where );
}
// 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='".$idcodart."' and idmagazzino='".$id_magazzino_u."' ";
$rs_test = $dbo->fetchArray("SELECT id FROM mg_articoli_magazzini WHERE idarticolo='".$idcodart."' AND idmagazzino='".$id_magazzino_u."'");
if( sizeof($rs_test) > 0 ){
$dbo->query( "UPDATE ".$tabella." SET qta=qta-".$old_qta.$sign.$qta.$where );
} else {
$dbo->query("INSERT INTO mg_articoli_magazzini( idarticolo, idmagazzino, qta ) VALUES ( '".$idcodart."', '".$id_magazzino_u."', '".$qta."' )");
}
}
if( $esegue_movimento== 1 ) add_movimento_magazzino( $idcodart, $qta, '', '0', '0', $iddocumento, '0' );
//Ricalcolo inps, ritenuta e bollo
if( $dir=='entrata' ){
ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto );
}else{
ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto);
}
}
}
}
function nuova_anagrafica($codice_ufficio,$denominazione_trasmittente,$denominazione_regime_fiscale,$denominazione_indirizzo,$denominazione_cap,$denominazione_comune,$denominazione_provincia,$cod_fiscale,$piva){
global $dbo;
$idtipoanagrafica = "4";
$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 = "1INSERT INTO an_anagrafiche( cod_sogei, ragione_sociale, codice, idagente,citta ,indirizzo,cap,provincia,codice_fiscale,piva) VALUES
// ( \"".$codice_ufficio."\",\"".$denominazione_trasmittente."\", \"".$codice."\", \"".$idagente."\", \"".$denominazione_comune."\",\"".$denominazione_indirizzo."\",\"".$denominazione_cap."\",\"".$denominazione_provincia."\",\"".$cod_fiscale."\",\"".$piva."\" )";
$query = "INSERT INTO an_anagrafiche( ragione_sociale, codice, idagente,citta ,indirizzo,cap,provincia,codice_fiscale,piva) VALUES
( \"".$denominazione_trasmittente."\", \"".$codice."\", \"".$idagente."\", \"".$denominazione_comune."\",\"".$denominazione_indirizzo."\",\"".$denominazione_cap."\",\"".$denominazione_provincia."\",\"".$cod_fiscale."\",\"".$piva."\" )";
$dbo->query($query);
$id_ananew = $dbo->last_inserted_id();
$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$id_ananew."\", '4')";
$dbo->query($query);
//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=\"".$id_ananew."\"");
return $id_ananew;
}
?>