mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-02 08:56:48 +01:00
Fix conversione promemoria in intervento
This commit is contained in:
parent
8c79e4b4b0
commit
d1d0625c0e
@ -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'))) {
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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;
|
||||
|
@ -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';
|
||||
|
@ -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.');
|
||||
|
Loading…
x
Reference in New Issue
Block a user