1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-01-10 22:53:52 +01:00

Miglioramento #112

Aggiunta funzione specifica per il calcolo degli sconti.
This commit is contained in:
Thomas Zilio 2018-05-04 19:25:45 +02:00
parent 9b38ef0f67
commit 81137ad89f

View File

@ -11,7 +11,7 @@ function get_new_numerofattura($data)
if ($dir == 'uscita') {
// recupero maschera per questo segmento
$rs_maschera = $dbo->fetchArray("SELECT pattern FROM zz_segments WHERE id = '".$id_segment."'");
$rs_maschera = $dbo->fetchArray('SELECT pattern FROM zz_segments WHERE id = '.prepare($id_segment));
// esempio: ####/YY
$maschera = $rs_maschera[0]['pattern'];
@ -19,13 +19,14 @@ function get_new_numerofattura($data)
preg_match('/[#]+/', $maschera, $m1);
preg_match('/[Y]+/', $maschera, $m2);
$query = "SELECT numero FROM co_documenti WHERE DATE_FORMAT(data,'%Y') = ".prepare(date('Y', strtotime($data)))." AND id_segment = '".$id_segment."'";
$query = "SELECT numero FROM co_documenti WHERE DATE_FORMAT(data,'%Y') = ".prepare(date('Y', strtotime($data))).' AND id_segment = '.prepare($id_segment);
$pos1 = strpos($maschera, $m1[0]);
if ($pos1 == 0):
$query .= ' ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0,1'; else:
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);
@ -51,7 +52,7 @@ function get_new_numerosecondariofattura($data)
global $id_segment;
// recupero maschera per questo segmento
$rs_maschera = $dbo->fetchArray("SELECT pattern FROM zz_segments WHERE id = '".$id_segment."'");
$rs_maschera = $dbo->fetchArray('SELECT pattern FROM zz_segments WHERE id = '.prepare($id_segment));
// esempio: ####/YY
$maschera = $rs_maschera[0]['pattern'];
@ -59,16 +60,17 @@ function get_new_numerosecondariofattura($data)
preg_match('/[#]+/', $maschera, $m1);
preg_match('/[Y]+/', $maschera, $m2);
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y') = ".prepare(date('Y', strtotime($data)))." AND id_segment='".$id_segment."'";
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y') = ".prepare(date('Y', strtotime($data))).' AND id_segment='.prepare($id_segment);
// 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($maschera, $m1[0]);
if ($pos1 == 0):
$query .= ' ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1'; else:
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_ultima_fattura = $dbo->fetchArray($query);
@ -756,10 +758,6 @@ function rimuovi_articolo_dafattura($idarticolo, $iddocumento, $idrigadocumento)
return true;
}
function rimuovi_riga($iddocumento, $idriga)
{
}
function aggiorna_sconto($tables, $fields, $id_record, $options = [])
{
$dbo = Database::getConnection();
@ -849,3 +847,28 @@ function seriali_non_rimuovibili($field, $id_riga, $dir)
return $results;
}
function calcola_sconto($data)
{
if ($data['tipo'] == 'PRC') {
$result = 0;
$price = floatval($data['prezzo']);
$percentages = explode('+', $data['sconto']);
foreach ($percentages as $percentage) {
$discount = $price / 100 * floatval($percentage);
$result += $discount;
$price -= $discount;
}
} else {
$result = floatval($data['sconto']);
}
if (!empty($data['qta'])) {
$result = $result * $data['qta'];
}
return $result;
}