Fix movimenti in aggiunta ed eliminazione di contratti e preventivi
This commit is contained in:
parent
cfd3f21e42
commit
652791d91c
|
@ -593,8 +593,16 @@ switch (post('op')) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Aggiunta riga preventivo sul documento
|
// Aggiunta riga preventivo sul documento
|
||||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idpreventivo, idconto, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, `order`) VALUES('.prepare($id_record).', '.prepare($idpreventivo).', '.prepare($idconto).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
$query = 'INSERT INTO co_righe_documenti(iddocumento, idpreventivo, is_preventivo, idconto, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, `order`) VALUES('.prepare($id_record).', '.prepare($idpreventivo).', "1", '.prepare($idconto).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
|
// Scarico gli articoli nel preventivo
|
||||||
|
$righe = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE idpreventivo='.prepare($idpreventivo));
|
||||||
|
foreach ($righe as $key => $riga) {
|
||||||
|
if (!empty($riga['idarticolo'])) {
|
||||||
|
add_movimento_magazzino($riga['idarticolo'], -$riga['qta'], ['iddocumento' => $id_record]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aggiorno lo stato degli interventi collegati al preventivo se ce ne sono
|
// Aggiorno lo stato degli interventi collegati al preventivo se ce ne sono
|
||||||
|
@ -671,12 +679,20 @@ switch (post('op')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aggiunta riga contratto sul documento
|
// Aggiunta riga contratto sul documento
|
||||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, calcolo_ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(get_var("Metodologia calcolo ritenuta d'acconto predefinito")).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
$query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_contratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, calcolo_ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', "1", '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(get_var("Metodologia calcolo ritenuta d'acconto predefinito")).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||||
if ($dbo->query($query)) {
|
if ($dbo->query($query)) {
|
||||||
$_SESSION['infos'][] = tr('Contratto _NUM_ aggiunto!', [
|
$_SESSION['infos'][] = tr('Contratto _NUM_ aggiunto!', [
|
||||||
'_NUM_' => $numero,
|
'_NUM_' => $numero,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
//Scalo le qta degli articoli nel contratto
|
||||||
|
$righe = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||||
|
foreach ($righe as $key => $riga) {
|
||||||
|
if (!empty($riga['idarticolo'])) {
|
||||||
|
add_movimento_magazzino($riga['idarticolo'], -$riga['qta'], ['iddocumento' => $id_record]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Aggiorno il budget sul contratto con l'importo inserito in fattura e imposto lo stato del contratto "In attesa di pagamento" (se selezionato)
|
// Aggiorno il budget sul contratto con l'importo inserito in fattura e imposto lo stato del contratto "In attesa di pagamento" (se selezionato)
|
||||||
if ($aggiorna_budget) {
|
if ($aggiorna_budget) {
|
||||||
$dbo->query('UPDATE co_contratti SET budget='.prepare($prezzo).' WHERE id='.prepare($idcontratto));
|
$dbo->query('UPDATE co_contratti SET budget='.prepare($prezzo).' WHERE id='.prepare($idcontratto));
|
||||||
|
@ -1240,25 +1256,27 @@ switch (post('op')) {
|
||||||
$idriga = post('idriga');
|
$idriga = post('idriga');
|
||||||
|
|
||||||
// Lettura preventivi collegati
|
// Lettura preventivi collegati
|
||||||
$query = 'SELECT iddocumento, idpreventivo, idarticolo FROM co_righe_documenti WHERE id='.prepare($idriga);
|
$query = 'SELECT iddocumento, idpreventivo, is_preventivo, idarticolo FROM co_righe_documenti WHERE id='.prepare($idriga);
|
||||||
$rsp = $dbo->fetchArray($query);
|
$rsp = $dbo->fetchArray($query);
|
||||||
$id_record = $rsp[0]['iddocumento'];
|
$id_record = $rsp[0]['iddocumento'];
|
||||||
$idpreventivo = $rsp[0]['idpreventivo'];
|
$idpreventivo = $rsp[0]['idpreventivo'];
|
||||||
|
$is_preventivo = $rsp[0]['is_preventivo'];
|
||||||
$idarticolo = $rsp[0]['idarticolo'];
|
$idarticolo = $rsp[0]['idarticolo'];
|
||||||
|
|
||||||
//preventivo su unica riga, perdo il riferimento dell'articolo quindi lo vado a leggere da co_righe_preventivi
|
//preventivo su unica riga, perdo il riferimento dell'articolo quindi lo vado a leggere da co_righe_preventivi
|
||||||
if (empty($idarticolo)){
|
if ( empty($idarticolo) && $is_preventivo ){
|
||||||
//rimetto a magazzino gli articoli collegati al preventivo
|
//rimetto a magazzino gli articoli collegati al preventivo
|
||||||
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($idpreventivo));
|
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($idpreventivo));
|
||||||
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||||
if (!empty($rsa[$i]['idarticolo']))
|
if (!empty($rsa[$i]['idarticolo']))
|
||||||
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
||||||
//rimuovi_articolo_dafattura($rsa[$i]['idarticolo'], $id_record, $idriga);
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
if ( !empty($idarticolo) ){
|
||||||
$rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta FROM co_righe_documenti WHERE id = '.prepare($idriga).' AND idintervento IS NULL');
|
$rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta FROM co_righe_documenti WHERE id = '.prepare($idriga).' AND idintervento IS NULL');
|
||||||
rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga);
|
rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND id='.prepare($idriga);
|
$query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND id='.prepare($idriga);
|
||||||
|
@ -1306,7 +1324,7 @@ switch (post('op')) {
|
||||||
$idriga = post('idriga');
|
$idriga = post('idriga');
|
||||||
|
|
||||||
// Lettura contratti collegati
|
// Lettura contratti collegati
|
||||||
$query = 'SELECT iddocumento, idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto IS NOT NULL AND NOT idcontratto=0';
|
$query = 'SELECT iddocumento, idcontratto, is_contratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto IS NOT NULL AND NOT idcontratto=0';
|
||||||
$rsp = $dbo->fetchArray($query);
|
$rsp = $dbo->fetchArray($query);
|
||||||
$id_record = $rsp[0]['iddocumento'];
|
$id_record = $rsp[0]['iddocumento'];
|
||||||
$idcontratto = $rsp[0]['idcontratto'];
|
$idcontratto = $rsp[0]['idcontratto'];
|
||||||
|
@ -1338,6 +1356,13 @@ switch (post('op')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Riporto a magazzino gli articoli nelle righe del contratto
|
||||||
|
$rsa = $dbo->fetchArray("SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto=".prepare($idcontratto));
|
||||||
|
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||||
|
if (!empty($rsa[$i]['idarticolo']))
|
||||||
|
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
||||||
|
}
|
||||||
|
|
||||||
// Ricalcolo inps, ritenuta e bollo
|
// Ricalcolo inps, ritenuta e bollo
|
||||||
if ($dir == 'entrata') {
|
if ($dir == 'entrata') {
|
||||||
ricalcola_costiagg_fattura($id_record);
|
ricalcola_costiagg_fattura($id_record);
|
||||||
|
|
|
@ -1094,6 +1094,26 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Rimozione articoli collegati ad un preventivo importato con riga unica
|
||||||
|
if(empty($riga['idarticolo']) && $riga['is_preventivo']){
|
||||||
|
//rimetto a magazzino gli articoli collegati al preventivo
|
||||||
|
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($riga['idpreventivo']));
|
||||||
|
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||||
|
if (!empty($rsa[$i]['idarticolo']))
|
||||||
|
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_documento]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rimozione articoli collegati ad un contratto importato con riga unica
|
||||||
|
if(empty($riga['idarticolo']) && $riga['is_contratto']){
|
||||||
|
//rimetto a magazzino gli articoli collegati al contratto
|
||||||
|
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto = '.prepare($riga['idcontratto']));
|
||||||
|
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||||
|
if (!empty($rsa[$i]['idarticolo']))
|
||||||
|
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_documento]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Aggiorno lo stato dell'ordine
|
// Aggiorno lo stato dell'ordine
|
||||||
if (!empty($riga['idordine']) && get_var('Cambia automaticamente stato ordini fatturati')) {
|
if (!empty($riga['idordine']) && get_var('Cambia automaticamente stato ordini fatturati')) {
|
||||||
$dbo->query('UPDATE or_ordini SET idstatoordine = (SELECT id FROM or_statiordine WHERE descrizione = '.prepare(get_stato_ordine($riga['idordine'])).') WHERE id = '.prepare($riga['idordine']));
|
$dbo->query('UPDATE or_ordini SET idstatoordine = (SELECT id FROM or_statiordine WHERE descrizione = '.prepare(get_stato_ordine($riga['idordine'])).') WHERE id = '.prepare($riga['idordine']));
|
||||||
|
|
|
@ -465,3 +465,6 @@ UPDATE `zz_settings` SET `tipo` = REPLACE(
|
||||||
|
|
||||||
-- Fix id delle Banche
|
-- Fix id delle Banche
|
||||||
UPDATE `zz_views` SET `enabled` = 0 WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'id';
|
UPDATE `zz_views` SET `enabled` = 0 WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'id';
|
||||||
|
|
||||||
|
-- Aggiunta campi per specificare se la riga importata è un import unico di pù righe
|
||||||
|
ALTER TABLE `co_righe_documenti` ADD `is_preventivo` TINYINT(1) NOT NULL AFTER `is_descrizione`, ADD `is_contratto` TINYINT(1) NOT NULL AFTER `is_preventivo`;
|
||||||
|
|
Loading…
Reference in New Issue