mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-17 03:51:06 +01:00
Fix rimozione righe contratti e preventivi
This commit is contained in:
parent
631a588fe3
commit
6ca7efbfd4
@ -498,82 +498,32 @@ switch (post('op')) {
|
|||||||
$idriga = post('idriga');
|
$idriga = post('idriga');
|
||||||
|
|
||||||
// Lettura preventivi collegati
|
// Lettura preventivi collegati
|
||||||
$query = 'SELECT iddocumento, idpreventivo, is_preventivo, idarticolo, qta FROM co_righe_documenti WHERE id='.prepare($idriga);
|
$query = 'SELECT iddocumento, idpreventivo, idarticolo, id, qta, descrizione 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'];
|
||||||
$qta = $rsp[0]['qta'];
|
$qta = $rsp[0]['qta'];
|
||||||
|
|
||||||
// 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) {
|
rimuovi_articolo_dafattura($rsp[0]['idarticolo'], $id_record, $idriga);
|
||||||
// rimetto a magazzino gli articoli collegati al preventivo
|
|
||||||
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($idpreventivo));
|
|
||||||
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
|
||||||
if (!empty($rsa[$i]['idarticolo'])) {
|
|
||||||
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ripristino le quantità da evadere nel preventivo
|
|
||||||
$dbo->update('co_righe_preventivi',
|
|
||||||
[
|
|
||||||
'qta_evasa' => 0,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'idpreventivo' => $idpreventivo,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta, descrizione FROM co_righe_documenti WHERE id = '.prepare($idriga));
|
|
||||||
|
|
||||||
if (!empty($idarticolo)) {
|
|
||||||
rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ripristino le quantità da evadere nel preventivo
|
|
||||||
$dbo->update('co_righe_preventivi',
|
|
||||||
[
|
|
||||||
'qta_evasa' => 0,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'idarticolo' => $rs5[0]['idarticolo'],
|
|
||||||
'descrizione' => $rs5[0]['descrizione'],
|
|
||||||
'idpreventivo' => $idpreventivo,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ripristino le quantità da evadere nel preventivo
|
||||||
|
$query = 'UPDATE co_righe_preventivi SET qta_evasa = qta_evasa - '.$rsp[0]['qta'].' WHERE idarticolo='.prepare($rsp[0]['idarticolo']).' AND descrizione='.prepare($rsp[0]['descrizione']).' AND idpreventivo = '.prepare($idpreventivo);
|
||||||
|
$dbo->query($query);
|
||||||
|
|
||||||
$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);
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
$rs_righe = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE idpreventivo='.prepare($idpreventivo));
|
$rs_righe = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE idpreventivo='.prepare($idpreventivo));
|
||||||
|
|
||||||
if (sizeof($rs_righe) == 0) {
|
if (empty($rs_righe)) {
|
||||||
// Se ci sono dei preventivi collegati li rimetto nello stato "In attesa di pagamento"
|
// Se ci sono dei preventivi collegati li rimetto nello stato "In attesa di pagamento"
|
||||||
for ($i = 0; $i < sizeof($rsp); ++$i) {
|
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($idpreventivo));
|
||||||
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idpreventivo']));
|
|
||||||
|
|
||||||
// Aggiorno anche lo stato degli interventi collegati ai preventivi
|
// Aggiorno anche lo stato degli interventi collegati ai preventivi
|
||||||
$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id_preventivo=".prepare($rsp[$i]['idpreventivo']));
|
$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id_preventivo=".prepare($idpreventivo));
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Rimuovo tutti gli articoli dalla fattura collegati agli interventi di questo preventivo
|
|
||||||
*/
|
|
||||||
$rs2 = $dbo->fetchArray('SELECT id FROM in_interventi WHERE id_preventivo = '.prepare($idpreventivo));
|
|
||||||
for ($i = 0; $i < sizeof($rs2); ++$i) {
|
|
||||||
// Leggo gli articoli usati in questo intervento
|
|
||||||
$rs3 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($rs2[$i]['id']));
|
|
||||||
for ($j = 0; $j < sizeof($rs3); ++$j) {
|
|
||||||
// Leggo l'id della riga in fattura di questo articolo
|
|
||||||
$rs4 = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idarticolo='.prepare($rs3[$j]['idarticolo']));
|
|
||||||
for ($x = 0; $x < sizeof($rs4); ++$x) {
|
|
||||||
rimuovi_articolo_dafattura($rs3[$j]['idarticolo'], $id_record, $rs4[$x]['id']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ricalcolo inps, ritenuta e bollo
|
// Ricalcolo inps, ritenuta e bollo
|
||||||
@ -593,77 +543,30 @@ switch (post('op')) {
|
|||||||
$idriga = post('idriga');
|
$idriga = post('idriga');
|
||||||
|
|
||||||
// Lettura contratti collegati
|
// Lettura contratti collegati
|
||||||
$query = 'SELECT iddocumento, idcontratto, is_contratto, idarticolo FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto IS NOT NULL AND NOT idcontratto=0';
|
$query = 'SELECT iddocumento, idcontratto, idarticolo, id, qta, descrizione 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'];
|
||||||
$idcontratto = $rsp[0]['idcontratto'];
|
$idcontratto = $rsp[0]['idcontratto'];
|
||||||
$is_contratto = $rsp[0]['is_contratto'];
|
|
||||||
$idarticolo = $rsp[0]['idarticolo'];
|
$idarticolo = $rsp[0]['idarticolo'];
|
||||||
|
|
||||||
// contratto su unica riga, perdo il riferimento dell'articolo quindi lo vado a leggere da co_righe_contratti
|
if (!empty($idarticolo)) {
|
||||||
if (empty($idarticolo) && $is_contratto) {
|
rimuovi_articolo_dafattura($rsp[0]['idarticolo'], $id_record, $idriga);
|
||||||
// rimetto a magazzino gli articoli collegati al 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]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ripristino le quantità da evadere nel contratto
|
|
||||||
$dbo->update('co_righe_contratti',
|
|
||||||
[
|
|
||||||
'qta_evasa' => 0,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'idcontratto' => $idcontratto,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta, descrizione FROM co_righe_documenti WHERE id = '.prepare($idriga).' AND idintervento IS NULL');
|
|
||||||
if (!empty($idarticolo)) {
|
|
||||||
rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ripristino le quantità da evadere nel contratto
|
|
||||||
$dbo->update('co_righe_contratti',
|
|
||||||
[
|
|
||||||
'qta_evasa' => 0,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'idarticolo' => $rs5[0]['idarticolo'],
|
|
||||||
'descrizione' => $rs5[0]['descrizione'],
|
|
||||||
'idcontratto' => $idcontratto,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto='.prepare($idcontratto);
|
// Ripristino le quantità da evadere nel contratto
|
||||||
|
$query = 'UPDATE co_righe_contratti SET qta_evasa = qta_evasa - '.$rsp[0]['qta'].' WHERE idarticolo='.prepare($rsp[0]['idarticolo']).' AND descrizione='.prepare($rsp[0]['descrizione']).' AND idcontratto = '.prepare($idcontratto);
|
||||||
|
$dbo->query($query);
|
||||||
|
|
||||||
if ($dbo->query($query)) {
|
$query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND id='.prepare($idriga);
|
||||||
// Se ci sono dei preventivi collegati li rimetto nello stato "In attesa di pagamento"
|
$dbo->query($query);
|
||||||
for ($i = 0; $i < sizeof($rsp); ++$i) {
|
|
||||||
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='In lavorazione') WHERE id=".prepare($rsp[$i]['idcontratto']));
|
|
||||||
|
|
||||||
// Aggiorno anche lo stato degli interventi collegati ai contratti
|
$rs_righe = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE idcontratto='.prepare($idcontratto));
|
||||||
$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id IN (SELECT idintervento FROM co_promemoria WHERE idcontratto=".prepare($rsp[$i]['idcontratto']).')');
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
if (empty($rs_righe)) { // Se ci sono dei preventivi collegati li rimetto nello stato "In attesa di pagamento"
|
||||||
Rimuovo tutti gli articoli dalla fattura collegati agli interventi che sono collegati a questo contratto
|
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='In lavorazione') WHERE id=".prepare($idcontratto));
|
||||||
*/
|
|
||||||
$rs2 = $dbo->fetchArray('SELECT idintervento FROM co_promemoria WHERE idcontratto='.prepare($idcontratto)." AND NOT idcontratto=''");
|
// Aggiorno anche lo stato degli interventi collegati ai contratti
|
||||||
for ($i = 0; $i < sizeof($rs2); ++$i) {
|
$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id IN (SELECT idintervento FROM co_promemoria WHERE idcontratto=".prepare($idcontratto).')');
|
||||||
// Leggo gli articoli usati in questo intervento
|
|
||||||
$rs3 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($rs2[$i]['idintervento']));
|
|
||||||
for ($j = 0; $j < sizeof($rs3); ++$j) {
|
|
||||||
// Leggo l'id della riga in fattura di questo articolo
|
|
||||||
$rs4 = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idarticolo='.prepare($rs3[$j]['idarticolo']));
|
|
||||||
for ($x = 0; $x < sizeof($rs4); ++$x) {
|
|
||||||
rimuovi_articolo_dafattura($rs3[$j]['idarticolo'], $id_record, $rs4[$x]['id']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ricalcolo inps, ritenuta e bollo
|
// Ricalcolo inps, ritenuta e bollo
|
||||||
if ($dir == 'entrata') {
|
if ($dir == 'entrata') {
|
||||||
|
@ -44,10 +44,19 @@ foreach ($righe as $row) {
|
|||||||
$riga['descrizione'] = (!empty($row->articolo) ? $row->articolo->codice.' - ' : '').$riga['descrizione'];
|
$riga['descrizione'] = (!empty($row->articolo) ? $row->articolo->codice.' - ' : '').$riga['descrizione'];
|
||||||
|
|
||||||
$delete = 'unlink_articolo';
|
$delete = 'unlink_articolo';
|
||||||
|
// Preventivi
|
||||||
|
if (!empty($riga['idpreventivo'])) {
|
||||||
|
$delete = 'unlink_preventivo';
|
||||||
|
}
|
||||||
|
// Contratti
|
||||||
|
elseif (!empty($riga['idcontratto'])) {
|
||||||
|
$delete = 'unlink_contratto';
|
||||||
|
}
|
||||||
|
|
||||||
$extra = '';
|
$extra = '';
|
||||||
$mancanti = 0;
|
$mancanti = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Intervento
|
// Intervento
|
||||||
elseif (!empty($riga['idintervento'])) {
|
elseif (!empty($riga['idintervento'])) {
|
||||||
$intervento = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM in_interventi WHERE id = '.prepare($riga['idintervento']));
|
$intervento = $dbo->fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM in_interventi WHERE id = '.prepare($riga['idintervento']));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user