1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-16 19:40:44 +01:00

Fix ripristino qta_evasa

This commit is contained in:
Thomas Zilio 2019-07-22 15:04:39 +02:00
parent acff84977c
commit 5fcdb7f918
3 changed files with 16 additions and 50 deletions

View File

@ -48,6 +48,9 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Miglioramento del sistema di importazione delle ricevute delle Fatture Elettroniche, per permetterne il caricamento manuale
- Standardizzazione dei nomi predefiniti delle stampa e dei relativi file generati
### Rimosso (Removed)
- Supporto ai raggruppamenti di **Contratti** e **Preventivi** nelle **Fatture**
### Fixed
- Fix export delle tabelle principali in Excel

View File

@ -151,10 +151,10 @@ switch (post('op')) {
// eliminazione documento
case 'delete':
$rs = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record));
$righe = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record));
// Controllo sui seriali
foreach ($rs as $r) {
foreach ($righe as $r) {
$non_rimovibili = seriali_non_rimuovibili('id_riga_documento', $r['id'], $dir);
if (!empty($non_rimovibili)) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
@ -163,16 +163,10 @@ switch (post('op')) {
}
}
// Rimozione righe
foreach ($rs as $r) {
rimuovi_riga_fattura($id_record, $r['id'], $dir);
}
// Se ci sono dei preventivi collegati li rimetto nello stato "In attesa di pagamento"
$rs = $dbo->fetchArray('SELECT idpreventivo FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idpreventivo IS NOT NULL');
for ($i = 0; $i < sizeof($rs); ++$i) {
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='In lavorazione') WHERE id=".prepare($rs[$i]['idpreventivo']));
$dbo->query('UPDATE co_righe_preventivi SET qta_evasa=0 WHERE idpreventivo='.prepare($rs[$i]['idpreventivo']));
}
// Se ci sono degli interventi collegati li rimetto nello stato "Completato"
@ -181,6 +175,11 @@ switch (post('op')) {
$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id=".prepare($rs[$i]['idintervento']));
}
// Rimozione righe
foreach ($righe as $r) {
rimuovi_riga_fattura($id_record, $r['id'], $dir);
}
elimina_scadenza($id_record);
elimina_movimento($id_record);

View File

@ -696,51 +696,15 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
}
// Rimozione articoli collegati ad un preventivo importato con riga unica
if (empty($riga['idarticolo']) && $riga['idpreventivo']) {
//rimetto a magazzino gli articoli collegati al preventivo
$rsa = $dbo->fetchArray('SELECT id, idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($riga['idpreventivo']));
for ($i = 0; $i < sizeof($rsa); ++$i) {
if ($riga['is_preventivo']) {
if (!empty($rsa[$i]['idarticolo'])) {
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_documento]);
}
} else {
$qta_evasa = $rsa[$i]['qta_evasa'] + $riga['qta'];
// Ripristino le quantità da evadere nel preventivo
$dbo->update('co_righe_preventivi',
[
'qta_evasa' => $qta_evasa,
],
[
'id' => $rsa[$i]['id'],
]
);
}
}
if ($riga['idpreventivo']) {
$query = 'UPDATE co_righe_preventivi SET qta_evasa = qta_evasa - '.$riga['qta'].' WHERE idarticolo='.prepare($riga['idarticolo']).' AND descrizione = '.prepare($riga['descrizione']).' AND idpreventivo = '.prepare($riga['idpreventivo']);
$dbo->query($query);
}
// Rimozione articoli collegati ad un contratto importato con riga unica
if (empty($riga['idarticolo']) && $riga['idcontratto']) {
//rimetto a magazzino gli articoli collegati al contratto
$rsa = $dbo->fetchArray('SELECT id, idarticolo, qta FROM co_righe_contratti WHERE idcontratto = '.prepare($riga['idcontratto']));
for ($i = 0; $i < sizeof($rsa); ++$i) {
if ($riga['is_contratto']) {
if (!empty($rsa[$i]['idarticolo'])) {
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_documento]);
}
} else {
$qta_evasa = $rsa[$i]['qta_evasa'] + $riga['qta'];
// Ripristino le quantità da evadere nel contratto
$dbo->update('co_righe_contratti',
[
'qta_evasa' => $qta_evasa,
],
[
'id' => $rsa[$i]['id'],
]
);
}
}
if ($riga['idcontratto']) {
$query = 'UPDATE co_righe_contratti SET qta_evasa = qta_evasa - '.$riga['qta'].' WHERE idarticolo='.prepare($riga['idarticolo']).' AND descrizione = '.prepare($riga['descrizione']).' AND idcontratto = '.prepare($riga['idcontratto']);
$dbo->query($query);
}
//Rimozione righe generiche