mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-02 00:46:44 +01:00
Revert "Revert "Merge branch '2.3.1' of https://github.com/devcode-it/openstamanager into 2.3.1""
This reverts commit 22b48fc225cce195045a6eaf66330150bedd95b8.
This commit is contained in:
parent
22b48fc225
commit
ecc95e63f9
@ -52,12 +52,11 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||||||
$search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]);
|
$search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// Per le icone cerco per il campo icon_title
|
||||||
//per le icone cerco per il campo icon_title
|
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
|
||||||
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
|
$total['search_inside'][$i] = 'icon_title_'.$m[1];
|
||||||
$total['search_inside'][$i] = "icon_title_".$m[1];
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%'));
|
$search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,7 +67,9 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Filtri derivanti dai permessi (eventuali)
|
// Filtri derivanti dai permessi (eventuali)
|
||||||
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
if (empty($id_plugin)) {
|
||||||
|
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
||||||
|
}
|
||||||
|
|
||||||
// Ordinamento dei risultati
|
// Ordinamento dei risultati
|
||||||
if (isset($order['dir']) && isset($order['column'])) {
|
if (isset($order['dir']) && isset($order['column'])) {
|
||||||
|
@ -57,10 +57,9 @@ if (!function_exists('completeResults')) {
|
|||||||
switch ($op) {
|
switch ($op) {
|
||||||
case 'clienti':
|
case 'clienti':
|
||||||
if (Modules::get('Anagrafiche')['permessi'] != '-') {
|
if (Modules::get('Anagrafiche')['permessi'] != '-') {
|
||||||
|
//$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))";
|
||||||
//$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))";
|
|
||||||
|
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
|
||||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
|
|
||||||
|
|
||||||
foreach ($elements as $element) {
|
foreach ($elements as $element) {
|
||||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||||
@ -222,10 +221,14 @@ switch ($op) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'articoli':
|
case 'articoli':
|
||||||
$query = 'SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC';
|
$query = 'SELECT mg_articoli.*, co_iva.descrizione AS iva_vendita FROM mg_articoli LEFT OUTER JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id |where| ORDER BY mg_articoli.id_categoria ASC, mg_articoli.id_sottocategoria ASC';
|
||||||
|
|
||||||
|
$idiva_predefinita = get_var('Iva predefinita');
|
||||||
|
$rs = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id='".$idiva_predefinita."'");
|
||||||
|
$iva_predefinita = $rs[0]['descrizione'];
|
||||||
|
|
||||||
foreach ($elements as $element) {
|
foreach ($elements as $element) {
|
||||||
$filter[] = 'id='.prepare($element);
|
$filter[] = 'mg_articoli.id='.prepare($element);
|
||||||
}
|
}
|
||||||
|
|
||||||
$where[] = 'attivo=1';
|
$where[] = 'attivo=1';
|
||||||
@ -242,6 +245,11 @@ switch ($op) {
|
|||||||
if (!empty($search_fields)) {
|
if (!empty($search_fields)) {
|
||||||
$where[] = '('.implode(' OR ', $search_fields).')';
|
$where[] = '('.implode(' OR ', $search_fields).')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($filter)) {
|
||||||
|
$where[] = '('.implode(' OR ', $filter).')';
|
||||||
|
}
|
||||||
|
|
||||||
if (count($where) != 0) {
|
if (count($where) != 0) {
|
||||||
$wh = 'WHERE '.implode(' AND ', $where);
|
$wh = 'WHERE '.implode(' AND ', $where);
|
||||||
}
|
}
|
||||||
@ -255,11 +263,21 @@ switch ($op) {
|
|||||||
$results[] = ['text' => $dbo->fetchArray('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_categoria']))[0]['nome'], 'children' => []];
|
$results[] = ['text' => $dbo->fetchArray('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_categoria']))[0]['nome'], 'children' => []];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($r['idiva_vendita'])) {
|
||||||
|
$idiva = $idiva_predefinita;
|
||||||
|
$iva = $iva_predefinita;
|
||||||
|
} else {
|
||||||
|
$idiva = $r['idiva_vendita'];
|
||||||
|
$iva = $r['iva_vendita'];
|
||||||
|
}
|
||||||
|
|
||||||
$results[count($results) - 1]['children'][] = [
|
$results[count($results) - 1]['children'][] = [
|
||||||
'id' => $r['id'],
|
'id' => $r['id'],
|
||||||
'text' => $r['codice'].' - '.$r['descrizione'],
|
'text' => $r['codice'].' - '.$r['descrizione'],
|
||||||
'descrizione' => $r['descrizione'],
|
'descrizione' => $r['descrizione'],
|
||||||
'um' => $r['um'],
|
'um' => $r['um'],
|
||||||
|
'idiva_vendita' => $idiva,
|
||||||
|
'iva_vendita' => $iva,
|
||||||
'prezzo_acquisto' => Translator::numberToLocale($r['prezzo_acquisto']),
|
'prezzo_acquisto' => Translator::numberToLocale($r['prezzo_acquisto']),
|
||||||
'prezzo_vendita' => Translator::numberToLocale($r['prezzo_vendita']),
|
'prezzo_vendita' => Translator::numberToLocale($r['prezzo_vendita']),
|
||||||
];
|
];
|
||||||
|
14
gulpfile.js
14
gulpfile.js
@ -206,6 +206,14 @@ gulp.task('chartjs', function () {
|
|||||||
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/chartjs'));
|
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/chartjs'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('viewerjs', function () {
|
||||||
|
gulp.src([
|
||||||
|
config.main.bowerDirectory + '/viewerjs/ViewerJS/**/*',
|
||||||
|
'!' + config.main.bowerDirectory + '/viewerjs/ViewerJS/example.local.css',
|
||||||
|
])
|
||||||
|
.pipe(gulp.dest(config.production + '/viewerjs'));
|
||||||
|
});
|
||||||
|
|
||||||
// Elaborazione e minificazione delle informazioni sull'internazionalizzazione
|
// Elaborazione e minificazione delle informazioni sull'internazionalizzazione
|
||||||
gulp.task('i18n', function () {
|
gulp.task('i18n', function () {
|
||||||
gulp.src([
|
gulp.src([
|
||||||
@ -308,9 +316,13 @@ gulp.task('bower', ['clean'], function () {
|
|||||||
gulp.task('other', ['clean'], function () {
|
gulp.task('other', ['clean'], function () {
|
||||||
gulp.start('ckeditor');
|
gulp.start('ckeditor');
|
||||||
gulp.start('colorpicker');
|
gulp.start('colorpicker');
|
||||||
gulp.start('chartjs');
|
|
||||||
gulp.start('i18n');
|
gulp.start('i18n');
|
||||||
|
|
||||||
|
gulp.start('viewerjs');
|
||||||
|
gulp.start('chartjs');
|
||||||
|
|
||||||
gulp.start('php-debugbar');
|
gulp.start('php-debugbar');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('default', ['clean', 'bower']);
|
gulp.task('default', ['clean', 'bower']);
|
||||||
|
@ -16,8 +16,8 @@ if (Auth::check()) {
|
|||||||
'.tr('OpenSTAManager').'
|
'.tr('OpenSTAManager').'
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<div class="modal fade" id="bs-popup" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>
|
<div class="modal fade" id="bs-popup" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="true"></div>
|
||||||
<div class="modal fade" id="bs-popup2" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>';
|
<div class="modal fade" id="bs-popup2" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="true"></div>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
</div><!-- ./wrapper -->';
|
</div><!-- ./wrapper -->';
|
||||||
|
@ -21,6 +21,8 @@ var isMobile = {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Aggiunta dell'ingranaggio all'unload della pagina
|
// Aggiunta dell'ingranaggio all'unload della pagina
|
||||||
$(window).on("beforeunload", function () {
|
$(window).on("beforeunload", function () {
|
||||||
$("#main_loading").show();
|
$("#main_loading").show();
|
||||||
@ -412,10 +414,15 @@ function start_widgets($widgets) {
|
|||||||
|
|
||||||
// Modal
|
// Modal
|
||||||
function launch_modal(title, href, init_modal, id) {
|
function launch_modal(title, href, init_modal, id) {
|
||||||
|
|
||||||
|
//Fix - Select2 does not function properly when I use it inside a Bootstrap modal.
|
||||||
|
$.fn.modal.Constructor.prototype.enforceFocus = function() {};
|
||||||
|
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
id = '#bs-popup';
|
id = '#bs-popup';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (init_modal == null) {
|
if (init_modal == null) {
|
||||||
init_modal = 1;
|
init_modal = 1;
|
||||||
}
|
}
|
||||||
@ -423,9 +430,13 @@ function launch_modal(title, href, init_modal, id) {
|
|||||||
$('html').addClass('modal-open');
|
$('html').addClass('modal-open');
|
||||||
|
|
||||||
$(id).on('hidden.bs.modal', function () {
|
$(id).on('hidden.bs.modal', function () {
|
||||||
$('html').removeClass('modal-open');
|
|
||||||
$(this).html('');
|
if ($('.modal-backdrop').length < 1 ) {
|
||||||
$(this).data('modal', null);
|
$('html').removeClass('modal-open');
|
||||||
|
$(this).html('');
|
||||||
|
$(this).data('modal', null);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lettura contenuto div
|
// Lettura contenuto div
|
||||||
@ -913,7 +924,8 @@ jQuery.fn.selectReset = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Aggiorna un <select> creato con select2 impostando un valore di default
|
* Aggiorna un <select> creato con select2 impostando un valore di default.
|
||||||
|
* Da utilizzare per l'impostazione dei select basati su richieste AJAX.
|
||||||
*/
|
*/
|
||||||
jQuery.fn.selectSetNew = function (value, label) {
|
jQuery.fn.selectSetNew = function (value, label) {
|
||||||
this.selectReset();
|
this.selectReset();
|
||||||
@ -929,7 +941,8 @@ jQuery.fn.selectSetNew = function (value, label) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Aggiorna un <select> creato con select2 impostando un valore di default
|
* Aggiorna un <select> creato con select2 impostando un valore di default.
|
||||||
|
* Da utilizzare per l'impostazione dei select statici.
|
||||||
*/
|
*/
|
||||||
jQuery.fn.selectSet = function (value) {
|
jQuery.fn.selectSet = function (value) {
|
||||||
this.val(value).trigger("change");
|
this.val(value).trigger("change");
|
||||||
|
@ -163,6 +163,29 @@ switch (post('op')) {
|
|||||||
$dbo->query('UPDATE zz_settings SET valore='.prepare($new_id)." WHERE nome='Azienda predefinita'");
|
$dbo->query('UPDATE zz_settings SET valore='.prepare($new_id)." WHERE nome='Azienda predefinita'");
|
||||||
$_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali".');
|
$_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali".');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//se sto inserendo un tecnico, mi copio già le tariffe per le varie attività
|
||||||
|
if (in_array($id_tecnico, $post['idtipoanagrafica'])) {
|
||||||
|
|
||||||
|
//per ogni tipo di attività
|
||||||
|
$rs_tipiintervento = $dbo->fetchArray('SELECT * FROM in_tipiintervento');
|
||||||
|
|
||||||
|
for ($i = 0; $i < count($rs_tipiintervento); $i++) {
|
||||||
|
|
||||||
|
if ($dbo->query('INSERT INTO in_tariffe( idtecnico, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico ) VALUES( '.prepare($new_id).', '.prepare($rs_tipiintervento[$i]['idtipointervento']).', (SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_orario_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).') )')) {
|
||||||
|
|
||||||
|
$_SESSION['infos'][] = tr('Informazioni salvate correttamente!');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$_SESSION['errors'][] = tr("Errore durante l'importazione tariffe!");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Creo il relativo conto nel partitario (cliente)
|
// Creo il relativo conto nel partitario (cliente)
|
||||||
if (in_array($id_cliente, $post['idtipoanagrafica'])) {
|
if (in_array($id_cliente, $post['idtipoanagrafica'])) {
|
||||||
|
@ -12,3 +12,4 @@ if (isset($id_record)) {
|
|||||||
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||||
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
||||||
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
||||||
|
$id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
|
@ -70,7 +70,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta" ]}
|
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta|undefined" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
@ -119,6 +119,7 @@ echo '
|
|||||||
$data = $(this).selectData();
|
$data = $(this).selectData();
|
||||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||||
$("#descrizione").val($data.descrizione);
|
$("#descrizione").val($data.descrizione);
|
||||||
|
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||||
$("#um").selectSetNew($data.um, $data.um);
|
$("#um").selectSetNew($data.um, $data.um);
|
||||||
}else{
|
}else{
|
||||||
$("#prezzi_articolo button").addClass("disabled");
|
$("#prezzi_articolo button").addClass("disabled");
|
||||||
|
@ -246,7 +246,7 @@ switch (post('op')) {
|
|||||||
$id_record = $dbo->lastInsertedID();
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
|
||||||
// TODO: sistemare la duplicazione delle righe generiche e degli articoli, ingorando interventi, ddt, ordini, preventivi
|
// TODO: sistemare la duplicazione delle righe generiche e degli articoli, ingorando interventi, ddt, ordini, preventivi
|
||||||
foreach( $righe as $riga ){
|
foreach ($righe as $riga) {
|
||||||
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idordine, idddt, idintervento, idarticolo, idpreventivo, idcontratto, idtecnico, idagente, idautomezzo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, um, qta, `order`) VALUES('.prepare($id_record).', 0, 0, 0, '.prepare($riga['idarticolo']).', '.prepare($riga['idpreventivo']).', '.prepare($riga['idcontratto']).', '.prepare($riga['idtecnico']).', '.prepare($riga['idagente']).', '.prepare($riga['idautomezzo']).', '.prepare($riga['idiva']).', '.prepare($riga['desc_iva']).', '.prepare($riga['iva']).', '.prepare($riga['iva_indetraibile']).', '.prepare($riga['descrizione']).', '.prepare($riga['subtotale']).', '.prepare($riga['sconto']).', '.prepare($riga['idritenutaacconto']).', '.prepare($riga['ritenutaacconto']).', '.prepare($riga['idrivalsainps']).', '.prepare($riga['rivalsainps']).', '.prepare($riga['um']).', '.prepare($riga['qta']).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
|
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idordine, idddt, idintervento, idarticolo, idpreventivo, idcontratto, idtecnico, idagente, idautomezzo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, um, qta, `order`) VALUES('.prepare($id_record).', 0, 0, 0, '.prepare($riga['idarticolo']).', '.prepare($riga['idpreventivo']).', '.prepare($riga['idcontratto']).', '.prepare($riga['idtecnico']).', '.prepare($riga['idagente']).', '.prepare($riga['idautomezzo']).', '.prepare($riga['idiva']).', '.prepare($riga['desc_iva']).', '.prepare($riga['iva']).', '.prepare($riga['iva_indetraibile']).', '.prepare($riga['descrizione']).', '.prepare($riga['subtotale']).', '.prepare($riga['sconto']).', '.prepare($riga['idritenutaacconto']).', '.prepare($riga['ritenutaacconto']).', '.prepare($riga['idrivalsainps']).', '.prepare($riga['rivalsainps']).', '.prepare($riga['um']).', '.prepare($riga['qta']).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
|
||||||
|
|
||||||
// Scarico/carico nuovamente l'articolo da magazzino
|
// Scarico/carico nuovamente l'articolo da magazzino
|
||||||
@ -313,19 +313,19 @@ switch (post('op')) {
|
|||||||
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||||
|
|
||||||
// Aggiunta diritto di chiamata (se presente) come riga a parte
|
// Aggiunta diritto di chiamata (se presente) come riga a parte
|
||||||
$query = 'SELECT SUM(prezzo_dirittochiamata) AS diritto_chiamata FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento);
|
$query = 'SELECT SUM(prezzo_dirittochiamata) AS diritto_chiamata FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento);
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
$diritto_chiamata = $rs[0]['diritto_chiamata'];
|
$diritto_chiamata = $rs[0]['diritto_chiamata'];
|
||||||
|
|
||||||
// Aggiunta riga intervento sul documento
|
// Aggiunta riga intervento sul documento
|
||||||
$ore = get_ore_intervento( $idintervento );
|
$ore = get_ore_intervento($idintervento);
|
||||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot-$diritto_chiamata).', '.prepare($sconto).', '.prepare($sconto).", 'UNT', 'ore', ".prepare($ore).", ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot - $diritto_chiamata).', '.prepare($sconto).', '.prepare($sconto).", 'UNT', 'ore', ".prepare($ore).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
|
//Aggiunta diritto di chiamata se >0
|
||||||
if( $diritto_chiamata > 0 ){
|
if ($diritto_chiamata > 0) {
|
||||||
// Calcolo iva
|
// Calcolo iva
|
||||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
@ -343,7 +343,7 @@ switch (post('op')) {
|
|||||||
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
$ritenutaacconto = $diritto_chiamata / 100 * $rs[0]['percentuale'];
|
$ritenutaacconto = $diritto_chiamata / 100 * $rs[0]['percentuale'];
|
||||||
|
|
||||||
$query = 'INSERT INTO co_righe_documenti(
|
$query = 'INSERT INTO co_righe_documenti(
|
||||||
iddocumento,
|
iddocumento,
|
||||||
idintervento,
|
idintervento,
|
||||||
@ -378,7 +378,7 @@ switch (post('op')) {
|
|||||||
'.prepare($sconto).",
|
'.prepare($sconto).",
|
||||||
'UNT',
|
'UNT',
|
||||||
'-',
|
'-',
|
||||||
".prepare($rs[0]['diritto_chiamata']).",
|
'1',
|
||||||
".prepare(get_var('Percentuale rivalsa INPS')).',
|
".prepare(get_var('Percentuale rivalsa INPS')).',
|
||||||
'.prepare($rivalsainps).',
|
'.prepare($rivalsainps).',
|
||||||
'.prepare(get_var("Percentuale ritenuta d'acconto")).',
|
'.prepare(get_var("Percentuale ritenuta d'acconto")).',
|
||||||
@ -422,7 +422,7 @@ switch (post('op')) {
|
|||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||||
|
|
||||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($rsr[$i]['descrizione']).', '.prepare($subtot).', '.prepare($rsr[$i]['sconto']).', '.prepare($rsr[$i]['sconto_unitario']).', '.prepare($rsr[$i]['tipo_sconto']).", ".prepare($rsr[$i]['um']).', '.prepare($rsr[$i]['qta']).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($rsr[$i]['descrizione']).', '.prepare($subtot).', '.prepare($rsr[$i]['sconto']).', '.prepare($rsr[$i]['sconto_unitario']).', '.prepare($rsr[$i]['tipo_sconto']).', '.prepare($rsr[$i]['um']).', '.prepare($rsr[$i]['qta']).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -449,7 +449,7 @@ switch (post('op')) {
|
|||||||
$dati = $dbo->fetchArray($query);
|
$dati = $dbo->fetchArray($query);
|
||||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $dati[0]['percentuale'];
|
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $dati[0]['percentuale'];
|
||||||
|
|
||||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Trasferta intervento '.$codice.' del '.Translator::dateToLocale($data)).', '.prepare($subtot).", ".prepare($sconto).', '.prepare($sconto).", 'UNT', '', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Trasferta intervento '.$codice.' del '.Translator::dateToLocale($data)).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto).", 'UNT', '', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,11 +492,11 @@ switch (post('op')) {
|
|||||||
$_SESSION['infos'][] = tr('Intervento _NUM_ aggiunto!', [
|
$_SESSION['infos'][] = tr('Intervento _NUM_ aggiunto!', [
|
||||||
'_NUM_' => $idintervento,
|
'_NUM_' => $idintervento,
|
||||||
]);
|
]);
|
||||||
/*
|
/*
|
||||||
else {
|
else {
|
||||||
$_SESSION['errors'][] = tr("Errore durante l'inserimento dell'intervento _NUM_ in fattura!", [
|
$_SESSION['errors'][] = tr("Errore durante l'inserimento dell'intervento _NUM_ in fattura!", [
|
||||||
'_NUM_' => $idintervento,
|
'_NUM_' => $idintervento,
|
||||||
]);
|
]);
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -837,7 +837,7 @@ switch (post('op')) {
|
|||||||
$numero_esterno = '';
|
$numero_esterno = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $dir == 'entrata' ){
|
if ($dir == 'entrata') {
|
||||||
$tipo_documento = 'Fattura differita di vendita';
|
$tipo_documento = 'Fattura differita di vendita';
|
||||||
$idconto = get_var('Conto predefinito fatture di vendita');
|
$idconto = get_var('Conto predefinito fatture di vendita');
|
||||||
} else {
|
} else {
|
||||||
@ -850,10 +850,10 @@ switch (post('op')) {
|
|||||||
$id_record = $dbo->lastInsertedID();
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
|
||||||
// Lettura di tutte le righe della tabella in arrivo
|
// Lettura di tutte le righe della tabella in arrivo
|
||||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
foreach ($post['qta_da_evadere'] as $i => $value) {
|
||||||
// Processo solo le righe da evadere
|
// Processo solo le righe da evadere
|
||||||
if ($post['evadere'][$i] == 'on') {
|
if ($post['evadere'][$i] == 'on') {
|
||||||
$idrigaddt = post('idriga')[$i];
|
$idrigaddt = $i;
|
||||||
$idarticolo = post('idarticolo')[$i];
|
$idarticolo = post('idarticolo')[$i];
|
||||||
$descrizione = post('descrizione')[$i];
|
$descrizione = post('descrizione')[$i];
|
||||||
$qta = $post['qta_da_evadere'][$i];
|
$qta = $post['qta_da_evadere'][$i];
|
||||||
@ -931,10 +931,10 @@ switch (post('op')) {
|
|||||||
$id_record = $dbo->lastInsertedID();
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
|
||||||
// Lettura di tutte le righe della tabella in arrivo
|
// Lettura di tutte le righe della tabella in arrivo
|
||||||
foreach ($post['qta_da_evadere'] AS $i => $value) {
|
foreach ($post['qta_da_evadere'] as $i => $value) {
|
||||||
// Processo solo le righe da evadere
|
// Processo solo le righe da evadere
|
||||||
if ($post['evadere'][$i] == 'on') {
|
if ($post['evadere'][$i] == 'on') {
|
||||||
|
$idrigaordine = $i;
|
||||||
$idarticolo = post('idarticolo')[$i];
|
$idarticolo = post('idarticolo')[$i];
|
||||||
$descrizione = post('descrizione')[$i];
|
$descrizione = post('descrizione')[$i];
|
||||||
$qta = post('qta_da_evadere')[$i];
|
$qta = post('qta_da_evadere')[$i];
|
||||||
@ -945,7 +945,7 @@ switch (post('op')) {
|
|||||||
$sconto = post('sconto')[$i];
|
$sconto = post('sconto')[$i];
|
||||||
$sconto = $sconto * $qta;
|
$sconto = $sconto * $qta;
|
||||||
|
|
||||||
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$i;
|
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.prepare($idrigaordine);
|
||||||
$rsprc = $dbo->fetchArray($qprc);
|
$rsprc = $dbo->fetchArray($qprc);
|
||||||
|
|
||||||
$sconto_unitario = $rsprc[0]['sconto_unitario'];
|
$sconto_unitario = $rsprc[0]['sconto_unitario'];
|
||||||
@ -984,7 +984,7 @@ switch (post('op')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Scalo la quantità dall'ordine
|
// Scalo la quantità dall'ordine
|
||||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($i));
|
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1001,10 +1001,10 @@ switch (post('op')) {
|
|||||||
$idconto = $rs[0]['idconto'];
|
$idconto = $rs[0]['idconto'];
|
||||||
|
|
||||||
// Lettura di tutte le righe della tabella in arrivo
|
// Lettura di tutte le righe della tabella in arrivo
|
||||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
foreach ($post['qta_da_evadere'] as $i => $value) {
|
||||||
// Processo solo le righe da evadere
|
// Processo solo le righe da evadere
|
||||||
if ($post['evadere'][$i] == 'on') {
|
if ($post['evadere'][$i] == 'on') {
|
||||||
$idrigaddt = post('idriga')[$i];
|
$idrigaddt = $i;
|
||||||
$idarticolo = post('idarticolo')[$i];
|
$idarticolo = post('idarticolo')[$i];
|
||||||
$descrizione = post('descrizione')[$i];
|
$descrizione = post('descrizione')[$i];
|
||||||
|
|
||||||
|
@ -140,6 +140,7 @@ echo '
|
|||||||
$data = $(this).selectData();
|
$data = $(this).selectData();
|
||||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||||
$("#descrizione").val($data.descrizione);
|
$("#descrizione").val($data.descrizione);
|
||||||
|
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||||
$("#um").selectSetNew($data.um, $data.um);
|
$("#um").selectSetNew($data.um, $data.um);
|
||||||
}else{
|
}else{
|
||||||
$("#prezzi_articolo button").addClass("disabled");
|
$("#prezzi_articolo button").addClass("disabled");
|
||||||
|
@ -255,7 +255,7 @@ $totale = sum([
|
|||||||
|
|
||||||
$netto_a_pagare = sum([
|
$netto_a_pagare = sum([
|
||||||
$totale,
|
$totale,
|
||||||
$marca_da_bollo,
|
$records[0]['bollo'],
|
||||||
-$records[0]['ritenutaacconto'],
|
-$records[0]['ritenutaacconto'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ switch (post('op')) {
|
|||||||
|
|
||||||
$scontokm_unitario = post('scontokm')[$idriga];
|
$scontokm_unitario = post('scontokm')[$idriga];
|
||||||
$tipo_scontokm = post('tipo_scontokm')[$idriga];
|
$tipo_scontokm = post('tipo_scontokm')[$idriga];
|
||||||
$scontokm = ($tipo_scontokm == 'PRC') ? ($prezzo_km_consuntivo * $sconto_unitario) / 100 : $scontokm_unitario;
|
$scontokm = ($tipo_scontokm == 'PRC') ? ($prezzo_km_consuntivo * $scontokm_unitario) / 100 : $scontokm_unitario;
|
||||||
|
|
||||||
$dbo->update('in_interventi_tecnici', [
|
$dbo->update('in_interventi_tecnici', [
|
||||||
'idintervento' => $id_record,
|
'idintervento' => $id_record,
|
||||||
|
@ -34,7 +34,7 @@ if (empty($idriga)) {
|
|||||||
|
|
||||||
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
||||||
if (!empty($listino[0]['prc_guadagno'])) {
|
if (!empty($listino[0]['prc_guadagno'])) {
|
||||||
$sconto = $listino[0]['prc_guadagno'];
|
$sconto_unitario = $listino[0]['prc_guadagno'];
|
||||||
$tipo_sconto = 'PRC';
|
$tipo_sconto = 'PRC';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -70,7 +70,7 @@ echo '
|
|||||||
<input type="hidden" id="idautomezzo" name="idautomezzo" value="'.$idautomezzo.'">
|
<input type="hidden" id="idautomezzo" name="idautomezzo" value="'.$idautomezzo.'">
|
||||||
<input type="hidden" name="idriga" value="'.$idriga.'">';
|
<input type="hidden" name="idriga" value="'.$idriga.'">';
|
||||||
|
|
||||||
if ($idarticolo != '') {
|
if (!empty($idarticolo)) {
|
||||||
echo '
|
echo '
|
||||||
<input type="hidden" id="idarticolo_originale" name="idarticolo_originale" value="'.$idarticolo.'">';
|
<input type="hidden" id="idarticolo_originale" name="idarticolo_originale" value="'.$idarticolo.'">';
|
||||||
}
|
}
|
||||||
@ -78,7 +78,7 @@ if ($idarticolo != '') {
|
|||||||
// Articolo
|
// Articolo
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
@ -32,14 +32,20 @@ if (get('anteprima') !== null) {
|
|||||||
<button type="button" class="btn btn-success btn-block btn-lg" id="firma" onclick="$(\'.canvas\').removeClass(\'hide\'); $(this).addClass(\'hide\'); $(\'#pdf\').addClass(\'hide\');">
|
<button type="button" class="btn btn-success btn-block btn-lg" id="firma" onclick="$(\'.canvas\').removeClass(\'hide\'); $(this).addClass(\'hide\'); $(\'#pdf\').addClass(\'hide\');">
|
||||||
<i class="fa fa-pencil"></i> '.tr('Firma').'
|
<i class="fa fa-pencil"></i> '.tr('Firma').'
|
||||||
</button>
|
</button>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>';
|
||||||
|
|
||||||
<div class="hide" id="pdf">
|
echo '<div class="hide" id="pdf">';
|
||||||
<object data="'.$rootdir.'/files/interventi/'.$rapportino_nome.'#view=fitH&scrollbar=0&toolbar=0&navpanes=0" id ="rapportino_pdf" type="application/pdf" width="100%">
|
|
||||||
|
if (isMobile()) {
|
||||||
|
echo '<iframe src="'.$rootdir.'/assets/dist/viewerjs/#'.$rootdir.'/files/interventi/'.$rapportino_nome.'" allowfullscreen="" webkitallowfullscreen="" width="100%" height="550" ></iframe>';
|
||||||
|
} else {
|
||||||
|
echo '<object data="'.$rootdir.'/files/interventi/'.$rapportino_nome.'#view=fitH&scrollbar=0&toolbar=0&navpanes=0" id ="rapportino_pdf" type="application/pdf" width="100%">
|
||||||
alt : <a href="'.$rootdir.'/files/interventi/'.$rapportino_nome.'" target="_blank">'.$rapportino_nome.'</a>
|
alt : <a href="'.$rootdir.'/files/interventi/'.$rapportino_nome.'" target="_blank">'.$rapportino_nome.'</a>
|
||||||
<span>'.tr('Plugin PDF mancante').'</span>
|
<span>'.tr('Plugin PDF mancante').'</span>
|
||||||
</object>
|
</object>';
|
||||||
</div>';
|
}
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -21,7 +21,7 @@ if (empty($idriga)) {
|
|||||||
$prezzo_acquisto = '0';
|
$prezzo_acquisto = '0';
|
||||||
|
|
||||||
if (!empty($rs[0]['prc_guadagno'])) {
|
if (!empty($rs[0]['prc_guadagno'])) {
|
||||||
$sconto = $rs[0]['prc_guadagno'];
|
$sconto_unitario = $rs[0]['prc_guadagno'];
|
||||||
$tipo_sconto = 'PRC';
|
$tipo_sconto = 'PRC';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,7 +49,7 @@ if (!empty($rs)) {
|
|||||||
<tr '.$extra.'>
|
<tr '.$extra.'>
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="id" value="'.$r['id'].'">
|
<input type="hidden" name="id" value="'.$r['id'].'">
|
||||||
'.Modules::link('Articoli', $r['idarticolo'], $r['descrizione']);
|
'.Modules::link('Articoli', $r['idarticolo'], (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione']);
|
||||||
|
|
||||||
// Info extra (lotto, serial, altro)
|
// Info extra (lotto, serial, altro)
|
||||||
if (!empty($r['abilita_serial'])) {
|
if (!empty($r['abilita_serial'])) {
|
||||||
|
@ -206,7 +206,7 @@ if (!empty($rs2)) {
|
|||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($sconto_unitario).'" />
|
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($sconto_unitario).'" />
|
||||||
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($tipo_sconto).'" />';
|
<input type="hidden" name="tipo_sconto['.$id.']" value="'.Translator::numberToLocale($tipo_sconto).'" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
@ -38,7 +38,7 @@ if (empty($records[0]['firma_file'])) {
|
|||||||
echo Prints::getDropdown($id_module, $id_record);
|
echo Prints::getDropdown($id_module, $id_record);
|
||||||
?>
|
?>
|
||||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> <?php echo tr('Salva modifiche'); ?></button>
|
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> <?php echo tr('Salva modifiche'); ?></button>
|
||||||
<br>
|
<div class="clearfix" > </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto)
|
|||||||
|
|
||||||
// Calcolo il totale delle ore lavorate
|
// Calcolo il totale delle ore lavorate
|
||||||
$diff = date_diff(date_create($inizio), date_create($fine));
|
$diff = date_diff(date_create($inizio), date_create($fine));
|
||||||
$ore = $diff->h + $diff->m / 60;
|
$ore = ($diff->h + ($diff->i/60) );
|
||||||
|
|
||||||
// Leggo i costi unitari dalle tariffe se almeno un valore è stato impostato
|
// Leggo i costi unitari dalle tariffe se almeno un valore è stato impostato
|
||||||
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($idtecnico).' AND idtipointervento='.prepare($idtipointervento));
|
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($idtecnico).' AND idtipointervento='.prepare($idtipointervento));
|
||||||
|
@ -10,7 +10,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
<div class="box-body">';
|
<div class="box-body">';
|
||||||
|
|
||||||
$results = $dbo->fetchArray('SELECT in_interventi.codice, descrizione, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=my_impianti_interventi.idintervento) AS data FROM my_impianti_interventi INNER JOIN in_interventi ON my_impianti_interventi.idintervento=in_interventi.id WHERE idimpianto='.prepare($id_record).' ORDER BY data DESC');
|
$results = $dbo->fetchArray('SELECT in_interventi.id, in_interventi.codice, descrizione, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=my_impianti_interventi.idintervento) AS data FROM my_impianti_interventi INNER JOIN in_interventi ON my_impianti_interventi.idintervento=in_interventi.id WHERE idimpianto='.prepare($id_record).' ORDER BY data DESC');
|
||||||
|
|
||||||
if (!empty($results)) {
|
if (!empty($results)) {
|
||||||
echo '
|
echo '
|
||||||
@ -24,7 +24,7 @@ if (!empty($results)) {
|
|||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
'.Modules::link('Interventi', $result['codice'], tr('Intervento num. _NUM_ del _DATE_', [
|
'.Modules::link('Interventi', $result['id'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||||
'_NUM_' => $result['codice'],
|
'_NUM_' => $result['codice'],
|
||||||
'_DATE_' => Translator::dateToLocale($result['data']),
|
'_DATE_' => Translator::dateToLocale($result['data']),
|
||||||
])).'
|
])).'
|
||||||
|
@ -128,6 +128,7 @@ echo '
|
|||||||
$data = $(this).selectData();
|
$data = $(this).selectData();
|
||||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||||
$("#descrizione").val($data.descrizione);
|
$("#descrizione").val($data.descrizione);
|
||||||
|
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||||
$("#um").selectSetNew($data.um, $data.um);
|
$("#um").selectSetNew($data.um, $data.um);
|
||||||
}else{
|
}else{
|
||||||
$("#prezzi_articolo button").addClass("disabled");
|
$("#prezzi_articolo button").addClass("disabled");
|
||||||
|
@ -255,9 +255,10 @@ switch (post('op')) {
|
|||||||
$rs2 = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
$rs2 = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||||
$iva = ($subtot - $sconto) / 100 * $rs2[0]['percentuale'];
|
$iva = ($subtot - $sconto) / 100 * $rs2[0]['percentuale'];
|
||||||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
||||||
|
$desc_iva = $rs2[0]['descrizione'];
|
||||||
|
|
||||||
// Modifica riga generica sul documento
|
// Modifica riga generica sul documento
|
||||||
$query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
$query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
|
|
||||||
$_SESSION['infos'][] = 'Riga modificata!';
|
$_SESSION['infos'][] = 'Riga modificata!';
|
||||||
|
@ -65,7 +65,7 @@ echo '
|
|||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli", "extra": "onchange=\"session_set(\'superselect,idarticolo\', $(this).val(), 0); $data = $(this).selectData(); $(\'#prezzo\').val($data.prezzo_vendita); $(\'#desc\').val($data.descrizione); $(\'#um\').selectSetNew($data.um, $data.um);\"" ]}
|
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli", "extra": "onchange=\"session_set(\'superselect,idarticolo\', $(this).val(), 0); $data = $(this).selectData(); $(\'#prezzo\').val($data.prezzo_vendita); $(\'#desc\').val($data.descrizione); $(\'#um\').selectSetNew($data.um, $data.um); $(\'#idiva\').selectSet($data.iva_vendita, $data.iva_vendita);\"" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
|||||||
/*
|
/*
|
||||||
ARTICOLI + RIGHE GENERICHE
|
ARTICOLI + RIGHE GENERICHE
|
||||||
*/
|
*/
|
||||||
$q_art = "SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),'') AS codice, IFNULL((SELECT descrizione FROM co_iva WHERE id=idiva),'') AS desc_iva FROM co_righe_preventivi WHERE idpreventivo=".prepare($id_record).' ORDER BY `order`';
|
$q_art = "SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), '') AS codice FROM co_righe_preventivi WHERE idpreventivo=".prepare($id_record).' ORDER BY `order`';
|
||||||
$rs = $dbo->fetchArray($q_art);
|
$rs = $dbo->fetchArray($q_art);
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
@ -39,10 +39,7 @@ $d2 = new DateTime($end);
|
|||||||
$count = $d1->diff($d2)->m + ($d1->diff($d2)->y * 12) + 1;
|
$count = $d1->diff($d2)->m + ($d1->diff($d2)->y * 12) + 1;
|
||||||
|
|
||||||
$fatturato = $dbo->fetchArray("SELECT SUM(subtotale - sconto) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
|
$fatturato = $dbo->fetchArray("SELECT SUM(subtotale - sconto) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
|
||||||
|
$acquisti = $dbo->fetchArray("SELECT SUM(subtotale - sconto) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='uscita' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
|
||||||
$entrate = $dbo->fetchArray("SELECT SUM(subtotale - sconto) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN co_movimenti ON co_movimenti.iddocumento=co_documenti.id AND primanota=1 WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
|
|
||||||
|
|
||||||
$uscite = $dbo->fetchArray("SELECT SUM(subtotale - sconto) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN co_movimenti ON co_movimenti.iddocumento=co_documenti.id AND primanota=1 WHERE co_tipidocumento.dir='uscita' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
|
|
||||||
|
|
||||||
$month = intval($d1->format('m')) - 1;
|
$month = intval($d1->format('m')) - 1;
|
||||||
for ($i = 0; $i < $count; ++$i) {
|
for ($i = 0; $i < $count; ++$i) {
|
||||||
@ -54,14 +51,8 @@ for ($i = 0; $i < $count; ++$i) {
|
|||||||
]]);
|
]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intval($entrate[$i]['month']) != $month + 1) {
|
if (intval($acquisti[$i]['month']) != $month + 1) {
|
||||||
array_splice($entrate, $i, 0, [[
|
array_splice($acquisti, $i, 0, [[
|
||||||
'totale' => 0,
|
|
||||||
]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (intval($uscite[$i]['month']) != $month + 1) {
|
|
||||||
array_splice($uscite, $i, 0, [[
|
|
||||||
'totale' => 0,
|
'totale' => 0,
|
||||||
]]);
|
]]);
|
||||||
}
|
}
|
||||||
@ -73,7 +64,7 @@ for ($i = 0; $i < $count; ++$i) {
|
|||||||
echo '
|
echo '
|
||||||
<div class="box box-success">
|
<div class="box box-success">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Fatturato').'</h3>
|
<h3 class="box-title">'.tr('Vendite e acquisti').'</h3>
|
||||||
|
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||||
@ -81,7 +72,7 @@ echo '
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<canvas class="box-body collapse in" id="fatturato"></canvas>
|
<canvas class="box-body collapse in" id="fatturato" height="100"></canvas>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
// Script per il grafico del fatturato
|
// Script per il grafico del fatturato
|
||||||
@ -95,23 +86,16 @@ $(document).ready(function() {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: "'.tr('Fatturato').'",
|
label: "'.tr('Fatturato').'",
|
||||||
backgroundColor: "yellow",
|
backgroundColor: "#63E360",
|
||||||
data: [
|
data: [
|
||||||
'.implode(',', array_column($fatturato, 'totale')).'
|
'.implode(',', array_column($fatturato, 'totale')).'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "'.tr('Entrate').'",
|
label: "'.tr('Acquisti').'",
|
||||||
backgroundColor: "green",
|
backgroundColor: "#EE4B4B",
|
||||||
data: [
|
data: [
|
||||||
'.implode(',', array_column($entrate, 'totale')).'
|
'.implode(',', array_column($acquisti, 'totale')).'
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "'.tr('Uscite').'",
|
|
||||||
backgroundColor: "red",
|
|
||||||
data: [
|
|
||||||
'.implode(',', array_column($uscite, 'totale')).'
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -220,12 +204,12 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
// Interventi per stato
|
// Interventi per tipologia
|
||||||
$stati = $dbo->fetchArray('SELECT * FROM `in_statiintervento`');
|
$tipi = $dbo->fetchArray('SELECT * FROM `in_tipiintervento`');
|
||||||
|
|
||||||
$dataset = '';
|
$dataset = '';
|
||||||
foreach ($stati as $stato) {
|
foreach ($tipi as $tipo) {
|
||||||
$interventi = $dbo->fetchArray('SELECT COUNT(*) AS totale, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi WHERE in_interventi.idstatointervento = '.prepare($stato['idstatointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC');
|
$interventi = $dbo->fetchArray('SELECT COUNT(*) AS totale, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC');
|
||||||
|
|
||||||
$month = intval($d1->format('m')) - 1;
|
$month = intval($d1->format('m')) - 1;
|
||||||
for ($i = 0; $i < $count; ++$i) {
|
for ($i = 0; $i < $count; ++$i) {
|
||||||
@ -240,9 +224,12 @@ foreach ($stati as $stato) {
|
|||||||
++$month;
|
++$month;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Random color
|
||||||
|
$background = '#' . dechex(rand(256,16777215));
|
||||||
|
|
||||||
$dataset .= '{
|
$dataset .= '{
|
||||||
label: "'.$stato['descrizione'].'",
|
label: "'.$tipo['descrizione'].'",
|
||||||
backgroundColor: "'.$stato['colore'].'",
|
backgroundColor: "'.$background.'",
|
||||||
data: [
|
data: [
|
||||||
'.implode(',', array_column($interventi, 'totale')).'
|
'.implode(',', array_column($interventi, 'totale')).'
|
||||||
]
|
]
|
||||||
@ -252,7 +239,7 @@ foreach ($stati as $stato) {
|
|||||||
echo '
|
echo '
|
||||||
<div class="box box-info">
|
<div class="box box-info">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Interventi per stato').'</h3>
|
<h3 class="box-title">'.tr('Interventi per tipologia').'</h3>
|
||||||
|
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||||
@ -260,7 +247,7 @@ echo '
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<canvas class="box-body collapse in" id="interventi"></canvas>
|
<canvas class="box-body collapse in" id="interventi" height="100"></canvas>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
// Script per il grafico del fatturato
|
// Script per il grafico del fatturato
|
||||||
|
@ -24,7 +24,7 @@ echo '
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12 col-md-6">
|
<div class="col-xs-12 col-md-6">
|
||||||
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 1, "value": "$indirizzo$" ]}
|
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "id": "indirizzo_", "required": 1, "value": "$indirizzo$" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-6">
|
<div class="col-xs-12 col-md-6">
|
||||||
@ -44,7 +44,7 @@ echo '
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12 col-md-3">
|
<div class="col-xs-12 col-md-3">
|
||||||
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "value": "$citta$" ]}
|
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "id": "citta_", "value": "$citta$" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-3">
|
<div class="col-xs-12 col-md-3">
|
||||||
@ -91,39 +91,40 @@ echo '
|
|||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
if (!empty($google)) {
|
if (!empty($google)) {
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-6" id="geocomplete">
|
||||||
<div class="row">
|
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]}
|
||||||
<div class="col-md-4" id="geocomplete">
|
</div>
|
||||||
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "value": "$lat$", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
|
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "id": "lat_", "value": "$lat$", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
|
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "id": "lng_", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
|
||||||
</div>
|
</div>';
|
||||||
</div>
|
|
||||||
</div>';
|
|
||||||
|
|
||||||
// Calcola percorso
|
// Vedi su google maps
|
||||||
if (empty($records[0]['gaddress']) || (empty($records[0]['lat']) && empty($records[0]['lng']))) {
|
if (!empty($records[0]['indirizzo']) || (empty($records[0]['citta'])) ) {
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="col-md-3">
|
<div class="btn-group col-md-2" >
|
||||||
<label> </label><br>
|
<label> </label><br>
|
||||||
<a class="btn btn-info" onclick="window.open(\'https://maps.google.com/maps/search/\'+encodeURI( $(\'#indirizzo\').val() )+\', \'+encodeURI( $(\'#citta\').val() ) );"><i class="fa fa-map-marker"></i> Cerca su Google Maps...</a>
|
<a class="btn btn-info" title="'.tr('Mostra la sede su Google Maps').'" onclick="window.open(\'https://maps.google.com/maps/search/\'+encodeURI( $(\'#indirizzo_\').val() )+\', \'+encodeURI( $(\'#citta_\').val() ) );"> <i class="fa fa-map-marker"> </i></a>
|
||||||
</div>';
|
';
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<a title="'.tr('Calcola percoso da sede legale a questa sede').'" class="btn btn-primary btn-secondary" onclick="window.open(\'https://maps.google.com/maps/dir/\'+encodeURI( $(\'#indirizzo_\').val() )+\', \'+encodeURI( $(\'#citta_\').val() )+\'/\'+encodeURI( $(\'#indirizzo\').val() )+\',\'+encodeURI( $(\'#citta\').val() )+\',8z\');"><i class="fa fa-car"></i></a>
|
||||||
|
</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
if (!empty($records[0]['gaddress']) || (!empty($records[0]['lat']) && !empty($records[0]['lng']))) {
|
if (!empty($records[0]['gaddress']) || (!empty($records[0]['lat']) && !empty($records[0]['lng']))) {
|
||||||
echo '
|
echo '
|
||||||
<div id="map" style="height:400px; width:100%"></div>';
|
<div id="map" style="height:400px; width:100%"></div><br>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
@ -153,12 +154,12 @@ echo '
|
|||||||
$(document).ready( function(){
|
$(document).ready( function(){
|
||||||
$("#form_sedi #geocomplete input").geocomplete({
|
$("#form_sedi #geocomplete input").geocomplete({
|
||||||
map: $("#form_sedi #map").length ? "#form_sedi #map" : false,
|
map: $("#form_sedi #map").length ? "#form_sedi #map" : false,
|
||||||
location: $("#form_sedi #gaddress").val() ? $("#form_sedi #gaddress").val() : [$("#form_sedi #lat").val(), $("#form_sedi #lng").val()],
|
location: $("#form_sedi #gaddress").val() ? $("#form_sedi #gaddress").val() : [$("#form_sedi #lat_").val(), $("#form_sedi #lng_").val()],
|
||||||
details: "#form_sedi .details",
|
details: "#form_sedi .details",
|
||||||
detailsAttribute: "data-geo"
|
detailsAttribute: "data-geo"
|
||||||
}).bind("geocode:result", function (event, result) {
|
}).bind("geocode:result", function (event, result) {
|
||||||
$("#form_sedi #lat").val(result.geometry.location.lat());
|
$("#form_sedi #lat_").val(result.geometry.location.lat());
|
||||||
$("#form_sedi #lng").val(result.geometry.location.lng());
|
$("#form_sedi #lng_").val(result.geometry.location.lng());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
@ -11,13 +11,15 @@ $module_name = ($records[0]['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di ac
|
|||||||
$id_cliente = $records[0]['idanagrafica'];
|
$id_cliente = $records[0]['idanagrafica'];
|
||||||
$id_sede = $records[0]['idsede'];
|
$id_sede = $records[0]['idsede'];
|
||||||
|
|
||||||
$numero = !empty($records[0]['numero_esterno']) ? $records[0]['numero_esterno'] : $records[0]['numero'];
|
$tipo_doc = $records[0]['tipo_doc'];
|
||||||
|
|
||||||
if (empty($records[0]['numero_esterno'])) {
|
if (empty($records[0]['numero_esterno'])) {
|
||||||
$numero = 'pro-forma '.$numero;
|
$numero = 'pro-forma '.$numero;
|
||||||
$tipo_doc = tr('Ddt pro-forma', [], ['upper' => true]);
|
$tipo_doc = tr('Ddt pro-forma', [], ['upper' => true]);
|
||||||
|
} else {
|
||||||
|
$numero = !empty($records[0]['numero_esterno']) ? $records[0]['numero_esterno'] : $records[0]['numero'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
|
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
|
||||||
$destinazione = '';
|
$destinazione = '';
|
||||||
if (!empty($records[0]['idsede'])) {
|
if (!empty($records[0]['idsede'])) {
|
||||||
|
@ -192,9 +192,22 @@ if (!empty($records[0]['note'])) {
|
|||||||
<p>'.nl2br($records[0]['note']).'</p>';
|
<p>'.nl2br($records[0]['note']).'</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (abs($records[0]['bollo']) > 0) {
|
||||||
|
echo '
|
||||||
|
<br>
|
||||||
|
<table style="width: 20mm; font-size: 50%; text-align: center" class="table-bordered">
|
||||||
|
<tr>
|
||||||
|
<td style="height: 20mm;">
|
||||||
|
<br><br>
|
||||||
|
'.tr('Spazio per applicazione marca da bollo', [], ['upper' => true]).'
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
||||||
|
}
|
||||||
|
|
||||||
// Info per il footer
|
// Info per il footer
|
||||||
$imponibile = sum($imponibile);
|
$imponibile = sum($imponibile);
|
||||||
$iva = sum($iva);
|
$iva = sum($iva) + $records[0]['iva_rivalsainps'];
|
||||||
$sconto = sum($sconto);
|
$sconto = sum($sconto);
|
||||||
|
|
||||||
$totale = $imponibile + $iva - $sconto;
|
$totale = $imponibile + $iva - $sconto + $records[0]['rivalsainps'];
|
||||||
|
@ -147,7 +147,7 @@ if (!empty($sconto)) {
|
|||||||
</td>';
|
</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
<td class='cell-padded text-center'>
|
<td class='cell-padded text-center'>
|
||||||
".Translator::numberToLocale($iva)." €
|
".Translator::numberToLocale($iva)." €
|
||||||
</td>
|
</td>
|
||||||
@ -157,29 +157,119 @@ if (!empty($sconto)) {
|
|||||||
</td>
|
</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
|
|
||||||
// Ritenuta d'acconto
|
// Aggiunta della marca da bollo al totale
|
||||||
if ($records[0]['ritenutaacconto'] != 0) {
|
$totale = sum($totale, $records[0]['bollo']);
|
||||||
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)');
|
|
||||||
|
|
||||||
echo "
|
// Rivalsa INPS
|
||||||
|
if (!empty($records[0]['rivalsainps'])) {
|
||||||
|
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalsainps WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento).' AND idrivalsainps!=0 LIMIT 0,1)');
|
||||||
|
|
||||||
|
$first_colspan = 3;
|
||||||
|
$second_colspan = 2;
|
||||||
|
if (abs($records[0]['bollo']) > 0) {
|
||||||
|
--$first_colspan;
|
||||||
|
}
|
||||||
|
if (empty($sconto)) {
|
||||||
|
--$first_colspan;
|
||||||
|
--$second_colspan;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<th class='text-center small' colspan=".(!empty($sconto) ? 3 : 2).'>
|
<th class="text-center small" colspan="'.$first_colspan.'">
|
||||||
'.tr("Ritenuta d'acconto _PRC_%", [
|
'.tr('Rivalsa INPS _PRC_%', [
|
||||||
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
|
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
|
||||||
], ['upper' => true])."
|
], ['upper' => true]).'
|
||||||
</th>
|
</th>';
|
||||||
|
|
||||||
<th class='text-center small' colspan=".(!empty($sconto) ? 2 : 1).'>
|
if (abs($records[0]['bollo']) > 0) {
|
||||||
'.tr('Netto a pagare', [], ['upper' => true])."
|
echo '
|
||||||
|
|
||||||
|
<th class="text-center small" colspan="1">
|
||||||
|
'.tr('Marca da bollo', [], ['upper' => true]).'
|
||||||
|
</th>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<th class="text-center small" colspan="'.$second_colspan.'">
|
||||||
|
'.tr('Totale documento', [], ['upper' => true]).'
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 3 : 2).'>
|
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
|
||||||
'.Translator::numberToLocale($records[0]['ritenutaacconto'])." €
|
'.Translator::numberToLocale($records[0]['rivalsainps']).' €
|
||||||
</td>
|
</td>';
|
||||||
|
|
||||||
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 2 : 1).'>
|
if (abs($records[0]['bollo']) > 0) {
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<td class="cell-padded text-center" colspan="1">
|
||||||
|
'.Translator::numberToLocale($records[0]['bollo']).' €
|
||||||
|
</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<td class="cell-padded text-center" colspan="'.$second_colspan.'">
|
||||||
|
'.Translator::numberToLocale($totale).' €
|
||||||
|
</td>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ritenuta d'acconto
|
||||||
|
if ($records[0]['ritenutaacconto'] != 0) {
|
||||||
|
$rs2 = $dbo->fetchArray('SELECT percentuale FROM co_ritenutaacconto WHERE id=(SELECT idritenutaacconto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idritenutaacconto!=0 LIMIT 0,1)');
|
||||||
|
|
||||||
|
$first_colspan = 3;
|
||||||
|
$second_colspan = 2;
|
||||||
|
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
|
||||||
|
--$first_colspan;
|
||||||
|
}
|
||||||
|
if (empty($sconto)) {
|
||||||
|
--$first_colspan;
|
||||||
|
--$second_colspan;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<tr>
|
||||||
|
<th class="text-center small" colspan="'.$first_colspan.'">
|
||||||
|
'.tr("Ritenuta d'acconto _PRC_%", [
|
||||||
|
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
|
||||||
|
], ['upper' => true]).'
|
||||||
|
</th>';
|
||||||
|
|
||||||
|
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<th class="text-center small" colspan="1">
|
||||||
|
'.tr('Marca da bollo', [], ['upper' => true]).'
|
||||||
|
</th>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<th class="text-center small" colspan="'.$second_colspan.'">
|
||||||
|
'.tr('Netto a pagare', [], ['upper' => true]).'
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
|
||||||
|
'.Translator::numberToLocale($records[0]['ritenutaacconto']).' €
|
||||||
|
</td>';
|
||||||
|
|
||||||
|
if (empty($records[0]['rivalsainps']) && abs($records[0]['bollo']) > 0) {
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<td class="cell-padded text-center" colspan="1">
|
||||||
|
'.Translator::numberToLocale($records[0]['bollo']).' €
|
||||||
|
</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<td class="cell-padded text-center" colspan="'.$second_colspan.'">
|
||||||
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' €
|
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' €
|
||||||
</td>
|
</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
|
@ -15,6 +15,10 @@ $records = $dbo->fetchArray('SELECT *,
|
|||||||
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore
|
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore
|
||||||
FROM co_documenti WHERE id='.prepare($id_record));
|
FROM co_documenti WHERE id='.prepare($id_record));
|
||||||
|
|
||||||
|
$records[0]['rivalsainps'] = floatval($records[0]['rivalsainps']);
|
||||||
|
$records[0]['ritenutaacconto'] = floatval($records[0]['ritenutaacconto']);
|
||||||
|
$records[0]['bollo'] = floatval($records[0]['bollo']);
|
||||||
|
|
||||||
$module_name = ($records[0]['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
$module_name = ($records[0]['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||||
|
|
||||||
$id_cliente = $records[0]['idanagrafica'];
|
$id_cliente = $records[0]['idanagrafica'];
|
||||||
|
17
templates/preventivi/footer.php
Normal file
17
templates/preventivi/footer.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:bottom;" width="50%">
|
||||||
|
lì, ___________________________
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="center" style="vertical-align:bottom;" width="50%">
|
||||||
|
FIRMA PER ACCETTAZIONE<br><br>
|
||||||
|
_____________________________________
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
echo '$default_footer$';
|
||||||
|
?>
|
Loading…
x
Reference in New Issue
Block a user