Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Marco 2018-04-14 20:45:04 +02:00
commit 43c7a2acec
19 changed files with 97 additions and 66 deletions

BIN
assets/src/img/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -45,18 +45,20 @@ if (Auth::check()) {
if (!empty($debugbarRenderer)) {
echo $debugbarRenderer->render();
}
// Rimozione del messaggio automatico riguardante la modifica di valori nella pagina
echo '
<script>
window.onbeforeunload = null;
</script>';
}
echo '
<script>
// Rimozione del messaggio automatico riguardante la modifica di valori nella pagina
window.onbeforeunload = null;
</script>
</body>
</html>';
if ($id_record OR basename($_SERVER["PHP_SELF"])=='controller.php' OR basename($_SERVER["PHP_SELF"])=='index.php'){
if (!empty($id_record) || basename($_SERVER['PHP_SELF']) == 'controller.php' || basename($_SERVER['PHP_SELF']) == 'index.php') {
unset($_SESSION['infos']);
unset($_SESSION['errors']);
unset($_SESSION['warnings']);
}
}

View File

@ -31,7 +31,7 @@ echo '<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOW5ykAAAAAFYfm/xZ/5a4AAAAAGHDkWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGe55cTluf8AAAAABWH5v8Wf+W2AAAAABhw5P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD67o/wAAAAAOda0KE5bn/xSP5v8Vh+b/Fn/l/xd35f8YcOT/Aw0dARRHqxIcWOPWAAAAAAAAAAAAAAAAAAAAAA+u6LwQpuj/Ep7n/xOW5/8Uj+b/FYfm/xZ/5f8Xd+X/GHDk/xpo5P8bX+P/FUKqKQAAAAAAAAAAAAAAAAVEVwILga4cEKbo/xKe5/8Tluf/FI/m/xWH5v4Wf+X+F3fl/xhw5P8aaOT/G1/j/wAAAAASMo41AAAAAA2+6aoOtuj/D6/o/xCm6P8Snuf/E5bn9w9rrQEAAAAAAAAAABRnyAMYcOT7Gmjk/xtf4/8cWOP/HVDj/xMujWwUMVr/FDFa/xQxWv8UU5j/FFOY/xQ0YP8UPnP/FFOY/xRTmP8UMl3/FEqG/xQxWv8UMFn/E0mF/xQxWv8UMVr/FDFa/xQxWv8TU5b/FDFa/xQxWv8TXKf/FDFa/xQxWv8UMVr/E3fY/xJ53P8ShO3/Ennd/xJ74P8UMVr/FDFa/xQxWv8UMVr/E1OW/xQxWv8UMVr/E1yn/xNvyv8UMVr/FDFa/xQxWv8SeNv/FDJb/xQxWv8ShvP/FDFa/xQxWv8UMVrzFDFa8xQ3Yf8UN2L/FDdi/xQxWvMUMVrzFDJc8xQyXPMUMVrzFDJb8xQ0Yf8UM2H/FTVj/xQxWvMUMVrzDb3pRw626P0Pr+j/EKbo/xKe5/8Tluf9AAAAAAAAAAAAAAAAAAAAABhv5P8aaOT/G1/j/xxY4/8dUOP/Ey6NYwAAAAAOtuicD63oehCm6P8Snuf/E5bn/xSP5v8Vh+b9Fn/l/Rd35f8YcOT/Gmjk/xtf4/8VQqoYFjyqSxMvjQIAAAAAAAAAAAIWHQ8Qpuj/Ep7n/xOW5/8Uj+b/FYfm/xZ/5f8Xd+X/GHDk/xpo5P8bX+P/BAscCwAAAAAAAAAAAAAAAAAAAAAPr+j3DH2uSxKe55wTluf/FI/m/xWH5v8Wf+X/F3fl/xhw5P8UTqskG1/kWBxY4/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnOcQE5bn/xJ8yRQVh+b/Fn/l8xRnyBMYcOT/EUKPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2KQAxOW59cAAAAAFYfm/xZ/5a4AAAAAGHDkvwAAAAAAAAAAAAAAAAAAAAAAAAAA/n8AAPJfAADYGwAAwAcAAOAHAAADwQAAAAAAAAAAAAAAAAAAAAAAAIPBAACgBwAA4AcAANAbAAD6XwAA+l8AAA==" rel="icon" type="image/x-icon" />';
<link href="'.$paths['img'].'/favicon.png" rel="icon" type="image/x-icon" />';
foreach ($css_modules as $style) {
$style = (is_array($style)) ? $style : ['href' => $style, 'media' => 'all'];

View File

@ -68,7 +68,8 @@ if (file_exists($docroot.'/include/custom/top.php')) {
// Controllo se è una beta e in caso mostro un warning
if (str_contains($version, 'beta')) {
echo '
<div class="alert alert-warning alert-dismissable pull-right fade in">
<div class="clearfix">&nbsp;</div>
<div class="alert alert-warning alert-dismissable col-md-6 col-md-push-3 text-center fade in">
<i class="fa fa-warning"></i> <b>'.tr('Attenzione!').'</b> '.tr('Stai utilizzando una versione <b>non stabile</b> di OSM.').'
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
@ -123,7 +124,7 @@ echo '
<img src="'.App::getPaths()['img'].'/logo.png" alt="'.tr('OSM Logo').'">
<h3 class="box-title">'.tr('OpenSTAManager').'</h3>
</div>
<!-- /.box-header -->
<div class="login-box-body box-body">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa fa-user"></i> </span>

View File

@ -407,9 +407,7 @@ function create_thumbnails($tmp, $filename, $dir)
function get_client_ip()
{
$ipaddress = '';
if (getHostByName(getHostName())){
$ipaddress = getHostByName(getHostName());
}else if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
@ -419,8 +417,10 @@ function get_client_ip()
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
} elseif (!empty($_SERVER['HTTP_FORWARDED'])) {
$ipaddress = $_SERVER['HTTP_FORWARDED'];
} elseif (!empty($_SERVER['REMOTE_ADDR'])) {
} elseif (!empty($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']!='127.0.0.1' ) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
} elseif (!empty(getHostByName(getHostName()))){
$ipaddress = getHostByName(getHostName());
} else {
$ipaddress = 'UNKNOWN';
}
@ -493,7 +493,7 @@ function str_replace_once($str_pattern, $str_replacement, $string)
}
/**
* Restituisce il percorso del filesystem in modo indipendete dal sistema operativo.
* Restituisce il percorso del filesystem in modo indipendente dal sistema operativo.
*
* @param string $string Percorso da correggere
*
@ -577,11 +577,11 @@ function get_var($nome, $sezione = null, $descrizione = false, $again = false)
}
/**
* Restitusice il contentuo sanitarizzato dell'input dell'utente.
* Restituisce il contenuto sanitarizzato dell'input dell'utente.
*
* @param string $param Nome del paramentro
* @param string $param Nome del parametro
* @param string $rule Regola di filtraggio
* @param string $method Posizione del paramentro (post o get)
* @param string $method Posizione del parametro (post o get)
*
* @since 2.3
*
@ -593,9 +593,9 @@ function filter($param, $method = null)
}
/**
* Restitusice il contentuo sanitarizzato dell'input dell'utente.
* Restituisce il contenuto sanitarizzato dell'input dell'utente.
*
* @param string $param Nome del paramentro
* @param string $param Nome del parametro
* @param string $rule Regola di filtraggio
*
* @since 2.3
@ -608,9 +608,9 @@ function post($param, $rule = 'text')
}
/**
* Restitusice il contentuo sanitarizzato dell'input dell'utente.
* Restituisce il contenuto sanitarizzato dell'input dell'utente.
*
* @param string $param Nome del paramentro
* @param string $param Nome del parametro
* @param string $rule Regola di filtraggio
*
* @since 2.3

View File

@ -45,6 +45,7 @@ switch (post('op')) {
if (isset($post['id_record'])) {
$idstato = post('idstato');
$idanagrafica = post('idanagrafica');
$idsede = post('idsede');
$nome = post('nome');
$idagente = post('idagente');
$idpagamento = post('idpagamento');
@ -77,7 +78,7 @@ switch (post('op')) {
$costo_km = post('costo_km');
$costo_diritto_chiamata = post('costo_diritto_chiamata');
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', idtipointervento='.prepare($idtipointervento).'WHERE id='.prepare($id_record);
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idsede='.prepare($idsede).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', idtipointervento='.prepare($idtipointervento).'WHERE id='.prepare($id_record);
// costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).'
$dbo->query($query);

View File

@ -31,6 +31,10 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi", "extra": "<?php echo $readonly; ?>" ]}
</div>
<div class="col-md-3">
<?php
@ -40,21 +44,23 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
?>
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione 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 descrizione='Agente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idagente$" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div>
<div class="col-md-2">
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Validità'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "giorni" ]}
</div>
</div>
<div class="row">
<div class="col-md-2">
{[ "type": "checkbox", "label": "<?php echo tr('Rinnovabile'); ?>", "name": "rinnovabile", "help": "<?php echo tr('Il contratto è rinnovabile?'); ?>", "value": "$rinnovabile$" ]}
</div>
@ -62,22 +68,20 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<div class="col-md-2">
{[ "type": "number", "label": "<?php echo tr('Preavviso per rinnovo'); ?>", "name": "giorni_preavviso_rinnovo", "decimals": "0", "value": "$giorni_preavviso_rinnovo$", "icon-after": "giorni" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data bozza'); ?>", "maxlength": 10, "name": "data_bozza", "value": "$data_bozza$" ]}
</div>
<div class="col-md-3">
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data accettazione'); ?>", "maxlength": 10, "name": "data_accettazione", "value": "$data_accettazione$" ]}
</div>
<div class="col-md-3">
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "maxlength": 10, "name": "data_conclusione", "value": "$data_conclusione$" ]}
</div>
<div class="col-md-3">
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data rifiuto'); ?>", "maxlength": 10, "name": "data_rifiuto", "value": "$data_rifiuto$" ]}
</div>
</div>
@ -370,6 +374,12 @@ if (!empty($records[0]['idcontratto_prev'])) {
function fattura_da_contratto(){
$('#form_creafattura').submit();
}
$('#idanagrafica_c').change( function(){
session_set('superselect,idanagrafica', $(this).val(), 0);
$("#idsede").selectReset();
});
</script>

View File

@ -14,7 +14,7 @@ if (!isset($_SESSION['dashboard']['idtecnici'])) {
}
if (!isset($_SESSION['dashboard']['idstatiintervento'])) {
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione FROM in_statiintervento');
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione FROM in_statiintervento WHERE deleted = 0');
$_SESSION['dashboard']['idstatiintervento'] = ["'-1'"];
@ -51,7 +51,7 @@ $checks = '';
$count = 0;
$total = 0;
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento ORDER BY descrizione ASC');
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted = 0 ORDER BY descrizione ASC');
$total = count($rs);
$allchecksstati = '';

View File

@ -133,7 +133,7 @@ if (!empty($rs)) {
}
// Intervento
elseif (!empty($r['idintervento'])) {
$data = $dbo->fetchArray('SELECT codice AS numero, data_richiesta AS data FROM in_interventi WHERE id='.prepare($r['idintervento']));
$data = $dbo->fetchArray('SELECT codice AS numero, IFNULL( (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento=in_interventi.id), data_richiesta) AS data FROM in_interventi WHERE id='.prepare($r['idintervento']));
$ref_modulo = 'Interventi';
$ref_id = $r['idintervento'];

View File

@ -1,22 +1,17 @@
<?php
switch ($resource) {
case 'update_anagrafica':
case 'sync':
$idtecnico = $user['idanagrafica'];
$response = file_get_contents('php:// input');
$response = API::getRequest(true);
// file_put_contents('calendario.txt', $response);
// $events = iCalDecoder( $response );
$ical = new iCalEasyReader();
$events = $ical->load($response);
// file_put_contents('calendario.txt', print_r($events, 1));
for ($j = 0; $j < sizeof($events['VEVENT']); ++$j) {
$description = $events['VEVENT'][$j]['DESCRIPTION'];
// file_put_contents('cal.txt', $description, FILE_APPEND);
// idriga di in_interventi_tecnici
if (strstr($events['VEVENT'][$j]['UID'], '-')) {
$idriga = 'NEW';
@ -144,5 +139,5 @@ switch ($resource) {
}
return [
'syncs',
'sync',
];

View File

@ -94,7 +94,7 @@ switch (post('op')) {
for ($i = 0; $i < sizeof($id_records); ++$i) {
$idintervento = $id_records[$i];
$q = 'SELECT id, in_interventi.descrizione,
$q = 'SELECT id, in_interventi.descrizione, in_interventi.codice,
IFNULL( (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento=in_interventi.id), data_richiesta) AS data,
(SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS costo_ore_unitario,
(SELECT costo_km FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS costo_km_unitario,
@ -128,7 +128,7 @@ switch (post('op')) {
$sconto += $subtot / 100 * abs($prc_sconto);
}
$descrizione = 'Intervento numero '.$rs[0]['id'].' del '.date('d/m/Y', strtotime($rs[0]['data']))."\n".html_entity_decode($rs[0]['descrizione']);
$descrizione = 'Intervento numero '.$rs[0]['codice'].' del '.date('d/m/Y', strtotime($rs[0]['data']))."\n".html_entity_decode($rs[0]['descrizione']);
//Aggiunta impianti
$rsi = $dbo->fetchArray('SELECT * FROM my_impianti_interventi INNER JOIN my_impianti ON my_impianti.id=my_impianti_interventi.idimpianto WHERE idintervento="'.$rs[0]['id'].'"');

View File

@ -4,7 +4,14 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) {
case 'conti':
$query = 'SELECT * FROM co_pianodeiconti2';
$query = 'SELECT co_pianodeiconti2.* FROM co_pianodeiconti2 LEFT JOIN co_pianodeiconti3 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| GROUP BY co_pianodeiconti2.id';
if($search!=''){
$wh = "WHERE co_pianodeiconti3.descrizione LIKE ".prepare('%'.$search.'%');
}else{
$wh = "";
}
$query = str_replace('|where|', $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {

View File

@ -357,16 +357,20 @@ class API extends \Util\Singleton
/**
* Restituisce i parametri specificati dalla richiesta.
*/
public static function getRequest()
public static function getRequest($raw = false)
{
$request = [];
if (self::isAPIRequest()) {
$request = (array) json_decode(file_get_contents('php://input'), true);
$request = file_get_contents('php://input');
// Fallback nel caso la richiesta sia effettuata da browser
if ($_SERVER['REQUEST_METHOD'] == 'GET' && empty($request)) {
$request = Filter::getGET();
if (empty($raw)) {
$request = (array) json_decode($request, true);
// Fallback nel caso la richiesta sia effettuata da browser
if ($_SERVER['REQUEST_METHOD'] == 'GET' && empty($request)) {
$request = Filter::getGET();
}
}
}

View File

@ -38,8 +38,8 @@ class Modules
$user = Auth::user();
$results = $database->fetchArray('SELECT * FROM `zz_modules` LEFT JOIN (SELECT `idmodule`, `permessi` FROM `zz_permissions` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id_utente']).')) AS `zz_permissions` ON `zz_modules`.`id`=`zz_permissions`.`idmodule` LEFT JOIN (SELECT NULL AS `id_segment`, `idmodule`, `clause`, `position` FROM `zz_group_module` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id_utente']).') AND `enabled` = 1 UNION SELECT `id` AS `id_segment`, `id_module` AS `idmodule`, `clause`, `position` FROM `zz_segments` ) AS `zz_group_module` ON `zz_modules`.`id`=`zz_group_module`.`idmodule`');
$results = $database->fetchArray('SELECT * FROM `zz_modules` LEFT JOIN (SELECT `idmodule`, `permessi` FROM `zz_permissions` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id_utente']).')) AS `zz_permissions` ON `zz_modules`.`id`=`zz_permissions`.`idmodule` LEFT JOIN (SELECT NULL AS `id_segment`, `idmodule`, `clause`, `position` FROM `zz_group_module` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id_utente']).') AND `enabled` = 1 UNION SELECT `id` AS `id_segment`, `id_module` AS `idmodule`, `clause`, `position` FROM `zz_segments`) AS `zz_group_module` ON `zz_modules`.`id`=`zz_group_module`.`idmodule`');
$modules = [];
$additionals = [];
@ -53,14 +53,14 @@ class Modules
$result['options2'] = App::replacePlaceholder($result['options2']);
$result['option'] = empty($result['options2']) ? $result['options'] : $result['options2'];
if (!empty($result['clause'])) {
if($result['id_segment']!=''){
if($result['id_segment']==$_SESSION['m'.$result['id']]['id_segment']){
if (!empty($result['id_segment'])) {
if ($result['id_segment'] == $_SESSION['m'.$result['id']]['id_segment']) {
$result['clause'] = App::replacePlaceholder($result['clause']);
$additionals[$result['id']][$result['position']][] = $result['clause'];
}
}else{
} else {
$result['clause'] = App::replacePlaceholder($result['clause']);
$additionals[$result['id']][$result['position']][] = $result['clause'];
}

View File

@ -22,7 +22,7 @@ class Prints
if (empty(self::$prints)) {
$database = Database::getConnection();
$results = $database->fetchArray('SELECT * FROM zz_prints');
$results = $database->fetchArray('SELECT * FROM zz_prints WHERE enabled = 1');
$prints = [];

View File

@ -31,6 +31,16 @@ echo "
<th class='text-center' style='width:10%'>".tr('IVA', [], ['upper' => true]).' (%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td style="border-top:none; border-bottom:1px solid #aaa;"></td>
<td style="border-top:none; border-bottom:1px solid #aaa;"></td>
<td style="border-top:none; border-bottom:1px solid #aaa;"></td>
<td style="border-top:none; border-bottom:1px solid #aaa;"></td>
<td style="border-top:none; border-bottom:1px solid #aaa;"></td>
</tr>
</tfoot>
<tbody>';

View File

@ -363,7 +363,7 @@ foreach ($rst as $i => $r) {
}
// Ore lavorate
$ore = get_ore_intervento($idintervento);
$ore = get_ore_intervento($id_record);
echo '
<tr>

View File

@ -44,10 +44,10 @@ switch ($periodo[0]) {
break;
}*/
if ('entrata' == $dir) {
$query = "SELECT *, SUM(subtotale-co_righe_documenti.sconto) AS subtotale, SUM(iva) AS iva, (SELECT ragione_sociale FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS ragione_sociale FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id=co_righe_documenti.iddocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE dir='entrata' AND co_documenti.data>='".$date_start."' AND co_documenti.data<='".$date_end."' GROUP BY co_documenti.id, co_righe_documenti.idiva";
} elseif ('uscita' == $dir) {
$query = "SELECT *, SUM(subtotale-co_righe_documenti.sconto) AS subtotale, SUM(iva) AS iva, (SELECT ragione_sociale FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS ragione_sociale FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id=co_righe_documenti.iddocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE dir='uscita' AND co_documenti.data>='".$date_start."' AND co_documenti.data<='".$date_end."' GROUP BY co_documenti.id, co_righe_documenti.idiva";
if ($dir == 'entrata') {
$query = "SELECT *, SUM(subtotale-co_righe_documenti.sconto) AS subtotale, SUM(iva) AS iva, (SELECT ragione_sociale FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS ragione_sociale FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id=co_righe_documenti.iddocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE dir='entrata' AND co_documenti.data >= ".prepare($date_start).' AND co_documenti.data <= '.prepare($date_end).' GROUP BY co_documenti.id, co_righe_documenti.idiva ORDER BY co_documenti.data';
} elseif ($dir == 'uscita') {
$query = "SELECT *, SUM(subtotale-co_righe_documenti.sconto) AS subtotale, SUM(iva) AS iva, (SELECT ragione_sociale FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=co_documenti.idanagrafica) AS ragione_sociale FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id=co_righe_documenti.iddocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE dir='uscita' AND co_documenti.data >= ".prepare($date_start).' AND co_documenti.data <= '.prepare($date_end).' GROUP BY co_documenti.id, co_righe_documenti.idiva ORDER BY co_documenti.data';
}
$rs = $dbo->fetchArray($query);

1
update/2_4_1.sql Normal file
View File

@ -0,0 +1 @@
ALTER TABLE `co_contratti` ADD `idsede` INT NOT NULL AFTER `idanagrafica`;