Miglioramenti vari
This commit is contained in:
parent
171948612c
commit
262c16db8b
3
core.php
3
core.php
|
@ -28,9 +28,6 @@ $namespaces = require_once __DIR__.'/config/namespaces.php';
|
||||||
foreach ($namespaces as $path => $namespace) {
|
foreach ($namespaces as $path => $namespace) {
|
||||||
$loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/custom/src');
|
$loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/custom/src');
|
||||||
$loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/src');
|
$loader->addPsr4($namespace.'\\', __DIR__.'/'.$path.'/src');
|
||||||
|
|
||||||
// Namespace aggiuntivo per le personalizzazioni
|
|
||||||
$loader->addPsr4($namespace.'\\Original\\', __DIR__.'/'.$path.'/src');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Individuazione dei percorsi di base
|
// Individuazione dei percorsi di base
|
||||||
|
|
|
@ -6,7 +6,7 @@ trait MorphTrait
|
||||||
{
|
{
|
||||||
public function hasOriginal()
|
public function hasOriginal()
|
||||||
{
|
{
|
||||||
return !empty($this->original_type) && !empty($this->original);
|
return !empty($this->original_type) && !empty($this->getOriginal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function original()
|
public function original()
|
||||||
|
|
|
@ -39,7 +39,6 @@ switch (post('op')) {
|
||||||
|
|
||||||
// Modifica articolo
|
// Modifica articolo
|
||||||
case 'update':
|
case 'update':
|
||||||
$componente = post('componente_filename');
|
|
||||||
$qta = post('qta');
|
$qta = post('qta');
|
||||||
|
|
||||||
// Inserisco l'articolo e avviso se esiste un altro articolo con stesso codice.
|
// Inserisco l'articolo e avviso se esiste un altro articolo con stesso codice.
|
||||||
|
@ -50,27 +49,29 @@ switch (post('op')) {
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
$dbo->update('mg_articoli', [
|
$articolo->codice = post('codice');
|
||||||
'codice' => post('codice'),
|
$articolo->descrizione = post('descrizione');
|
||||||
'descrizione' => post('descrizione'),
|
$articolo->um = post('um');
|
||||||
'um' => post('um'),
|
$articolo->id_categoria = post('categoria');
|
||||||
'id_categoria' => post('categoria'),
|
$articolo->id_sottocategoria = post('subcategoria');
|
||||||
'id_sottocategoria' => post('subcategoria'),
|
$articolo->abilita_serial = post('abilita_serial');
|
||||||
'abilita_serial' => post('abilita_serial'),
|
$articolo->threshold_qta = post('threshold_qta');
|
||||||
'threshold_qta' => post('threshold_qta'),
|
$articolo->prezzo_vendita = post('prezzo_vendita');
|
||||||
'prezzo_vendita' => post('prezzo_vendita'),
|
$articolo->prezzo_acquisto = post('prezzo_acquisto');
|
||||||
'prezzo_acquisto' => post('prezzo_acquisto'),
|
$articolo->idconto_vendita = post('idconto_vendita');
|
||||||
'idconto_vendita' => post('idconto_vendita'),
|
$articolo->idconto_acquisto = post('idconto_acquisto');
|
||||||
'idconto_acquisto' => post('idconto_acquisto'),
|
$articolo->idiva_vendita = post('idiva_vendita');
|
||||||
'idiva_vendita' => post('idiva_vendita'),
|
$articolo->gg_garanzia = post('gg_garanzia');
|
||||||
'gg_garanzia' => post('gg_garanzia'),
|
$articolo->servizio = post('servizio');
|
||||||
'servizio' => post('servizio'),
|
$articolo->volume = post('volume');
|
||||||
'volume' => post('volume'),
|
$articolo->peso_lordo = post('peso_lordo');
|
||||||
'peso_lordo' => post('peso_lordo'),
|
|
||||||
'componente_filename' => $componente,
|
$componente = post('componente_filename');
|
||||||
'attivo' => post('attivo'),
|
$articolo->componente_filename = $componente;
|
||||||
'note' => post('note'),
|
$articolo->attivo = post('attivo');
|
||||||
], ['id' => $id_record]);
|
$articolo->note = post('note');
|
||||||
|
|
||||||
|
$articolo->save();
|
||||||
|
|
||||||
// Leggo la quantità attuale per capire se l'ho modificata
|
// Leggo la quantità attuale per capire se l'ho modificata
|
||||||
$old_qta = $record['qta'];
|
$old_qta = $record['qta'];
|
||||||
|
@ -80,12 +81,12 @@ switch (post('op')) {
|
||||||
$descrizione_movimento = post('descrizione_movimento');
|
$descrizione_movimento = post('descrizione_movimento');
|
||||||
$data_movimento = post('data_movimento');
|
$data_movimento = post('data_movimento');
|
||||||
|
|
||||||
add_movimento_magazzino($id_record, $movimento, [], $descrizione_movimento, $data_movimento);
|
$articolo->movimenta($movimento, $descrizione_movimento, $data_movimento);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Salvataggio info componente (campo `contenuto`)
|
// Salvataggio info componente (campo `contenuto`)
|
||||||
if (!empty($componente)) {
|
if (!empty($componente)) {
|
||||||
$contenuto = \Util\Ini::write(file_get_contents($docroot.'/files/my_impianti/'.$componente), $post);
|
$contenuto = \Util\Ini::write(file_get_contents(DOCROOT.'/files/my_impianti/'.$componente), $post);
|
||||||
|
|
||||||
$dbo->query('UPDATE mg_articoli SET contenuto='.prepare($contenuto).' WHERE id='.prepare($id_record));
|
$dbo->query('UPDATE mg_articoli SET contenuto='.prepare($contenuto).' WHERE id='.prepare($id_record));
|
||||||
}
|
}
|
||||||
|
@ -107,9 +108,7 @@ switch (post('op')) {
|
||||||
'id' => $id_record,
|
'id' => $id_record,
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
flash()->warning(tr('Errore durante il caricamento del file in _DIR_!', [
|
flash()->warning(tr("Errore durante il caricamento dell'immagine!"));
|
||||||
'_DIR_' => $upload_dir,
|
|
||||||
]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,10 +173,10 @@ switch (post('op')) {
|
||||||
|
|
||||||
// Movimento il magazzino se l'ho specificato nelle impostazioni
|
// Movimento il magazzino se l'ho specificato nelle impostazioni
|
||||||
if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) {
|
if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) {
|
||||||
add_movimento_magazzino($id_record, $count, [], tr('Carico magazzino con serial da _INIZIO_ a _FINE_', [
|
$articolo->movimenta($count, tr('Carico magazzino con serial da _INIZIO_ a _FINE_', [
|
||||||
'_INIZIO_' => $serial_start,
|
'_INIZIO_' => $serial_start,
|
||||||
'_FINE_' => $serial_end,
|
'_FINE_' => $serial_end,
|
||||||
]));
|
]), date());
|
||||||
}
|
}
|
||||||
|
|
||||||
flash()->info(tr('Aggiunti _NUM_ seriali!', [
|
flash()->info(tr('Aggiunti _NUM_ seriali!', [
|
||||||
|
@ -200,9 +199,9 @@ switch (post('op')) {
|
||||||
if ($dbo->query($query)) {
|
if ($dbo->query($query)) {
|
||||||
// Movimento il magazzino se l'ho specificato nelle impostazioni
|
// Movimento il magazzino se l'ho specificato nelle impostazioni
|
||||||
if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) {
|
if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) {
|
||||||
add_movimento_magazzino($id_record, -1, [], tr('Eliminazione dal magazzino del prodotto con serial _SERIAL_', [
|
$articolo->movimenta(-1, tr('Eliminazione dal magazzino del prodotto con serial _SERIAL_', [
|
||||||
'_SERIAL_' => $rs[0]['serial'],
|
'_SERIAL_' => $rs[0]['serial'],
|
||||||
]));
|
]), date());
|
||||||
}
|
}
|
||||||
|
|
||||||
flash()->info(tr('Prodotto rimosso!'));
|
flash()->info(tr('Prodotto rimosso!'));
|
||||||
|
|
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
||||||
use Modules\Articoli\Articolo;
|
use Modules\Articoli\Articolo;
|
||||||
|
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$record = $dbo->fetchOne('SELECT *, (SELECT COUNT(id) FROM mg_prodotti WHERE id_articolo = mg_articoli.id) AS serial FROM mg_articoli WHERE id='.prepare($id_record));
|
|
||||||
|
|
||||||
$articolo = Articolo::find($id_record);
|
$articolo = Articolo::find($id_record);
|
||||||
|
|
||||||
|
$record = $dbo->fetchOne('SELECT *, (SELECT COUNT(id) FROM mg_prodotti WHERE id_articolo = mg_articoli.id) AS serial FROM mg_articoli WHERE id='.prepare($id_record));
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,12 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Modules\Articoli\Articolo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Funzione per inserire i movimenti di magazzino.
|
* Funzione per inserire i movimenti di magazzino.
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = '', $data = '')
|
function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = '', $data = '')
|
||||||
{
|
{
|
||||||
|
@ -18,7 +22,6 @@ function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone =
|
||||||
$numero = null;
|
$numero = null;
|
||||||
|
|
||||||
// Informazioni articolo
|
// Informazioni articolo
|
||||||
$articolo = $dbo->fetchOne('SELECT * FROM mg_articoli WHERE id='.prepare($id_articolo));
|
|
||||||
$manuale = 0;
|
$manuale = 0;
|
||||||
|
|
||||||
// Ddt
|
// Ddt
|
||||||
|
@ -78,23 +81,14 @@ function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone =
|
||||||
$movimento .= $descrizone;
|
$movimento .= $descrizone;
|
||||||
$movimento = str_replace(['_NAME_', '_TYPE_', '_NUM_'], [$nome, $tipo, $numero], $movimento);
|
$movimento = str_replace(['_NAME_', '_TYPE_', '_NUM_'], [$nome, $tipo, $numero], $movimento);
|
||||||
|
|
||||||
$new = ($qta > 0 ? '+' : '').$qta;
|
|
||||||
|
|
||||||
// Movimento il magazzino solo se l'articolo non è un servizio
|
// Movimento il magazzino solo se l'articolo non è un servizio
|
||||||
if ($articolo['servizio'] == 0) {
|
$articolo = Articolo::find($id_articolo);
|
||||||
|
|
||||||
// Movimentazione effettiva
|
// Movimentazione effettiva
|
||||||
if (empty($array['idintervento'])) {
|
if (empty($array['idintervento'])) {
|
||||||
$dbo->query('UPDATE mg_articoli SET qta = qta + '.$new.' WHERE id = '.prepare($id_articolo));
|
return $articolo->movimenta($qta, $movimento, $data, $manuale, $array);
|
||||||
}
|
} else {
|
||||||
|
return $articolo->registra($qta, $movimento, $data, $manuale, $array);
|
||||||
// Registrazione della movimentazione
|
|
||||||
$dbo->insert('mg_movimenti', array_merge($array, [
|
|
||||||
'idarticolo' => $id_articolo,
|
|
||||||
'qta' => $qta,
|
|
||||||
'movimento' => $movimento,
|
|
||||||
'data' => $data,
|
|
||||||
'manuale' => $manuale,
|
|
||||||
]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -33,6 +33,8 @@ class Articolo extends Model
|
||||||
$this->qta += $qta;
|
$this->qta += $qta;
|
||||||
|
|
||||||
$this->save();
|
$this->save();
|
||||||
|
|
||||||
|
$this->movimentaRicorsivo($qta, $descrizone, $data, $manuale, $array);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -116,4 +118,45 @@ class Articolo extends Model
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Categoria::class, 'id_sottocategoria');
|
return $this->belongsTo(Categoria::class, 'id_sottocategoria');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version distinta_base
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function componenti()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany(Articolo::class, 'mg_articoli_distinte', 'id_articolo', 'id_figlio')->withPivot('qta');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function parti()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany(Articolo::class, 'mg_articoli_distinte', 'id_figlio', 'id_articolo')->withPivot('qta');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Funzione per inserire i movimenti di magazzino.
|
||||||
|
*
|
||||||
|
* @version distinta_base
|
||||||
|
*
|
||||||
|
* @param $qta
|
||||||
|
* @param null $descrizone
|
||||||
|
* @param null $data
|
||||||
|
* @param bool $manuale
|
||||||
|
* @param array $array
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function movimentaRicorsivo($qta, $descrizone = null, $data = null, $manuale = false, $array = [])
|
||||||
|
{
|
||||||
|
$componenti = $this->componenti;
|
||||||
|
|
||||||
|
$suffix = ' (di.ba.)';
|
||||||
|
$descrizone = strpos($descrizone, $suffix) !== false ? $descrizone : $descrizone.$suffix;
|
||||||
|
|
||||||
|
foreach ($componenti as $componente) {
|
||||||
|
$qta_componente = $qta * $componente->pivot->qta;
|
||||||
|
$componente->movimenta($qta_componente, $descrizone, $data, $manuale, $array);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,8 @@ function get_ivaindetraibile_ddt($id_ddt)
|
||||||
* Questa funzione rimuove un articolo dal ddt data e lo riporta in magazzino
|
* Questa funzione rimuove un articolo dal ddt data e lo riporta in magazzino
|
||||||
* $idarticolo integer codice dell'articolo da scollegare dal ddt
|
* $idarticolo integer codice dell'articolo da scollegare dal ddt
|
||||||
* $idddt integer codice del ddt da cui scollegare l'articolo.
|
* $idddt integer codice del ddt da cui scollegare l'articolo.
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt)
|
function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt)
|
||||||
{
|
{
|
||||||
|
@ -243,6 +245,8 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto
|
||||||
* $idiva integer id del codice iva associato all'articolo
|
* $idiva integer id del codice iva associato all'articolo
|
||||||
* $qta float quantità dell'articolo nell'ordine
|
* $qta float quantità dell'articolo nell'ordine
|
||||||
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
|
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
|
function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
|
||||||
{
|
{
|
||||||
|
|
|
@ -622,7 +622,9 @@ if ($dir == 'entrata') {
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<?php
|
<?php
|
||||||
include $docroot.'/modules/fatture/row-list.php';
|
|
||||||
|
include $structure->filepath('row-list.php');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -357,6 +357,8 @@ function ricalcola_costiagg_fattura($iddocumento)
|
||||||
* $qta float quantità dell'articolo in fattura
|
* $qta float quantità dell'articolo in fattura
|
||||||
* $prezzo float prezzo totale dell'articolo (prezzounitario*qtà)
|
* $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).
|
* $idintervento integer id dell'intervento da cui arriva l'articolo (per non creare casini quando si rimuoverà un articolo dalla fattura).
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
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 = '')
|
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 = '')
|
||||||
{
|
{
|
||||||
|
|
|
@ -183,6 +183,7 @@ switch (post('op')) {
|
||||||
flash()->clearMessage('info');
|
flash()->clearMessage('info');
|
||||||
flash()->clearMessage('warning');
|
flash()->clearMessage('warning');
|
||||||
}
|
}
|
||||||
|
|
||||||
aggiorna_sedi_movimenti('interventi', $id_record);
|
aggiorna_sedi_movimenti('interventi', $id_record);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -194,32 +195,8 @@ switch (post('op')) {
|
||||||
'id_record' => $id_record,
|
'id_record' => $id_record,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$codice = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE id='.prepare($id_record))[0]['codice'];
|
|
||||||
|
|
||||||
/*
|
|
||||||
Riporto in magazzino gli articoli presenti nell'intervento in cancellazine
|
|
||||||
*/
|
|
||||||
// Leggo la quantità attuale nell'intervento
|
|
||||||
$q = 'SELECT qta, idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record);
|
|
||||||
$rs = $dbo->fetchArray($q);
|
|
||||||
|
|
||||||
for ($i = 0; $i < count($rs); ++$i) {
|
|
||||||
$qta = $rs[$i]['qta'];
|
|
||||||
$idarticolo = $rs[$i]['idarticolo'];
|
|
||||||
|
|
||||||
add_movimento_magazzino($idarticolo, $qta, ['idintervento' => $id_record]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Eliminazione associazioni tra interventi e contratti
|
// Eliminazione associazioni tra interventi e contratti
|
||||||
$query = 'UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record);
|
$dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record));
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
// Eliminazione dell'intervento
|
|
||||||
$query = 'DELETE FROM in_interventi WHERE id='.prepare($id_record);
|
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
// Elimino i collegamenti degli articoli a questo intervento
|
|
||||||
$dbo->query('DELETE FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record));
|
|
||||||
|
|
||||||
// Elimino il collegamento al componente
|
// Elimino il collegamento al componente
|
||||||
$dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record));
|
$dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record));
|
||||||
|
@ -228,23 +205,15 @@ switch (post('op')) {
|
||||||
$query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record);
|
$query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record);
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
// Eliminazione righe aggiuntive dell'intervento
|
|
||||||
$query = 'DELETE FROM in_righe_interventi WHERE idintervento='.prepare($id_record);
|
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
// Eliminazione associazione interventi e articoli
|
|
||||||
$query = 'DELETE FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record);
|
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
// Eliminazione associazione interventi e my_impianti
|
// Eliminazione associazione interventi e my_impianti
|
||||||
$query = 'DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record);
|
$query = 'DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record);
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
// Eliminazione movimenti riguardanti l'intervento cancellato
|
// Eliminazione dell'intervento
|
||||||
$dbo->query('DELETE FROM mg_movimenti WHERE idintervento='.prepare($id_record));
|
$intervento->delete();
|
||||||
|
|
||||||
flash()->info(tr('Intervento _NUM_ eliminato!', [
|
flash()->info(tr('Intervento _NUM_ eliminato!', [
|
||||||
'_NUM_' => "'".$codice."'",
|
'_NUM_' => "'".$intervento->codice."'",
|
||||||
]));
|
]));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -321,9 +290,22 @@ switch (post('op')) {
|
||||||
aggiorna_sedi_movimenti('interventi', $id_record);
|
aggiorna_sedi_movimenti('interventi', $id_record);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delriga':
|
case 'unlink_riga':
|
||||||
$idriga = post('idriga');
|
$id_riga = post('idriga');
|
||||||
$dbo->query('DELETE FROM in_righe_interventi WHERE id='.prepare($idriga));
|
|
||||||
|
if (!empty($id_riga)) {
|
||||||
|
$riga = $intervento->getRighe()->find($id_riga);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$riga->delete();
|
||||||
|
|
||||||
|
flash()->info(tr('Riga rimossa!'));
|
||||||
|
} catch (InvalidArgumentException $e) {
|
||||||
|
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aggiorna_sedi_movimenti('interventi', $id_record);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -412,33 +394,6 @@ switch (post('op')) {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'unlink_articolo':
|
|
||||||
$idriga = post('idriga');
|
|
||||||
$idarticolo = post('idarticolo');
|
|
||||||
|
|
||||||
// Riporto la merce nel magazzino
|
|
||||||
if (!empty($idriga) && !empty($id_record)) {
|
|
||||||
// Leggo la quantità attuale nell'intervento
|
|
||||||
$q = 'SELECT qta, idarticolo, idimpianto FROM mg_articoli_interventi WHERE id='.prepare($idriga);
|
|
||||||
$rs = $dbo->fetchArray($q);
|
|
||||||
$qta = $rs[0]['qta'];
|
|
||||||
$idarticolo = $rs[0]['idarticolo'];
|
|
||||||
$idimpianto = $rs[0]['idimpianto'];
|
|
||||||
|
|
||||||
add_movimento_magazzino($idarticolo, $qta, ['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));
|
|
||||||
}
|
|
||||||
aggiorna_sedi_movimenti('interventi', $id_record);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'add_serial':
|
case 'add_serial':
|
||||||
$idriga = post('idriga');
|
$idriga = post('idriga');
|
||||||
$idarticolo = post('idarticolo');
|
$idarticolo = post('idarticolo');
|
||||||
|
|
|
@ -10,7 +10,7 @@ if (file_exists(__DIR__.'/../../../core.php')) {
|
||||||
|
|
||||||
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));
|
$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico'));
|
||||||
|
|
||||||
$intervento = Intervento::find($id_record);
|
$intervento = $intervento ?: Intervento::find($id_record);
|
||||||
$righe = $intervento->getRighe();
|
$righe = $intervento->getRighe();
|
||||||
|
|
||||||
if (!$righe->isEmpty()) {
|
if (!$righe->isEmpty()) {
|
||||||
|
@ -136,7 +136,7 @@ if (!$righe->isEmpty()) {
|
||||||
<i class="fa fa-edit"></i>
|
<i class="fa fa-edit"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" onclick="if(confirm(\''.tr('Eliminare questa riga?').'\')){ '.($riga->isArticolo() ? 'ritorna_al_magazzino' : 'elimina_riga').'( \''.$r['id'].'\' ); }">
|
<button type="button" class="btn btn-danger btn-xs" data-toggle="tooltip" onclick="if(confirm(\''.tr('Eliminare questa riga?').'\')){ elimina_riga( \''.$r['id'].'\' ); }">
|
||||||
<i class="fa fa-trash"></i>
|
<i class="fa fa-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</td>';
|
</td>';
|
||||||
|
@ -157,7 +157,12 @@ if (!$righe->isEmpty()) {
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function elimina_riga( id ){
|
function elimina_riga( id ){
|
||||||
$.post(globals.rootdir + '/modules/interventi/actions.php', { op: 'delriga', idriga: id }, function(data, result){
|
$.post(globals.rootdir + '/actions.php', {
|
||||||
|
op: 'unlink_riga',
|
||||||
|
id_module: globals.id_module,
|
||||||
|
id_record: globals.id_record,
|
||||||
|
idriga: id
|
||||||
|
}, function(data, result){
|
||||||
if( result=='success' ){
|
if( result=='success' ){
|
||||||
//ricarico l'elenco delle righe
|
//ricarico l'elenco delle righe
|
||||||
$('#righe').load( globals.rootdir + '/modules/interventi/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
$('#righe').load( globals.rootdir + '/modules/interventi/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
||||||
|
@ -166,15 +171,4 @@ if (!$righe->isEmpty()) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function ritorna_al_magazzino( id ){
|
|
||||||
$.post(globals.rootdir + '/modules/interventi/actions.php', {op: 'unlink_articolo', idriga: id, id_record: '<?php echo $id_record; ?>', id_module: '<?php echo $id_module; ?>' }, function(data, result){
|
|
||||||
if( result == 'success' ){
|
|
||||||
// ricarico l'elenco degli articoli
|
|
||||||
$('#righe').load( globals.rootdir + '/modules/interventi/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
|
||||||
|
|
||||||
$('#costi').load(globals.rootdir + '/modules/interventi/ajax_costi.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -38,8 +38,6 @@ class Articolo extends Article
|
||||||
{
|
{
|
||||||
$articolo = $this->articolo;
|
$articolo = $this->articolo;
|
||||||
|
|
||||||
$dbo = database();
|
|
||||||
|
|
||||||
$intervento = $this->intervento;
|
$intervento = $this->intervento;
|
||||||
|
|
||||||
$numero = $intervento->codice;
|
$numero = $intervento->codice;
|
||||||
|
@ -49,7 +47,7 @@ class Articolo extends Article
|
||||||
|
|
||||||
$data = $data ?: $intervento->data_richiesta;
|
$data = $data ?: $intervento->data_richiesta;
|
||||||
|
|
||||||
$descrizione = ($qta < 0) ? tr('Ripristino articolo da intervento _NUM_', [
|
$descrizione = ($qta < 0) ? tr('Ripristino articolo da Attività numero _NUM_', [
|
||||||
'_NUM_' => $numero,
|
'_NUM_' => $numero,
|
||||||
]) : tr('Scarico magazzino per intervento _NUM_', [
|
]) : tr('Scarico magazzino per intervento _NUM_', [
|
||||||
'_NUM_' => $numero,
|
'_NUM_' => $numero,
|
||||||
|
|
Loading…
Reference in New Issue