mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Correzioni movimentazioni
This commit is contained in:
parent
df9638cf01
commit
b85e87aad6
@ -7,7 +7,7 @@ use Modules\Articoli\Articolo;
|
||||
/**
|
||||
* Funzione per inserire i movimenti di magazzino.
|
||||
*
|
||||
* @deprecated
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = '', $data = '')
|
||||
{
|
||||
@ -71,8 +71,8 @@ function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone =
|
||||
|
||||
// Descrizione di default
|
||||
if (empty($movimento)) {
|
||||
$carico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'uscita') ? tr('Rimozione articolo da _TYPE_ _NUM_') : tr('Scarico magazzino per _TYPE_ numero _NUM_');
|
||||
$carico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'uscita') ? tr('Rimozione articolo da _TYPE_ numero _NUM_') : tr('Scarico magazzino per _TYPE_ numero _NUM_');
|
||||
|
||||
$movimento = ($qta > 0) ? $carico : $scarico;
|
||||
}
|
||||
|
@ -259,11 +259,15 @@ switch (post('op')) {
|
||||
|
||||
// eliminazione contratto
|
||||
case 'delete':
|
||||
$dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record));
|
||||
try {
|
||||
$contratto->delete();
|
||||
|
||||
$contratto->delete();
|
||||
$dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record));
|
||||
|
||||
flash()->info(tr('Contratto eliminato!'));
|
||||
flash()->info(tr('Contratto eliminato!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -277,58 +277,24 @@ switch (post('op')) {
|
||||
|
||||
break;
|
||||
|
||||
// Scollegamento articolo da ddt
|
||||
case 'unlink_articolo':
|
||||
$idriga = post('idriga');
|
||||
$idarticolo = post('idarticolo');
|
||||
|
||||
if (!rimuovi_articolo_daddt($idarticolo, $id_record, $idriga)) {
|
||||
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_ddt($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_ddt($id_record, 0, 0, 0);
|
||||
}
|
||||
|
||||
flash()->info(tr('Articolo rimosso!'));
|
||||
break;
|
||||
|
||||
// Scollegamento riga generica da ddt
|
||||
case 'unlink_riga':
|
||||
$idriga = post('idriga');
|
||||
case 'delete_riga':
|
||||
$id_riga = post('idriga');
|
||||
|
||||
if ($id_record != '' && $idriga != '') {
|
||||
// Se la riga è stata creata da un ordine, devo riportare la quantità evasa nella tabella degli ordini
|
||||
// al valore di prima, riaggiungendo la quantità che sto togliendo
|
||||
$rs = $dbo->fetchArray('SELECT qta, descrizione, idarticolo, idordine, idiva FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($idriga));
|
||||
if (!empty($id_riga)) {
|
||||
$riga = $ddt->getRighe()->find($id_riga);
|
||||
|
||||
// Rimpiazzo la quantità negli ordini
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$rs[0]['qta'].' WHERE descrizione='.prepare($rs[0]['descrizione']).' AND idarticolo='.prepare($rs[0]['idarticolo']).' AND idordine='.prepare($rs[0]['idordine']).' AND idiva='.prepare($rs[0]['idiva']));
|
||||
|
||||
// Eliminazione delle righe dal ddt
|
||||
$query = 'DELETE FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($idriga);
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
//Aggiorno lo stato dell'ordine
|
||||
if (setting('Cambia automaticamente stato ordini fatturati') && !empty($rs[0]['idordine'])) {
|
||||
$dbo->query('UPDATE or_ordini SET idstatoordine=(SELECT id FROM or_statiordine WHERE descrizione="'.get_stato_ordine($rs[0]['idordine']).'") WHERE id = '.prepare($rs[0]['idordine']));
|
||||
}
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_ddt($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_ddt($id_record, 0, 0, 0);
|
||||
}
|
||||
try {
|
||||
$riga->delete();
|
||||
|
||||
flash()->info(tr('Riga rimossa!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||
}
|
||||
}
|
||||
|
||||
ricalcola_costiagg_ddt($id_record);
|
||||
|
||||
break;
|
||||
|
||||
// eliminazione ddt
|
||||
@ -336,7 +302,7 @@ switch (post('op')) {
|
||||
try {
|
||||
$ddt->delete();
|
||||
|
||||
$dbo->query('DELETE FROM mg_movimenti WHERE idddt='.prepare($id_record));
|
||||
$dbo->query('DELETE FROM mg_movimenti WHERE idddt = '.prepare($id_record));
|
||||
|
||||
flash()->info(tr('Ddt eliminato!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
|
@ -93,7 +93,7 @@ function get_ivaindetraibile_ddt($id_ddt)
|
||||
* $idarticolo integer codice dell'articolo da scollegare dal ddt
|
||||
* $idddt integer codice del ddt da cui scollegare l'articolo.
|
||||
*
|
||||
* @deprecated
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt)
|
||||
{
|
||||
@ -246,7 +246,7 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto
|
||||
* $qta float quantità dell'articolo nell'ordine
|
||||
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
|
||||
*
|
||||
* @deprecated
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
|
||||
{
|
||||
|
@ -144,19 +144,8 @@ if (!empty($rs)) {
|
||||
<input type='hidden' name='backto' value='record-edit'>
|
||||
<input type='hidden' name='id_record' value='".$id_record."'>
|
||||
<input type='hidden' name='idriga' value='".$r['id']."'>
|
||||
<input type='hidden' name='dir' value='".$dir."'>";
|
||||
|
||||
if (!empty($r['idarticolo'])) {
|
||||
echo "
|
||||
<input type='hidden' name='idarticolo' value='".$r['idarticolo']."'>
|
||||
<input type='hidden' name='op' value='unlink_articolo'>";
|
||||
} else {
|
||||
echo "
|
||||
|
||||
<input type='hidden' name='op' value='unlink_riga'>";
|
||||
}
|
||||
|
||||
echo "
|
||||
<input type='hidden' name='dir' value='".$dir."'>
|
||||
<input type='hidden' name='op' value='delete_riga'>
|
||||
|
||||
<div class='input-group-btn'>";
|
||||
|
||||
|
@ -36,8 +36,8 @@ class Articolo extends Article
|
||||
$numero = $ddt->numero_esterno ?: $ddt->numero;
|
||||
$data = $ddt->data;
|
||||
|
||||
$carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ _NUM_');
|
||||
$carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ numero _NUM_');
|
||||
|
||||
$qta = ($tipo->dir == 'uscita') ? -$qta : $qta;
|
||||
$movimento = ($qta < 0) ? $carico : $scarico;
|
||||
|
@ -536,7 +536,7 @@ switch (post('op')) {
|
||||
break;
|
||||
|
||||
// Scollegamento riga generica da documento
|
||||
case 'unlink_riga':
|
||||
case 'delete_riga':
|
||||
$id_riga = post('idriga');
|
||||
|
||||
if (!empty($id_riga)) {
|
||||
|
@ -358,7 +358,7 @@ function ricalcola_costiagg_fattura($iddocumento)
|
||||
* $prezzo float prezzo totale dell'articolo (prezzounitario*qtà)
|
||||
* $idintervento integer id dell'intervento da cui arriva l'articolo (per non creare casini quando si rimuoverà un articolo dalla fattura).
|
||||
*
|
||||
* @deprecated
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT', $idintervento = 0, $idconto = 0, $idum = 0, $idrivalsainps = '', $idritenutaacconto = '', $calcolo_ritenuta_acconto = '')
|
||||
{
|
||||
|
@ -37,7 +37,7 @@ foreach ($righe as $row) {
|
||||
|
||||
$extra = '';
|
||||
|
||||
$delete = 'unlink_riga';
|
||||
$delete = 'delete_riga';
|
||||
|
||||
// Articoli
|
||||
if ($row->isArticolo()) {
|
||||
|
@ -41,8 +41,8 @@ class Articolo extends Article
|
||||
$numero = $fattura->numero_esterno ?: $fattura->numero;
|
||||
$data = $fattura->data;
|
||||
|
||||
$carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ _NUM_');
|
||||
$carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_');
|
||||
$scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ numero _NUM_');
|
||||
|
||||
$qta = ($tipo->dir == 'uscita') ? -$qta : $qta;
|
||||
$movimento = ($qta < 0) ? $carico : $scarico;
|
||||
|
@ -189,32 +189,31 @@ switch (post('op')) {
|
||||
|
||||
// Eliminazione intervento
|
||||
case 'delete':
|
||||
// Elimino anche eventuali file caricati
|
||||
Uploads::deleteLinked([
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
try {
|
||||
$intervento->delete();
|
||||
|
||||
// Eliminazione associazioni tra interventi e contratti
|
||||
$dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record));
|
||||
// Eliminazione associazioni tra interventi e contratti
|
||||
$dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record));
|
||||
|
||||
// Elimino il collegamento al componente
|
||||
$dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record));
|
||||
// Elimino il collegamento al componente
|
||||
$dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record));
|
||||
|
||||
// Eliminazione associazione tecnici collegati all'intervento
|
||||
$query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record);
|
||||
$dbo->query($query);
|
||||
// Eliminazione associazione tecnici collegati all'intervento
|
||||
$dbo->query('DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record));
|
||||
|
||||
// Eliminazione associazione interventi e my_impianti
|
||||
$query = 'DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record);
|
||||
$dbo->query($query);
|
||||
// Eliminazione associazione interventi e my_impianti
|
||||
$dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record));
|
||||
|
||||
// Eliminazione dell'intervento
|
||||
$intervento->delete();
|
||||
// Elimino anche eventuali file caricati
|
||||
Uploads::deleteLinked([
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
flash()->info(tr('Intervento _NUM_ eliminato!', [
|
||||
'_NUM_' => "'".$intervento->codice."'",
|
||||
]));
|
||||
flash()->info(tr('Intervento eliminato!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -288,9 +287,10 @@ switch (post('op')) {
|
||||
' WHERE id='.prepare($idriga));
|
||||
|
||||
aggiorna_sedi_movimenti('interventi', $id_record);
|
||||
|
||||
break;
|
||||
|
||||
case 'unlink_riga':
|
||||
case 'delete_riga':
|
||||
$id_riga = post('idriga');
|
||||
|
||||
if (!empty($id_riga)) {
|
||||
|
@ -158,7 +158,7 @@ if (!$righe->isEmpty()) {
|
||||
<script type="text/javascript">
|
||||
function elimina_riga( id ){
|
||||
$.post(globals.rootdir + '/actions.php', {
|
||||
op: 'unlink_riga',
|
||||
op: 'delete_riga',
|
||||
id_module: globals.id_module,
|
||||
id_record: globals.id_record,
|
||||
idriga: id
|
||||
|
@ -224,71 +224,36 @@ switch (post('op')) {
|
||||
|
||||
break;
|
||||
|
||||
// Scollegamento articolo da ordine
|
||||
case 'unlink_articolo':
|
||||
$idarticolo = post('idarticolo');
|
||||
$idriga = post('idriga');
|
||||
|
||||
if (!empty($idarticolo)) {
|
||||
if (!rimuovi_articolo_daordine($idarticolo, $id_record, $idriga)) {
|
||||
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// if( $dbo->query($query) ){
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_ordine($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_ordine($id_record, 0, 0, 0);
|
||||
}
|
||||
|
||||
flash()->info(tr('Articolo rimosso!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// Scollegamento riga generica da ordine
|
||||
case 'unlink_riga':
|
||||
$idriga = post('idriga');
|
||||
case 'delete_riga':
|
||||
$id_riga = post('idriga');
|
||||
|
||||
if (!empty($idriga)) {
|
||||
$query = 'DELETE FROM or_righe_ordini WHERE idordine='.prepare($id_record).' AND id='.prepare($idriga);
|
||||
if (!empty($id_riga)) {
|
||||
$riga = $ordine->getRighe()->find($id_riga);
|
||||
|
||||
$dbo->query($query);
|
||||
try {
|
||||
$riga->delete();
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_ordine($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_ordine($id_record, 0, 0, 0);
|
||||
flash()->info(tr('Riga rimossa!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||
}
|
||||
|
||||
flash()->info(tr('Riga rimossa!'));
|
||||
}
|
||||
|
||||
ricalcola_costiagg_ordine($id_record);
|
||||
|
||||
break;
|
||||
|
||||
// eliminazione ordine
|
||||
// Eliminazione ordine
|
||||
case 'delete':
|
||||
// Se ci sono degli articoli collegati (ma non collegati a preventivi o interventi) li rimetto nel magazzino
|
||||
$query = 'SELECT id, idarticolo FROM or_righe_ordini WHERE idordine='.prepare($id_record).' AND NOT idarticolo=0';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
try {
|
||||
$ordine->delete();
|
||||
|
||||
foreach ($rs as $value) {
|
||||
$non_rimovibili = seriali_non_rimuovibili('id_riga_documento', $value['id'], $dir);
|
||||
if (!empty($non_rimovibili)) {
|
||||
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||
|
||||
return;
|
||||
}
|
||||
flash()->info(tr('Ordine eliminato!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
|
||||
}
|
||||
|
||||
$dbo->query('DELETE FROM or_ordini WHERE id='.prepare($id_record));
|
||||
$dbo->query('DELETE FROM or_righe_ordini WHERE idordine='.prepare($id_record));
|
||||
flash()->info(tr('Ordine eliminato!'));
|
||||
|
||||
break;
|
||||
|
||||
case 'add_serial':
|
||||
|
@ -96,6 +96,8 @@ function get_ivaindetraibile_ordine($idordine)
|
||||
* $idiva integer id del codice iva associato all'articolo
|
||||
* $qta float quantità dell'articolo nell'ordine
|
||||
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
|
||||
*
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function add_articolo_inordine($idordine, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
|
||||
{
|
||||
@ -127,6 +129,8 @@ function add_articolo_inordine($idordine, $idarticolo, $descrizione, $idiva, $qt
|
||||
* $idarticolo integer codice dell'articolo da scollegare dall'ordine
|
||||
* $idordine integer codice dell'ordine da cui scollegare l'articolo
|
||||
* $idrigaordine integer id della riga ordine da rimuovere.
|
||||
*
|
||||
* @deprecated 2.4.11
|
||||
*/
|
||||
function rimuovi_articolo_daordine($idarticolo, $idordine, $idrigaordine)
|
||||
{
|
||||
|
@ -24,8 +24,6 @@ $rs = $dbo->fetchArray($q);
|
||||
|
||||
if (!empty($rs)) {
|
||||
foreach ($rs as $r) {
|
||||
$delete = !empty($r['idarticolo']) ? 'unlink_articolo' : 'unlink_riga';
|
||||
|
||||
$extra = '';
|
||||
$mancanti = 0;
|
||||
|
||||
@ -148,7 +146,7 @@ if (!empty($rs)) {
|
||||
<input type='hidden' name='id_record' value='".$id_record."'>
|
||||
<input type='hidden' name='idriga' value='".$r['id']."'>
|
||||
<input type='hidden' name='dir' value='".$dir."'>
|
||||
<input type='hidden' name='op' value='".$delete."'>";
|
||||
<input type='hidden' name='op' value='delete_riga'>";
|
||||
|
||||
if (!empty($r['idarticolo'])) {
|
||||
echo "
|
||||
|
@ -124,9 +124,13 @@ switch (post('op')) {
|
||||
|
||||
// Eliminazione preventivo
|
||||
case 'delete':
|
||||
$preventivo->delete();
|
||||
try {
|
||||
$preventivo->delete();
|
||||
|
||||
flash()->info(tr('Preventivo eliminato!'));
|
||||
flash()->info(tr('Preventivo eliminato!'));
|
||||
} catch (InvalidArgumentException $e) {
|
||||
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user