Revert "Merge branch '2.3.1' of https://github.com/devcode-it/openstamanager into 2.3.1"
This reverts commit62ed1d8bbe
, reversing changes made toa3a343d000
.
This commit is contained in:
parent
62ed1d8bbe
commit
22b48fc225
|
@ -52,11 +52,12 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||
$search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]);
|
||||
}
|
||||
} else {
|
||||
// Per le icone cerco per il campo icon_title
|
||||
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
|
||||
$total['search_inside'][$i] = 'icon_title_'.$m[1];
|
||||
}
|
||||
|
||||
|
||||
//per le icone cerco per il campo icon_title
|
||||
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
|
||||
$total['search_inside'][$i] = "icon_title_".$m[1];
|
||||
}
|
||||
|
||||
$search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%'));
|
||||
}
|
||||
}
|
||||
|
@ -67,9 +68,7 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom
|
|||
}
|
||||
|
||||
// Filtri derivanti dai permessi (eventuali)
|
||||
if (empty($id_plugin)) {
|
||||
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
||||
}
|
||||
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
||||
|
||||
// Ordinamento dei risultati
|
||||
if (isset($order['dir']) && isset($order['column'])) {
|
||||
|
|
|
@ -57,9 +57,10 @@ if (!function_exists('completeResults')) {
|
|||
switch ($op) {
|
||||
case 'clienti':
|
||||
if (Modules::get('Anagrafiche')['permessi'] != '-') {
|
||||
//$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";
|
||||
|
||||
//$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";
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
|
@ -221,14 +222,10 @@ switch ($op) {
|
|||
break;
|
||||
|
||||
case 'articoli':
|
||||
$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'];
|
||||
$query = 'SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'mg_articoli.id='.prepare($element);
|
||||
$filter[] = 'id='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'attivo=1';
|
||||
|
@ -245,11 +242,6 @@ switch ($op) {
|
|||
if (!empty($search_fields)) {
|
||||
$where[] = '('.implode(' OR ', $search_fields).')';
|
||||
}
|
||||
|
||||
if (!empty($filter)) {
|
||||
$where[] = '('.implode(' OR ', $filter).')';
|
||||
}
|
||||
|
||||
if (count($where) != 0) {
|
||||
$wh = 'WHERE '.implode(' AND ', $where);
|
||||
}
|
||||
|
@ -263,21 +255,11 @@ switch ($op) {
|
|||
$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'][] = [
|
||||
'id' => $r['id'],
|
||||
'text' => $r['codice'].' - '.$r['descrizione'],
|
||||
'descrizione' => $r['descrizione'],
|
||||
'um' => $r['um'],
|
||||
'idiva_vendita' => $idiva,
|
||||
'iva_vendita' => $iva,
|
||||
'prezzo_acquisto' => Translator::numberToLocale($r['prezzo_acquisto']),
|
||||
'prezzo_vendita' => Translator::numberToLocale($r['prezzo_vendita']),
|
||||
];
|
||||
|
|
14
gulpfile.js
14
gulpfile.js
|
@ -206,14 +206,6 @@ gulp.task('chartjs', function () {
|
|||
.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
|
||||
gulp.task('i18n', function () {
|
||||
gulp.src([
|
||||
|
@ -316,13 +308,9 @@ gulp.task('bower', ['clean'], function () {
|
|||
gulp.task('other', ['clean'], function () {
|
||||
gulp.start('ckeditor');
|
||||
gulp.start('colorpicker');
|
||||
gulp.start('i18n');
|
||||
|
||||
gulp.start('viewerjs');
|
||||
gulp.start('chartjs');
|
||||
|
||||
gulp.start('i18n');
|
||||
gulp.start('php-debugbar');
|
||||
|
||||
});
|
||||
|
||||
gulp.task('default', ['clean', 'bower']);
|
||||
|
|
|
@ -16,8 +16,8 @@ if (Auth::check()) {
|
|||
'.tr('OpenSTAManager').'
|
||||
</footer>
|
||||
|
||||
<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="true"></div>';
|
||||
<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-popup2" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false"></div>';
|
||||
}
|
||||
echo '
|
||||
</div><!-- ./wrapper -->';
|
||||
|
|
|
@ -21,8 +21,6 @@ var isMobile = {
|
|||
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Aggiunta dell'ingranaggio all'unload della pagina
|
||||
$(window).on("beforeunload", function () {
|
||||
$("#main_loading").show();
|
||||
|
@ -414,15 +412,10 @@ function start_widgets($widgets) {
|
|||
|
||||
// Modal
|
||||
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) {
|
||||
id = '#bs-popup';
|
||||
}
|
||||
|
||||
|
||||
if (init_modal == null) {
|
||||
init_modal = 1;
|
||||
}
|
||||
|
@ -430,13 +423,9 @@ function launch_modal(title, href, init_modal, id) {
|
|||
$('html').addClass('modal-open');
|
||||
|
||||
$(id).on('hidden.bs.modal', function () {
|
||||
|
||||
if ($('.modal-backdrop').length < 1 ) {
|
||||
$('html').removeClass('modal-open');
|
||||
$(this).html('');
|
||||
$(this).data('modal', null);
|
||||
}
|
||||
|
||||
$('html').removeClass('modal-open');
|
||||
$(this).html('');
|
||||
$(this).data('modal', null);
|
||||
});
|
||||
|
||||
// Lettura contenuto div
|
||||
|
@ -924,8 +913,7 @@ jQuery.fn.selectReset = function () {
|
|||
};
|
||||
|
||||
/**
|
||||
* Aggiorna un <select> creato con select2 impostando un valore di default.
|
||||
* Da utilizzare per l'impostazione dei select basati su richieste AJAX.
|
||||
* Aggiorna un <select> creato con select2 impostando un valore di default
|
||||
*/
|
||||
jQuery.fn.selectSetNew = function (value, label) {
|
||||
this.selectReset();
|
||||
|
@ -941,8 +929,7 @@ jQuery.fn.selectSetNew = function (value, label) {
|
|||
};
|
||||
|
||||
/**
|
||||
* Aggiorna un <select> creato con select2 impostando un valore di default.
|
||||
* Da utilizzare per l'impostazione dei select statici.
|
||||
* Aggiorna un <select> creato con select2 impostando un valore di default
|
||||
*/
|
||||
jQuery.fn.selectSet = function (value) {
|
||||
this.val(value).trigger("change");
|
||||
|
|
|
@ -163,29 +163,6 @@ switch (post('op')) {
|
|||
$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".');
|
||||
}
|
||||
|
||||
|
||||
//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)
|
||||
if (in_array($id_cliente, $post['idtipoanagrafica'])) {
|
||||
|
|
|
@ -12,4 +12,3 @@ if (isset($id_record)) {
|
|||
$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_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 class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta|undefined" ]}
|
||||
{[ "type": "number", "label": "<?php echo tr('Soglia minima quantità'); ?>", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta" ]}
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
|
|
@ -119,7 +119,6 @@ echo '
|
|||
$data = $(this).selectData();
|
||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||
$("#descrizione").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
|
|
|
@ -246,7 +246,7 @@ switch (post('op')) {
|
|||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// 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).'))');
|
||||
|
||||
// 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"));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
|
||||
// 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);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$diritto_chiamata = $rs[0]['diritto_chiamata'];
|
||||
|
||||
// Aggiunta riga intervento sul documento
|
||||
$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).'))';
|
||||
$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).'))';
|
||||
$dbo->query($query);
|
||||
|
||||
//Aggiunta diritto di chiamata se >0
|
||||
if ($diritto_chiamata > 0) {
|
||||
|
||||
|
||||
if( $diritto_chiamata > 0 ){
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
$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"));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = $diritto_chiamata / 100 * $rs[0]['percentuale'];
|
||||
|
||||
|
||||
$query = 'INSERT INTO co_righe_documenti(
|
||||
iddocumento,
|
||||
idintervento,
|
||||
|
@ -378,7 +378,7 @@ switch (post('op')) {
|
|||
'.prepare($sconto).",
|
||||
'UNT',
|
||||
'-',
|
||||
'1',
|
||||
".prepare($rs[0]['diritto_chiamata']).",
|
||||
".prepare(get_var('Percentuale rivalsa INPS')).',
|
||||
'.prepare($rivalsainps).',
|
||||
'.prepare(get_var("Percentuale ritenuta d'acconto")).',
|
||||
|
@ -422,7 +422,7 @@ switch (post('op')) {
|
|||
$rs = $dbo->fetchArray($query);
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
@ -449,7 +449,7 @@ switch (post('op')) {
|
|||
$dati = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $dati[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('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, 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).'))';
|
||||
$dbo->query($query);
|
||||
}
|
||||
|
||||
|
@ -492,11 +492,11 @@ switch (post('op')) {
|
|||
$_SESSION['infos'][] = tr('Intervento _NUM_ aggiunto!', [
|
||||
'_NUM_' => $idintervento,
|
||||
]);
|
||||
/*
|
||||
/*
|
||||
else {
|
||||
$_SESSION['errors'][] = tr("Errore durante l'inserimento dell'intervento _NUM_ in fattura!", [
|
||||
'_NUM_' => $idintervento,
|
||||
]);
|
||||
$_SESSION['errors'][] = tr("Errore durante l'inserimento dell'intervento _NUM_ in fattura!", [
|
||||
'_NUM_' => $idintervento,
|
||||
]);
|
||||
}*/
|
||||
}
|
||||
break;
|
||||
|
@ -837,7 +837,7 @@ switch (post('op')) {
|
|||
$numero_esterno = '';
|
||||
}
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
if( $dir == 'entrata' ){
|
||||
$tipo_documento = 'Fattura differita di vendita';
|
||||
$idconto = get_var('Conto predefinito fatture di vendita');
|
||||
} else {
|
||||
|
@ -850,10 +850,10 @@ switch (post('op')) {
|
|||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// Lettura di tutte le righe della tabella in arrivo
|
||||
foreach ($post['qta_da_evadere'] as $i => $value) {
|
||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
||||
// Processo solo le righe da evadere
|
||||
if ($post['evadere'][$i] == 'on') {
|
||||
$idrigaddt = $i;
|
||||
$idrigaddt = post('idriga')[$i];
|
||||
$idarticolo = post('idarticolo')[$i];
|
||||
$descrizione = post('descrizione')[$i];
|
||||
$qta = $post['qta_da_evadere'][$i];
|
||||
|
@ -931,10 +931,10 @@ switch (post('op')) {
|
|||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
// 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
|
||||
if ($post['evadere'][$i] == 'on') {
|
||||
$idrigaordine = $i;
|
||||
|
||||
$idarticolo = post('idarticolo')[$i];
|
||||
$descrizione = post('descrizione')[$i];
|
||||
$qta = post('qta_da_evadere')[$i];
|
||||
|
@ -945,7 +945,7 @@ switch (post('op')) {
|
|||
$sconto = post('sconto')[$i];
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.prepare($idrigaordine);
|
||||
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$i;
|
||||
$rsprc = $dbo->fetchArray($qprc);
|
||||
|
||||
$sconto_unitario = $rsprc[0]['sconto_unitario'];
|
||||
|
@ -984,7 +984,7 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
// Scalo la quantità dall'ordine
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine));
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($i));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1001,10 +1001,10 @@ switch (post('op')) {
|
|||
$idconto = $rs[0]['idconto'];
|
||||
|
||||
// Lettura di tutte le righe della tabella in arrivo
|
||||
foreach ($post['qta_da_evadere'] as $i => $value) {
|
||||
for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) {
|
||||
// Processo solo le righe da evadere
|
||||
if ($post['evadere'][$i] == 'on') {
|
||||
$idrigaddt = $i;
|
||||
$idrigaddt = post('idriga')[$i];
|
||||
$idarticolo = post('idarticolo')[$i];
|
||||
$descrizione = post('descrizione')[$i];
|
||||
|
||||
|
|
|
@ -140,7 +140,6 @@ echo '
|
|||
$data = $(this).selectData();
|
||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||
$("#descrizione").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
|
|
|
@ -255,7 +255,7 @@ $totale = sum([
|
|||
|
||||
$netto_a_pagare = sum([
|
||||
$totale,
|
||||
$records[0]['bollo'],
|
||||
$marca_da_bollo,
|
||||
-$records[0]['ritenutaacconto'],
|
||||
]);
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ switch (post('op')) {
|
|||
|
||||
$scontokm_unitario = post('scontokm')[$idriga];
|
||||
$tipo_scontokm = post('tipo_scontokm')[$idriga];
|
||||
$scontokm = ($tipo_scontokm == 'PRC') ? ($prezzo_km_consuntivo * $scontokm_unitario) / 100 : $scontokm_unitario;
|
||||
$scontokm = ($tipo_scontokm == 'PRC') ? ($prezzo_km_consuntivo * $sconto_unitario) / 100 : $scontokm_unitario;
|
||||
|
||||
$dbo->update('in_interventi_tecnici', [
|
||||
'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).')');
|
||||
if (!empty($listino[0]['prc_guadagno'])) {
|
||||
$sconto_unitario = $listino[0]['prc_guadagno'];
|
||||
$sconto = $listino[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
} else {
|
||||
|
@ -70,7 +70,7 @@ echo '
|
|||
<input type="hidden" id="idautomezzo" name="idautomezzo" value="'.$idautomezzo.'">
|
||||
<input type="hidden" name="idriga" value="'.$idriga.'">';
|
||||
|
||||
if (!empty($idarticolo)) {
|
||||
if ($idarticolo != '') {
|
||||
echo '
|
||||
<input type="hidden" id="idarticolo_originale" name="idarticolo_originale" value="'.$idarticolo.'">';
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ if (!empty($idarticolo)) {
|
|||
// Articolo
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
|
|
@ -32,20 +32,14 @@ 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\');">
|
||||
<i class="fa fa-pencil"></i> '.tr('Firma').'
|
||||
</button>
|
||||
<div class="clearfix"></div>';
|
||||
<div class="clearfix"></div>
|
||||
|
||||
echo '<div class="hide" id="pdf">';
|
||||
|
||||
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%">
|
||||
<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%">
|
||||
alt : <a href="'.$rootdir.'/files/interventi/'.$rapportino_nome.'" target="_blank">'.$rapportino_nome.'</a>
|
||||
<span>'.tr('Plugin PDF mancante').'</span>
|
||||
</object>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
</object>
|
||||
</div>';
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -21,7 +21,7 @@ if (empty($idriga)) {
|
|||
$prezzo_acquisto = '0';
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto_unitario = $rs[0]['prc_guadagno'];
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -49,7 +49,7 @@ if (!empty($rs)) {
|
|||
<tr '.$extra.'>
|
||||
<td>
|
||||
<input type="hidden" name="id" value="'.$r['id'].'">
|
||||
'.Modules::link('Articoli', $r['idarticolo'], (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione']);
|
||||
'.Modules::link('Articoli', $r['idarticolo'], $r['descrizione']);
|
||||
|
||||
// Info extra (lotto, serial, altro)
|
||||
if (!empty($r['abilita_serial'])) {
|
||||
|
|
|
@ -206,7 +206,7 @@ if (!empty($rs2)) {
|
|||
} else {
|
||||
echo '
|
||||
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($sconto_unitario).'" />
|
||||
<input type="hidden" name="tipo_sconto['.$id.']" value="'.Translator::numberToLocale($tipo_sconto).'" />';
|
||||
<input type="hidden" name="sconto['.$id.']" value="'.Translator::numberToLocale($tipo_sconto).'" />';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -38,7 +38,7 @@ if (empty($records[0]['firma_file'])) {
|
|||
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>
|
||||
<div class="clearfix" > </div>
|
||||
<br>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto)
|
|||
|
||||
// Calcolo il totale delle ore lavorate
|
||||
$diff = date_diff(date_create($inizio), date_create($fine));
|
||||
$ore = ($diff->h + ($diff->i/60) );
|
||||
$ore = $diff->h + $diff->m / 60;
|
||||
|
||||
// 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));
|
||||
|
|
|
@ -10,7 +10,7 @@ echo '
|
|||
</div>
|
||||
<div class="box-body">';
|
||||
|
||||
$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');
|
||||
$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');
|
||||
|
||||
if (!empty($results)) {
|
||||
echo '
|
||||
|
@ -24,7 +24,7 @@ if (!empty($results)) {
|
|||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
'.Modules::link('Interventi', $result['id'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'.Modules::link('Interventi', $result['codice'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $result['codice'],
|
||||
'_DATE_' => Translator::dateToLocale($result['data']),
|
||||
])).'
|
||||
|
|
|
@ -128,7 +128,6 @@ echo '
|
|||
$data = $(this).selectData();
|
||||
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
|
||||
$("#descrizione").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}else{
|
||||
$("#prezzi_articolo button").addClass("disabled");
|
||||
|
|
|
@ -255,10 +255,9 @@ switch (post('op')) {
|
|||
$rs2 = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||
$iva = ($subtot - $sconto) / 100 * $rs2[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
||||
$desc_iva = $rs2[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$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);
|
||||
$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);
|
||||
$dbo->query($query);
|
||||
|
||||
$_SESSION['infos'][] = 'Riga modificata!';
|
||||
|
|
|
@ -65,7 +65,7 @@ echo '
|
|||
echo '
|
||||
<div class="row">
|
||||
<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); $(\'#idiva\').selectSet($data.iva_vendita, $data.iva_vendita);\"" ]}
|
||||
{[ "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);\"" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
|||
/*
|
||||
ARTICOLI + RIGHE GENERICHE
|
||||
*/
|
||||
$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`';
|
||||
$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`';
|
||||
$rs = $dbo->fetchArray($q_art);
|
||||
|
||||
echo '
|
||||
|
|
|
@ -39,7 +39,10 @@ $d2 = new DateTime($end);
|
|||
$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');
|
||||
$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;
|
||||
for ($i = 0; $i < $count; ++$i) {
|
||||
|
@ -51,8 +54,14 @@ for ($i = 0; $i < $count; ++$i) {
|
|||
]]);
|
||||
}
|
||||
|
||||
if (intval($acquisti[$i]['month']) != $month + 1) {
|
||||
array_splice($acquisti, $i, 0, [[
|
||||
if (intval($entrate[$i]['month']) != $month + 1) {
|
||||
array_splice($entrate, $i, 0, [[
|
||||
'totale' => 0,
|
||||
]]);
|
||||
}
|
||||
|
||||
if (intval($uscite[$i]['month']) != $month + 1) {
|
||||
array_splice($uscite, $i, 0, [[
|
||||
'totale' => 0,
|
||||
]]);
|
||||
}
|
||||
|
@ -64,7 +73,7 @@ for ($i = 0; $i < $count; ++$i) {
|
|||
echo '
|
||||
<div class="box box-success">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.tr('Vendite e acquisti').'</h3>
|
||||
<h3 class="box-title">'.tr('Fatturato').'</h3>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||
|
@ -72,7 +81,7 @@ echo '
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<canvas class="box-body collapse in" id="fatturato" height="100"></canvas>
|
||||
<canvas class="box-body collapse in" id="fatturato"></canvas>
|
||||
</div>';
|
||||
|
||||
// Script per il grafico del fatturato
|
||||
|
@ -86,16 +95,23 @@ $(document).ready(function() {
|
|||
datasets: [
|
||||
{
|
||||
label: "'.tr('Fatturato').'",
|
||||
backgroundColor: "#63E360",
|
||||
backgroundColor: "yellow",
|
||||
data: [
|
||||
'.implode(',', array_column($fatturato, 'totale')).'
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "'.tr('Acquisti').'",
|
||||
backgroundColor: "#EE4B4B",
|
||||
label: "'.tr('Entrate').'",
|
||||
backgroundColor: "green",
|
||||
data: [
|
||||
'.implode(',', array_column($acquisti, 'totale')).'
|
||||
'.implode(',', array_column($entrate, 'totale')).'
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "'.tr('Uscite').'",
|
||||
backgroundColor: "red",
|
||||
data: [
|
||||
'.implode(',', array_column($uscite, 'totale')).'
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -204,12 +220,12 @@ echo '
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
// Interventi per tipologia
|
||||
$tipi = $dbo->fetchArray('SELECT * FROM `in_tipiintervento`');
|
||||
// Interventi per stato
|
||||
$stati = $dbo->fetchArray('SELECT * FROM `in_statiintervento`');
|
||||
|
||||
$dataset = '';
|
||||
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.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');
|
||||
foreach ($stati as $stato) {
|
||||
$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');
|
||||
|
||||
$month = intval($d1->format('m')) - 1;
|
||||
for ($i = 0; $i < $count; ++$i) {
|
||||
|
@ -224,12 +240,9 @@ foreach ($tipi as $tipo) {
|
|||
++$month;
|
||||
}
|
||||
|
||||
//Random color
|
||||
$background = '#' . dechex(rand(256,16777215));
|
||||
|
||||
$dataset .= '{
|
||||
label: "'.$tipo['descrizione'].'",
|
||||
backgroundColor: "'.$background.'",
|
||||
label: "'.$stato['descrizione'].'",
|
||||
backgroundColor: "'.$stato['colore'].'",
|
||||
data: [
|
||||
'.implode(',', array_column($interventi, 'totale')).'
|
||||
]
|
||||
|
@ -239,7 +252,7 @@ foreach ($tipi as $tipo) {
|
|||
echo '
|
||||
<div class="box box-info">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.tr('Interventi per tipologia').'</h3>
|
||||
<h3 class="box-title">'.tr('Interventi per stato').'</h3>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||
|
@ -247,7 +260,7 @@ echo '
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<canvas class="box-body collapse in" id="interventi" height="100"></canvas>
|
||||
<canvas class="box-body collapse in" id="interventi"></canvas>
|
||||
</div>';
|
||||
|
||||
// Script per il grafico del fatturato
|
||||
|
|
|
@ -24,7 +24,7 @@ echo '
|
|||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "id": "indirizzo_", "required": 1, "value": "$indirizzo$" ]}
|
||||
{[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 1, "value": "$indirizzo$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-6">
|
||||
|
@ -44,7 +44,7 @@ echo '
|
|||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-3">
|
||||
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "id": "citta_", "value": "$citta$" ]}
|
||||
{[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "value": "$citta$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-3">
|
||||
|
@ -91,40 +91,39 @@ echo '
|
|||
</div>';
|
||||
|
||||
if (!empty($google)) {
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6" id="geocomplete">
|
||||
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]}
|
||||
</div>
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="row">
|
||||
<div class="col-md-4" id="geocomplete">
|
||||
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "id": "lat_", "value": "$lat$", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "value": "$lat$", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "id": "lng_", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
|
||||
</div>';
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Vedi su google maps
|
||||
if (!empty($records[0]['indirizzo']) || (empty($records[0]['citta'])) ) {
|
||||
|
||||
// Calcola percorso
|
||||
if (empty($records[0]['gaddress']) || (empty($records[0]['lat']) && empty($records[0]['lng']))) {
|
||||
echo '
|
||||
<div class="btn-group col-md-2" >
|
||||
<label> </label><br>
|
||||
<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>
|
||||
';
|
||||
|
||||
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>';
|
||||
<div class="col-md-3">
|
||||
<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>
|
||||
</div>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
|
||||
if (!empty($records[0]['gaddress']) || (!empty($records[0]['lat']) && !empty($records[0]['lng']))) {
|
||||
echo '
|
||||
<div id="map" style="height:400px; width:100%"></div><br>';
|
||||
echo '
|
||||
<div id="map" style="height:400px; width:100%"></div>';
|
||||
}
|
||||
} else {
|
||||
echo '
|
||||
|
@ -154,12 +153,12 @@ echo '
|
|||
$(document).ready( function(){
|
||||
$("#form_sedi #geocomplete input").geocomplete({
|
||||
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",
|
||||
detailsAttribute: "data-geo"
|
||||
}).bind("geocode:result", function (event, result) {
|
||||
$("#form_sedi #lat_").val(result.geometry.location.lat());
|
||||
$("#form_sedi #lng_").val(result.geometry.location.lng());
|
||||
$("#form_sedi #lat").val(result.geometry.location.lat());
|
||||
$("#form_sedi #lng").val(result.geometry.location.lng());
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
|
|
@ -11,15 +11,13 @@ $module_name = ($records[0]['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di ac
|
|||
$id_cliente = $records[0]['idanagrafica'];
|
||||
$id_sede = $records[0]['idsede'];
|
||||
|
||||
$tipo_doc = $records[0]['tipo_doc'];
|
||||
$numero = !empty($records[0]['numero_esterno']) ? $records[0]['numero_esterno'] : $records[0]['numero'];
|
||||
|
||||
if (empty($records[0]['numero_esterno'])) {
|
||||
$numero = 'pro-forma '.$numero;
|
||||
$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)
|
||||
$destinazione = '';
|
||||
if (!empty($records[0]['idsede'])) {
|
||||
|
|
|
@ -192,22 +192,9 @@ if (!empty($records[0]['note'])) {
|
|||
<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
|
||||
$imponibile = sum($imponibile);
|
||||
$iva = sum($iva) + $records[0]['iva_rivalsainps'];
|
||||
$iva = sum($iva);
|
||||
$sconto = sum($sconto);
|
||||
|
||||
$totale = $imponibile + $iva - $sconto + $records[0]['rivalsainps'];
|
||||
$totale = $imponibile + $iva - $sconto;
|
||||
|
|
|
@ -147,7 +147,7 @@ if (!empty($sconto)) {
|
|||
</td>';
|
||||
}
|
||||
|
||||
echo "
|
||||
echo "
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($iva)." €
|
||||
</td>
|
||||
|
@ -157,119 +157,29 @@ echo "
|
|||
</td>
|
||||
</tr>';
|
||||
|
||||
// Aggiunta della marca da bollo al totale
|
||||
$totale = sum($totale, $records[0]['bollo']);
|
||||
|
||||
// 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>
|
||||
<th class="text-center small" colspan="'.$first_colspan.'">
|
||||
'.tr('Rivalsa INPS _PRC_%', [
|
||||
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
|
||||
], ['upper' => true]).'
|
||||
</th>';
|
||||
|
||||
if (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('Totale documento', [], ['upper' => true]).'
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
|
||||
'.Translator::numberToLocale($records[0]['rivalsainps']).' €
|
||||
</td>';
|
||||
|
||||
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 '
|
||||
echo "
|
||||
<tr>
|
||||
<th class="text-center small" colspan="'.$first_colspan.'">
|
||||
<th class='text-center small' colspan=".(!empty($sconto) ? 3 : 2).'>
|
||||
'.tr("Ritenuta d'acconto _PRC_%", [
|
||||
'_PRC_' => Translator::numberToLocale($rs2[0]['percentuale'], 0),
|
||||
], ['upper' => true]).'
|
||||
</th>';
|
||||
], ['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 class='text-center small' colspan=".(!empty($sconto) ? 2 : 1).'>
|
||||
'.tr('Netto a pagare', [], ['upper' => true])."
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="cell-padded text-center" colspan="'.$first_colspan.'">
|
||||
'.Translator::numberToLocale($records[0]['ritenutaacconto']).' €
|
||||
</td>';
|
||||
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 3 : 2).'>
|
||||
'.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.'">
|
||||
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 2 : 1).'>
|
||||
'.Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
|
|
@ -15,10 +15,6 @@ $records = $dbo->fetchArray('SELECT *,
|
|||
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore
|
||||
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';
|
||||
|
||||
$id_cliente = $records[0]['idanagrafica'];
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
<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…
Reference in New Issue