mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-03-09 07:47:46 +01:00
Merge branch 'master' into 2.4
This commit is contained in:
commit
b09e739890
@ -4,7 +4,7 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi
|
||||
|
||||
Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release.
|
||||
|
||||
- [2.3.1 (2018-02-16)](#231)
|
||||
- [2.3.1 (2018-02-19)](#231-2018-02-19)
|
||||
- [Aggiunto (Added)](#aggiunto-added)
|
||||
- [Modificato (Changed)](#modificato-changed)
|
||||
- [Rimosso (Removed)](#rimosso-removed)
|
||||
@ -25,7 +25,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||
- [Fixed](#fixed)
|
||||
|
||||
|
||||
## 2.3.1 (2018-02-16)
|
||||
## 2.3.1 (2018-02-19)
|
||||
|
||||
### Aggiunto (Added)
|
||||
- Aggiunti i seriali in stampa
|
||||
@ -33,7 +33,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||
- Aggiunta tramite flag la possibilità di inserire la descrizione dell'intervento in fattura
|
||||
- Aggiunta esportazione bulk in zip dei pdf degli interventi selezionati
|
||||
- Aggiunte informazioni del cliente e fornitore nelle relative stampe ordini
|
||||
|
||||
|
||||
### Modificato (Changed)
|
||||
- Migliorati i widget di "Crediti da clienti" e "Debiti verso fornitori", con calcolo parziale del rimanente
|
||||
- Disabilitato di default il modulo "Viste"
|
||||
|
@ -136,7 +136,7 @@ foreach ($modules as $module) {
|
||||
$compatible = '<i class="fa fa-check-circle text-success" data-toggle="tooltip" title="'.tr('Compatibile').'"></i>';
|
||||
$class = 'success';
|
||||
} else {
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compabitile!').tr('Questo modulo è compatibile solo con le versioni').': '.$module['compatibility'].'"></i>';
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compatibile!').tr('Questo modulo è compatibile solo con le versioni').': '.$module['compatibility'].'"></i>';
|
||||
$class = 'danger';
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ foreach ($modules as $module) {
|
||||
$compatible = '<i class="fa fa-check-circle text-success" data-toggle="tooltip" title="'.tr('Compatibile').'"></i>';
|
||||
$class = 'success';
|
||||
} else {
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compabitile!').tr('Questo modulo è compatibile solo con le versioni').': '.$sub['compatibility'].'"></i>';
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compatibile!').tr('Questo modulo è compatibile solo con le versioni').': '.$sub['compatibility'].'"></i>';
|
||||
$class = 'danger';
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ $google = Settings::get('Google Maps API key');
|
||||
|
||||
if (!empty($google)) {
|
||||
echo '
|
||||
<script src="http://maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||
}
|
||||
|
||||
if (!$cliente) {
|
||||
|
@ -37,6 +37,9 @@ if (!isset($_SESSION['dashboard']['idzone'])) {
|
||||
$rs = $dbo->fetchArray('SELECT id, descrizione FROM an_zone');
|
||||
|
||||
$_SESSION['dashboard']['idzone'] = ["'-1'"];
|
||||
|
||||
//"Nessuna zona" di default
|
||||
$_SESSION['dashboard']['idzone'][] = "'0'";
|
||||
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
$_SESSION['dashboard']['idzone'][] = "'".$rs[$i]['id']."'";
|
||||
@ -235,7 +238,7 @@ $checks = '';
|
||||
$count = 0;
|
||||
$total = 0;
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT id, descrizione FROM an_zone ORDER BY descrizione ASC');
|
||||
$rs = $dbo->fetchArray('(SELECT 0 AS ordine, \'0\' AS id, \'Nessuna zona\' AS descrizione) UNION (SELECT 1 AS ordine, id, descrizione FROM an_zone) ORDER BY ordine, descrizione ASC');
|
||||
$total = count($rs);
|
||||
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
|
@ -295,7 +295,7 @@ switch (post('op')) {
|
||||
$codice = $rs[0]['codice'];
|
||||
|
||||
//Fatturo le ore di lavoro raggruppate per costo orario
|
||||
$rst = $dbo->fetchArray('SELECT SUM( ROUND( TIMESTAMPDIFF( MINUTE, orario_inizio, orario_fine ) / 60, '.get_var('Cifre decimali per quantità').' ) ) AS tot_ore, SUM(prezzo_ore_consuntivo) AS tot_prezzo_ore_consuntivo, prezzo_ore_unitario FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento).' GROUP BY prezzo_ore_unitario');
|
||||
$rst = $dbo->fetchArray('SELECT SUM( ROUND( TIMESTAMPDIFF( MINUTE, orario_inizio, orario_fine ) / 60, '.get_var('Cifre decimali per quantità').' ) ) AS tot_ore, SUM(prezzo_ore_consuntivo) AS tot_prezzo_ore_consuntivo, SUM(sconto) AS tot_sconto, prezzo_ore_unitario FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento).' GROUP BY prezzo_ore_unitario');
|
||||
|
||||
//Aggiunta riga intervento sul documento
|
||||
if (sizeof($rst) == 0) {
|
||||
@ -310,7 +310,7 @@ switch (post('op')) {
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
$sconto = $rst[$i]['sconto'];
|
||||
$sconto = $rst[$i]['tot_sconto'];
|
||||
$subtot = $rst[$i]['tot_prezzo_ore_consuntivo'];
|
||||
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
|
@ -71,7 +71,7 @@ elseif (!empty($idcontratto) && !empty($idcontratto_riga)) {
|
||||
$idimpianto = implode(',', array_column($rs, 'idimpianto'));
|
||||
|
||||
// Seleziono "In programmazione" come stato
|
||||
$rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE codice='WIP'");
|
||||
$rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE idstatointervento='WIP'");
|
||||
$idstatointervento = $rs[0]['idstatointervento'];
|
||||
}
|
||||
|
||||
|
@ -123,9 +123,9 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<!--div class="pull-right">
|
||||
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> <?php echo tr('Salva modifiche'); ?></button>
|
||||
</div>
|
||||
</div-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -152,9 +152,10 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<div class="pull-right">
|
||||
<!--div class="pull-right">
|
||||
{( "name": "button", "type": "print", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>" )}
|
||||
</div>
|
||||
</div-->
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<br>
|
||||
|
||||
|
@ -132,16 +132,17 @@ if (!empty($options) && $options != 'custom') {
|
||||
<div class="row">
|
||||
<input type="hidden" value="'.$field['id'].'" name="id['.$key.']">
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name['.$key.']", "value": "'.$field['name'].'"';
|
||||
if (!$editable) {
|
||||
echo ', "readonly": "1"';
|
||||
}
|
||||
echo ', "help": "'.tr('Nome con cui il campo viene identificato e visualizzato nella tabella').'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Query prevista').'", "name": "query['.$key.']", "value": "'.$field['query'].'"';
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Query prevista').'", "name": "query['.$key.']", "value": "'.$field['query'].'"';
|
||||
if (!$editable) {
|
||||
echo ', "readonly": "1"';
|
||||
}
|
||||
@ -275,13 +276,13 @@ if (!empty($options) && $options != 'custom') {
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<input type="hidden" value="" name="id[-id-]">
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name[-id-]" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Query prevista').'", "name": "query[-id-]" ]}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Query prevista').'", "name": "query[-id-]" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -7,7 +7,7 @@ $google = Settings::get('Google Maps API key');
|
||||
/*
|
||||
if (!empty($google)) {
|
||||
echo '
|
||||
<script src="http://maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
|
||||
}
|
||||
*/
|
||||
|
||||
|
@ -9,14 +9,22 @@
|
||||
* La personalizzazione specifica dell'header deve comunque seguire lo standard della cartella custom: anche se il file header.php non esiste nella stampa originaria, se si vuole personalizzare l'header bisogna crearlo all'interno della cartella custom.
|
||||
*/
|
||||
|
||||
// Individuazione dell'immagine
|
||||
$logo = $infos['full_directory'].'/logo_azienda.jpg';
|
||||
if (!file_exists($logo)) {
|
||||
$logo = __DIR__.'/logo_azienda.jpg';
|
||||
}
|
||||
|
||||
// Header
|
||||
return '
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<img src="$directory$/logo_azienda.jpg" alt="Logo" border="0"/>
|
||||
<img src="'.$logo.'" alt="Logo" border="0"/>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<p><b>'.$f_ragionesociale.'</b></p>
|
||||
<p>'.$f_indirizzo.' '.$f_citta_full.'</p>
|
||||
<p>'.$f_indirizzo.'</p>
|
||||
<p>'.$f_citta_full.'</p>
|
||||
<p>'.(!empty($f_piva) ? tr('P.Iva').': '.$f_piva : '').'</p>
|
||||
<p>'.(!empty($f_codicefiscale) ? tr('C.F.').': '.$f_codicefiscale : '').'</p>
|
||||
<p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': '.$f_capsoc : '').'</p>
|
||||
|
BIN
templates/base/logo_azienda.jpg
Normal file
BIN
templates/base/logo_azienda.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
@ -292,3 +292,19 @@ echo '
|
||||
echo '
|
||||
<p class="text-center"><b>'.tr('Il tutto S.E. & O.').'</b></p>
|
||||
<p class="text-center">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>';
|
||||
|
||||
|
||||
//Firma
|
||||
echo '<div style=\'position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px\' > <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></div>';
|
||||
|
3
templates/contratti/footer.php
Normal file
3
templates/contratti/footer.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
echo '$default_footer$';
|
||||
?>
|
5
templates/contratti/settings.php
Normal file
5
templates/contratti/settings.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'footer-height' => 35,
|
||||
];
|
@ -344,3 +344,19 @@ echo '
|
||||
// Conclusione
|
||||
echo '
|
||||
<p class="text-center">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>';
|
||||
|
||||
|
||||
//Firma
|
||||
echo '<div style=\'position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px\' > <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></div>';
|
@ -1,17 +1,3 @@
|
||||
<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$';
|
||||
?>
|
5
templates/preventivi/settings.php
Normal file
5
templates/preventivi/settings.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'footer-height' => 35,
|
||||
];
|
Loading…
x
Reference in New Issue
Block a user