Skip to content

Commit 89f681c

Browse files
committed
fix: selezione sede legale come sede partenza di default nei documenti, nel caso di piu sedi abilitate agli utenti
1 parent 4f67da2 commit 89f681c

3 files changed

Lines changed: 31 additions & 20 deletions

File tree

modules/ddt/src/DDT.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,22 @@ public static function build(Anagrafica $anagrafica, Tipo $tipo_documento, $data
9696
$model->numero = static::getNextNumero($data, $direzione, $id_segment);
9797
$model->numero_esterno = static::getNextNumeroSecondario($data, $direzione, $id_segment);
9898

99-
// Imposto, come sede aziendale, la prima sede disponibile come utente
99+
// Imposto, come sede aziendale, la sede legale (0) se disponibile, altrimenti la prima sede disponibile
100+
$id_sede = 0;
101+
if (!empty($user->sedi)) {
102+
// Verifico se la sede legale (0) è tra le sedi dell'utente
103+
if (in_array(0, $user->sedi)) {
104+
$id_sede = 0;
105+
} else {
106+
// Se la sede legale non è disponibile, prendo la prima sede dell'utente
107+
$id_sede = $user->sedi[0];
108+
}
109+
}
110+
100111
if ($direzione == 'entrata') {
101-
$model->idsede_partenza = $user->sedi[0];
112+
$model->idsede_partenza = $id_sede;
102113
} else {
103-
$model->idsede_destinazione = $user->sedi[0];
114+
$model->idsede_destinazione = $id_sede;
104115
}
105116

106117
$model->save();

modules/fatture/src/Fattura.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -122,18 +122,18 @@ public static function build(Anagrafica $anagrafica, Tipo $tipo_documento, $data
122122
}
123123
$model->idagente = $anagrafica->idagente ?: '';
124124

125+
// Imposto, come sede aziendale, la sede legale (0) se disponibile, altrimenti la prima sede disponibile
125126
$id_sede = 0;
126-
foreach ($user->sedi as $sede) {
127-
if ($sede != 0 || count($user->sedi) == 1) {
128-
$id_sede = $sede;
129-
break;
127+
if (!empty($user->sedi)) {
128+
// Verifico se la sede legale (0) è tra le sedi dell'utente
129+
if (in_array(0, $user->sedi)) {
130+
$id_sede = 0;
131+
} else {
132+
// Se la sede legale non è disponibile, prendo la prima sede dell'utente
133+
$id_sede = $user->sedi[0];
130134
}
131135
}
132136

133-
if ($id_sede === null && !empty($user->sedi)) {
134-
$id_sede = $user->sedi[0];
135-
}
136-
137137
if ($direzione == 'entrata') {
138138
$model->idsede_partenza = $id_sede;
139139
} else {

modules/interventi/src/Intervento.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,18 +75,18 @@ public static function build(Anagrafica $anagrafica, TipoSessione $tipo_sessione
7575
$model->idclientefinale = $anagrafica->idanagrafica;
7676

7777
$user = auth_osm()->getUser();
78-
$id_sede = null;
79-
foreach ($user->sedi as $sede) {
80-
if ($sede != 0 || count($user->sedi) == 1) {
81-
$id_sede = $sede;
82-
break;
78+
// Imposto, come sede aziendale, la sede legale (0) se disponibile, altrimenti la prima sede disponibile
79+
$id_sede = 0;
80+
if (!empty($user->sedi)) {
81+
// Verifico se la sede legale (0) è tra le sedi dell'utente
82+
if (in_array(0, $user->sedi)) {
83+
$id_sede = 0;
84+
} else {
85+
// Se la sede legale non è disponibile, prendo la prima sede dell'utente
86+
$id_sede = $user->sedi[0];
8387
}
8488
}
8589

86-
if ($id_sede === null && !empty($user->sedi)) {
87-
$id_sede = $user->sedi[0];
88-
}
89-
9090
$model->idsede_partenza = $id_sede ?: 0;
9191
$model->save();
9292

0 commit comments

Comments
 (0)