mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-02 08:56:48 +01:00
* Periodi validità (Contratti, preventivi) * Spostata la funzione validità nel file 2_4_16.sql * Calcolo automatico della data di conclusione Il calcolo viene effettuato in base alla data di accettazione e alla validità impostata Co-authored-by: Thomas Zilio <Dasc3er@users.noreply.github.com>
This commit is contained in:
parent
5e025f70ae
commit
83343bacc3
@ -38,6 +38,17 @@ switch (post('op')) {
|
||||
$budget = $rs[0]['budget'];
|
||||
}
|
||||
|
||||
// Calcolo della data di conclusione in base alla validità
|
||||
$validita = post('validita');
|
||||
$validita_periodo = post('tipo_validita');
|
||||
$data_accettazione = post('data_accettazione');
|
||||
$data_conclusione = post('data_conclusione');
|
||||
if (!empty($validita) and !empty($data_accettazione)) {
|
||||
$nuova_data = new DateTime($data_accettazione);
|
||||
$nuova_data->add(new DateInterval(sprintf("P%d%s", $validita, strtoupper($validita_periodo))));
|
||||
$data_conclusione = $nuova_data->format('Y-m-d');
|
||||
}
|
||||
|
||||
$contratto->idanagrafica = post('idanagrafica');
|
||||
$contratto->idsede = post('idsede');
|
||||
$contratto->idstato = post('idstato');
|
||||
@ -47,11 +58,12 @@ switch (post('op')) {
|
||||
$contratto->numero = post('numero');
|
||||
$contratto->budget = $budget;
|
||||
$contratto->idreferente = post('idreferente');
|
||||
$contratto->validita = post('validita');
|
||||
$contratto->validita = $validita;
|
||||
$contratto->validita_periodo = $validita_periodo;
|
||||
$contratto->data_bozza = post('data_bozza');
|
||||
$contratto->data_accettazione = post('data_accettazione');
|
||||
$contratto->data_accettazione = $data_accettazione;
|
||||
$contratto->data_rifiuto = post('data_rifiuto');
|
||||
$contratto->data_conclusione = post('data_conclusione');
|
||||
$contratto->data_conclusione = $data_conclusione;
|
||||
$contratto->rinnovabile = post('rinnovabile');
|
||||
$contratto->giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo');
|
||||
$contratto->ore_preavviso_rinnovo = post('ore_preavviso_rinnovo');
|
||||
|
@ -36,7 +36,7 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = true;
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$" ]}
|
||||
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$", "disabled": "<?php echo !empty($record['validita']) ? '1", "help": "' . tr("La data di conclusione è calcolata in automatico in base al valore del campo Validità") : 0 ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
@ -93,7 +93,7 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = true;
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Validità offerta'); ?>", "name": "validita", "decimals": "2", "value": "$validita$", "icon-after": "giorni" ]}
|
||||
{[ "type": "number", "label": "<?php echo tr('Validità offerta'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "choice|period|<?php echo $record['validita_periodo']; ?>", "help": "<?php echo tr("Il campo validità viene utilizzato solo nelle stampe, non è incluso nel calcolo della fine del contratto. Si può inserire questo valore nel campo Data conclusione") ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
@ -463,4 +463,4 @@ $('#rinnovabile').on('change', function(){
|
||||
$('#giorni_preavviso_rinnovo').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
0
modules/ddt/modutil.php
Executable file → Normal file
0
modules/ddt/modutil.php
Executable file → Normal file
@ -29,6 +29,7 @@ $result = [
|
||||
'qta' => 1,
|
||||
'um' => '',
|
||||
'prezzo' => 0,
|
||||
'prezzo_acquisto' => 0,
|
||||
'sconto_unitario' => 0,
|
||||
'tipo_sconto' => '',
|
||||
'idiva' => '',
|
||||
|
0
modules/interventi/actions.php
Executable file → Normal file
0
modules/interventi/actions.php
Executable file → Normal file
@ -34,6 +34,17 @@ switch (post('op')) {
|
||||
|
||||
case 'update':
|
||||
if (isset($id_record)) {
|
||||
// Calcolo della data di conclusione in base alla validità
|
||||
$validita = post('validita');
|
||||
$validita_periodo = post('tipo_validita');
|
||||
$data_accettazione = post('data_accettazione');
|
||||
$data_conclusione = post('data_conclusione');
|
||||
if (!empty($validita) and !empty($data_accettazione)) {
|
||||
$nuova_data = new DateTime($data_accettazione);
|
||||
$nuova_data->add(new DateInterval(sprintf("P%d%s", $validita, strtoupper($validita_periodo))));
|
||||
$data_conclusione = $nuova_data->format('Y-m-d');
|
||||
}
|
||||
|
||||
$preventivo->idstato = post('idstato');
|
||||
$preventivo->nome = post('nome');
|
||||
$preventivo->idanagrafica = post('idanagrafica');
|
||||
@ -45,16 +56,17 @@ switch (post('op')) {
|
||||
$preventivo->tempi_consegna = post('tempi_consegna');
|
||||
$preventivo->numero = post('numero');
|
||||
$preventivo->data_bozza = post('data_bozza');
|
||||
$preventivo->data_accettazione = post('data_accettazione');
|
||||
$preventivo->data_accettazione = $data_accettazione;
|
||||
$preventivo->data_rifiuto = post('data_rifiuto');
|
||||
$preventivo->data_conclusione = post('data_conclusione');
|
||||
$preventivo->data_conclusione = $data_conclusione;
|
||||
$preventivo->esclusioni = post('esclusioni');
|
||||
$preventivo->descrizione = post('descrizione');
|
||||
$preventivo->id_documento_fe = post('id_documento_fe');
|
||||
$preventivo->num_item = post('num_item');
|
||||
$preventivo->codice_cig = post('codice_cig');
|
||||
$preventivo->codice_cup = post('codice_cup');
|
||||
$preventivo->validita = post('validita');
|
||||
$preventivo->validita = $validita;
|
||||
$preventivo->validita_periodo = $validita_periodo;
|
||||
$preventivo->idtipointervento = post('idtipointervento');
|
||||
$preventivo->idiva = post('idiva');
|
||||
|
||||
|
@ -48,7 +48,7 @@ if (count($preventivo->revisioni) > 1) {
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$" ]}
|
||||
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$", "disabled": "<?php echo !empty($record['validita']) ? '1", "help": "' . tr("La data di conclusione è calcolata in automatico in base al valore del campo Validità") : 0 ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
@ -105,8 +105,7 @@ if (count($preventivo->revisioni) > 1) {
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Validità offerta'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "giorni" ]}
|
||||
|
||||
{[ "type": "number", "label": "<?php echo tr('Validità offerta'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "choice|period|<?php echo $record['validita_periodo']; ?>", "help": "<?php echo tr("Il campo validità viene utilizzato solo nelle stampe, non è incluso nel calcolo della fine del preventivo. Si può inserire questo valore nel campo Data conclusione") ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
@ -233,6 +233,21 @@ class HTMLWrapper implements WrapperInterface
|
||||
'descrizione' => tr('CCN'),
|
||||
],
|
||||
];
|
||||
} elseif ($type == 'period') {
|
||||
$choices = [
|
||||
[
|
||||
'id' => 'd',
|
||||
'descrizione' => tr('giorno/i')
|
||||
],
|
||||
[
|
||||
'id' => 'm',
|
||||
'descrizione' => tr('mese/i')
|
||||
],
|
||||
[
|
||||
'id' => 'y',
|
||||
'descrizione' => tr('anno/i')
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
$value = (empty($pieces[2]) || !in_array($pieces[2], array_column($choices, 'id'))) ? $choices[0]['id'] : $pieces[2];
|
||||
|
@ -272,10 +272,25 @@ echo '
|
||||
<td>';
|
||||
|
||||
if (!empty($documento['validita'])) {
|
||||
$periodi = [
|
||||
'd' => [
|
||||
'singular' => tr('giorno'),
|
||||
'plural' => tr('giorni')
|
||||
],
|
||||
'm' => [
|
||||
'singular' => tr('mese'),
|
||||
'plural' => tr('mesi')
|
||||
],
|
||||
'y' => [
|
||||
'singular' => tr('anno'),
|
||||
'plural' => tr('anni')
|
||||
],
|
||||
];
|
||||
echo'
|
||||
'.tr('_TOT_ giorni', [
|
||||
'_TOT_' => $documento['validita'],
|
||||
]);
|
||||
'.tr('_TOT_ _PERIOD_', [
|
||||
'_TOT_' => $documento['validita'],
|
||||
'_PERIOD_' => $periodi[$documento['validita_periodo']][$documento['validita'] == 1 ? 'singular' : 'plural']
|
||||
]);
|
||||
} else {
|
||||
echo '-';
|
||||
}
|
||||
|
@ -326,9 +326,24 @@ echo '
|
||||
<td>';
|
||||
|
||||
if (!empty($documento['validita'])) {
|
||||
$periodi = [
|
||||
'd' => [
|
||||
'singular' => tr('giorno'),
|
||||
'plural' => tr('giorni')
|
||||
],
|
||||
'm' => [
|
||||
'singular' => tr('mese'),
|
||||
'plural' => tr('mesi')
|
||||
],
|
||||
'y' => [
|
||||
'singular' => tr('anno'),
|
||||
'plural' => tr('anni')
|
||||
],
|
||||
];
|
||||
echo'
|
||||
'.tr('_TOT_ giorni', [
|
||||
'.tr('_TOT_ _PERIOD_', [
|
||||
'_TOT_' => $documento['validita'],
|
||||
'_PERIOD_' => $periodi[$documento['validita_periodo']][$documento['validita'] == 1 ? 'singular' : 'plural']
|
||||
]);
|
||||
} else {
|
||||
echo '-';
|
||||
|
@ -107,3 +107,7 @@ ALTER TABLE `mg_prodotti` DROP FOREIGN KEY `mg_prodotti_ibfk_4`;
|
||||
UPDATE mg_prodotti SET mg_prodotti.id_riga_intervento = NULL WHERE mg_prodotti.id_riga_intervento NOT IN (SELECT old_id FROM in_righe_interventi);
|
||||
UPDATE mg_prodotti SET mg_prodotti.id_riga_intervento = (SELECT id FROM in_righe_interventi WHERE mg_prodotti.id_riga_intervento = in_righe_interventi.old_id);
|
||||
ALTER TABLE `mg_prodotti` ADD FOREIGN KEY (`id_riga_intervento`) REFERENCES `in_righe_interventi`(`id`) ON DELETE CASCADE;
|
||||
|
||||
-- Periodi di validità (Contratti e preventivi)
|
||||
ALTER TABLE `co_contratti` ADD COLUMN `validita_periodo` ENUM('d','m','y') NOT NULL DEFAULT 'd' AFTER `validita`;
|
||||
ALTER TABLE `co_preventivi` ADD COLUMN `validita_periodo` ENUM('d','m','y') NOT NULL DEFAULT 'd' AFTER `validita`;
|
||||
|
Loading…
x
Reference in New Issue
Block a user