From 4c1227596625dc59e07bf1786cfbb26746828d5d Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 16 Feb 2023 14:53:42 +0100 Subject: [PATCH] Fix #1185 --- modules/ordini/src/Ordine.php | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/modules/ordini/src/Ordine.php b/modules/ordini/src/Ordine.php index c4457f553..72df4eea3 100755 --- a/modules/ordini/src/Ordine.php +++ b/modules/ordini/src/Ordine.php @@ -92,7 +92,7 @@ class Ordine extends Document $model->idpagamento = $id_pagamento; } - $model->numero = static::getNextNumero($data, $direzione); + $model->numero = static::getNextNumero($data, $direzione, $id_segment); $model->numero_esterno = static::getNextNumeroSecondario($data, $direzione, $id_segment); $model->save(); @@ -198,10 +198,32 @@ class Ordine extends Document * * @return string */ - public static function getNextNumero($data, $direzione) + public static function getNextNumero($data, $direzione, $id_segment) { - $maschera = '#'; + if ($direzione == 'entrata') { + $maschera = '#'; + } else { + $maschera = Generator::getMaschera($id_segment); + if (strpos($maschera, 'm') !== false) { + $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [ + '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', [ + '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', [ + 'YEAR(data) = '.prepare(date('Y', strtotime($data))), + 'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')', + ]); + } + } + $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [ 'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir = '.prepare($direzione).')',