Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
b808d4578d
|
@ -121,7 +121,16 @@ function updateHook(hook) {
|
|||
// Rimozione eventuale della rotella di caricamento
|
||||
var counter = $("#hooks-counter").text();
|
||||
var number = $("#hooks > li").length;
|
||||
$("#hooks-notified").text(number);
|
||||
|
||||
if (number == 0) {
|
||||
$("#hooks-notified").html('<i class="fa fa-check" aria-hidden="true"></i>');
|
||||
$("#hooks-label").removeClass('label-warning');
|
||||
$("#hooks-label").addClass('label-success');
|
||||
}else{
|
||||
$("#hooks-notified").text(number);
|
||||
$("#hooks-label").removeClass('label-success');
|
||||
$("#hooks-label").addClass('label-warning');
|
||||
}
|
||||
|
||||
if (counter == $("#hooks-number").text()) {
|
||||
$("#hooks-loading").hide();
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_riga", "value": '.json_encode($result['descrizione']).', "required": 1 ]}
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_riga", "value": '.json_encode($result['descrizione']).', "required": 1, "extra": "rows=\"4\"" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
|
|
@ -312,7 +312,7 @@ if (Auth::check()) {
|
|||
<li class="dropdown notifications-menu" >
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="fa fa-bell-o"></i>
|
||||
<span class="label label-warning">
|
||||
<span id="hooks-label" class="label label-warning">
|
||||
<span id="hooks-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
<span id="hooks-notified"></span>
|
||||
<span id="hooks-counter" class="hide">0</span>
|
||||
|
|
|
@ -47,13 +47,25 @@ $_SESSION['superselect']['id_categoria'] = $record['id_categoria'];
|
|||
{[ "type": "textarea", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Abilita serial number'); ?>", "name": "abilita_serial", "value": "$abilita_serial$", "help": "<?php echo tr('Abilita serial number in fase di aggiunta articolo in fattura o ddt'); ?>", "placeholder": "<?php echo tr('Serial number'); ?>", "extra": "<?php echo ($record['serial'] > 0) ? 'readonly' : ''; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Attivo'); ?>", "name": "attivo", "help": "<?php echo tr('Seleziona per rendere attivo l\'articolo'); ?>", "value": "$attivo$", "placeholder": "<?php echo tr('Articolo attivo'); ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "<?php echo tr('Ubicazione'); ?>", "name": "ubicazione", "value": "$ubicazione$" ]}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Quantità'); ?>", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta", "min-value": "undefined" ]}
|
||||
<input type="hidden" id="old_qta" value="<?php echo $record['qta']; ?>">
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Modifica quantità'); ?>", "name": "qta_manuale", "value": 0, "help": "<?php echo tr('Seleziona per modificare manualmente la quantità'); ?>", "placeholder": "<?php echo tr('Quantità manuale'); ?>", "extra": "<?php echo ($record['servizio']) ? 'disabled' : ''; ?>" ]}
|
||||
<script type="text/javascript">
|
||||
|
||||
|
@ -85,28 +97,15 @@ $_SESSION['superselect']['id_categoria'] = $record['id_categoria'];
|
|||
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "$um$", "ajax-source": "misure", "icon-after": "add|<?php echo Modules::get('Unità di misura')['id']; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Abilita serial number'); ?>", "name": "abilita_serial", "value": "$abilita_serial$", "help": "<?php echo tr('Abilita serial number in fase di aggiunta articolo in fattura o ddt'); ?>", "placeholder": "<?php echo tr('Serial number'); ?>", "extra": "<?php echo ($record['serial'] > 0) ? 'readonly' : ''; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Attivo'); ?>", "name": "attivo", "help": "<?php echo tr('Seleziona per rendere attivo l\'articolo'); ?>", "value": "$attivo$", "placeholder": "<?php echo tr('Articolo attivo'); ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
{[ "type": "text", "label": "<?php echo tr('Ubicazione'); ?>", "name": "ubicazione", "value": "$ubicazione$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class='row' id="div_modifica_manuale" style="display:none;">
|
||||
<div class='col-md-3'>
|
||||
<div class='col-md-8'>
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione movimento'); ?>", "name": "descrizione_movimento" ]}
|
||||
</div>
|
||||
<div class='col-md-3'>
|
||||
<div class='col-md-4'>
|
||||
{[ "type": "date", "label": "<?php echo tr('Data movimento'); ?>", "name": "data_movimento", "value": "-now-" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -570,6 +570,7 @@ if ($vista == 'mese') {
|
|||
|
||||
var calendar = $('#calendar').fullCalendar({
|
||||
locale: globals.locale,
|
||||
height: "auto",
|
||||
<?php
|
||||
$domenica = setting('Visualizzare la domenica sul calendario');
|
||||
if (empty($domenica)) {
|
||||
|
|
|
@ -31,6 +31,9 @@ switch (post('op')) {
|
|||
$ddt = DDT::build($anagrafica, $tipo, $data);
|
||||
$id_record = $ddt->id;
|
||||
|
||||
$ddt->idcausalet = post('idcausalet');
|
||||
$ddt->save();
|
||||
|
||||
flash()->info(tr('Aggiunto ddt in _TYPE_ numero _NUM_!', [
|
||||
'_TYPE_' => $dir,
|
||||
'_NUM_' => $ddt->numero,
|
||||
|
|
|
@ -179,7 +179,7 @@ if (empty($record['is_fiscale'])) {
|
|||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-6">
|
||||
<?php
|
||||
|
||||
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
|
||||
|
@ -191,44 +191,62 @@ if (empty($record['is_fiscale'])) {
|
|||
} else {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
|
||||
<?php if ($dir == 'entrata') { ?>
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Agente di riferimento'); ?>", "name": "idagente", "ajax-source": "agenti", "value": "$idagente_fattura$" ]}
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<?php
|
||||
// Conteggio numero articoli fatture
|
||||
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record));
|
||||
if ($dir == 'uscita') {
|
||||
?>
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-6">
|
||||
|
||||
<?php
|
||||
echo Plugins::link('Sedi', $record['idsede_partenza'], null, null, 'class="pull-right"');
|
||||
?>
|
||||
|
||||
{[ "type": "select", "label": "<?php echo tr('Partenza merce'); ?>", "name": "idsede_partenza", "ajax-source": "sedi", "placeholder": "Sede legale", "value": "$idsede_partenza$", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|id_plugin=<?php echo Plugins::get('Sedi')['id']; ?>&id_parent=<?php echo $record['idanagrafica']; ?>||<?php echo (intval($block_edit)) ? 'disabled' : ''; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-6">
|
||||
|
||||
<?php
|
||||
echo Plugins::link('Sedi', $record['idsede_destinazione'], null, null, 'class="pull-right"');
|
||||
?>
|
||||
|
||||
{[ "type": "select", "label": "<?php echo tr('Destinazione merce'); ?>", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "readonly": "<?php echo (sizeof($articolo)) ? 1 : 0; ?>" ]}
|
||||
</div>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-6">
|
||||
|
||||
<?php
|
||||
echo Plugins::link('Sedi', $record['idsede_partenza'], null, null, 'class="pull-right"');
|
||||
?>
|
||||
|
||||
{[ "type": "select", "label": "<?php echo tr('Partenza merce'); ?>", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "placeholder": "Sede legale", "value": "$idsede_partenza$", "readonly": "<?php echo (sizeof($articolo)) ? 1 : 0; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-6">
|
||||
|
||||
<?php
|
||||
echo Plugins::link('Sedi', $record['idsede_destinazione'], null, null, 'class="pull-right"');
|
||||
?>
|
||||
|
||||
{[ "type": "select", "label": "<?php echo tr('Destinazione merce'); ?>", "name": "idsede_destinazione", "ajax-source": "sedi", "value": "$idsede_destinazione$", "readonly": "", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|id_plugin=<?php echo Plugins::get('Sedi')['id']; ?>&id_parent=<?php echo $record['idanagrafica']; ?>||<?php echo (intval($block_edit)) ? 'disabled' : ''; ?>" ]}
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if ($dir == 'entrata') {
|
||||
?>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Agente di riferimento'); ?>", "name": "idagente", "ajax-source": "agenti", "value": "$idagente_fattura$" ]}
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
|
|
|
@ -6,11 +6,19 @@ switch (filter('op')) {
|
|||
case 'update':
|
||||
$is_all_valid = true;
|
||||
|
||||
|
||||
|
||||
foreach (post('setting') as $id => $value) {
|
||||
|
||||
$result = Settings::get($id);
|
||||
|
||||
if (preg_match("/multiple\[(.+?)\]/", $result['tipo'], $m)) {
|
||||
$value = implode(",", $value);
|
||||
}
|
||||
|
||||
$is_valid = Settings::setValue($id, $value);
|
||||
|
||||
if (!$is_valid) {
|
||||
$result = Settings::get($id);
|
||||
if (!$is_valid) {
|
||||
|
||||
// integer
|
||||
if ($result['tipo'] == 'integer') {
|
||||
|
@ -26,6 +34,8 @@ switch (filter('op')) {
|
|||
'_NAME_' => '"'.$result['nome'].'"',
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
$is_all_valid &= $is_valid;
|
||||
|
|
|
@ -165,16 +165,16 @@ class Intervento extends Document
|
|||
*/
|
||||
public static function getNextCodice($data)
|
||||
{
|
||||
$maschera = setting('Formato codice intervento');
|
||||
$maschera = setting('Formato codice attività');
|
||||
|
||||
//$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice');
|
||||
|
||||
if (setting('Continua la numerazione')){
|
||||
if (setting('Ingnora il periodo temporale per il calcolo del codice attività')){
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', []);
|
||||
}else{
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [
|
||||
'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))),
|
||||
]);
|
||||
}else{
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', []);
|
||||
}
|
||||
|
||||
$numero = Generator::generate($maschera, $ultimo);
|
||||
|
|
|
@ -68,7 +68,7 @@ switch (post('op')) {
|
|||
case 'copy':
|
||||
// Copia del preventivo
|
||||
$new = $preventivo->replicate();
|
||||
$new->numero = Preventivo::getNextNumero();
|
||||
$new->numero = Preventivo::getNextNumero($new->data_bozza);
|
||||
$new->idstato = 1;
|
||||
$new->save();
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ class Preventivo extends Document
|
|||
$model->stato()->associate($stato_documento);
|
||||
$model->tipoSessione()->associate($tipo_sessione);
|
||||
|
||||
$model->numero = static::getNextNumero();
|
||||
$model->numero = static::getNextNumero($data_bozza);
|
||||
|
||||
// Salvataggio delle informazioni
|
||||
$model->nome = $nome;
|
||||
|
@ -233,11 +233,20 @@ class Preventivo extends Document
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getNextNumero()
|
||||
public static function getNextNumero($data)
|
||||
{
|
||||
$maschera = setting('Formato codice preventivi');
|
||||
|
||||
if ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) {
|
||||
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [
|
||||
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
|
||||
]);
|
||||
|
||||
}else{
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero');
|
||||
}
|
||||
|
||||
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero');
|
||||
$numero = Generator::generate($maschera, $ultimo);
|
||||
|
||||
return $numero;
|
||||
|
|
|
@ -19,7 +19,7 @@ class InvoiceHook extends Manager
|
|||
}
|
||||
|
||||
$remaining = Fattura::where('hook_send', 1)
|
||||
->where('codice_stato_fe', 'ERR')
|
||||
->where('codice_stato_fe', 'QUEUE')
|
||||
->count();
|
||||
|
||||
return !empty($remaining);
|
||||
|
@ -28,7 +28,7 @@ class InvoiceHook extends Manager
|
|||
public function execute()
|
||||
{
|
||||
$fattura = Fattura::where('hook_send', 1)
|
||||
->where('codice_stato_fe', 'ERR')
|
||||
->where('codice_stato_fe', 'QUEUE')
|
||||
->first();
|
||||
|
||||
$result = Interaction::sendInvoice($fattura->id);
|
||||
|
|
|
@ -442,7 +442,7 @@ class Prints
|
|||
|
||||
// Instanziamento dell'oggetto mPDF
|
||||
$mpdf = new \Mpdf\Mpdf([
|
||||
'mode' => 'utf-8',
|
||||
'mode' => 'c',
|
||||
'format' => $settings['format'],
|
||||
'orientation' => strtoupper($settings['orientation']) == 'L' ? 'L' : 'P',
|
||||
'font-size' => $settings['font-size'],
|
||||
|
@ -450,6 +450,7 @@ class Prints
|
|||
'margin_right' => $settings['margins']['right'],
|
||||
'setAutoBottomMargin' => 'stretch',
|
||||
'setAutoTopMargin' => 'stretch',
|
||||
'default_font' => 'helvetica',
|
||||
|
||||
// Abilitazione per lo standard PDF/A
|
||||
//'PDFA' => true,
|
||||
|
|
|
@ -48,7 +48,7 @@ class Settings
|
|||
}
|
||||
|
||||
/**
|
||||
* Restituisce le informazioni relative a una singolo impostazione specificata.
|
||||
* Restituisce le informazioni relative ad una singola impostazione specificata.
|
||||
*
|
||||
* @param string|int $setting
|
||||
*
|
||||
|
@ -87,7 +87,9 @@ class Settings
|
|||
*/
|
||||
public static function setValue($setting, $value)
|
||||
{
|
||||
|
||||
$setting = self::get($setting);
|
||||
|
||||
|
||||
// Trasformazioni
|
||||
// Boolean (checkbox)
|
||||
|
@ -105,6 +107,15 @@ class Settings
|
|||
// verifico che il valore scelto sia nella lista enumerata nel db
|
||||
elseif (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) {
|
||||
$validator = v::in(explode(',', $m[1]));
|
||||
|
||||
}
|
||||
|
||||
// multiple
|
||||
// verifico che il valore scelto sia nella lista enumerata nel db
|
||||
elseif (preg_match("/multiple\[(.+?)\]/", $setting->tipo, $m[0][0])) {
|
||||
|
||||
//$validator = v::in(explode(',', $m[0][0][1]));
|
||||
|
||||
}
|
||||
|
||||
// Boolean (checkbox)
|
||||
|
@ -150,6 +161,22 @@ class Settings
|
|||
{[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
|
||||
}
|
||||
|
||||
// Lista multipla
|
||||
if (preg_match("/multiple\[(.+?)\]/", $setting->tipo, $m)) {
|
||||
$values = explode(',', $m[1]);
|
||||
|
||||
$list = [];
|
||||
foreach ($values as $value) {
|
||||
$list[] = [
|
||||
'id' => $value,
|
||||
'text' => $value,
|
||||
];
|
||||
}
|
||||
|
||||
$result = '
|
||||
{[ "type": "select", "multiple": 1, "label": "'.$setting->nome.'", "name": "setting['.$setting->id.'][]", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
|
||||
}
|
||||
|
||||
// Lista da query
|
||||
elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) {
|
||||
$result = '
|
||||
|
|
|
@ -107,11 +107,12 @@ echo '
|
|||
</tr>';
|
||||
|
||||
// Descrizione
|
||||
// Rimosso nl2br, non necessario con ckeditor
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="4" style="height:20mm;">
|
||||
<b>'.tr('Descrizione').':</b>
|
||||
<p>'.nl2br($documento['descrizione']).'</p>
|
||||
<p>'.($documento['descrizione']).'</p>
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
|
|
|
@ -39,18 +39,18 @@ if (!empty($search['descrizione'])) {
|
|||
}
|
||||
|
||||
if (!empty($search['categoria'])) {
|
||||
$where[] = 'id_categoria IN (SELECT id FROM mg_categorie WHERE descrizione LIKE '.prepare('%'.$search['categoria'].'%').')';
|
||||
$where[] = 'id_categoria IN (SELECT id FROM mg_categorie WHERE nome LIKE '.prepare('%'.$search['categoria'].'%').' AND parent IS NULL)';
|
||||
}
|
||||
|
||||
if (!empty($search['subcategoria'])) {
|
||||
$where[] = 'id_sottocategoria IN (SELECT id FROM mg_categorie WHERE descrizione LIKE '.prepare('%'.$search['subcategoria'].'%').')';
|
||||
$where[] = 'id_sottocategoria IN (SELECT id FROM mg_categorie WHERE nome LIKE '.prepare('%'.$search['subcategoria'].'%').' AND parent NOT NULL)';
|
||||
}
|
||||
|
||||
$period_end = $_SESSION['period_end'];
|
||||
|
||||
$query = 'SELECT *,
|
||||
(SELECT SUM(qta) FROM mg_movimenti WHERE mg_movimenti.idarticolo=mg_articoli.id AND (mg_movimenti.idintervento IS NULL) AND data <= '.prepare($period_end).') AS qta
|
||||
FROM mg_articoli WHERE 1=1
|
||||
FROM mg_articoli LEFT OUTER JOIN (SELECT id, nome FROM mg_categorie) AS categoria ON mg_articoli.id_categoria = categoria.id WHERE 1=1
|
||||
ORDER BY codice ASC';
|
||||
|
||||
$query = str_replace('1=1', '1=1'.(!empty($where) ? ' AND '.implode(' AND ', $where) : ''), $query);
|
||||
|
@ -65,6 +65,7 @@ echo '
|
|||
<thead>
|
||||
<tr>
|
||||
<th class="text-center" width="150">'.tr('Codice', [], ['upper' => true]).'</th>
|
||||
<th class="text-center">'.tr('Categoria', [], ['upper' => true]).'</th>
|
||||
<th class="text-center">'.tr('Descrizione', [], ['upper' => true]).'</th>
|
||||
<th class="text-center" width="70">'.tr('Prezzo di vendita', [], ['upper' => true]).'</th>
|
||||
<th class="text-center" width="70">'.tr('Q.tà', [], ['upper' => true]).'</th>
|
||||
|
@ -82,6 +83,7 @@ foreach ($rs as $r) {
|
|||
echo '
|
||||
<tr>
|
||||
<td>'.$r['codice'].'</td>
|
||||
<td>'.$r['nome'].'</td>
|
||||
<td>'.$r['descrizione'].'</td>
|
||||
<td class="text-right">'.moneyFormat($r['prezzo_vendita']).'</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($r['qta']).' '.$r['um'].'</td>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
//'orientation' => 'L',
|
||||
'orientation' => 'L',
|
||||
'font-size' => '11pt',
|
||||
];
|
||||
|
|
|
@ -19,13 +19,25 @@ $pricing = isset($pricing) ? $pricing : true;
|
|||
// Informazioni intervento
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<td colspan="2">';
|
||||
|
||||
if (dateFormat($intervento->inizio)){
|
||||
echo '
|
||||
<p>'.tr('Intervento _NUM_ del _DATE_', [
|
||||
'_NUM_' => $intervento->codice,
|
||||
'_DATE_' => dateFormat($intervento->inizio),
|
||||
]).'</p>
|
||||
]).'</p>';
|
||||
}else{
|
||||
echo '
|
||||
<p>'.tr('Promemoria _NUM_', [
|
||||
'_NUM_' => $intervento->codice,
|
||||
]).'</p>';
|
||||
}
|
||||
echo '
|
||||
<p><small><b>'.tr('Cliente').':</b> '.$intervento->anagrafica->ragione_sociale.'</small></p>
|
||||
<p><small><b>'.tr('Stato').':</b> '.$intervento->stato->descrizione.'</small></p>
|
||||
<p><small><b>'.tr('Data richiesta').':</b> '.dateFormat($intervento->data_richiesta).'</small></p>
|
||||
<p><small><b>'.tr('Richiesta').':</b> '.$intervento->richiesta.'</small></p>
|
||||
</td>
|
||||
<td class="text-center">'.($pricing ? moneyFormat($imponibile, 2) : '-').'</td>
|
||||
<td class="text-center">'.($pricing && empty($options['dir']) ? moneyFormat($sconto, 2) : '-').'</td>
|
||||
|
@ -34,7 +46,7 @@ echo '
|
|||
|
||||
// Sessioni
|
||||
$sessioni = $intervento->sessioni;
|
||||
if (!empty($sessioni)) {
|
||||
if (count($sessioni)>0) {
|
||||
echo '
|
||||
<tr>
|
||||
<td style="border-top: 0; border-bottom: 0;"></td>
|
||||
|
|
|
@ -25,7 +25,7 @@ UPDATE `zz_hooks` SET `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name`
|
|||
ALTER TABLE `zz_hooks` ADD FOREIGN KEY (`id_module`) REFERENCES `zz_modules`(`id`) ON DELETE CASCADE;
|
||||
|
||||
INSERT INTO `zz_hooks` (`id`, `name`, `class`, `frequency`, `id_module`) VALUES
|
||||
(NULL, 'Ricevute', 'Modules\\Aggiornamenti\\UpdateHook', '7 day', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Aggiornamenti'));
|
||||
(NULL, 'Aggiornamenti', 'Modules\\Aggiornamenti\\UpdateHook', '7 day', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Aggiornamenti'));
|
||||
|
||||
--
|
||||
-- Aggiunta nuovi campi per tracciamento sedi
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
// File e cartelle deprecate
|
||||
$files = [
|
||||
'lib\init.js',
|
||||
'lib\functions.js',
|
||||
'include\src\HookManager.php',
|
||||
'plugins\xml\AT_v1.0.xml',
|
||||
'plugins\xml\DT_v1.0.xml',
|
||||
'plugins\xml\EC_v1.0.xml',
|
||||
'plugins\xml\MC_v1.0.xml',
|
||||
'plugins\xml\MT_v1.0.xml',
|
||||
'plugins\xml\NE_v1.0.xml',
|
||||
'plugins\xml\NS_v1.0.xml',
|
||||
'plugins\xml\RC_v1.0.xml',
|
||||
'plugins\xml\SE_v1.0.xml',
|
||||
'plugins\importFE\rows.php',
|
||||
'plugins\exportFE\view.php',
|
||||
'plugins\exportFE\src\stylesheet-1.2.1.xsl',
|
||||
'plugins\exportFE\src\Connection.php',
|
||||
'templates\riepilogo_interventi\pdfgen.riepilogo_interventi.php',
|
||||
'templates\riepilogo_interventi\intervento_body.html',
|
||||
'templates\riepilogo_interventi\intervento.html',
|
||||
'templates\scadenzario\pdfgen.scadenzario.php',
|
||||
'templates\scadenzario\scadenzario_body.html',
|
||||
'templates\scadenzario\scadenzario.html',
|
||||
'templates\registro_iva\pdfgen.registro_iva.php',
|
||||
'templates\registro_iva\registroiva_body.html',
|
||||
'templates\registro_iva\header.php',
|
||||
'templates\registro_iva\body.php',
|
||||
'templates\preventivi_cons\body.php',
|
||||
'templates\contratti_cons\body.php',
|
||||
'templates\magazzino_inventario\pdfgen.magazzino_inventario.php',
|
||||
'templates\magazzino_inventario\magazzino_inventario_body.html',
|
||||
'templates\magazzino_inventario\magazzino_inventario.html',
|
||||
'modules\contratti\modutil.php',
|
||||
'modules\contratti\plugins\contratti.ordiniservizio.interventi.php',
|
||||
'modules\contratti\plugins\contratti.ordiniservizio.php',
|
||||
'modules\interventi\src\TipoSessione.php',
|
||||
'modules\anagrafiche\plugins\statistiche.php',
|
||||
'modules\partitario\dettagli_movimento.php',
|
||||
'modules\interventi\api\*',
|
||||
'modules\anagrafiche\api\*',
|
||||
'modules\articoli\api\*',
|
||||
'modules\aggiornamenti\api\*',
|
||||
'modules\stati_contratto\api\*',
|
||||
'modules\stati_intervento\api\*',
|
||||
'modules\stati_preventivo\api\*',
|
||||
'modules\tipi_intervento\api\*',
|
||||
'modules\utenti\api\*',
|
||||
'templates\interventi_ordiniservizio\*',
|
||||
'modules\automezzi\*',
|
||||
];
|
||||
|
||||
foreach ($files as $key => $value) {
|
||||
$files[$key] = realpath(DOCROOT.'/'.$value);
|
||||
}
|
||||
|
||||
delete($files);
|
|
@ -146,10 +146,25 @@ ALTER TABLE `co_scadenziario` ADD `note` VARCHAR(255) DEFAULT NULL AFTER `data_p
|
|||
-- Aggiunta note in vista scadenzario --
|
||||
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Scadenzario' ), 'Note', 'co_scadenziario.note', '5', '1', '0', '0', '', '', '0', '0', '0');
|
||||
|
||||
|
||||
|
||||
UPDATE `zz_settings` SET `nome` = 'Ora inizio sul calendario' WHERE `zz_settings`.`nome` = 'Inizio orario lavorativo';
|
||||
UPDATE `zz_settings` SET `nome` = 'Ora fine sul calendario' WHERE `zz_settings`.`nome` = 'Fine orario lavorativo';
|
||||
UPDATE `zz_settings` SET `nome` = 'Formato codice attività' WHERE `zz_settings`.`nome` = 'Formato codice intervento';
|
||||
|
||||
-- Flag per decisere se continuare attraverso gli anni la numerazione delle attività sulla base dello stesso contatore
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Continua la numerazione', '0', 'boolean', '1', 'Interventi', 'Continua attraverso gli anni la numerazione delle attività sulla base dello stesso contatore.');
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Ingnora il periodo temporale per il calcolo del codice attività', '0', 'boolean', '1', 'Interventi', 'Continua attraverso gli anni la numerazione delle attività sulla base dello stesso contatore.');
|
||||
|
||||
|
||||
-- Inizio orario lavorativo
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Inizio orario lavorativo', '08:00:00', 'time', '1', 'Interventi', 'Inizio dell''orario lavorativo standard.');
|
||||
|
||||
-- Fine orario lavorativo
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Fine orario lavorativo', '18:00:00', 'time', '1', 'Interventi', 'Fine dell''orario lavorativo standard.');
|
||||
|
||||
-- Giorni lavorativi
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`,`help`) VALUES (NULL, 'Giorni lavorativi', 'Lunedì,Martedì,Mercoledì,Giovedì,Venerdì', 'multiple[Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato,Domenica]', '1', 'Interventi', '');
|
||||
|
||||
ALTER TABLE `zz_settings` CHANGE `help` `help` TEXT;
|
||||
|
||||
UPDATE `zz_settings` SET `help` = '<p>Impostare la maschera senza indicare l''anno per evitare il reset del contatore.</p><ul><li><b>####</b>: Numero progressivo del documento, con zeri non significativi per raggiungere il numero desiderato di caratteri</li><li><b>YYYY</b>: Anno corrente a 4 cifre</li><li><b>yy</b>: Anno corrente a 2 cifre</li></ul>' WHERE `zz_settings`.`nome` = 'Formato codice preventivi';
|
||||
|
||||
UPDATE `zz_hooks` SET `name` = 'Aggiornamenti' WHERE `class` = 'Modules\Aggiornamenti\UpdateHook';
|
|
@ -200,17 +200,17 @@ $dbo->query('ALTER TABLE `in_interventi` DROP `sconto_globale`, DROP `tipo_scont
|
|||
|
||||
// File e cartelle deprecate
|
||||
$files = [
|
||||
'plugins/xml/AT_v1.0.xml',
|
||||
'plugins/xml/DT_v1.0.xml',
|
||||
'plugins/xml/EC_v1.0.xml',
|
||||
'plugins/xml/MC_v1.0.xml',
|
||||
'plugins/xml/MT_v1.0.xml',
|
||||
'plugins/xml/NE_v1.0.xml',
|
||||
'plugins/xml/NS_v1.0.xml',
|
||||
'plugins/xml/RC_v1.0.xml',
|
||||
'plugins/xml/SE_v1.0.xml',
|
||||
'plugins/exportFE/view.php',
|
||||
'plugins/exportFE/src/stylesheet-1.2.1.xsl',
|
||||
'plugins\xml\AT_v1.0.xml',
|
||||
'plugins\xml\DT_v1.0.xml',
|
||||
'plugins\xml\EC_v1.0.xml',
|
||||
'plugins\xml\MC_v1.0.xml',
|
||||
'plugins\xml\MT_v1.0.xml',
|
||||
'plugins\xml\NE_v1.0.xml',
|
||||
'plugins\xml\NS_v1.0.xml',
|
||||
'plugins\xml\RC_v1.0.xml',
|
||||
'plugins\xml\SE_v1.0.xml',
|
||||
'plugins\exportFE\view.php',
|
||||
'plugins\exportFE\src\stylesheet-1.2.1.xsl',
|
||||
];
|
||||
|
||||
foreach ($files as $key => $value) {
|
||||
|
|
|
@ -4,7 +4,6 @@ namespace Update\v2_4_10;
|
|||
|
||||
use Common\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Modules\Fatture\Fattura;
|
||||
use Modules\TipiIntervento\Tipo as TipoSessione;
|
||||
use Settings;
|
||||
use Traits\RecordTrait;
|
||||
|
|
Loading…
Reference in New Issue