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:
parent
9b38ef0f67
commit
81137ad89f
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user