191 lines
7.9 KiB
PHP
191 lines
7.9 KiB
PHP
|
<?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;
|
||
|
}
|
||
|
|
||
|
?>
|