1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-03-03 18:58:54 +01:00

Bugfix parziale #247

This commit is contained in:
Thomas Zilio 2018-06-22 17:04:37 +02:00
parent 2da221c950
commit c90a161046
14 changed files with 378 additions and 632 deletions

View File

@ -128,6 +128,10 @@ if (empty($records)) {
}
});
if ($("#pulsanti").hasClass("affix")) {
$("#pulsanti").css("width", $("#tab_0").css("width"));
}
$("#pulsanti").on("affix.bs.affix", function(){
$("#pulsanti").css("width", $("#tab_0").css("width"));
});

View File

@ -3,30 +3,29 @@
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'example':
$module = filter('module');
$list = array (
array('Codice','Ragione sociale','Partita IVA','Nazione','Indirizzo','CAP','Città','Provincia','Telefono','Fax','Cellulare','Email','IBAN','Note','Tipologia'),
array('00001','Cliente','12345678910','ITALIA','Via Giuseppe Mazzini, 123','12345','Este','PD','786 543 21','123 456 78','321 123 456 78','email@cliente.it','IT60 X054 2811 1010 0000 0123 456','Anagrafica di esempio','Cliente'),
);
directory('../../files/'.$module);
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
case 'example':
foreach ($list as $fields) {
fputcsv($fp, $fields, ';');
}
$module = filter('module');
fclose($fp);
exit;
break;
case 'import':
$list = [
['Codice', 'Ragione sociale', 'Partita IVA', 'Nazione', 'Indirizzo', 'CAP', 'Città', 'Provincia', 'Telefono', 'Fax', 'Cellulare', 'Email', 'IBAN', 'Note', 'Tipologia'],
['00001', 'Cliente', '12345678910', 'ITALIA', 'Via Giuseppe Mazzini, 123', '12345', 'Este', 'PD', '786 543 21', '123 456 78', '321 123 456 78', 'email@cliente.it', 'IT60 X054 2811 1010 0000 0123 456', 'Anagrafica di esempio', 'Cliente'],
];
directory('../../files/'.$module);
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields, ';');
}
fclose($fp);
exit;
break;
case 'import':
foreach ($data as $key => $value) {
if (!empty($value)) {

View File

@ -4,78 +4,70 @@ include_once __DIR__.'/../../core.php';
include_once $docroot.'/modules/articoli/modutil.php';
switch (post('op')) {
case 'example':
$module = filter('module');
$list = array (
array('Codice','Descrizione','Quantità','Unità di misura','Prezzo acquisto','Prezzo vendita','Peso lordo (KG)','Volume (M3)','Categoria','Note'),
array('00004','Articolo','10','Kg','5,25','12,72','10,2','500','Categoria4','Articolo di prova'),
);
directory('../../files/'.$module);
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
case 'example':
foreach ($list as $fields) {
fputcsv($fp, $fields, ';');
}
$module = filter('module');
fclose($fp);
exit;
break;
case 'import':
$list = [
['Codice', 'Descrizione', 'Quantità', 'Unità di misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso lordo (KG)', 'Volume (M3)', 'Categoria', 'Note'],
['00004', 'Articolo', '10', 'Kg', '5,25', '12,72', '10,2', '500', 'Categoria4', 'Articolo di prova'],
];
directory('../../files/'.$module);
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields, ';');
}
fclose($fp);
exit;
break;
case 'import':
foreach ($data as $key => $value) {
if (!empty($value)) {
$qta = force_decimal($data[$key]['qta']);
unset($data[$key]['qta']);
$data[$key]['attivo'] = 1;
$data[$key]['prezzo_acquisto'] = force_decimal($data[$key]['prezzo_acquisto']);
$data[$key]['prezzo_vendita'] = force_decimal($data[$key]['prezzo_vendita']);
$data[$key]['peso_lordo'] = force_decimal($data[$key]['peso_lordo']);
$data[$key]['volume'] = force_decimal($data[$key]['volume']);
$qta = force_decimal($data[$key]['qta']);
unset($data[$key]['qta']);
$data[$key]['attivo'] = 1;
$data[$key]['prezzo_acquisto'] = force_decimal($data[$key]['prezzo_acquisto']);
$data[$key]['prezzo_vendita'] = force_decimal($data[$key]['prezzo_vendita']);
$data[$key]['peso_lordo'] = force_decimal($data[$key]['peso_lordo']);
$data[$key]['volume'] = force_decimal($data[$key]['volume']);
// Categorie
if (!empty($data[$key]['id_categoria'])) {
$rs_cat = $dbo->select('mg_categorie', 'id', [
'nome' => $data[$key]['id_categoria'],
]);
if (empty($rs_cat[0]['id'])) {
$dbo->insert('mg_categorie', [
'nome' => $data[$key]['id_categoria'],
]);
$data[$key]['id_categoria'] = $dbo->lastInsertedID();
} else {
$data[$key]['id_categoria'] = $rs_cat[0]['id'];
}
}
// Um
if (!empty($data[$key]['um'])) {
$rs_um = $dbo->select('mg_unitamisura', 'id', [
'valore' => $data[$key]['um'],
]);
if (empty($rs_um[0]['id'])) {
$dbo->insert('mg_unitamisura', [
'valore' => $data[$key]['um'],
]);
}
}
// Categorie
if (!empty($data[$key]['id_categoria'])){
$rs_cat = $dbo->select('mg_categorie', 'id', [
'nome' => $data[$key]['id_categoria'],
]);
if (empty($rs_cat[0]['id'])) {
$dbo->insert('mg_categorie', [
'nome' => $data[$key]['id_categoria'],
]);
$data[$key]['id_categoria'] = $dbo->lastInsertedID();
}else{
$data[$key]['id_categoria'] = $rs_cat[0]['id'];
}
}
// Um
if (!empty($data[$key]['um'])){
$rs_um = $dbo->select('mg_unitamisura', 'id', [
'valore' => $data[$key]['um'],
]);
if (empty($rs_um[0]['id'])) {
$dbo->insert('mg_unitamisura', [
'valore' => $data[$key]['um'],
]);
}
}
// Insert o update
$insert = true;
if (!empty($primary_key)) {
@ -85,23 +77,22 @@ switch (post('op')) {
$insert = !in_array($data[$key][$primary_key], $rs[0]);
}
// Insert
if ($insert) {
$data[$key]['id_categoria'] = (empty ($data[$key]['id_categoria'])) ? 0 : $data[$key]['id_categoria'];
$data[$key]['id_categoria'] = (empty($data[$key]['id_categoria'])) ? 0 : $data[$key]['id_categoria'];
$dbo->insert('mg_articoli', $data[$key]);
add_movimento_magazzino($dbo->lastInsertedID(), $qta, [], 'Movimento da import', date());
add_movimento_magazzino($dbo->lastInsertedID(), $qta, [], 'Movimento da import', date());
}
// Update
else {
$dbo->update('mg_articoli', $data[$key], [$primary_key => $data[$key][$primary_key]]);
$rs = $dbo->select('mg_articoli', 'id', [
$primary_key => $data[$key][$primary_key],
]);
add_movimento_magazzino($rs[0]['id'], $qta, [], 'Movimento da import', date());
$rs = $dbo->select('mg_articoli', 'id', [
$primary_key => $data[$key][$primary_key],
]);
add_movimento_magazzino($rs[0]['id'], $qta, [], 'Movimento da import', date());
}
unset($data[$key]);
@ -133,14 +124,14 @@ return [
'Unità misura',
'unità misura',
'unità di misura',
'Unit` di misura',
'um',
'Unit` di misura',
'um',
],
],
[
'field' => 'prezzo_acquisto',
'label' => 'Prezzo acquisto',
'names' => [
'names' => [
'Prezzo Acquisto',
'prezzo acquisto',
],
@ -148,7 +139,7 @@ return [
[
'field' => 'prezzo_vendita',
'label' => 'Prezzo vendita',
'names' => [
'names' => [
'Prezzo Vendita',
'prezzo vendita',
],
@ -156,7 +147,7 @@ return [
[
'field' => 'peso_lordo',
'label' => 'Peso lordo (KG)',
'names' => [
'names' => [
'Peso lordo (KG)',
'Peso',
],
@ -164,7 +155,7 @@ return [
[
'field' => 'volume',
'label' => 'Volume (M3)',
'names' => [
'names' => [
'Volume (M3)',
'volume',
],
@ -179,8 +170,8 @@ return [
'categoria',
],
],
[
[
'field' => 'note',
'label' => 'Note',
]
],
];

View File

@ -1,137 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
/**
* Questa funzione rimuove un articolo dal ddt data e lo riporta in magazzino
* $idarticolo integer codice dell'articolo da scollegare dall'ordine
* $idordine integer codice dell'ordine da cui scollegare l'articolo.
*/
function rimuovi_articolo_dapreventivo($idarticolo, $idpreventivo, $idriga)
{
global $dbo;
global $dir;
// Leggo la quantità di questo articolo nell'ordine
$query = 'SELECT qta, subtotale FROM co_righe_preventivi WHERE id='.prepare($idriga);
$rs = $dbo->fetchArray($query);
$qta = floatval($rs[0]['qta']);
$subtotale = $rs[0]['subtotale'];
// Elimino la riga dall'ordine
$dbo->query('DELETE FROM co_righe_preventivi WHERE id='.prepare($idriga));
}
/**
* Ricalcola i costi aggiuntivi in ordine (rivalsa inps, ritenuta d'acconto, marca da bollo)
* Deve essere eseguito ogni volta che si aggiunge o toglie una riga
* $idordine int ID del ordine
* $idrivalsainps int ID della rivalsa inps da applicare. Se omesso viene utilizzata quella impostata di default
* $idritenutaacconto int ID della ritenuta d'acconto da applicare. Se omesso viene utilizzata quella impostata di default
* $bolli float Costi aggiuntivi delle marche da bollo. Se omesso verrà usata la cifra predefinita.
*/
function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '')
{
global $dbo;
global $dir;
// Se ci sono righe nel ordine faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$query = 'SELECT COUNT(id) AS righe FROM co_righe_preventivi WHERE idpreventivo='.prepare($idpreventivo);
$rs = $dbo->fetchArray($query);
if ($rs[0]['righe'] > 0) {
$totale_imponibile = get_imponibile_preventivo($idpreventivo);
$totale_preventivo = get_totale_preventivo($idpreventivo);
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
if ($dir == 'entrata') {
if (!empty($idrivalsainps)) {
$idrivalsainps = get_var('Percentuale rivalsa INPS');
}
}
$query = 'SELECT percentuale FROM co_rivalsainps WHERE id='.prepare($idrivalsainps);
$rs = $dbo->fetchArray($query);
$rivalsainps = $totale_imponibile / 100 * $rs[0]['percentuale'];
// Aggiorno la rivalsa inps
// $dbo->query("UPDATE or_ordini SET rivalsainps='$rivalsainps' WHERE id='$idordine'");
// Leggo la ritenuta d'acconto se c'è
$totale_ordine = get_totale_ordine($idordine);
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
if (!empty($idritenutaacconto)) {
if ($dir == 'entrata') {
$idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
}
}
$query = 'SELECT percentuale FROM co_ritenutaacconto WHERE id='.prepare($idritenutaacconto);
$rs = $dbo->fetchArray($query);
$ritenutaacconto = $totale_preventivo / 100 * $rs[0]['percentuale'];
$netto_a_pagare = $totale_preventivo - $ritenutaacconto;
// Leggo la marca da bollo se c'è e se il netto a pagare supera la soglia
$bolli = str_replace(',', '.', $bolli);
$bolli = floatval($bolli);
if ($dir == 'uscita') {
} else {
$bolli = str_replace(',', '.', get_var('Importo marca da bollo'));
if (abs($bolli) > 0 && abs($netto_a_pagare) > abs(get_var("Soglia minima per l'applicazione della marca da bollo"))) {
$marca_da_bollo = str_replace(',', '.', $bolli);
} else {
$marca_da_bollo = 0.00;
}
// Se l'importo è negativo può essere una nota di accredito, quindi cambio segno alla marca da bollo
if ($netto_a_pagare < 0) {
$marca_da_bollo *= -1;
}
}
// $dbo->query("UPDATE or_ordini SET ritenutaacconto='$ritenutaacconto', bollo='$marca_da_bollo' WHERE id='$idordine'");
} else {
// $dbo->query("UPDATE or_ordini SET ritenutaacconto='0', bollo='0', sconto='0', rivalsainps='0' WHERE id='$idordine'");
}
}
/**
* Restituisce lo stato dell'ordine in base alle righe.
*/
function get_stato_preventivo($idpreventivo)
{
global $dbo;
$rs = $dbo->fetchArray('SELECT SUM(qta) AS qta, SUM(qta_evasa) AS qta_evasa FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
if ($rs[0]['qta_evasa'] > 0) {
if ($rs[0]['qta'] > $rs[0]['qta_evasa']) {
return 'Parzialmente evaso';
} elseif ($rs[0]['qta'] == $rs[0]['qta_evasa']) {
return 'Evaso';
}
} else {
return 'Non evaso';
}
}
/**
* Aggiorna il budget del preventivo leggendo tutte le righe inserite.
*
* @deprecated 2.3
*/
function update_budget_preventivo($idpreventivo)
{
global $dbo;
// Totale articoli
$rs = $dbo->fetchArray('SELECT SUM(subtotale) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_articoli = $rs[0]['totale'];
// Totale costo ore, km e diritto di chiamata
$rs = $dbo->fetchArray('SELECT SUM(costo_orario*ore_lavoro + costo_diritto_chiamata) AS totale FROM co_preventivi GROUP BY id HAVING id='.prepare($idpreventivo));
$totale_lavoro = $rs[0]['totale'];
// Aggiorno il budget su co_preventivi
$dbo->query('UPDATE co_preventivi SET budget='.prepare($totale_articoli + $totale_lavoro).' WHERE id='.prepare($idpreventivo));
}

View File

@ -1,12 +1,11 @@
<?php
include_once __DIR__.'/../../../core.php';
include_once $docroot.'/modules/fatture/modutil.php';
switch (post('op')) {
/*
/*
GESTIONE ARTICOLI
*/
@ -39,11 +38,10 @@ switch (post('op')) {
/* Ricollego l'articolo modificato all'intervento */
/* ci può essere il caso in cui cambio idarticolo e anche qta */
//no break;
//no break;
case 'addarticolo':
$idarticolo = post('idarticolo');
//$idautomezzo = post('idautomezzo');
$descrizione = post('descrizione');
@ -57,8 +55,8 @@ switch (post('op')) {
$tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
$idcontratto_riga = $post['idcontratto_riga'];
$idcontratto_riga = $post['idcontratto_riga'];
// Decremento la quantità
//add_movimento_magazzino($idarticolo, -$qta, ['idautomezzo' => $idautomezzo, 'idintervento' => $id_record]);
@ -91,12 +89,11 @@ switch (post('op')) {
break;
case 'unlink_articolo':
$idriga = post('idriga');
//$idarticolo = post('idarticolo');
$dbo->query('DELETE FROM co_righe_contratti_articoli WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
// Riporto la merce nel magazzino
if (!empty($idriga) && !empty($id_record)) {
@ -121,88 +118,77 @@ switch (post('op')) {
}
break;
/*
/*
Gestione righe generiche
*/
case 'addriga':
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
$sconto_unitario = $post['sconto'];
$tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$sconto_unitario = $post['sconto'];
$tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$idcontratto_riga = $post['idcontratto_riga'];
$dbo->query('INSERT INTO co_righe_contratti_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$idcontratto_riga = $post['idcontratto_riga'];
$dbo->query('INSERT INTO co_righe_contratti_materiali(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, id_riga_contratto) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idcontratto_riga).')');
break;
break;
case 'editriga':
$idriga = post('idriga');
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
$sconto_unitario = $post['sconto'];
$tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
$idriga = post('idriga');
$descrizione = post('descrizione');
$qta = post('qta');
$um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto');
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$sconto_unitario = $post['sconto'];
$tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
//Calcolo iva
$rs_iva = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva));
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita * $qta) - $sconto) * $rs_iva[0]['percentuale'] / 100;
$dbo->query('UPDATE co_righe_contratti_materiali SET '.
' descrizione='.prepare($descrizione).','.
' qta='.prepare($qta).','.
' um='.prepare($um).','.
' prezzo_vendita='.prepare($prezzo_vendita).','.
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
' idiva='.prepare($idiva).','.
' desc_iva='.prepare($desc_iva).','.
' iva='.prepare($iva).','.
' sconto='.prepare($sconto).','.
' sconto_unitario='.prepare($sconto_unitario).','.
' tipo_sconto='.prepare($tipo_sconto).
' WHERE id='.prepare($idriga));
break;
case 'delriga':
$dbo->query('UPDATE co_righe_contratti_materiali SET '.
' descrizione='.prepare($descrizione).','.
' qta='.prepare($qta).','.
' um='.prepare($um).','.
' prezzo_vendita='.prepare($prezzo_vendita).','.
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
' idiva='.prepare($idiva).','.
' desc_iva='.prepare($desc_iva).','.
' iva='.prepare($iva).','.
' sconto='.prepare($sconto).','.
' sconto_unitario='.prepare($sconto_unitario).','.
' tipo_sconto='.prepare($tipo_sconto).
' WHERE id='.prepare($idriga));
break;
case 'delriga':
$idriga = post('idriga');
$dbo->query('DELETE FROM co_righe_contratti_materiali WHERE id='.prepare($idriga).' '.Modules::getAdditionalsQuery($id_module));
break;
break;
}
?>

View File

@ -156,7 +156,7 @@ switch (post('op')) {
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
add_articolo_inddt($id_record, $idarticolo, $descrizione, $idiva, $qta, $prezzo * $qta, $sconto, $sconto_unitario, $tipo_sconto);
add_articolo_inddt($id_record, $idarticolo, $descrizione, $idiva, $qta, $post['um'], $prezzo * $qta, $sconto, $sconto_unitario, $tipo_sconto);
// Ricalcolo inps, ritenuta e bollo
ricalcola_costiagg_ddt($id_record);

View File

@ -7,9 +7,10 @@ include_once __DIR__.'/../../core.php';
*/
function get_new_numeroddt($data)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
$query = "SELECT IFNULL(MAX(numero),'0') AS max_numeroddt 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 AS UNSIGNED) DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
@ -21,9 +22,10 @@ function get_new_numeroddt($data)
*/
function get_new_numerosecondarioddt($data)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Calcolo il numero secondario se stabilito dalle impostazioni e se documento di vendita
$formato_numero_secondario = get_var('Formato numero secondario ddt');
@ -52,9 +54,10 @@ function get_new_numerosecondarioddt($data)
*/
function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Leggo la quantità di questo articolo in ddt
$query = 'SELECT qta, subtotale FROM dt_righe_ddt WHERE id='.prepare($idrigaddt);
$rs = $dbo->fetchArray($query);
@ -107,7 +110,7 @@ function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt)
*/
function get_imponibile_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(subtotale-sconto) AS imponibile FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt);
$rs = $dbo->fetchArray($query);
@ -120,14 +123,14 @@ function get_imponibile_ddt($idddt)
*/
function get_totale_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
// Sommo l'iva di ogni riga al totale
$query = "SELECT SUM(iva) AS iva FROM dt_righe_ddt GROUP BY idddt HAVING idddt='".$idddt."'";
$query = 'SELECT SUM(iva) AS iva FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt);
$rs = $dbo->fetchArray($query);
// Aggiungo la rivalsa inps se c'è
$query2 = "SELECT rivalsainps FROM dt_ddt WHERE id='".$idddt."'";
$query2 = 'SELECT rivalsainps FROM dt_ddt WHERE id='.prepare($idddt);
$rs2 = $dbo->fetchArray($query2);
return get_imponibile_ddt($idddt) + $rs[0]['iva'] + $rs2[0]['rivalsainps'];
@ -138,9 +141,9 @@ function get_totale_ddt($idddt)
*/
function get_netto_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
$query = "SELECT ritenutaacconto,bollo FROM dt_ddt WHERE id='".$idddt."'";
$query = 'SELECT ritenutaacconto,bollo FROM dt_ddt WHERE id='.prepare($idddt);
$rs = $dbo->fetchArray($query);
return get_totale_ddt($idddt) - $rs[0]['ritenutaacconto'] + $rs[0]['bollo'];
@ -151,9 +154,9 @@ function get_netto_ddt($idddt)
*/
function get_ivadetraibile_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
$query = "SELECT SUM(iva)-SUM(iva_indetraibile) AS iva_detraibile FROM dt_righe_ddt GROUP BY idddt HAVING idddt='".$idddt."'";
$query = 'SELECT SUM(iva)-SUM(iva_indetraibile) AS iva_detraibile FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt);
$rs = $dbo->fetchArray($query);
return $rs[0]['iva_detraibile'];
@ -164,9 +167,9 @@ function get_ivadetraibile_ddt($idddt)
*/
function get_ivaindetraibile_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
$query = "SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM dt_righe_ddt GROUP BY idddt HAVING idddt='".$idddt."'";
$query = 'SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt);
$rs = $dbo->fetchArray($query);
return $rs[0]['iva_indetraibile'];
@ -182,9 +185,10 @@ function get_ivaindetraibile_ddt($idddt)
*/
function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '')
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Se ci sono righe nel ddt faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$query = "SELECT COUNT(id) AS righe FROM dt_righe_ddt WHERE idddt='$idddt'";
$rs = $dbo->fetchArray($query);
@ -274,20 +278,15 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto
* $qta float quantità dell'articolo nell'ordine
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
*/
function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
{
global $dbo;
global $dir;
// Lettura unità di misura dell'articolo
// $query = "SELECT valore FROM mg_unitamisura WHERE id=(SELECT idum FROM mg_articoli WHERE id='".$idarticolo."')";
// $rs = $dbo->fetchArray($query);
// $um = $rs[0]['valore'];
$dbo = Database::getConnection();
// Lettura unità di misura dell'articolo
if (empty($idum)) {
$query = 'SELECT um FROM mg_articoli WHERE id='.prepare($idarticolo);
$rs = $dbo->fetchArray($query);
$rs = $dbo->fetchArray('SELECT um FROM mg_articoli WHERE id='.prepare($idarticolo));
$um = $rs[0]['valore'];
} else {
$um = $idum;
@ -329,7 +328,7 @@ function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $pr
*/
function get_stato_ddt($idddt)
{
global $dbo;
$dbo = Database::getConnection();
$rs = $dbo->fetchArray('SELECT SUM(qta) AS qta, SUM(qta_evasa) AS qta_evasa FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt));

View File

@ -5,10 +5,11 @@
*/
function get_new_numerofattura($data)
{
global $dbo;
global $dir;
global $id_segment;
$dbo = Database::getConnection();
if ($dir == 'uscita') {
// recupero maschera per questo segmento
$rs_maschera = $dbo->fetchArray('SELECT pattern FROM zz_segments WHERE id = '.prepare($id_segment));
@ -46,11 +47,12 @@ function get_new_numerofattura($data)
*/
function get_new_numerosecondariofattura($data)
{
global $dbo;
global $dir;
global $idtipodocumento;
global $id_segment;
$dbo = Database::getConnection();
// recupero maschera per questo segmento
$rs_maschera = $dbo->fetchArray('SELECT pattern FROM zz_segments WHERE id = '.prepare($id_segment));
// esempio: ####/YY
@ -84,7 +86,7 @@ function get_new_numerosecondariofattura($data)
*/
function elimina_scadenza($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
$query2 = 'DELETE FROM co_scadenziario WHERE iddocumento='.prepare($iddocumento);
$dbo->query($query2);
@ -97,7 +99,7 @@ function elimina_scadenza($iddocumento)
*/
function aggiungi_scadenza($iddocumento, $pagamento = '')
{
global $dbo;
$dbo = Database::getConnection();
$totale_da_pagare = 0.00;
$totale_fattura = get_totale_fattura($iddocumento);
@ -147,11 +149,10 @@ function aggiungi_scadenza($iddocumento, $pagamento = '')
$giorni = -$rs[$i]['giorno'] - 1;
if ($giorni > 0) {
$date->modify('+'.($giorni).' day');
}else{
$date->modify('last day of this month');
}
} else {
$date->modify('last day of this month');
}
$scadenza = $date->format('Y-m-d');
}
@ -194,7 +195,7 @@ function aggiungi_scadenza($iddocumento, $pagamento = '')
*/
function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento)
{
global $dbo;
$dbo = Database::getConnection();
// Lettura righe scadenziario
$query = "SELECT * FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(pagato) < ABS(da_pagare) ORDER BY scadenza ASC";
@ -250,7 +251,7 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento)
*/
function elimina_movimento($iddocumento, $anche_prima_nota = 0)
{
global $dbo;
$dbo = Database::getConnection();
$query2 = 'DELETE FROM co_movimenti WHERE iddocumento='.prepare($iddocumento).' AND primanota='.prepare($anche_prima_nota);
$dbo->query($query2);
@ -264,7 +265,7 @@ function elimina_movimento($iddocumento, $anche_prima_nota = 0)
*/
function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
{
global $dbo;
$dbo = Database::getConnection();
// Totale marca da bollo, inps, ritenuta, idagente
$query = 'SELECT data, bollo, ritenutaacconto, rivalsainps FROM co_documenti WHERE id='.prepare($iddocumento);
@ -280,15 +281,14 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// Calcolo l'iva della rivalsa inps
$iva_rivalsainps = 0;
$rsr = $dbo->fetchArray( 'SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento) );
for( $r=0; $r<sizeof($rsr); $r++ ){
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare( $rsr[$r]['idiva'] );
$rsr = $dbo->fetchArray('SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento));
for ($r = 0; $r < sizeof($rsr); ++$r) {
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare($rsr[$r]['idiva']);
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps += $rsr[$r]['rivalsainps'] / 100 * $rsi[0]['percentuale'];
}
// Lettura iva indetraibile fattura
$query = 'SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
@ -464,7 +464,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
*/
function get_new_idmastrino($table = 'co_movimenti')
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT MAX(idmastrino) AS maxidmastrino FROM '.$table;
$rs = $dbo->fetchArray($query);
@ -477,11 +477,11 @@ function get_new_idmastrino($table = 'co_movimenti')
*/
function get_imponibile_fattura($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS imponibile FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
return $rs[0]['imponibile'];
}
@ -490,7 +490,7 @@ function get_imponibile_fattura($iddocumento)
*/
function get_totale_fattura($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
// Sommo l'iva di ogni riga al totale
$query = 'SELECT SUM(iva) AS iva FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
@ -501,18 +501,18 @@ function get_totale_fattura($iddocumento)
$rs2 = $dbo->fetchArray($query2);
$iva_rivalsainps = 0;
$rsr = $dbo->fetchArray( 'SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento) );
for( $r=0; $r<sizeof($rsr); $r++ ){
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare( $rsr[$r]['idiva'] );
$rsr = $dbo->fetchArray('SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento));
for ($r = 0; $r < sizeof($rsr); ++$r) {
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare($rsr[$r]['idiva']);
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps += $rsr[$r]['rivalsainps'] / 100 * $rsi[0]['percentuale'];
}
$iva = $rs[0]['iva'];
$totale_iva = sum($iva, $iva_rivalsainps);
$totale = sum([
get_imponibile_fattura($iddocumento),
$rs2[0]['rivalsainps'],
@ -527,7 +527,7 @@ function get_totale_fattura($iddocumento)
*/
function get_netto_fattura($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT ritenutaacconto, bollo FROM co_documenti WHERE id='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
@ -537,9 +537,8 @@ function get_netto_fattura($iddocumento)
$rs[0]['bollo'],
-$rs[0]['ritenutaacconto'],
]);
return $netto_a_pagare;
}
/**
@ -547,7 +546,7 @@ function get_netto_fattura($iddocumento)
*/
function get_ivadetraibile_fattura($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(iva)-SUM(iva_indetraibile) AS iva_detraibile FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
@ -560,7 +559,7 @@ function get_ivadetraibile_fattura($iddocumento)
*/
function get_ivaindetraibile_fattura($iddocumento)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
@ -578,9 +577,10 @@ function get_ivaindetraibile_fattura($iddocumento)
*/
function ricalcola_costiagg_fattura($iddocumento, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '')
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Se ci sono righe in fattura faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$query = 'SELECT COUNT(id) AS righe FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
@ -601,11 +601,11 @@ function ricalcola_costiagg_fattura($iddocumento, $idrivalsainps = '', $idritenu
$ritenutaacconto = $rs[0]['ritenutaacconto'];
$iva_rivalsainps = 0;
$rsr = $dbo->fetchArray( 'SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento) );
for( $r=0; $r<sizeof($rsr); $r++ ){
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare( $rsr[$r]['idiva'] );
$rsr = $dbo->fetchArray('SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento));
for ($r = 0; $r < sizeof($rsr); ++$r) {
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare($rsr[$r]['idiva']);
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps += $rsr[$r]['rivalsainps'] / 100 * $rsi[0]['percentuale'];
}
@ -661,11 +661,12 @@ function ricalcola_costiagg_fattura($iddocumento, $idrivalsainps = '', $idritenu
*/
function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT', $idintervento = 0, $idconto = 0, $idum = 0)
{
global $dbo;
global $dir;
global $idddt;
if ($idddt == '') {
$dbo = Database::getConnection();
if (empty($idddt)) {
$idddt = 0;
}
@ -723,9 +724,10 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
*/
function rimuovi_articolo_dafattura($idarticolo, $iddocumento, $idrigadocumento)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Leggo la quantità di questo articolo in fattura
$query = 'SELECT qta, idintervento, idpreventivo, idordine, idddt, subtotale, descrizione FROM co_righe_documenti WHERE id='.prepare($idrigadocumento);
$rs = $dbo->fetchArray($query);

View File

@ -1,9 +1,9 @@
<?php
if (file_exists( __DIR__.'/../../../core.php')) {
include_once __DIR__.'/../../../core.php';
}else {
include_once __DIR__.'/../../core.php';
if (file_exists(__DIR__.'/../../../core.php')) {
include_once __DIR__.'/../../../core.php';
} else {
include_once __DIR__.'/../../core.php';
}
if (file_exists($docroot.'/modules/interventi/custom/modutil.php')) {
include_once $docroot.'/modules/interventi/custom/modutil.php';
@ -95,11 +95,10 @@ switch (post('op')) {
$km = post('km')[$idriga];
//$ore = post('ore')[$idriga];
//per sicurezza ricalcolo ore lavorate da php
$diff = date_diff(date_create($orario_inizio), date_create($orario_fine));
$ore = ($diff->h + ($diff->i / 60));
//per sicurezza ricalcolo ore lavorate da php
$diff = date_diff(date_create($orario_inizio), date_create($orario_fine));
$ore = ($diff->h + ($diff->i / 60));
// Lettura tariffe in base al tipo di intervento ed al tecnico
$idtipointervento_tecnico = $post['idtipointerventot'][$idriga];
$rs = $dbo->fetchArray('SELECT * FROM in_interventi_tecnici WHERE idtecnico='.prepare($post['idtecnico'][$idriga]).' AND idintervento='.prepare($id_record));
@ -277,20 +276,19 @@ switch (post('op')) {
// Se è specificato che l'intervento fa parte di una pianificazione aggiorno il codice dell'intervento sulla riga della pianificazione
if (!empty($idcontratto_riga)) {
$dbo->update('co_righe_contratti', $array, ['idcontratto' => $idcontratto, 'id' => $idcontratto_riga]);
//copio le righe dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$id_record.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio gli articoli dal promemoria all'intervento
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
// Decremento la quantità per ogni articolo copiato
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$id_record.' ');
foreach ($rs_articoli as $rs_articolo) {
add_movimento_magazzino($rs_articolo['idarticolo'], -force_decimal($rs_articolo['qta']), ['idautomezzo' => $rs_articolo['idautomezzo'], 'idintervento' => $id_record]);
}
}else{
//copio le righe dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$id_record.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio gli articoli dal promemoria all'intervento
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
// Decremento la quantità per ogni articolo copiato
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$id_record.' ');
foreach ($rs_articoli as $rs_articolo) {
add_movimento_magazzino($rs_articolo['idarticolo'], -force_decimal($rs_articolo['qta']), ['idautomezzo' => $rs_articolo['idautomezzo'], 'idintervento' => $id_record]);
}
} else {
$dbo->insert('co_righe_contratti', [
'idcontratto' => $idcontratto,
'idintervento' => $id_record,

View File

@ -148,7 +148,7 @@ switch (post('op')) {
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta;
add_articolo_inordine($id_record, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita * $qta, $sconto, $sconto_unitario, $tipo_sconto);
add_articolo_inordine($id_record, $idarticolo, $descrizione, $idiva, $qta, $post['um'], $prezzo_vendita * $qta, $sconto, $sconto_unitario, $tipo_sconto);
$_SESSION['infos'][] = tr('Articolo aggiunto!');
}
@ -352,11 +352,11 @@ switch (post('op')) {
}
break;
case 'ordine_da_preventivo':
$idanagrafica = post('idanagrafica');
$idpreventivo = post('idpreventivo');
$idanagrafica = post('idanagrafica');
$idpreventivo = post('idpreventivo');
$data = $post['data'];
@ -392,58 +392,50 @@ switch (post('op')) {
$_SESSION['infos'][] = tr('Aggiunto ordine numero _NUM_!', [
'_NUM_' => $numero,
]);
// Lettura di tutte le righe della tabella in arrivo
// Inserisco anche le righe descrittive
foreach ($post['evadere'] as $i => $value) {
// Processo solo le righe da evadere
if ($post['evadere'][$i] == 'on') {
$descrizione = post('descrizione')[$i];
$prezzo = post('subtot')[$i];
$qta = post('qta_da_evadere')[$i];
$idiva = post('idiva')[$i];
$um = post('um')[$i];
$subtot = $prezzo * $qta;
$idarticolo = post('idarticolo')[$i];
$sconto = post('sconto')[$i];
// Lettura di tutte le righe della tabella in arrivo
// Inserisco anche le righe descrittive
foreach ($post['evadere'] as $i => $value) {
// Processo solo le righe da evadere
if ($post['evadere'][$i] == 'on') {
$descrizione = post('descrizione')[$i];
$prezzo = post('subtot')[$i];
$qta = post('qta_da_evadere')[$i];
$idiva = post('idiva')[$i];
$um = post('um')[$i];
$subtot = $prezzo * $qta;
$idarticolo = post('idarticolo')[$i];
$sconto = post('sconto')[$i];
// Ottengo le informazioni sullo sconto
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM co_righe_preventivi WHERE id='.prepare($i);
$rsprc = $dbo->fetchArray($qprc);
// Ottengo le informazioni sullo sconto
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM co_righe_preventivi WHERE id='.prepare($i);
$rsprc = $dbo->fetchArray($qprc);
$sconto_unitario = $rsprc[0]['sconto_unitario'];
$tipo_sconto = $rsprc[0]['tipo_sconto'];
$sconto = $sconto * $qta;
$sconto_unitario = $rsprc[0]['sconto_unitario'];
$tipo_sconto = $rsprc[0]['tipo_sconto'];
// Calcolo iva
$query = 'SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva);
$rs = $dbo->fetchArray($query);
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
$sconto = $sconto * $qta;
$query = 'INSERT INTO or_righe_ordini(idordine, idarticolo, idpreventivo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, is_descrizione, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idpreventivo).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', '.prepare(empty($qta)).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM or_righe_ordini AS t WHERE idordine='.prepare($id_record).'))';
$dbo->query($query);
// Calcolo iva
$query = 'SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva);
$rs = $dbo->fetchArray($query);
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
$query = 'INSERT INTO or_righe_ordini(idordine, idarticolo, idpreventivo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, is_descrizione, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idpreventivo).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', '.prepare(empty($qta)).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM or_righe_ordini AS t WHERE idordine='.prepare($id_record).'))';
$dbo->query($query);
}
}
// Ricalcolo inps, ritenuta e bollo
if ($dir == 'entrata') {
ricalcola_costiagg_ordine($id_record);
} else {
ricalcola_costiagg_ordine($id_record);
}
}
// Ricalcolo inps, ritenuta e bollo
if ($dir == 'entrata') {
ricalcola_costiagg_ordine($id_record);
} else {
ricalcola_costiagg_ordine($id_record);
}
}
break;
break;
}
if (post('op') !== null && post('op') != 'update') {

View File

@ -7,9 +7,10 @@ include_once __DIR__.'/../../core.php';
*/
function get_new_numeroordine($data)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
$query = "SELECT numero AS max_numeroordine FROM or_ordini WHERE DATE_FORMAT( data, '%Y' ) = ".prepare(date('Y', strtotime($data))).' AND idtipoordine IN(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0,1';
$rs = $dbo->fetchArray($query);
$numero = $rs[0]['max_numeroordine'] + 1;
@ -22,9 +23,10 @@ function get_new_numeroordine($data)
*/
function get_new_numerosecondarioordine($data)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
$query = "SELECT numero_esterno FROM or_ordini WHERE DATE_FORMAT( data, '%Y' ) = ".prepare(date('Y', strtotime($data))).' AND idtipoordine IN(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1';
$rs = $dbo->fetchArray($query);
$numero_secondario = $rs[0]['numero_esterno'];
@ -50,7 +52,7 @@ function get_new_numerosecondarioordine($data)
*/
function get_imponibile_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(subtotale-sconto) AS imponibile FROM or_righe_ordini GROUP BY idordine HAVING idordine='.prepare($idordine);
$rs = $dbo->fetchArray($query);
@ -63,7 +65,7 @@ function get_imponibile_ordine($idordine)
*/
function get_totale_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
// Sommo l'iva di ogni riga al totale
$query = 'SELECT SUM(iva) AS iva FROM or_righe_ordini GROUP BY idordine HAVING idordine='.prepare($idordine);
@ -81,7 +83,7 @@ function get_totale_ordine($idordine)
*/
function get_netto_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT ritenutaacconto,bollo FROM or_ordini WHERE id='.prepare($idordine);
$rs = $dbo->fetchArray($query);
@ -94,7 +96,7 @@ function get_netto_ordine($idordine)
*/
function get_ivadetraibile_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(iva)-SUM(iva_indetraibile) AS iva_detraibile FROM or_righe_ordini GROUP BY idordine HAVING idordine='.prepare($idordine);
$rs = $dbo->fetchArray($query);
@ -107,7 +109,7 @@ function get_ivadetraibile_ordine($idordine)
*/
function get_ivaindetraibile_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM or_righe_ordini GROUP BY idordine HAVING idordine='.prepare($idordine);
$rs = $dbo->fetchArray($query);
@ -124,19 +126,19 @@ function get_ivaindetraibile_ordine($idordine)
* $qta float quantità dell'articolo nell'ordine
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
*/
function add_articolo_inordine($idordine, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
function add_articolo_inordine($idordine, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT')
{
global $dbo;
global $dir;
// Lettura unità di misura dell'articolo
// $query = "SELECT valore FROM mg_unitamisura WHERE id=(SELECT idum FROM mg_articoli WHERE id='".$idarticolo."')";
// $rs = $dbo->fetchArray($query);
// $um = $rs[0]['valore'];
$dbo = Database::getConnection();
$query = 'SELECT um FROM mg_articoli WHERE id='.prepare($idarticolo);
$rs = $dbo->fetchArray($query);
$um = $rs[0]['um'];
// Lettura unità di misura dell'articolo
if (empty($idum)) {
$rs = $dbo->fetchArray('SELECT um FROM mg_articoli WHERE id='.prepare($idarticolo));
$um = $rs[0]['valore'];
} else {
$um = $idum;
}
// Lettura iva dell'articolo
$rs2 = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
@ -157,9 +159,10 @@ function add_articolo_inordine($idordine, $idarticolo, $descrizione, $idiva, $qt
*/
function rimuovi_articolo_daordine($idarticolo, $idordine, $idrigaordine)
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
$non_rimovibili = seriali_non_rimuovibili('id_riga_ordine', $idrigaordine, $dir);
if (!empty($non_rimovibili)) {
return false;
@ -184,9 +187,10 @@ function rimuovi_articolo_daordine($idarticolo, $idordine, $idrigaordine)
*/
function ricalcola_costiagg_ordine($idordine, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '')
{
global $dbo;
global $dir;
$dbo = Database::getConnection();
// Se ci sono righe nel ordine faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$query = 'SELECT COUNT(id) AS righe FROM or_righe_ordini WHERE idordine='.prepare($idordine);
$rs = $dbo->fetchArray($query);
@ -274,49 +278,47 @@ function ricalcola_costiagg_ordine($idordine, $idrivalsainps = '', $idritenutaac
*/
function get_stato_ordine($idordine)
{
global $dbo;
$dbo = Database::getConnection();
$rs_ordine = $dbo->fetchArray("SELECT IFNULL(SUM(qta), 0) AS qta FROM or_righe_ordini WHERE idordine='".$idordine."'");
$qta_ordine = $rs_ordine[0]['qta'];
$qta_ordine = $rs_ordine[0]['qta'];
//Righe dell'ordine in ddt
$rs_ddt = $dbo->fetchArray('SELECT IFNULL(SUM(qta), 0) AS qta FROM dt_righe_ddt WHERE idordine='.prepare($idordine));
$qta_ddt = $rs_ddt[0]['qta'];
//Righe dell'ordine in fattura
$rs_fattura = $dbo->fetchArray('SELECT IFNULL(SUM(qta), 0) AS qta FROM co_righe_documenti WHERE idordine='.prepare($idordine));
$qta_fattura = $rs_fattura[0]['qta'];
//Righe dell'ordine in fattura passando da ddt
$rs_ddt_fattura = $dbo->fetchArray("SELECT IFNULL(SUM(qta), 0) AS qta FROM co_righe_documenti WHERE idddt IN(SELECT DISTINCT idddt FROM dt_righe_ddt WHERE idordine='".$idordine."')");
$qta_ddt_fattura = $rs_ddt_fattura[0]['qta'];
if($qta_ddt==0){
if ($qta_ddt == 0) {
$stato = 'Bozza';
}
if($qta_fattura==0){
if ($qta_fattura == 0) {
$stato = 'Bozza';
}
if($qta_ddt>0 && $qta_ddt<$qta_ordine && $qta_ordine > 0 ){
if ($qta_ddt > 0 && $qta_ddt < $qta_ordine && $qta_ordine > 0) {
$stato = 'Parzialmente evaso';
}
if($qta_ddt==$qta_ordine && $qta_ordine > 0 ){
if ($qta_ddt == $qta_ordine && $qta_ordine > 0) {
$stato = 'Evaso';
}
if( $qta_fattura>0 && $qta_fattura<$qta_ordine && $qta_ordine > 0 ){
if ($qta_fattura > 0 && $qta_fattura < $qta_ordine && $qta_ordine > 0) {
$stato = 'Parzialmente fatturato';
}
if( $qta_fattura == $qta_ordine && $qta_ordine > 0 ){
if ($qta_fattura == $qta_ordine && $qta_ordine > 0) {
$stato = 'Fatturato';
}
if($qta_ddt_fattura>0 && $qta_ddt_fattura<$qta_ordine && $qta_ordine > 0){
if ($qta_ddt_fattura > 0 && $qta_ddt_fattura < $qta_ordine && $qta_ordine > 0) {
$stato = 'Parzialmente fatturato';
}
if($qta_ddt_fattura==$qta_ordine && $qta_ordine > 0){
if ($qta_ddt_fattura == $qta_ordine && $qta_ordine > 0) {
$stato = 'Fatturato';
}
return $stato;
return $stato;
}

View File

@ -2,48 +2,6 @@
include_once __DIR__.'/../../core.php';
/**
* Questa funzione aggiunge un articolo nell'ordine. E' comoda quando si devono inserire
* degli interventi con articoli collegati o preventivi che hanno interventi con articoli collegati!
* $idpreventivo integer id del preventivo
* $idarticolo integer id dell'articolo da inserire nel preventivo
* $idiva integer id del codice iva associato all'articolo
* $qta float quantità dell'articolo nell'ordine
* $prezzo float prezzo totale degli articoli (prezzounitario*qtà).
*/
function add_articolo_inpreventivo($idpreventivo, $idarticolo, $descrizione, $idiva, $qta, $prezzo)
{
global $dbo;
global $dir;
// Lettura unità di misura dell'articolo
// $query = "SELECT valore FROM mg_unitamisura WHERE id=(SELECT idum FROM mg_articoli WHERE id='".$idarticolo."')";
// $rs = $dbo->fetchArray($query);
// $um = $rs[0]['valore'];
$query = 'SELECT um FROM mg_articoli WHERE id='.prepare($idarticolo);
$rs = $dbo->fetchArray($query);
$um = $rs[0]['um'];
/*
Ordine cliente
*/
if ($dir == 'entrata') {
// Lettura iva dell'articolo
$rs2 = $dbo->fetchArray('SELECT percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
$iva = $prezzo / 100 * $rs2[0]['percentuale'];
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
$dbo->query('INSERT INTO co_righe_preventivi(idpreventivo, idarticolo, idiva, iva, iva_indetraibile, descrizione, subtotale, um, qta, `order`) VALUES ('.prepare($idpreventivo).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_preventivi AS t WHERE idpreventivo='.prepare($idpreventivo).'))');
}
/*
Ordine fornitore
*/
elseif ($dir == 'uscita') {
}
}
/**
* Questa funzione rimuove un articolo dal ddt data e lo riporta in magazzino
* $idarticolo integer codice dell'articolo da scollegare dall'ordine
@ -51,16 +9,17 @@ function add_articolo_inpreventivo($idpreventivo, $idarticolo, $descrizione, $id
*/
function rimuovi_articolo_dapreventivo($idarticolo, $idpreventivo, $idriga)
{
global $dbo;
global $dir;
//Leggo la quantità di questo articolo nell'ordine
$dbo = Database::getConnection();
// Leggo la quantità di questo articolo nell'ordine
$query = 'SELECT qta, subtotale FROM co_righe_preventivi WHERE id='.prepare($idriga);
$rs = $dbo->fetchArray($query);
$qta = floatval($rs[0]['qta']);
$subtotale = $rs[0]['subtotale'];
//Elimino la riga dall'ordine
// Elimino la riga dall'ordine
$dbo->query('DELETE FROM co_righe_preventivi WHERE id='.prepare($idriga));
}
@ -74,17 +33,18 @@ function rimuovi_articolo_dapreventivo($idarticolo, $idpreventivo, $idriga)
*/
function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '')
{
global $dbo;
global $dir;
//Se ci sono righe nel ordine faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$dbo = Database::getConnection();
// Se ci sono righe nel ordine faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo)
$query = 'SELECT COUNT(id) AS righe FROM co_righe_preventivi WHERE idpreventivo='.prepare($idpreventivo);
$rs = $dbo->fetchArray($query);
if ($rs[0]['righe'] > 0) {
$totale_imponibile = get_imponibile_preventivo($idpreventivo);
$totale_preventivo = get_totale_preventivo($idpreventivo);
//Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
if ($dir == 'entrata') {
if (!empty($idrivalsainps)) {
$idrivalsainps = get_var('Percentuale rivalsa INPS');
@ -95,13 +55,13 @@ function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idri
$rs = $dbo->fetchArray($query);
$rivalsainps = $totale_imponibile / 100 * $rs[0]['percentuale'];
//Aggiorno la rivalsa inps
//$dbo->query("UPDATE or_ordini SET rivalsainps='$rivalsainps' WHERE id='$idordine'");
// Aggiorno la rivalsa inps
// $dbo->query("UPDATE or_ordini SET rivalsainps='$rivalsainps' WHERE id='$idordine'");
//Leggo la ritenuta d'acconto se c'è
// Leggo la ritenuta d'acconto se c'è
$totale_ordine = get_totale_ordine($idordine);
//Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
// Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni)
if (!empty($idritenutaacconto)) {
if ($dir == 'entrata') {
$idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
@ -113,7 +73,7 @@ function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idri
$ritenutaacconto = $totale_preventivo / 100 * $rs[0]['percentuale'];
$netto_a_pagare = $totale_preventivo - $ritenutaacconto;
//Leggo la marca da bollo se c'è e se il netto a pagare supera la soglia
// Leggo la marca da bollo se c'è e se il netto a pagare supera la soglia
$bolli = str_replace(',', '.', $bolli);
$bolli = floatval($bolli);
if ($dir == 'uscita') {
@ -125,21 +85,21 @@ function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idri
$marca_da_bollo = 0.00;
}
//Se l'importo è negativo può essere una nota di accredito, quindi cambio segno alla marca da bollo
// Se l'importo è negativo può essere una nota di accredito, quindi cambio segno alla marca da bollo
if ($netto_a_pagare < 0) {
$marca_da_bollo *= -1;
}
}
//$dbo->query("UPDATE or_ordini SET ritenutaacconto='$ritenutaacconto', bollo='$marca_da_bollo' WHERE id='$idordine'");
// $dbo->query("UPDATE or_ordini SET ritenutaacconto='$ritenutaacconto', bollo='$marca_da_bollo' WHERE id='$idordine'");
} else {
//$dbo->query("UPDATE or_ordini SET ritenutaacconto='0', bollo='0', sconto='0', rivalsainps='0' WHERE id='$idordine'");
// $dbo->query("UPDATE or_ordini SET ritenutaacconto='0', bollo='0', sconto='0', rivalsainps='0' WHERE id='$idordine'");
}
}
function get_imponibile_preventivo($idpreventivo)
{
global $dbo;
$dbo = Database::getConnection();
$query = 'SELECT SUM(co_righe_preventivi.subtotale - co_righe_preventivi.sconto) AS imponibile FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo);
$rs = $dbo->fetchArray($query);
@ -152,7 +112,7 @@ function get_imponibile_preventivo($idpreventivo)
*/
function get_stato_preventivo($idpreventivo)
{
global $dbo;
$dbo = Database::getConnection();
$rs = $dbo->fetchArray('SELECT SUM(qta) AS qta, SUM(qta_evasa) AS qta_evasa FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
@ -174,9 +134,9 @@ function get_stato_preventivo($idpreventivo)
*/
function update_budget_preventivo($idpreventivo)
{
global $dbo;
$dbo = Database::getConnection();
//Totale articoli
// Totale articoli
$rs = $dbo->fetchArray('SELECT SUM(subtotale) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_articoli = $rs[0]['totale'];
@ -186,10 +146,10 @@ function update_budget_preventivo($idpreventivo)
$rs = $dbo->fetchArray('SELECT SUM(iva) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_iva = $rs[0]['totale'];
//Totale costo ore, km e diritto di chiamata
//$rs = $dbo->fetchArray("SELECT SUM(costo_orario*ore_lavoro + costo_diritto_chiamata) AS totale FROM co_preventivi GROUP BY id HAVING id=\"".$idpreventivo."\"");
//$totale_lavoro = $rs[0]['totale'];
// Totale costo ore, km e diritto di chiamata
// $rs = $dbo->fetchArray("SELECT SUM(costo_orario*ore_lavoro + costo_diritto_chiamata) AS totale FROM co_preventivi GROUP BY id HAVING id=\"".$idpreventivo."\"");
// $totale_lavoro = $rs[0]['totale'];
//Aggiorno il budget su co_preventivi
// Aggiorno il budget su co_preventivi
$dbo->query('UPDATE co_preventivi SET budget='.prepare(($totale_articoli - $totale_sconto) + $totale_iva).' WHERE id='.prepare($idpreventivo));
}

View File

@ -530,6 +530,26 @@ class Database extends Util\Singleton
}
}
/**
* Costruisce la query per il SELECT definito dagli argomenti (LIMIT 1).
*
* @since 2.4.1
*
* @param string $table
* @param array $array
* @param array $conditions
* @param array $order
* @param bool $return
*
* @return string|array
*/
public function selectOne($table, $array = [], $conditions = [], $order = [], $return = false)
{
$limit = 1;
return $this->select($table, $array, $conditions, $order, $limit, $return);
}
/**
* Sincronizza i valori indicati associati alle condizioni, rimuovendo le combinazioni aggiuntive e inserendo quelle non ancora presenti.
*

View File

@ -1,70 +0,0 @@
--
-- Dump dei dati per la tabella `an_anagrafiche`
--
INSERT INTO `an_anagrafiche` (`idanagrafica`, `codice`, `ragione_sociale`, `tipo`, `piva`, `codice_fiscale`, `capitale_sociale`, `data_nascita`, `luogo_nascita`, `sesso`, `indirizzo`, `indirizzo2`, `citta`, `cap`, `provincia`, `km`, `id_nazione`, `telefono`, `fax`, `cellulare`, `email`, `sitoweb`, `note`, `codiceri`, `codicerea`, `appoggiobancario`, `filiale`, `codiceiban`, `bic`, `diciturafissafattura`, `idpagamento`, `idlistino`, `idiva`, `idsede_fatturazione`, `idconto_cliente`, `idconto_fornitore`, `settore`, `marche`, `dipendenti`, `macchine`, `idagente`, `idrelazione`, `agentemaster`, `idzona`, `foro_competenza`, `nome_cognome`, `iscrizione_tribunale`, `cciaa`, `cciaa_citta`, `n_alboartigiani`, `colore`, `deleted`, `idtipointervento_default`, `created_at`, `updated_at`) VALUES
(1, '00000001', 'Azienda', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(2, '00000002', 'Cliente 1', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 112, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(3, '00000003', 'Cliente 2', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 113, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(4, '00000004', 'Cliente 3', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 114, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(5, '00000005', 'Cliente 4', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 115, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(6, '00000006', 'Cliente 5', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 116, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(7, '00000007', 'Tecnico 1', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(8, '00000008', 'Tecnico 2', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(9, '00000009', 'Tecnico 3', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(10, '00000010', 'Tecnico 4', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(11, '00000011', 'Tecnico 5', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(12, '00000012', 'Fornitore 1', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 117, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(13, '00000013', 'Fornitore 2', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 118, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(14, '00000014', 'Fornitore 3', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 119, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(15, '00000015', 'Fornitore 4', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 120, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(16, '00000016', 'Fornitore 5', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 121, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(17, '00000017', 'Agente 1', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(18, '00000018', 'Agente 2', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(19, '00000019', 'Agente 3', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(20, '00000020', 'Agente 4', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(21, '00000021', 'Agente 5', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(22, '00000022', 'Vettore 1', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(23, '00000023', 'Vettore 2', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(24, '00000024', 'Vettore 3', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(25, '00000025', 'Vettore 4', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW()),
(26, '00000026', 'Vettore 5', '', '', '', '', '0000-00-00', '', '', '', '', '', '', '', '0.00', NULL, '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, '', '', '', '', '', NULL, '#FFFFFF', 0, '', NOW(), NOW());
--
-- Dump dei dati per la tabella `an_tipianagrafiche_anagrafiche`
--
INSERT INTO `an_tipianagrafiche_anagrafiche` (`idtipoanagrafica`, `idanagrafica`, `created_at`, `updated_at`) VALUES
(1, 2, NOW(), NOW()),
(1, 3, NOW(), NOW()),
(1, 4, NOW(), NOW()),
(1, 5, NOW(), NOW()),
(1, 6, NOW(), NOW()),
(2, 7, NOW(), NOW()),
(2, 8, NOW(), NOW()),
(2, 9, NOW(), NOW()),
(2, 10, NOW(), NOW()),
(2, 11, NOW(), NOW()),
(3, 1, NOW(), NOW()),
(4, 12, NOW(), NOW()),
(4, 13, NOW(), NOW()),
(4, 14, NOW(), NOW()),
(4, 15, NOW(), NOW()),
(4, 16, NOW(), NOW()),
(5, 22, NOW(), NOW()),
(5, 23, NOW(), NOW()),
(5, 24, NOW(), NOW()),
(5, 25, NOW(), NOW()),
(5, 26, NOW(), NOW()),
(6, 17, NOW(), NOW()),
(6, 18, NOW(), NOW()),
(6, 19, NOW(), NOW()),
(6, 20, NOW(), NOW()),
(6, 21, NOW(), NOW());
--
-- Dump dei dati per la tabella `an_zone`
--
INSERT INTO `an_zone` (`id`, `nome`, `descrizione`, `default`, `created_at`, `updated_at`) VALUES
(1, 'Zona 1', 'Zona per il test', 0, NOW(), NOW());