Actions per sezionali
This commit is contained in:
parent
dcab3c1336
commit
968c3dae02
|
@ -24,6 +24,7 @@ switch (post('op')) {
|
|||
$idtipodocumento = post('idtipodocumento');
|
||||
|
||||
$numero = get_new_numerofattura($data);
|
||||
$idsezionale = post('idsezionale');
|
||||
if ($dir == 'entrata') {
|
||||
$numero_esterno = get_new_numerosecondariofattura($data);
|
||||
$idconto = get_var('Conto predefinito fatture di vendita');
|
||||
|
@ -867,6 +868,8 @@ switch (post('op')) {
|
|||
$idddt = $post['idddt'];
|
||||
$numero = get_new_numerofattura($data);
|
||||
|
||||
$idsezionale = post('idsezionale');
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$numero_esterno = get_new_numerosecondariofattura($data);
|
||||
} else {
|
||||
|
@ -882,7 +885,7 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
// Creazione nuova fattura
|
||||
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($data).', '.prepare($idanagrafica).', (SELECT id FROM co_tipidocumento WHERE descrizione='.prepare($tipo_documento)."), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), ".prepare($idpagamento).', '.prepare($idconto).')');
|
||||
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto, idsezionale) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($data).', '.prepare($idanagrafica).', (SELECT id FROM co_tipidocumento WHERE descrizione='.prepare($tipo_documento)."), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), ".prepare($idpagamento).', '.prepare($idconto).', '.prepare($idsezionale).' )');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// Lettura di tutte le righe della tabella in arrivo
|
||||
|
|
|
@ -34,29 +34,19 @@ if ($module['name'] == 'Fatture di vendita') {
|
|||
{[ "type": "select", "label": "<?php echo tr('Tipo fattura'); ?>", "name": "idtipodocumento", "required": 1, "values": "query=SELECT id, descrizione FROM co_tipidocumento WHERE dir='<?php echo $dir; ?>'", "value": "" ]}
|
||||
</div>
|
||||
<?php
|
||||
if( $dir == "entrata" ){
|
||||
|
||||
if (isset($_SESSION[$dir]['idsezionale'])){
|
||||
$idsezionale_default = $_SESSION[$dir]['idsezionale'];
|
||||
}
|
||||
else{
|
||||
|
||||
(!empty($_SESSION['idsezionale'])) ? $idsezionale_default = $_SESSION['idsezionale'] :$idsezionale_default = get_var("Sezionale predefinito fatture di vendita");
|
||||
}
|
||||
|
||||
if( $dir == "entrata" ):
|
||||
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale_default = $_SESSION[$dir]['idsezionale'] : $idsezionale_default = get_var("Sezionale predefinito fatture di vendita");
|
||||
endif;
|
||||
|
||||
if( $dir == "uscita" ):
|
||||
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale_default = $_SESSION[$dir]['idsezionale'] : $idsezionale_default = get_var("Sezionale predefinito fatture di acquisto");
|
||||
endif;
|
||||
|
||||
?>
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "idsezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='entrata' ORDER BY nome", "value": "<?= $idsezionale_default ?>", "extra": "" ]}
|
||||
</div>
|
||||
<?php
|
||||
}else{
|
||||
?>
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Numero fattura del fornitore'); ?>", "name": "numero_esterno", "required": 1, "class": "", "value": "", "extra": "" ]}
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "idsezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='<?php echo $dir; ?>' ORDER BY nome", "value": "<?php echo $idsezionale_default; ?>", "extra": "" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PULSANTI -->
|
||||
|
|
|
@ -27,40 +27,42 @@ function get_new_numerosecondariofattura($data)
|
|||
global $idsezionale;
|
||||
|
||||
// recupero maschera per questo sezionale
|
||||
$maschera = $dbo->fetchArray("SELECT * FROM co_sezionali WHERE id='".$idsezionale."'");
|
||||
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$idsezionale."'");
|
||||
// esempio: ####YYYY
|
||||
$numero_esterno = $maschera[0]['maschera'];
|
||||
$maschera = $rs_maschera[0]['maschera'];
|
||||
|
||||
// estraggo blocchi di caratteri standard da sostituire
|
||||
preg_match('/[#]+/', $numero_esterno, $m1 );
|
||||
preg_match('/[Y]+/', $numero_esterno, $m2 );
|
||||
preg_match('/[#]+/', $maschera, $m1 );
|
||||
preg_match('/[Y]+/', $maschera, $m2 );
|
||||
|
||||
// potrei inserire una fattura per l'anno scorso, quindi recupero l'anno dalla data impostata
|
||||
$anno = substr( $data, 0, 4); // questo valore serve nella query
|
||||
$anno = substr( $data, 0, 4);
|
||||
|
||||
// recupero ultimo numero di fattura per questo sezionale (idtipodocumento va considerato o no?)
|
||||
//AND idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = '".$dir."')
|
||||
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND idsezionale='".$idsezionale."' ";
|
||||
|
||||
|
||||
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND id_sezionale='".$idsezionale."' ";
|
||||
// Marzo 2017
|
||||
// nel caso ci fossero lettere prima della maschera ### per il numero (es. FT-0001-2017)
|
||||
// è necessario l'ordinamento alfabetico "ORDER BY numero_esterno" altrimenti
|
||||
// nel caso di maschere del tipo 001-2017 è necessario l'ordinamento numerico "ORDER BY CAST(numero_esterno AS UNSIGNED)"
|
||||
$pos1 = strpos( $numero_esterno, $m1[0] );
|
||||
$pos1 = strpos( $maschera, $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;
|
||||
|
||||
|
||||
|
||||
$ultima_fattura = $dbo->fetchArray( $query );
|
||||
$rs_ultima_fattura = $dbo->fetchArray( $query );
|
||||
|
||||
$numero_esterno = get_next_code( $ultima_fattura[0]['numero_esterno'], 1, $numero_esterno );
|
||||
|
||||
|
||||
$numero_esterno = get_next_code( $rs_ultima_fattura[0]['numero_esterno'], 1, $maschera );
|
||||
|
||||
echo $numero_esterno;
|
||||
exit();
|
||||
|
||||
// sostituisco anno nella maschera
|
||||
$anno_ = substr( $anno, -strlen($m2[0]) ); // nel caso ci fosse YY
|
||||
$numero_esterno = str_replace( $m2[0], $anno_, $numero_esterno );
|
||||
$anno = substr( $anno, -strlen($m2[0]) ); // nel caso ci fosse YY
|
||||
$numero_esterno = str_replace( $m2[0], $anno, $numero_esterno );
|
||||
|
||||
|
||||
return $numero_esterno;
|
||||
|
|
Loading…
Reference in New Issue