openstamanager/modules/contratti/plugins/actions.php

207 lines
8.4 KiB
PHP

<?php
include_once __DIR__.'/../../../core.php';
include_once Modules::filepath('Fatture di vendita', 'modutil.php');
switch (post('op')) {
/*
GESTIONE ARTICOLI
*/
case 'editarticolo':
$idriga = post('idriga');
$idarticolo = post('idarticolo');
$idimpianto = post('idimpianto');
//$idautomezzo = post('idautomezzo');
//$idarticolo_originale = post('idarticolo_originale');
// Leggo la quantità attuale nell'intervento
$q = 'SELECT qta, idautomezzo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
$rs = $dbo->fetchArray($q);
$old_qta = $rs[0]['qta'];
$idimpianto = $rs[0]['idimpianto'];
//$idautomezzo = $rs[0]['idautomezzo'];
//$serials = array_column($dbo->select('mg_prodotti', 'serial', ['id_riga_intervento' => $idriga]), 'serial');
//add_movimento_magazzino($idarticolo_originale, $old_qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
// Elimino questo articolo dall'intervento
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga));
// Elimino il collegamento al componente
//$dbo->query('DELETE FROM my_impianto_componenti WHERE idimpianto='.prepare($idimpianto).' AND idintervento='.prepare($id_record));
/* Ricollego l'articolo modificato all'intervento */
/* ci può essere il caso in cui cambio idarticolo e anche qta */
//no break;
case 'addarticolo':
$idarticolo = post('idarticolo');
//$idautomezzo = post('idautomezzo');
$descrizione = post('descrizione');
$idimpianto = post('idimpianto');
$qta = post('qta');
$um = post('um');
$prezzo_vendita = post('prezzo_vendita');
$idiva = post('idiva');
$sconto_unitario = post('sconto');
$tipo_sconto = post('tipo_sconto');
$sconto = calcola_sconto([
'sconto' => $sconto_unitario,
'prezzo' => $prezzo_vendita,
'tipo' => $tipo_sconto,
'qta' => $qta,
]);
$idcontratto_riga = post('idcontratto_riga');
// Decremento la quantità
//add_movimento_magazzino($idarticolo, -$qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
// Aggiorno l'automezzo dell'intervento
//$dbo->query('UPDATE in_interventi SET idautomezzo='.prepare($idautomezzo).' WHERE id='.prepare($id_record).' '.Modules::getAdditionalsQuery($id_module));
//$rsart = $dbo->fetchArray('SELECT abilita_serial, prezzo_acquisto FROM mg_articoli WHERE id='.prepare($idarticolo));
//$prezzo_acquisto = $rsart[0]['prezzo_acquisto'];
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
// Aggiunto il collegamento fra l'articolo e l'intervento
$idriga = $dbo->query('INSERT INTO co_righe_contratti_articoli(idarticolo, id_riga_contratto, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva, desc_iva, iva, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($idcontratto_riga).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')');
/*if (!empty($serials)) {
if ($old_qta > $qta) {
$serials = array_slice($serials, 0, $qta);
}
$dbo->sync('mg_prodotti', ['id_riga_intervento' => $idriga, 'dir' => 'entrata', 'id_articolo' => $idarticolo], ['serial' => $serials]);
}*/
//link_componente_to_articolo($id_record, $idimpianto, $idarticolo, $qta);
break;
case 'unlink_articolo':
$idriga = post('idriga');
//$idarticolo = post('idarticolo');
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
// Riporto la merce nel magazzino
if (!empty($idriga) && !empty($id_record)) {
// Leggo la quantità attuale nell'intervento
//$q = 'SELECT qta, idautomezzo, idarticolo, idimpianto FROM co_righe_contratti_articoli WHERE id='.prepare($idriga);
//$rs = $dbo->fetchArray($q);
//$qta = $rs[0]['qta'];
//$idarticolo = $rs[0]['idarticolo'];
//$idimpianto = $rs[0]['idimpianto'];
//$idautomezzo = $rs[0]['idautomezzo'];
// add_movimento_magazzino($idarticolo, $qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
// Elimino questo articolo dall'intervento
//$dbo->query('DELETE FROM mg_articoli_interventi WHERE id='.prepare($idriga).' AND idintervento='.prepare($id_record));
// Elimino il collegamento al componente
//$dbo->query('DELETE FROM my_impianto_componenti WHERE idimpianto='.prepare($idimpianto).' AND idintervento='.prepare($id_record));
// Elimino i seriali utilizzati dalla riga
//$dbo->query('DELETE FROM `mg_prodotti` WHERE id_articolo = '.prepare($idarticolo).' AND id_riga_intervento = '.prepare($id_record));
}
break;
/*
Gestione righe generiche
*/
case 'addriga':
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
$sconto_unitario = post('sconto');
$tipo_sconto = post('tipo_sconto');
$sconto = calcola_sconto([
'sconto' => $sconto_unitario,
'prezzo' => $prezzo_vendita,
'tipo' => $tipo_sconto,
'qta' => $qta,
]);
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$idcontratto_riga = post('idcontratto_riga');
$dbo->query('INSERT INTO co_righe_contratti_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
break;
case 'editriga':
$idriga = post('idriga');
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
$sconto_unitario = post('sconto');
$tipo_sconto = post('tipo_sconto');
$sconto = calcola_sconto([
'sconto' => $sconto_unitario,
'prezzo' => $prezzo_vendita,
'tipo' => $tipo_sconto,
'qta' => $qta,
]);
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$dbo->query('UPDATE co_righe_contratti_materiali SET '.
' descrizione='.prepare($descrizione).','.
' qta='.prepare($qta).','.
' um='.prepare($um).','.
' prezzo_vendita='.prepare($prezzo_vendita).','.
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
' idiva='.prepare($idiva).','.
' desc_iva='.prepare($desc_iva).','.
' iva='.prepare($iva).','.
' sconto='.prepare($sconto).','.
' sconto_unitario='.prepare($sconto_unitario).','.
' tipo_sconto='.prepare($tipo_sconto).
' WHERE id='.prepare($idriga));
break;
case 'delriga':
$idriga = post('idriga');
$dbo->query('DELETE FROM co_righe_contratti_materiali WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
break;
}