mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Aggiunta importazione documenti in Interventi
Aggiunta creazione Intervento a partire da Ordine (#320)
This commit is contained in:
parent
f2309ac1b3
commit
b47fbc923d
@ -64,14 +64,27 @@ if (!empty($options['create_document'])) {
|
||||
}
|
||||
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Ritenuta contributi').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenuta_contributi" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.prepare($final_module['id']).' ORDER BY name", "value": "'.$id_segment.'" ]}
|
||||
</div>';
|
||||
} elseif ($options['op'] == 'add_ordine_cliente') {
|
||||
}
|
||||
// Opzioni aggiuntive per gli Interventi
|
||||
elseif ($final_module['name'] == 'Interventi') {
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato_intervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]}
|
||||
</div>';
|
||||
}
|
||||
// Selezione fornitore per Ordine fornitore
|
||||
elseif ($options['op'] == 'add_ordine_cliente') {
|
||||
$tipo_anagrafica = tr('Fornitore');
|
||||
$ajax = 'fornitori';
|
||||
|
||||
@ -87,7 +100,7 @@ if (!empty($options['create_document'])) {
|
||||
</div>';
|
||||
}
|
||||
|
||||
// Conto, rivalsa INPS, ritenuta d'acconto e ritenuta contributi
|
||||
// Conto, rivalsa INPS, ritenuta d'acconto e ritenuta contributi
|
||||
if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto']) && !in_array($original_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) {
|
||||
$id_rivalsa_inps = setting('Percentuale rivalsa');
|
||||
if ($dir == 'uscita') {
|
||||
|
@ -436,12 +436,17 @@ $riga = $contratto->getRiga($type, $id_riga);
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Individuazione sede
|
||||
$id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza;
|
||||
$id_sede = $id_sede ?: $documento->idsede;
|
||||
$id_sede = $id_sede ?: 0;
|
||||
|
||||
// Creazione del contratto al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$contratto = Contratto::build($documento->anagrafica, $documento->nome);
|
||||
|
||||
$contratto->idpagamento = $documento->idpagamento;
|
||||
$contratto->idsede = $documento->idsede;
|
||||
$contratto->idsede = $id_sede;
|
||||
|
||||
$contratto->id_documento_fe = $documento->id_documento_fe;
|
||||
$contratto->codice_cup = $documento->codice_cup;
|
||||
|
@ -286,6 +286,11 @@ switch (post('op')) {
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Individuazione sede
|
||||
$id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza;
|
||||
$id_sede = $id_sede ?: $documento->idsede;
|
||||
$id_sede = $id_sede ?: 0;
|
||||
|
||||
// Creazione del ddt al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$tipo = Tipo::where('dir', $documento->direzione)->first();
|
||||
@ -297,7 +302,7 @@ switch (post('op')) {
|
||||
$ddt->codice_cup = $documento->codice_cup;
|
||||
$ddt->codice_cig = $documento->codice_cig;
|
||||
$ddt->num_item = $documento->num_item;
|
||||
$ddt->idsede_destinazione = $documento->idsede;
|
||||
$ddt->idsede_destinazione = $id_sede;
|
||||
|
||||
$ddt->save();
|
||||
|
||||
|
@ -174,7 +174,7 @@ elseif ($record['stato'] == 'Bozza') {
|
||||
</div>
|
||||
<!-- TODO: da nascondere per le fatture di vendita in quanto questa data sarà sempre uguale alla data di emissione -->
|
||||
<div class="col-md-2" <?php echo ($is_fiscale) ? '' : 'hidden'; ?>>
|
||||
{[ "type": "date", "class":"<?php echo (dateFormat($fattura->data_competenza)<dateFormat($fattura->data)) ? 'unblockable' : '' ?>", "label": "<?php echo tr('Data competenza'); ?>", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data_registrazione$", "help": "<?php echo tr('Data nella quale considerare il movimento contabile, che può essere posticipato rispetto la data della fattura'); ?>" ]}
|
||||
{[ "type": "date", "class":"<?php echo (dateFormat($fattura->data_competenza) < dateFormat($fattura->data)) ? 'unblockable' : ''; ?>", "label": "<?php echo tr('Data competenza'); ?>", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data_registrazione$", "help": "<?php echo tr('Data nella quale considerare il movimento contabile, che può essere posticipato rispetto la data della fattura'); ?>" ]}
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -333,6 +333,58 @@ $riga = $intervento->getRiga($type, $id_riga);
|
||||
aggiorna_sedi_movimenti('interventi', $id_record);
|
||||
break;
|
||||
|
||||
// Aggiunta di un documento in ordine
|
||||
case 'add_documento':
|
||||
$class = post('class');
|
||||
$id_documento = post('id_documento');
|
||||
|
||||
// Individuazione del documento originale
|
||||
if (!is_subclass_of($class, \Common\Document::class)) {
|
||||
return;
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Individuazione sede
|
||||
$id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza;
|
||||
$id_sede = $id_sede ?: $documento->idsede;
|
||||
$id_sede = $id_sede ?: 0;
|
||||
|
||||
// Creazione dell' ordine al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$stato = Stato::find(post('id_stato_intervento'));
|
||||
$tipo = TipoSessione::find(post('id_tipo_intervento'));
|
||||
|
||||
$intervento = Intervento::build($documento->anagrafica, $tipo, $stato, post('data'));
|
||||
$intervento->idsede_destinazione = $id_sede;
|
||||
|
||||
$intervento->id_documento_fe = $documento->id_documento_fe;
|
||||
$intervento->codice_cup = $documento->codice_cup;
|
||||
$intervento->codice_cig = $documento->codice_cig;
|
||||
$intervento->num_item = $documento->num_item;
|
||||
|
||||
$intervento->save();
|
||||
|
||||
$id_record = $intervento->id;
|
||||
}
|
||||
|
||||
$righe = $documento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) {
|
||||
$qta = post('qta_da_evadere')[$riga->id];
|
||||
|
||||
$copia = $riga->copiaIn($intervento, $qta);
|
||||
$copia->save();
|
||||
}
|
||||
}
|
||||
|
||||
// Messaggio informativo
|
||||
$message = tr('_DOC_ aggiunto!', [
|
||||
'_DOC_' => $documento->getReference(),
|
||||
]);
|
||||
flash()->info($message);
|
||||
|
||||
break;
|
||||
|
||||
case 'firma':
|
||||
if (directory($docroot.'/files/interventi')) {
|
||||
if (post('firma_base64') != '') {
|
||||
|
@ -121,7 +121,6 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = false;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- RIGA 5 -->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
@ -323,13 +323,18 @@ switch (post('op')) {
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Individuazione sede
|
||||
$id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza;
|
||||
$id_sede = $id_sede ?: $documento->idsede;
|
||||
$id_sede = $id_sede ?: 0;
|
||||
|
||||
// Creazione dell' ordine al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$tipo = Tipo::where('dir', $documento->direzione)->first();
|
||||
|
||||
$ordine = Ordine::build($documento->anagrafica, $tipo, post('data'));
|
||||
$ordine->idpagamento = $documento->idpagamento;
|
||||
$ordine->idsede = $documento->idsede;
|
||||
$ordine->idsede = $id_sede;
|
||||
|
||||
$ordine->id_documento_fe = $documento->id_documento_fe;
|
||||
$ordine->codice_cup = $documento->codice_cup;
|
||||
|
@ -8,26 +8,29 @@ echo '
|
||||
<i class="fa fa-magic"></i> '.tr('Crea').'...
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right">';
|
||||
|
||||
echo '
|
||||
<li>
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'" class="'.(in_array($record['stato'], ['Accettato', 'Parzialmente evaso']) ? '' : 'disabled').'"><i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
|
||||
<ul class="dropdown-menu dropdown-menu-right">
|
||||
<li>
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=intervento" data-toggle="modal" data-title="'.tr('Crea attività').'">
|
||||
<i class="fa fa-wrench"></i> '.tr('Attività').'
|
||||
</a>
|
||||
</li>';
|
||||
</li>
|
||||
|
||||
echo '
|
||||
<li>
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'" class="'.(in_array($record['stato'], ['Accettato', 'Parzialmente evaso']) ? '' : 'disabled').'"><i class="fa fa-truck"></i> '.tr('Ddt').'
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'">
|
||||
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
|
||||
</a>
|
||||
</li>';
|
||||
</li>
|
||||
|
||||
echo '
|
||||
<li>
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'" class="'.(in_array($record['stato'], ['Accettato', 'Parzialmente fatturato']) ? '' : 'disabled').'"><i class="fa fa-file"></i> '.tr('Fattura').'
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'">
|
||||
<i class="fa fa-truck"></i> '.tr('Ddt').'
|
||||
</a>
|
||||
</li>';
|
||||
</li>
|
||||
|
||||
echo '
|
||||
<li>
|
||||
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
|
||||
<i class="fa fa-file"></i> '.tr('Fattura').'
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>';
|
||||
|
@ -14,6 +14,9 @@ if (get('documento') == 'fattura') {
|
||||
} elseif (get('documento') == 'ordine_fornitore') {
|
||||
$final_module = 'Ordini fornitore';
|
||||
$op = 'add_ordine_cliente';
|
||||
} elseif (get('documento') == 'intervento') {
|
||||
$final_module = 'Interventi';
|
||||
$op = 'add_documento';
|
||||
} else {
|
||||
$final_module = $module['name'] == 'Ordini cliente' ? 'Ddt di vendita' : 'Ddt di acquisto';
|
||||
$op = 'add_ordine';
|
||||
|
@ -15,12 +15,33 @@ HAVING 2=2
|
||||
ORDER BY `co_documenti`.`data` DESC, CAST(IF(`co_documenti`.`numero` = \'\', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC' WHERE `name` = 'Fatture di acquisto';
|
||||
|
||||
|
||||
-- Allineo per i movimenti relativi alle fatture di vendita, la data del movimento con la data del documento
|
||||
-- Allineo per i movimenti relativi alle fatture di vendita, la data del movimento con la data del documento
|
||||
UPDATE `co_movimenti` SET `co_movimenti`.`data` = `co_movimenti`.`data_documento` WHERE `iddocumento` IN (SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` WHERE `co_tipidocumento`.`dir` = 'entrata' );
|
||||
|
||||
-- Allineo per le fatture di vendita, la data_competenza con data emissione del documento
|
||||
-- Allineo per le fatture di vendita, la data_competenza con data emissione del documento
|
||||
UPDATE `co_documenti` SET `co_documenti`.`data_competenza` = `co_documenti`.`data` WHERE `co_documenti`.`idtipodocumento` IN (SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir` = 'entrata');
|
||||
|
||||
|
||||
-- Elimino data_documento per co_documenti
|
||||
ALTER TABLE `co_movimenti` DROP `data_documento`;
|
||||
ALTER TABLE `co_movimenti` DROP `data_documento`;
|
||||
|
||||
-- Allineamento idarticolo nelle tabelle delle righe
|
||||
ALTER TABLE `co_righe_documenti` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `co_righe_documenti` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `co_righe_preventivi` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `co_righe_preventivi` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `co_righe_contratti` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `co_righe_contratti` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `dt_righe_ddt` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `dt_righe_ddt` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `or_righe_ordini` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `or_righe_ordini` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `or_righe_ordini` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `or_righe_ordini` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
||||
ALTER TABLE `co_righe_promemoria` CHANGE `idarticolo` `idarticolo` INT(11) NULL;
|
||||
UPDATE `co_righe_promemoria` SET `idarticolo` = NULL WHERE `idarticolo` = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user