mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-24 22:42:33 +01:00
Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
72e9a16bf6
@ -29,6 +29,17 @@ if ($module['name'] == 'Ddt di vendita') {
|
||||
$dir = 'uscita';
|
||||
}
|
||||
|
||||
$numero_previsto = verifica_numero_ddt($ddt);
|
||||
if (!empty($numero_previsto)) {
|
||||
echo '
|
||||
<div class="alert alert-warning">
|
||||
<i class="fa fa-warning"></i> '.tr("E' assente una fattura di vendita di numero _NUM_ in data precedente o corrispondente a _DATE_: si potrebbero verificare dei problemi con la numerazione corrente delle fatture", [
|
||||
'_DATE_' => dateFormat($fattura->data),
|
||||
'_NUM_' => '"'.$numero_previsto.'"',
|
||||
]).'.</b>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
<form action="" method="post" id="edit-form">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
@ -20,6 +20,7 @@
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\DDT\DDT;
|
||||
use Util\Generator;
|
||||
|
||||
/**
|
||||
* Funzione per generare un nuovo numero per il ddt.
|
||||
@ -213,3 +214,45 @@ function get_stato_ddt($idddt)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function verifica_numero_ddt(DDT $ddt)
|
||||
{
|
||||
global $dbo;
|
||||
|
||||
if (empty($ddt->numero_esterno)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$data = $ddt->data;
|
||||
$tipo = $ddt->tipo;
|
||||
|
||||
$documenti = DDT::where('idtipoddt', $tipo->id)
|
||||
->where('data', $data)
|
||||
->get();
|
||||
|
||||
// Recupero maschera per questo segmento
|
||||
$maschera = setting('Formato numero secondario ddt');
|
||||
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'dt_ddt', 'numero_esterno', [
|
||||
'data < '.prepare(date('Y-m-d', strtotime($data))),
|
||||
'YEAR(data) = '.prepare(date('Y', strtotime($data))),
|
||||
'idtipoddt = '.prepare($tipo->id),
|
||||
], $data);
|
||||
|
||||
do {
|
||||
$numero = Generator::generate($maschera, $ultimo, 1, Generator::dateToPattern($data));
|
||||
|
||||
$filtered = $documenti->reject(function ($item, $key) use ($numero) {
|
||||
return $item->numero_esterno == $numero;
|
||||
});
|
||||
|
||||
if ($documenti->count() == $filtered->count()) {
|
||||
return $numero;
|
||||
}
|
||||
|
||||
$documenti = $filtered;
|
||||
$ultimo = $numero;
|
||||
} while ($numero != $fattura->numero_esterno);
|
||||
|
||||
return null;
|
||||
}
|
Loading…
Reference in New Issue
Block a user