Aggiunta numerazione per mese per Contratti, Preventivi, Ordini

This commit is contained in:
MatteoPistorello 2022-02-08 16:06:15 +01:00
parent 490e4d4f17
commit 5f637b25f0
4 changed files with 41 additions and 12 deletions

View File

@ -132,7 +132,7 @@ switch (post('op')) {
// Duplica contratto
case 'copy':
$new = $contratto->replicate();
$new->numero = Contratto::getNextNumero();
$new->numero = Contratto::getNextNumero($contratto->data_bozza);
$stato = Stato::where('descrizione', '=', 'Bozza')->first();
$new->stato()->associate($stato);
@ -355,12 +355,11 @@ $riga = $contratto->getRiga($type, $id_riga);
$new_contratto = $contratto->replicate();
$new_contratto->numero = Contratto::getNextNumero();
$new_contratto->idcontratto_prev = $contratto->id;
$new_contratto->data_accettazione = $contratto->data_conclusione->copy()->addDays(1);
$new_contratto->data_conclusione = $new_contratto->data_accettazione->copy()->add($diff);
$new_contratto->data_bozza = Carbon::now();
$new_contratto->numero = Contratto::getNextNumero($new_contratto->data_bozza);
$stato = Stato::where('descrizione', '=', 'Bozza')->first();
$new_contratto->stato()->associate($stato);

View File

@ -80,10 +80,9 @@ class Contratto extends Document
$model->anagrafica()->associate($anagrafica);
$model->stato()->associate($stato_documento);
$model->numero = static::getNextNumero();
$model->nome = $nome;
$model->data_bozza = Carbon::now();
$model->numero = static::getNextNumero($model->data_bozza);
if (!empty($id_agente)) {
$model->idagente = $id_agente;
@ -272,7 +271,19 @@ class Contratto extends Document
{
$maschera = setting('Formato codice contratti');
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero');
if (strpos($maschera, 'm') !== false) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
'MONTH(data_bozza) = '.prepare(date('m', strtotime($data))),
]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
]);
} else {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero');
}
$numero = Generator::generate($maschera, $ultimo);
return $numero;

View File

@ -226,11 +226,25 @@ class Ordine extends Document
$maschera = setting('Formato numero secondario ordine');
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')',
]);
$numero = Generator::generate($maschera, $ultimo, 1, Generator::dateToPattern($data));
if (strpos($maschera, 'm') !== false) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'MONTH(data) = '.prepare(date('m', strtotime($data))),
'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')',
]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')',
]);
} else {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')',
]);
}
$numero = Generator::generate($maschera, $ultimo);
return $numero;
}

View File

@ -300,7 +300,12 @@ class Preventivo extends Document
{
$maschera = setting('Formato codice preventivi');
if ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) {
if (strpos($maschera, 'm') !== false) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
'MONTH(data_bozza) = '.prepare(date('m', strtotime($data))),
]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
]);