Skip to content

Commit 52ae27b

Browse files
committed
fix: gestione stati dei ddt
1 parent 9fe7d82 commit 52ae27b

5 files changed

Lines changed: 30 additions & 28 deletions

File tree

modules/ddt/edit.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,8 @@
108108
echo '
109109
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatoddt", "required": 1, "values": "query=SELECT `dt_statiddt`.*, `dt_statiddt_lang`.`title` as descrizione, `colore` AS _bgcolor_ FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') ORDER BY `title`", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}';
110110
} else {
111-
$id_stato_bozza = Stato::where('name', 'Bozza')->first()->id;
112-
$id_stato_evaso = Stato::where('name', 'Evaso')->first()->id;
113-
$id_stato_parz_evaso = Stato::where('name', 'Parzialmente evaso')->first()->id;
114111
echo '
115-
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatoddt", "required": 1, "values": "query=SELECT `dt_statiddt`.*, `dt_statiddt_lang`.`title` as descrizione, `colore` AS _bgcolor_ FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') WHERE `dt_statiddt`.`id` IN ('.implode(',', [$id_stato_bozza, $id_stato_evaso, $id_stato_parz_evaso]).') ORDER BY `title`", "value": "$idstatoddt$", "class": "unblockable" ]}';
112+
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatoddt", "required": 1, "values": "query=SELECT `dt_statiddt`.*, `dt_statiddt_lang`.`title` as descrizione, `colore` AS _bgcolor_ FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') WHERE `dt_statiddt`.`is_fatturabile` = 1 ORDER BY `title`", "value": "$idstatoddt$", "class": "unblockable" ]}';
116113
}
117114
} else {
118115
echo '

modules/ddt/src/Stato.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ class Stato extends Model
3434
'title',
3535
];
3636

37+
public static function build($descrizione = null,$icona = null, $colore = null, $is_bloccato = null, $is_fatturabile = null)
38+
{
39+
$model = new static();
40+
$model->name = $descrizione;
41+
$model->icona = $icona;
42+
$model->colore = $colore;
43+
$model->is_bloccato = $is_bloccato;
44+
$model->is_fatturabile = $is_fatturabile;
45+
$model->save();
46+
47+
return $model;
48+
}
49+
3750
public function ddt()
3851
{
3952
return $this->hasMany(DDT::class, 'idstatoddt');

modules/stati_ddt/actions.php

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@
3535
}
3636
$stato->icona = post('icona');
3737
$stato->colore = post('colore');
38-
$stato->is_bloccato = post('completato');
38+
$stato->is_bloccato = post('is_bloccato');
3939
$stato->is_fatturabile = post('is_fatturabile');
40-
$stato->setTranslation('title', $descrizione);
4140
$stato->save();
4241

42+
$stato->setTranslation('title', $descrizione);
4343
flash()->info(tr('Informazioni salvate correttamente.'));
4444
}
4545

@@ -49,29 +49,26 @@
4949
$descrizione = post('descrizione');
5050
$icona = post('icona');
5151
$colore = post('colore');
52-
$is_bloccato = post('completato_add');
52+
$is_bloccato = post('is_bloccato_add');
5353
$is_fatturabile = post('is_fatturabile_add');
5454

5555
$stato_new = Stato::where('name', $descrizione)->first();
5656

5757
if ($stato_new) {
5858
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato DDT.'));
5959
} else {
60-
$stato = Stato::build();
61-
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {
62-
$stato->name = $descrizione;
63-
}
60+
$stato = Stato::build($descrizione, $icona, $colore, $is_bloccato, $is_fatturabile);
6461
$id_record = $dbo->lastInsertedID();
6562
$stato->setTranslation('title', $descrizione);
66-
$stato->save();
63+
6764
flash()->info(tr('Nuovo stato DDT aggiunto.'));
6865
}
6966

7067
break;
7168

7269
case 'delete':
73-
// scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli ordini
74-
if (count($dbo->fetchArray('SELECT `id` FROM `dt_statiddt` WHERE `id`='.prepare($id_record))) > 0) {
70+
// scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei DDT
71+
if (count($dbo->fetchArray('SELECT `id` FROM `dt_ddt` WHERE `idstatoddt`='.prepare($id_record))) > 0) {
7572
$query = 'UPDATE `dt_statiddt` SET `deleted_at` = NOW() WHERE `can_delete` = 1 AND `id`='.prepare($id_record);
7673
} else {
7774
$query = 'DELETE FROM `dt_statiddt` WHERE `can_delete` = 1 AND `id`='.prepare($id_record);

modules/stati_ddt/add.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,13 @@
3535

3636
<div class="row">
3737
<div class="col-md-2">
38-
{[ "type": "checkbox", "label": "<?php echo tr('Bloccato'); ?>", "name": "completato_add", "value": "$completato$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come completati'); ?>", "placeholder": "<?php echo tr('Bloccato'); ?>", "extra": "" ]}
38+
{[ "type": "checkbox", "label": "<?php echo tr('Bloccato'); ?>", "name": "is_bloccato_add", "value": "$is_bloccato_add$", "help": "<?php echo tr('I DDT che si trovano in questo stato verranno considerati come completati'); ?>", "placeholder": "<?php echo tr('Bloccato'); ?>", "extra": "" ]}
3939
</div>
4040

4141
<div class="col-md-2">
42-
{[ "type": "checkbox", "label": "<?php echo tr('Impegnato'); ?>", "name": "impegnato_add", "value": "$impegnato$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come pianificabili'); ?>", "placeholder": "<?php echo tr('Impegnato'); ?>", "extra": "" ]}
42+
{[ "type": "checkbox", "label": "<?php echo tr('Fatturabile'); ?>", "name": "is_fatturabile_add", "value": "$is_fatturabile$", "help": "<?php echo tr('I DDT che si trovano in questo stato verranno considerati come fatturabili'); ?>", "placeholder": "<?php echo tr('Fatturabile'); ?>", "extra": "" ]}
4343
</div>
44-
45-
<div class="col-md-2">
46-
{[ "type": "checkbox", "label": "<?php echo tr('Fatturabile'); ?>", "name": "is_fatturabile_add", "value": "$is_fatturabile$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come fatturabili'); ?>", "placeholder": "<?php echo tr('Fatturabile'); ?>", "extra": "" ]}
47-
</div>
48-
<div class="col-md-6">
44+
<div class="col-md-8">
4945
{[ "type": "text", "label": "<?php echo tr('Icona'); ?>", "name": "icona", "required": 1, "class": "text-center", "value": "fa ", "extra": "" ]}
5046
</div>
5147
</div>

modules/stati_ddt/edit.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@
5252
</div>
5353

5454
<div class="card-body">
55-
{[ "type": "checkbox", "label": "<?php echo tr('Bloccato?'); ?>", "name": "completato", "value": "$completato$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come completati'); ?>", "placeholder": "<?php echo tr('Bloccato'); ?>", "extra": "" ]}
56-
{[ "type": "checkbox", "label": "<?php echo tr('Impegnato?'); ?>", "name": "impegnato", "value": "$impegnato$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come impegnati'); ?>", "placeholder": "<?php echo tr('Impegnato'); ?>", "extra": "" ]}
57-
{[ "type": "checkbox", "label": "<?php echo tr('Fatturabile?'); ?>", "name": "is_fatturabile", "value": "$is_fatturabile$", "help": "<?php echo tr('Gli ordini che si trovano in questo stato verranno considerati come fatturabili'); ?>", "placeholder": "<?php echo tr('Fatturabile'); ?>", "extra": "" ]}
55+
{[ "type": "checkbox", "label": "<?php echo tr('Bloccato?'); ?>", "name": "is_bloccato", "value": "$is_bloccato$", "help": "<?php echo tr('I DDT che si trovano in questo stato verranno considerati come completati'); ?>", "placeholder": "<?php echo tr('Bloccato'); ?>", "extra": "" ]}
56+
{[ "type": "checkbox", "label": "<?php echo tr('Fatturabile?'); ?>", "name": "is_fatturabile", "value": "$is_fatturabile$", "help": "<?php echo tr('I DDT che si trovano in questo stato verranno considerati come fatturabili'); ?>", "placeholder": "<?php echo tr('Fatturabile'); ?>", "extra": "" ]}
5857
</div>
5958
</div>
6059
</div>
@@ -63,13 +62,13 @@
6362

6463

6564
<?php
66-
$ordini = $dbo->fetchNum('SELECT `id` FROM `or_ordini` WHERE `idstatoordine`='.prepare($id_record));
65+
$ddt = $dbo->fetchNum('SELECT `id` FROM `dt_ddt` WHERE `idstatoddt`='.prepare($id_record));
6766

68-
if (!empty($ordini)) {
67+
if (!empty($ddt)) {
6968
echo '
7069
<div class="alert alert-danger">
71-
'.tr('Ci sono _NUM_ ordini collegati', [
72-
'_NUM_' => $ordini,
70+
'.tr('Ci sono _NUM_ ddt collegati', [
71+
'_NUM_' => $ddt,
7372
]).'.
7473
</div>';
7574
}

0 commit comments

Comments
 (0)