Numero per fatture di acquisto
This commit is contained in:
parent
926b5c8461
commit
af3af11873
|
@ -23,8 +23,9 @@ switch (post('op')) {
|
|||
$dir = $post['dir'];
|
||||
$idtipodocumento = post('idtipodocumento');
|
||||
|
||||
$numero = get_new_numerofattura($data);
|
||||
$id_segment = post('id_segment');
|
||||
$numero = get_new_numerofattura($data);
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$numero_esterno = get_new_numerosecondariofattura($data);
|
||||
$idconto = get_var('Conto predefinito fatture di vendita');
|
||||
|
@ -77,12 +78,15 @@ switch (post('op')) {
|
|||
$totale_imponibile = get_imponibile_fattura($id_record);
|
||||
$totale_fattura = get_totale_fattura($id_record);
|
||||
|
||||
|
||||
if ($dir == 'uscita') {
|
||||
$idrivalsainps = post('idrivalsainps');
|
||||
$idritenutaacconto = post('idritenutaacconto');
|
||||
$numero = prepare(post('numero'));
|
||||
} else {
|
||||
$idrivalsainps = 0;
|
||||
$idritenutaacconto = 0;
|
||||
$numero = '(SELECT t.numero FROM (SELECT * FROM co_documenti) t WHERE t.id = '.prepare($post['id_record']).')';
|
||||
}
|
||||
|
||||
// Leggo la descrizione del pagamento
|
||||
|
@ -93,6 +97,7 @@ switch (post('op')) {
|
|||
// Query di aggiornamento
|
||||
$query = 'UPDATE co_documenti SET '.
|
||||
' data='.prepare($data).','.
|
||||
' numero='.$numero.','.
|
||||
' idstatodocumento='.prepare($idstatodocumento).','.
|
||||
' idtipodocumento='.prepare($idtipodocumento).','.
|
||||
' idanagrafica='.prepare($idanagrafica).','.
|
||||
|
|
|
@ -55,7 +55,7 @@ $_SESSION['superselect']['ddt'] = $dir;
|
|||
if ($dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "span", "label": "'.tr('Numero fattura').'", "name": "numero","class": "text-center", "value": "$numero$" ]}
|
||||
{[ "type": "text", "label": "'.tr('Numero fattura').'", "required": 1, "name": "numero","class": "text-center", "value": "$numero$" ]}
|
||||
</div>';
|
||||
$label = tr('Numero secondario');
|
||||
} else {
|
||||
|
|
|
@ -7,11 +7,52 @@ function get_new_numerofattura($data)
|
|||
{
|
||||
global $dbo;
|
||||
global $dir;
|
||||
global $id_segment;
|
||||
|
||||
$query = "SELECT IFNULL(MAX(numero),'0') AS max_numerofattura FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = ".prepare(date('Y', strtotime($data))).' AND idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='.prepare($dir).') ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0, 1';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
if ($dir = 'uscita'){
|
||||
|
||||
$numero = $rs[0]['max_numerofattura'] + 1;
|
||||
// recupero maschera per questo segmento
|
||||
$rs_maschera = $dbo->fetchArray("SELECT pattern FROM zz_segments WHERE id = '".$id_segment."'");
|
||||
// esempio: ####/YY
|
||||
$maschera = $rs_maschera[0]['pattern'];
|
||||
|
||||
// estraggo blocchi di caratteri standard da sostituire
|
||||
preg_match('/[#]+/', $maschera, $m1 );
|
||||
preg_match('/[Y]+/', $maschera, $m2 );
|
||||
|
||||
$anno = substr( $data, 0, 4);
|
||||
|
||||
$query = "SELECT numero FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND id_segment='".$id_segment."' ";
|
||||
|
||||
$pos1 = strpos( $maschera, $m1[0] );
|
||||
if( $pos1==0 ):
|
||||
$query .= " ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0,1";
|
||||
else:
|
||||
$query .= " ORDER BY numero DESC LIMIT 0,1";
|
||||
endif;
|
||||
|
||||
$rs_ultima_fattura = $dbo->fetchArray( $query );
|
||||
|
||||
//$numero = get_next_code( $rs_ultima_fattura[0]['numero'], 1, $maschera );
|
||||
$numero = Util\Generator::generate($maschera, $rs_ultima_fattura[0]['numero']);
|
||||
|
||||
// sostituisco anno nella maschera
|
||||
$anno = substr( $anno, -strlen($m2[0]) ); // nel caso ci fosse YY
|
||||
$numero = str_replace( $m2[0], $anno, $numero );
|
||||
|
||||
/*echo $numero;
|
||||
echo $maschera;
|
||||
echo $query;
|
||||
exit;*/
|
||||
|
||||
}else{
|
||||
|
||||
$query = "SELECT IFNULL(MAX(numero),'0') AS max_numerofattura FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = ".prepare(date('Y', strtotime($data))).' AND idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='.prepare($dir).') ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0, 1';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
$numero = $rs[0]['max_numerofattura'] + 1;
|
||||
|
||||
}
|
||||
|
||||
return $numero;
|
||||
}
|
||||
|
|
|
@ -280,3 +280,6 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_movimenti` JOIN `m
|
|||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Indirizzo per le email in uscita';
|
||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Destinatario';
|
||||
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Destinatario fisso in copia (campo CC)';
|
||||
|
||||
-- Conversione numero co_documenti da int(11) a varchar(100)
|
||||
ALTER TABLE `co_documenti` CHANGE `numero` `numero` VARCHAR(100) NOT NULL;
|
Loading…
Reference in New Issue