Fix numerazione ddt e test nuova classe Generator

This commit is contained in:
Luca 2018-03-19 18:17:34 +01:00
parent 038c9e767b
commit 74a659fd3c
3 changed files with 52 additions and 7 deletions

View File

@ -139,7 +139,7 @@ if (!empty($module_options) && $module_options != 'menu' && $module_options != '
}
echo '
<li role="presentation"><a class="bulk-action" data-op="'.$key.'" data-backto="record-list" '.implode(' ', $extra).'>'.$text.'</a></li>';
<li role="presentation"><a class="bulk-action clickable" data-op="'.$key.'" data-backto="record-list" '.implode(' ', $extra).'>'.$text.'</a></li>';
}
echo '

View File

@ -136,9 +136,32 @@ switch (post('op')) {
}
break;
case 'delete-bulk':
foreach ($id_records as $id) {
$dbo->query('DELETE FROM dt_ddt WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM dt_righe_ddt WHERE idddt='.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM mg_movimenti WHERE idddt='.prepare($id).Modules::getAdditionalsQuery($id_module));
}
$_SESSION['infos'][] = tr('Ddt eliminati!');
break;
}
return [
'delete-bulk' => tr('Elimina selezionati'),
'export-bulk' => [
'text' => tr('Esporta stampe'),
'data' => [

View File

@ -23,20 +23,42 @@ function get_new_numerosecondarioddt($data)
{
global $dbo;
global $dir;
$query = "SELECT numero_esterno FROM dt_ddt WHERE DATE_FORMAT( data, '%Y' ) = '".date('Y', strtotime($data))."' AND idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir='".$dir."') ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
$numero_secondario = $rs[0]['numero_esterno'];
// Calcolo il numero secondario se stabilito dalle impostazioni e se documento di vendita
$formato_numero_secondario = get_var('Formato numero secondario ddt');
$query = "SELECT numero_esterno FROM dt_ddt WHERE DATE_FORMAT( data, '%Y' ) = '".date('Y', strtotime($data))."' AND idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir='".$dir."')";
// estraggo blocchi di caratteri standard da sostituire
preg_match('/[#]+/', $formato_numero_secondario, $m1 );
preg_match('/[Y]+/', $formato_numero_secondario, $m2 );
// Marzo 2017
// nel caso ci fossero lettere o numeri prima della maschera ### per il numero (es. 18-####)
// è necessario l'ordinamento alfabetico "ORDER BY numero_esterno" altrimenti
// nel caso di maschere del tipo 0001-2018 è necessario l'ordinamento numerico "ORDER BY CAST(numero_esterno AS UNSIGNED)"
$pos1 = strpos( $formato_numero_secondario, $m1[0] );
if( $pos1==0 ):
$query .= " ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1";
else:
$query .= " ORDER BY numero_esterno DESC LIMIT 0,1";
endif;
$rs = $dbo->fetchArray($query);
$numero_secondario = $rs[0]['numero_esterno'];
if ($numero_secondario == '') {
$numero_secondario = $formato_numero_secondario;
}
if ($formato_numero_secondario != '' && $dir == 'entrata') {
$numero_esterno = get_next_code($numero_secondario, 1, $formato_numero_secondario);
//$numero_esterno = get_next_code($numero_secondario, 1, $formato_numero_secondario);
$numero_esterno = Util\Generator::generate($formato_numero_secondario, $numero_secondario);
/*echo $query."<br>";
echo $numero_secondario."<br>";
echo $formato_numero_secondario."<br>";
echo $numero_esterno."<br>";
exit;*/
} else {
$numero_esterno = '';
}