Fix conversione promemoria in intervento

This commit is contained in:
Thomas Zilio 2020-02-17 15:09:07 +01:00
parent 8c79e4b4b0
commit d1d0625c0e
5 changed files with 40 additions and 48 deletions

View File

@ -13,14 +13,15 @@ use Modules\Interventi\Components\Sessione;
use Modules\Interventi\Intervento;
use Modules\Interventi\Stato;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\PianificazioneInterventi\Promemoria;
switch (post('op')) {
case 'update':
$idcontratto = post('idcontratto');
$idcontratto_riga = post('idcontratto_riga');
$id_promemoria = post('idcontratto_riga');
// Rimozione del collegamento al promemoria
if (!empty($idcontratto_riga) && $intervento->id_contratto != $idcontratto) {
if (!empty($id_promemoria) && $intervento->id_contratto != $idcontratto) {
$dbo->update('co_promemoria', ['idintervento' => null], ['idintervento' => $id_record]);
}
@ -84,7 +85,7 @@ switch (post('op')) {
// Informazioni di base
$idpreventivo = post('idpreventivo');
$idcontratto = post('idcontratto');
$idcontratto_riga = post('idcontratto_riga');
$id_promemoria = post('idcontratto_riga');
$idtipointervento = post('idtipointervento');
$idsede_partenza = post('idsede_partenza');
$idsede_destinazione = post('idsede_destinazione');
@ -106,41 +107,10 @@ switch (post('op')) {
$intervento->save();
// Se è specificato che l'intervento fa parte di una pianificazione aggiorno il codice dell'intervento sulla riga della pianificazione
if (!empty($idcontratto_riga)) {
$dbo->update('co_promemoria', [
'idintervento' => $id_record,
'idtipointervento' => $idtipointervento,
'data_richiesta' => $data_richiesta,
'richiesta' => $richiesta,
'idsede' => $idsede_destinazione ?: 0,
], ['idcontratto' => $idcontratto, 'id' => $idcontratto_riga]);
//copio le righe dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta, um, prezzo_unitario, costo_unitario, idiva,desc_iva, iva, idintervento, sconto, sconto_unitario, tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$id_record.',sconto,sconto_unitario,tipo_sconto FROM co_righe_promemoria WHERE id_promemoria = '.$idcontratto_riga);
//copio gli articoli dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (idarticolo, idintervento, descrizione, costo_unitario, prezzo_unitario, sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva, qta, um, abilita_serial, idimpianto FROM co_promemoria_articoli WHERE id_promemoria = '.$idcontratto_riga);
// Copia degli allegati
$allegati = Uploads::copy([
'id_plugin' => Plugins::get('Pianificazione interventi')['id'],
'id_record' => $idcontratto_riga,
], [
'id_module' => $id_module,
'id_record' => $id_record,
]);
if (!$allegati) {
$errors = error_get_last();
flash()->warning(tr('Errore durante la copia degli allegati'));
}
// Movimento il magazziono per ogni articolo copiato
$articoli = $intervento->articoli;
foreach ($articoli as $articolo) {
$articolo->movimenta($articolo->qta);
}
// Sincronizzazione con il promemoria indicato
if (!empty($id_promemoria)) {
$promemoria = Promemoria::find($id_promemoria);
$promemoria->pianifica($intervento);
}
if (!empty(post('idordineservizio'))) {

View File

@ -7,10 +7,13 @@ use Modules\Anagrafiche\Anagrafica;
use Modules\Contratti\Contratto;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Traits\RecordTrait;
use Util\Generator;
class Intervento extends Document
{
use RecordTrait;
protected $table = 'in_interventi';
protected $info = [];
@ -82,6 +85,11 @@ class Intervento extends Document
return $this->info['fine'];
}
public function getModuleAttribute()
{
return 'Interventi';
}
/**
* Restituisce la collezione di righe e articoli con valori rilevanti per i conti.
*

View File

@ -75,6 +75,9 @@ switch ($operazione) {
$data_inizio = post('data_inizio');
$count = 0;
$count_interventi = 0;
$count_promemoria = 0;
$date_con_promemoria = [];
$date_con_intervento = [];
if (post('pianifica_promemoria')) {
@ -124,6 +127,8 @@ switch ($operazione) {
'id_record' => $promemoria_corrente->id,
]);
}
$count_promemoria++;
} else {
$promemoria_corrente = $promemoria_contratto[$data_promemoria]->first();
$date_con_promemoria[] = dateFormat($data_promemoria);
@ -141,13 +146,13 @@ switch ($operazione) {
// Aggiungo i tecnici selezionati
$idtecnici = post('idtecnico');
foreach ($idtecnici as $idtecnico) {
add_tecnico($intervento->id, $idtecnico, $data_richiesta.' '.post('orario_inizio'), $data_richiesta.' '.post('orario_fine'));
add_tecnico($intervento->id, $idtecnico, $data_promemoria.' '.post('orario_inizio'), $data_promemoria.' '.post('orario_fine'));
}
// Copia delle informazioni del promemoria
$promemoria_corrente->pianifica($intervento);
flash()->info(tr('Interventi pianificati correttamente'));
$count_interventi++;
} elseif (post('pianifica_intervento')) {
$date_con_intervento[] = dateFormat($data_promemoria);
}
@ -161,8 +166,8 @@ switch ($operazione) {
if ($count == 0) {
flash()->warning(tr('Nessun promemoria pianificato'));
} else {
flash()->info(tr('Sono stati pianificati _NUM_ interventi!', [
'_NUM_' => $count,
flash()->info(tr('Sono stati creati _NUM_ promemoria!', [
'_NUM_' => $count_promemoria,
]));
if (!empty($date_con_promemoria)) {
@ -171,10 +176,16 @@ switch ($operazione) {
]));
}
if (!empty($date_con_intervento)) {
flash()->warning(tr('I promemoria delle seguenti date presentano già un intervento collegato: _LIST_', [
'_LIST_' => implode(', ', $date_con_intervento),
if (post('pianifica_intervento')) {
flash()->info(tr('Sono stati pianificati _NUM_ interventi!', [
'_NUM_' => $count_interventi,
]));
if (!empty($date_con_intervento)) {
flash()->warning(tr('I promemoria delle seguenti date presentano già un intervento collegato: _LIST_', [
'_LIST_' => implode(', ', $date_con_intervento),
]));
}
}
}
break;

View File

@ -67,11 +67,11 @@ if (!$elenco_promemoria->isEmpty()) {
}
// Intervento svolto
$intervento = $promemoria->intevento;
$intervento = $promemoria->intervento;
if (!empty($intervento)) {
$info_intervento = Modules::link('Interventi', $intervento['id'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $intervento['codice'],
'_DATE_' => Translator::dateToLocale($intervento['data']),
'_NUM_' => $intervento->codice,
'_DATE_' => dateFormat($intervento->data_richiesta),
]));
$disabled = 'disabled';

View File

@ -153,5 +153,8 @@ ALTER TABLE `co_promemoria_righe` RENAME TO `co_righe_promemoria`;
DROP TABLE `mg_articoli_interventi`;
DROP TABLE `co_promemoria_articoli`;
ALTER TABLE `co_righe_promemoria` ADD `original_id` int(11), ADD `original_type` varchar(255);
ALTER TABLE `in_righe_interventi` ADD `original_id` int(11), ADD `original_type` varchar(255);
-- Aggiunta supporto a prezzi ivati
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `updated_at`, `order`, `help`) VALUES (NULL, 'Utilizza prezzi di vendita con IVA incorporata', '0', 'boolean', '1', 'Fatturazione', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, 'Abilita la gestione degli importi ivati per i documenti di vendita.');