mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-11 09:00:42 +01:00
Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
5dd7692c5d
35
CHANGELOG.md
35
CHANGELOG.md
@ -4,6 +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.
|
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.4.27 (2021-10-25)](#2427-2021-10-26)
|
||||||
- [2.4.26 (2021-09-24)](#2426-2021-09-24)
|
- [2.4.26 (2021-09-24)](#2426-2021-09-24)
|
||||||
- [2.4.25 (2021-08-25)](#2425-2021-08-25)
|
- [2.4.25 (2021-08-25)](#2425-2021-08-25)
|
||||||
- [2.4.24 (2021-07-28)](#2424-2021-07-28)
|
- [2.4.24 (2021-07-28)](#2424-2021-07-28)
|
||||||
@ -37,6 +38,40 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
|||||||
- [2.2 (2016-11-10)](#22-2016-11-10)
|
- [2.2 (2016-11-10)](#22-2016-11-10)
|
||||||
- [2.1 (2015-04-02)](#21-2015-04-02)
|
- [2.1 (2015-04-02)](#21-2015-04-02)
|
||||||
|
|
||||||
|
## 2.4.27 (2021-10-26)
|
||||||
|
|
||||||
|
### Aggiunto (Added)
|
||||||
|
- Aggiunta selezione automatica **banca** in fase di importazione fattura elettronica
|
||||||
|
- Aggiunta selezione automatica del **conto di acquisto** articolo in fase di importazione fattura elettronica
|
||||||
|
- Aggiunto select **conto acquisto/vendita** in fase di creazione articolo
|
||||||
|
- Aggiunto select per aggiornare i prezzi di acquisto dell'articolo in fase di importazione fattura elettronica
|
||||||
|
- Aggiunto filtro per mostrare gli impianti ai tecnici assegnati
|
||||||
|
- Aggiunto ordinamento righe in interventi
|
||||||
|
- Aggiunta azione di gruppo per **rincaro prezzi di vendita** articoli con possibilità di scelta del prezzo di partenza
|
||||||
|
- Aggiunta azione di gruppo per cambiare la **categoria** degli articoli
|
||||||
|
- Aggiunta azione di gruppo per aggiornare l'aliquota iva degli articoli
|
||||||
|
- Aggiunto **Mese prossimo** nel calendario
|
||||||
|
- Aggiunta variabile ragione sociale per l'invio mail da ddt
|
||||||
|
- Aggiunta immagine in import CSV articoli
|
||||||
|
- Aggiunta selezione prezzo di acquisto per stampa inventario
|
||||||
|
- Aggiunto costo medio in fase di aggiunta riga articolo
|
||||||
|
- Aggiunta azione di gruppo per aggiornare il prezzo di acquisto per gli articoli a cui non è impostato, in base all'ultima fattura di acquisto
|
||||||
|
### Modificato (Changed)
|
||||||
|
- Ampliata **ricerca articoli** in importazione fatturazione elettronica per collegamento automatico
|
||||||
|
- Ridotto il valid time per la cache
|
||||||
|
- Ordinamento **gestione documentale** per data decrescente
|
||||||
|
- Spostamento stampe situazione contabile e bilancio in **Stampe contabili**
|
||||||
|
### Fixed
|
||||||
|
- Fix sconti in **fatturazione interventi**
|
||||||
|
- Fix statistiche **fatture**
|
||||||
|
- Fix aggiunta intervento da dashboard vista mese
|
||||||
|
- Fix selezione iva in aggiunta riga articolo
|
||||||
|
- Fix cambio stato intervento in fase di eliminazione riga da fattura
|
||||||
|
- Fix selezione iva in **crea fattura** da contratto
|
||||||
|
- Fix filigrana stampe
|
||||||
|
- Fix arrotondamento automatico
|
||||||
|
- Fix azzeramento revisione in duplicazione **preventivo**
|
||||||
|
|
||||||
## 2.4.26 (2021-09-24)
|
## 2.4.26 (2021-09-24)
|
||||||
|
|
||||||
### Aggiunto (Added)
|
### Aggiunto (Added)
|
||||||
|
@ -1096,3 +1096,12 @@ div.tip {
|
|||||||
-ms-user-select: none;
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-extra-condensed > thead > tr > th,
|
||||||
|
.table-extra-condensed > tbody > tr > th,
|
||||||
|
.table-extra-condensed > tfoot > tr > th,
|
||||||
|
.table-extra-condensed > thead > tr > td,
|
||||||
|
.table-extra-condensed > tbody > tr > td,
|
||||||
|
.table-extra-condensed > tfoot > tr > td {
|
||||||
|
padding: 2px;
|
||||||
|
}
|
@ -277,7 +277,7 @@ function srcFonts() {
|
|||||||
|
|
||||||
function ckeditor() {
|
function ckeditor() {
|
||||||
return gulp.src([
|
return gulp.src([
|
||||||
config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png}',
|
config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png,gif,html}',
|
||||||
config.nodeDirectory + '/ckeditor4/*.{js,css}',
|
config.nodeDirectory + '/ckeditor4/*.{js,css}',
|
||||||
])
|
])
|
||||||
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor'));
|
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor'));
|
||||||
|
@ -53,8 +53,7 @@ if (empty($result['idarticolo'])) {
|
|||||||
$qta_minima = $articolo['qta_minima'];
|
$qta_minima = $articolo['qta_minima'];
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<p><strong>'.tr('Articolo').':</strong> '.$articolo['codice'].' - '.$articolo['descrizione'].'.</p>
|
{[ "type": "select", "disabled":"1", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "select-options": '.json_encode($options['select-options']['articoli']).', "icon-after": "add|'.Modules::get('Articoli')['id'].'" ]}
|
||||||
<input type="hidden" name="idarticolo" id="idarticolo" value="'.$articolo['id'].'">
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function (){
|
$(document).ready(function (){
|
||||||
@ -267,7 +266,7 @@ function verificaPrezzoArticolo() {
|
|||||||
|
|
||||||
let div = prezzo_unitario_input.closest("div").parent().find("div[id*=errors]");
|
let div = prezzo_unitario_input.closest("div").parent().find("div[id*=errors]");
|
||||||
|
|
||||||
if (prezzo_previsto === prezzo_unitario) {
|
if (prezzo_previsto === prezzo_unitario || prezzo_previsto === 0 ) {
|
||||||
div.css("padding-top", "0");
|
div.css("padding-top", "0");
|
||||||
div.html("");
|
div.html("");
|
||||||
|
|
||||||
@ -275,7 +274,7 @@ function verificaPrezzoArticolo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div.css("padding-top", "5px");
|
div.css("padding-top", "5px");
|
||||||
div.html(`<small class="label label-warning" >'.tr('Prezzo suggerito').': ` + prezzo_previsto.toLocale() + globals.currency + `<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaPrezzoArticolo()"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
div.html(`<small class="label label-info" >'.tr('Prezzo suggerito').': ` + prezzo_previsto.toLocale() + " " + globals.currency + `<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaPrezzoArticolo()"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -297,7 +296,7 @@ function verificaScontoArticolo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div.css("padding-top", "5px");
|
div.css("padding-top", "5px");
|
||||||
div.html(`<small class="label label-warning" >'.tr('Sconto suggerito').': ` + sconto_previsto.toLocale() + `%<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaScontoArticolo()"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
div.html(`<small class="label label-info" >'.tr('Sconto suggerito').': ` + sconto_previsto.toLocale() + `%<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaScontoArticolo()"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -353,7 +352,5 @@ function aggiornaQtaMinima() {
|
|||||||
div.removeClass("text-danger").addClass("text-success");
|
div.removeClass("text-danger").addClass("text-success");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (direzione === "entrata") {
|
|
||||||
aggiorna_guadagno();
|
|
||||||
}
|
|
||||||
</script>';
|
</script>';
|
||||||
|
@ -268,7 +268,7 @@ function verificaPrezzoArticolo(tr) {
|
|||||||
|
|
||||||
let div = prezzo_unitario_input.closest("div").parent().find("div[id*=errors]");
|
let div = prezzo_unitario_input.closest("div").parent().find("div[id*=errors]");
|
||||||
|
|
||||||
if (prezzo_previsto === prezzo_unitario) {
|
if (prezzo_previsto === prezzo_unitario || prezzo_previsto === 0) {
|
||||||
div.css("padding-top", "0");
|
div.css("padding-top", "0");
|
||||||
div.html("");
|
div.html("");
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ function verificaPrezzoArticolo(tr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div.css("padding-top", "5px");
|
div.css("padding-top", "5px");
|
||||||
div.html(`<small class="label label-warning" >'.tr('Prezzo suggerito').': ` + prezzo_previsto.toLocale() + globals.currency + `<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaPrezzoArticolo(this)"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
div.html(`<small class="label label-info" >'.tr('Prezzo suggerito').': ` + prezzo_previsto.toLocale() + " " + globals.currency + `<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaPrezzoArticolo(this)"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -314,7 +314,7 @@ function verificaScontoArticolo(tr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div.css("padding-top", "5px");
|
div.css("padding-top", "5px");
|
||||||
div.html(`<small class="label label-warning" >'.tr('Sconto suggerito').': ` + sconto_previsto.toLocale() + `%<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaScontoArticolo(this)"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
div.html(`<small class="label label-info" >'.tr('Sconto suggerito').': ` + sconto_previsto.toLocale() + `%<button type="button" class="btn btn-xs btn-info pull-right" onclick="aggiornaScontoArticolo(this)"><i class="fa fa-refresh"></i> '.tr('Aggiorna').'</button></small>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,10 +71,50 @@ if ($options['dir'] == 'entrata') {
|
|||||||
var margine = (((prezzo - sconto) * 100) / costo_unitario) - 100;
|
var margine = (((prezzo - sconto) * 100) / costo_unitario) - 100;
|
||||||
var parent = $("#costo_unitario").closest("div").parent();
|
var parent = $("#costo_unitario").closest("div").parent();
|
||||||
var div = parent.find("div[id*=\"errors\"]");
|
var div = parent.find("div[id*=\"errors\"]");
|
||||||
|
var mediaponderata = 0;
|
||||||
|
|
||||||
margine = isNaN(margine) || !isFinite(margine) ? 0: margine; // Fix per magine NaN
|
margine = isNaN(margine) || !isFinite(margine) ? 0: margine; // Fix per magine NaN
|
||||||
|
|
||||||
div.html("<small> '.tr('Guadagno').': " + guadagno.toLocale() + " " + globals.currency + " '.tr('Margine').': " + margine.toLocale() + " %</small>");
|
if ($("#idarticolo").val()) {
|
||||||
|
mediaponderata = parseFloat($("#idarticolo").selectData().media_ponderata);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.html("<table class=\"table table-extra-condensed\" style=\"margin-top:7px;\" >\
|
||||||
|
<tr>\
|
||||||
|
<td>\
|
||||||
|
<small> '.tr('Guadagno').':</small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"right\">\
|
||||||
|
<small>" + guadagno.toLocale() + "</small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"center\">\
|
||||||
|
<small>" + globals.currency + "</small>\
|
||||||
|
</td>\
|
||||||
|
</tr>\
|
||||||
|
<tr>\
|
||||||
|
<td>\
|
||||||
|
<small> '.tr('Margine').':</small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"right\">\
|
||||||
|
<small>" + margine.toLocale() + "<small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"center\">\
|
||||||
|
<small> %<small>\
|
||||||
|
</td>\
|
||||||
|
</tr>\
|
||||||
|
<tr>\
|
||||||
|
<td>\
|
||||||
|
<small> '.tr('Costo medio').':</small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"right\">\
|
||||||
|
<small>" + (mediaponderata!=0 ? mediaponderata.toLocale() : "- ") + "</small>\
|
||||||
|
</td>\
|
||||||
|
<td align=\"center\">\
|
||||||
|
<small>" + globals.currency + "</small>\
|
||||||
|
</td>\
|
||||||
|
</tr>\
|
||||||
|
</table>");
|
||||||
|
|
||||||
if (guadagno < 0) {
|
if (guadagno < 0) {
|
||||||
parent.addClass("has-error");
|
parent.addClass("has-error");
|
||||||
div.addClass("label-danger").removeClass("label-success");
|
div.addClass("label-danger").removeClass("label-success");
|
||||||
@ -123,7 +163,7 @@ if (in_array($module['name'], ['Ordini cliente', 'Ordini fornitore', 'Preventivi
|
|||||||
$confermato = $result['confermato'];
|
$confermato = $result['confermato'];
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
<div class="box box-warning collapsable collapsed-box">
|
<div class="box box-info collapsable collapsed-box">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Informazioni aggiuntive').'</h3>
|
<h3 class="box-title">'.tr('Informazioni aggiuntive').'</h3>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
|
@ -213,21 +213,22 @@ if (Auth::check()) {
|
|||||||
["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","SpellChecker", "Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ],
|
["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","SpellChecker", "Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ],
|
||||||
],
|
],
|
||||||
ckeditorToolbar_Full: [
|
ckeditorToolbar_Full: [
|
||||||
{ name: "document", items : [ "Source" ] },
|
{ name: "document", items : [ "Source", "ExportPdf", "Preview", "Print", "-", "Templates" ] },
|
||||||
{ name: "clipboard", items : [ "Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo" ] },
|
{ name: "clipboard", items : [ "Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo" ] },
|
||||||
{ name: "editing", items : [ "Find","Replace","-","SelectAll","-","SpellChecker", "Scayt" ] },
|
{ name: "editing", items : [ "Find","Replace","-","SelectAll","-","SpellChecker", "Scayt" ] },
|
||||||
{ name: "forms", items : [ "Form", "Checkbox", "Radio", "TextField", "Textarea", "Select", "Button", "ImageButton",
|
{ name: "forms", items : [ "Form", "Checkbox", "Radio", "TextField", "Textarea", "Select", "Button", "ImageButton",
|
||||||
"HiddenField" ] },
|
"HiddenField" ] },
|
||||||
"/",
|
"/",
|
||||||
{ name: "basicstyles", items : [ "Bold","Italic","Underline","Strike","Subscript","Superscript","-","RemoveFormat" ] },
|
{ name: "basicstyles", items : [ "Bold","Italic","Underline","Strike","Subscript","Superscript","-","CopyFormatting","RemoveFormat" ] },
|
||||||
{ name: "paragraph", items : [ "NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote","CreateDiv",
|
{ name: "paragraph", items : [ "NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote","CreateDiv",
|
||||||
"-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","BidiLtr","BidiRtl" ] },
|
"-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","BidiLtr","BidiRtl","Language" ] },
|
||||||
{ name: "links", items : [ "Link","Unlink","Anchor" ] },
|
{ name: "links", items : [ "Link","Unlink","Anchor" ] },
|
||||||
{ name: "insert", items : [ "Image","Flash","Table","HorizontalRule","Smiley","SpecialChar","PageBreak","Iframe" ] },
|
{ name: "insert", items : [ "Image","Flash","Table","HorizontalRule","Smiley","SpecialChar","PageBreak","Iframe" ] },
|
||||||
"/",
|
"/",
|
||||||
{ name: "styles", items : [ "Styles","Format","Font","FontSize" ] },
|
{ name: "styles", items : [ "Styles","Format","Font","FontSize" ] },
|
||||||
{ name: "colors", items : [ "TextColor","BGColor" ] },
|
{ name: "colors", items : [ "TextColor","BGColor" ] },
|
||||||
{ name: "tools", items : [ "Maximize", "ShowBlocks","-","About" ] }
|
{ name: "tools", items : [ "Maximize", "ShowBlocks" ] },
|
||||||
|
{ name: "about", items: [ "About" ] }
|
||||||
],
|
],
|
||||||
order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'",
|
order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'",
|
||||||
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
|
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
|
||||||
|
@ -54,7 +54,7 @@ if (function_exists('customComponents')) {
|
|||||||
echo '
|
echo '
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p><strong>'.tr("Si sconsiglia l'aggiornamento senza il supporto dell'assistenza ufficiale").'.</strong></p>';
|
<div class="alert alert-warning" role="alert"> <i class="fa fa-exclamation-triangle"></i> '.tr("Attenzione, il gestionale presenta delle personalizzazioni: si sconsiglia l'aggiornamento senza il supporto dell'assistenza ufficiale").'.</div>';
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<p>'.tr('Non ci sono strutture personalizzate').'.</p>';
|
<p>'.tr('Non ci sono strutture personalizzate').'.</p>';
|
||||||
@ -115,7 +115,7 @@ if (setting('Attiva aggiornamenti')) {
|
|||||||
|
|
||||||
if (!empty($alerts)) {
|
if (!empty($alerts)) {
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-info">
|
||||||
<p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [
|
<p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [
|
||||||
'_FILE_' => '<b>php.ini</b>',
|
'_FILE_' => '<b>php.ini</b>',
|
||||||
]).':<ul>';
|
]).':<ul>';
|
||||||
@ -198,7 +198,25 @@ function search(button) {
|
|||||||
|
|
||||||
{[ "type": "file", "name": "blob", "required": 1, "accept": ".zip" ]}
|
{[ "type": "file", "name": "blob", "required": 1, "accept": ".zip" ]}
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary pull-right" onclick="update()">
|
';
|
||||||
|
|
||||||
|
if (!empty($custom) || !empty($tables)) {
|
||||||
|
$disabled = 'disabled';
|
||||||
|
echo ' <input type="checkbox" id="aggiorna_custom" class="pull-left" style="margin-top:10px;" value="1" >
|
||||||
|
<label for="aggiorna_custom" style="margin-top:7px;" >'.tr("Desidero comunque procedere all'aggiornamento").'.</label>
|
||||||
|
<script>
|
||||||
|
$("#aggiorna_custom").change(function() {
|
||||||
|
if(this.checked) {
|
||||||
|
$("#aggiorna").removeClass("disabled");
|
||||||
|
}else{
|
||||||
|
$("#aggiorna").addClass("disabled");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
}
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-primary pull-right '.$disabled.'" id="aggiorna" onclick="update()">
|
||||||
<i class="fa fa-upload"></i> '.tr('Carica').'
|
<i class="fa fa-upload"></i> '.tr('Carica').'
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -80,7 +80,7 @@ class DatiFattureElettroniche extends Controllo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Se riscontro un'anomalia
|
// Se riscontro un'anomalia
|
||||||
if ($fattura_vendita->anagrafica->piva != $dati_anagrafici['IdFiscaleIVA']['IdCodice'] || $fattura_vendita->anagrafica->codice_fiscale != $dati_anagrafici['CodiceFiscale'] || $fattura_vendita->totale != $totale_documento_xml) {
|
if ($fattura_vendita->anagrafica->piva != $dati_anagrafici['IdFiscaleIVA']['IdCodice'] || $fattura_vendita->anagrafica->codice_fiscale != $dati_anagrafici['CodiceFiscale'] || numberFormat($fattura_vendita->totale) != numberFormat($totale_documento_xml)) {
|
||||||
$anomalia = [
|
$anomalia = [
|
||||||
'fattura_vendita' => $fattura_vendita,
|
'fattura_vendita' => $fattura_vendita,
|
||||||
'codice_fiscale_xml' => !empty($dati_anagrafici['CodiceFiscale']) ? $dati_anagrafici['CodiceFiscale'] : null,
|
'codice_fiscale_xml' => !empty($dati_anagrafici['CodiceFiscale']) ? $dati_anagrafici['CodiceFiscale'] : null,
|
||||||
|
@ -35,7 +35,7 @@ switch ($resource) {
|
|||||||
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.$idarticolo.' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).') LIMIT 0,5');
|
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.$idarticolo.' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).') LIMIT 0,5');
|
||||||
|
|
||||||
if (sizeof($documenti) > 0) {
|
if (sizeof($documenti) > 0) {
|
||||||
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
|
echo "<br/><table class='table table-striped table-bordered table-extra-condensed' >\n";
|
||||||
echo "<tr><th width='180'>Documento</th>\n";
|
echo "<tr><th width='180'>Documento</th>\n";
|
||||||
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ switch ($resource) {
|
|||||||
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata")) LIMIT 0,5');
|
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata")) LIMIT 0,5');
|
||||||
|
|
||||||
if (sizeof($documenti) > 0) {
|
if (sizeof($documenti) > 0) {
|
||||||
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
|
echo "<br/><table class='table table-striped table-bordered table-extra-condensed' >\n";
|
||||||
echo "<tr><th width='180'>Documento</th>\n";
|
echo "<tr><th width='180'>Documento</th>\n";
|
||||||
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ switch ($resource) {
|
|||||||
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di acquisto" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="uscita")) LIMIT 0,5');
|
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di acquisto" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="uscita")) LIMIT 0,5');
|
||||||
|
|
||||||
if (sizeof($documenti) > 0) {
|
if (sizeof($documenti) > 0) {
|
||||||
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
|
echo "<br/><table class='table table-striped table-bordered table-extra-condensed' >\n";
|
||||||
echo "<tr><th width='180'>Documento</th>\n";
|
echo "<tr><th width='180'>Documento</th>\n";
|
||||||
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
echo "<th width='100' class='text-right' >Totale</th></tr>\n";
|
||||||
|
|
||||||
@ -140,14 +140,6 @@ switch ($resource) {
|
|||||||
]);
|
]);
|
||||||
$results = $database->fetchArray($query_anagrafica);
|
$results = $database->fetchArray($query_anagrafica);
|
||||||
|
|
||||||
// Lettura dei prezzi relativi all'articolo, senza anagrafica collegata
|
|
||||||
if (empty($results)) {
|
|
||||||
$query_predefinito = replace($query, [
|
|
||||||
'|where|' => '',
|
|
||||||
]);
|
|
||||||
$results = $database->fetchArray($query_predefinito);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lettura dei prezzi registrati direttamente sull'articolo, per compatibilità con il formato standard
|
// Lettura dei prezzi registrati direttamente sull'articolo, per compatibilità con il formato standard
|
||||||
if (empty($results)) {
|
if (empty($results)) {
|
||||||
$result = $database->fetchOne('SELECT prezzo_acquisto, '.($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita').' AS prezzo_vendita FROM mg_articoli WHERE id = '.prepare($id_articolo));
|
$result = $database->fetchOne('SELECT prezzo_acquisto, '.($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita').' AS prezzo_vendita FROM mg_articoli WHERE id = '.prepare($id_articolo));
|
||||||
|
@ -79,6 +79,7 @@ switch ($resource) {
|
|||||||
mg_articoli.idconto_acquisto,
|
mg_articoli.idconto_acquisto,
|
||||||
categoria.`nome` AS categoria,
|
categoria.`nome` AS categoria,
|
||||||
sottocategoria.`nome` AS sottocategoria,
|
sottocategoria.`nome` AS sottocategoria,
|
||||||
|
(SUM((co_righe_documenti.prezzo_unitario-co_righe_documenti.sconto_unitario)*co_righe_documenti.qta)/SUM(co_righe_documenti.qta)) AS media_ponderata,
|
||||||
|
|
||||||
CONCAT(conto_vendita_categoria .numero, '.', conto_vendita_sottocategoria.numero, ' ', conto_vendita_sottocategoria.descrizione) AS idconto_vendita_title,
|
CONCAT(conto_vendita_categoria .numero, '.', conto_vendita_sottocategoria.numero, ' ', conto_vendita_sottocategoria.descrizione) AS idconto_vendita_title,
|
||||||
CONCAT(conto_acquisto_categoria .numero, '.', conto_acquisto_sottocategoria.numero, ' ', conto_acquisto_sottocategoria.descrizione) AS idconto_acquisto_title
|
CONCAT(conto_acquisto_categoria .numero, '.', conto_acquisto_sottocategoria.numero, ' ', conto_acquisto_sottocategoria.descrizione) AS idconto_acquisto_title
|
||||||
@ -91,6 +92,9 @@ switch ($resource) {
|
|||||||
LEFT JOIN co_pianodeiconti3 AS conto_acquisto_sottocategoria ON conto_acquisto_sottocategoria.id=mg_articoli.idconto_acquisto
|
LEFT JOIN co_pianodeiconti3 AS conto_acquisto_sottocategoria ON conto_acquisto_sottocategoria.id=mg_articoli.idconto_acquisto
|
||||||
LEFT JOIN co_pianodeiconti2 AS conto_acquisto_categoria ON conto_acquisto_sottocategoria.idpianodeiconti2=conto_acquisto_categoria.id
|
LEFT JOIN co_pianodeiconti2 AS conto_acquisto_categoria ON conto_acquisto_sottocategoria.idpianodeiconti2=conto_acquisto_categoria.id
|
||||||
|
|
||||||
|
LEFT JOIN co_righe_documenti ON co_righe_documenti.idarticolo=mg_articoli.id
|
||||||
|
LEFT JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento
|
||||||
|
LEFT JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento
|
||||||
LEFT JOIN co_iva AS iva_articolo ON iva_articolo.id = mg_articoli.idiva_vendita
|
LEFT JOIN co_iva AS iva_articolo ON iva_articolo.id = mg_articoli.idiva_vendita
|
||||||
LEFT JOIN co_iva AS iva_predefinita ON iva_predefinita.id = (SELECT valore FROM zz_settings WHERE nome = 'Iva predefinita')";
|
LEFT JOIN co_iva AS iva_predefinita ON iva_predefinita.id = (SELECT valore FROM zz_settings WHERE nome = 'Iva predefinita')";
|
||||||
|
|
||||||
@ -133,6 +137,7 @@ switch ($resource) {
|
|||||||
|
|
||||||
$where[] = 'mg_articoli.attivo = 1';
|
$where[] = 'mg_articoli.attivo = 1';
|
||||||
$where[] = 'mg_articoli.deleted_at IS NULL';
|
$where[] = 'mg_articoli.deleted_at IS NULL';
|
||||||
|
$where[] = '(co_tipidocumento.dir="uscita" OR co_tipidocumento.dir IS NULL)';
|
||||||
|
|
||||||
if (!empty($search)) {
|
if (!empty($search)) {
|
||||||
$search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%');
|
$search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%');
|
||||||
|
@ -214,6 +214,29 @@ switch (post('op')) {
|
|||||||
flash()->warning(tr('Nessun articolo modificato!'));
|
flash()->warning(tr('Nessun articolo modificato!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'set-acquisto-ifzero':
|
||||||
|
$n_art = 0;
|
||||||
|
foreach ($id_records as $id) {
|
||||||
|
$articolo = Articolo::find($id);
|
||||||
|
|
||||||
|
if ($articolo->prezzo_acquisto==0 && empty($articolo->idfornitore)) {
|
||||||
|
$new_prezzo_acquisto = $dbo->fetchOne('SELECT (prezzo_unitario-sconto_unitario) AS prezzo_acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id LEFT JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE idarticolo='.prepare($id).' AND dir="uscita" ORDER BY co_documenti.data DESC, co_righe_documenti.id DESC LIMIT 0,1')['prezzo_acquisto'];
|
||||||
|
|
||||||
|
$articolo->prezzo_acquisto = $new_prezzo_acquisto;
|
||||||
|
$articolo->save();
|
||||||
|
|
||||||
|
if ($new_prezzo_acquisto!=0) {
|
||||||
|
$n_art++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flash()->info(tr('Prezzi di acquisto aggiornati per _NUM_ articoli!', [
|
||||||
|
'_NUM_' => $n_art,
|
||||||
|
]));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,4 +345,15 @@ $operations['change-iva'] = [
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$operations['set-acquisto-ifzero'] = [
|
||||||
|
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Imposta prezzo di acquisto da fattura ').'</span>',
|
||||||
|
'data' => [
|
||||||
|
'title' => tr('Impostare il prezzo di acquisto per gli articoli selezionati?'),
|
||||||
|
'msg' => 'Il prezzo di acquisto verrà impostato sugli articoli che non hanno nessun prezzo di acquisto inserito e verrà aggiornato in base alla fattura di acquisto più recente',
|
||||||
|
'button' => tr('Procedi'),
|
||||||
|
'class' => 'btn btn-lg btn-warning',
|
||||||
|
'blank' => false,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
return $operations;
|
return $operations;
|
||||||
|
@ -173,7 +173,7 @@ include_once __DIR__.'/../../core.php';
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": <?php echo json_encode(['id_articolo' => $id_record]); ?>, "value":"$id_fornitore$", "help": "<?php echo tr('Fornitore predefinito selezionabile tra i fornitori presenti nel plugin \"Prezzi di listino\"'); ?>." ]}
|
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": <?php echo json_encode(['id_articolo' => $id_record]); ?>, "value":"$id_fornitore$", "help": "<?php echo tr('Fornitore predefinito selezionabile tra i fornitori presenti nel plugin \"Listino fornitori\"'); ?>." ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -237,8 +237,8 @@ if (file_exists($backup_dir)) {
|
|||||||
<a class="btn btn-primary" href="'.base_path().'/modules/backups/actions.php?op=getfile&number='.$id.'" target="_blank"><i class="fa fa-download"></i> '.tr('Scarica').'</a>
|
<a class="btn btn-primary" href="'.base_path().'/modules/backups/actions.php?op=getfile&number='.$id.'" target="_blank"><i class="fa fa-download"></i> '.tr('Scarica').'</a>
|
||||||
|
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<a class="btn btn-warning ask" data-backto="record-edit" data-method="post" data-op="restore" data-number="'.$id.'" data-msg="'.tr('Vuoi ripristinare questo backup?').'" data-button="Ripristina" data-class="btn btn-lg btn-warning">
|
<a class="btn btn-warning ask" data-backto="record-edit" data-method="post" data-op="restore" data-number="'.$id.'" data-msg="'.tr('Clicca su Ripristina per ripristinare questo backup').'" data-button="Ripristina" data-class="btn btn-lg btn-warning">
|
||||||
<i class="fa fa-upload"></i>
|
<i class="fa fa-upload"></i> '.tr('Ripristina').'
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="btn btn-danger ask" title="'.tr('Elimina backup').'" data-backto="record-list" data-op="del" data-number="'.$id.'">
|
<a class="btn btn-danger ask" title="'.tr('Elimina backup').'" data-backto="record-list" data-op="del" data-number="'.$id.'">
|
||||||
|
@ -36,6 +36,7 @@ switch (post('op')) {
|
|||||||
$dbo->update('do_documenti', [
|
$dbo->update('do_documenti', [
|
||||||
'idcategoria' => post('idcategoria'),
|
'idcategoria' => post('idcategoria'),
|
||||||
'nome' => post('nome'),
|
'nome' => post('nome'),
|
||||||
|
'descrizione' => post('descrizione', true) ?: null,
|
||||||
'data' => post('data') ?: null,
|
'data' => post('data') ?: null,
|
||||||
], ['id' => $id_record]);
|
], ['id' => $id_record]);
|
||||||
|
|
||||||
|
@ -37,8 +37,6 @@ include_once __DIR__.'/../../core.php';
|
|||||||
{[ "type": "text", "label": "Nome", "name": "nome", "required": 1, "value": "$nome$", "extra": "" ]}
|
{[ "type": "text", "label": "Nome", "name": "nome", "required": 1, "value": "$nome$", "extra": "" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
{[ "type": "select", "label": "Categoria", "name": "idcategoria", "required": 1, "ajax-source": "categorie_documenti", "value": "$idcategoria$", "extra": "" ]}
|
{[ "type": "select", "label": "Categoria", "name": "idcategoria", "required": 1, "ajax-source": "categorie_documenti", "value": "$idcategoria$", "extra": "" ]}
|
||||||
</div>
|
</div>
|
||||||
@ -49,6 +47,12 @@ include_once __DIR__.'/../../core.php';
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
{[ "type": "ckeditor", "use_full_ckeditor": 1, "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "value": "$descrizione$" ]}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ $id_anagrafica = filter('id_anagrafica');
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "select", "label": "<?php echo tr('Tecnico assegnato'); ?>", "name": "idtecnico", "ajax-source": "tecnici" ]}
|
{[ "type": "select", "label": "<?php echo tr('Tecnico assegnato'); ?>", "name": "idtecnico", "ajax-source": "tecnici", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Tecnico&readonly_tipo=1" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ echo '
|
|||||||
$espandi_dettagli = setting('Espandi automaticamente la sezione "Dettagli aggiuntivi"');
|
$espandi_dettagli = setting('Espandi automaticamente la sezione "Dettagli aggiuntivi"');
|
||||||
echo '
|
echo '
|
||||||
<!-- DATI AGGIUNTIVI -->
|
<!-- DATI AGGIUNTIVI -->
|
||||||
<div class="box box-warning collapsable '.(empty($espandi_dettagli) ? 'collapsed-box' : '').'">
|
<div class="box box-info collapsable '.(empty($espandi_dettagli) ? 'collapsed-box' : '').'">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Dettagli aggiuntivi').'</h3>
|
<h3 class="box-title">'.tr('Dettagli aggiuntivi').'</h3>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
@ -277,10 +277,10 @@ if (empty($id_intervento)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<!-- ORE DI LAVORO -->
|
<!-- ORE LAVORO -->
|
||||||
<div class="box box-primary collapsable '.($origine_dashboard ? '' : 'collapsed-box').'">
|
<div class="box box-info collapsable '.($origine_dashboard ? '' : 'collapsed-box').'">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Ore di lavoro').'</h3>
|
<h3 class="box-title">'.tr('Ore lavoro').'</h3>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||||
<i class="fa fa-'.($origine_dashboard ? 'minus' : 'plus').'"></i>
|
<i class="fa fa-'.($origine_dashboard ? 'minus' : 'plus').'"></i>
|
||||||
@ -315,7 +315,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- RICORRENZA -->
|
<!-- RICORRENZA -->
|
||||||
<div class="box box-warning collapsable collapsed-box">
|
<div class="box box-info collapsable collapsed-box">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Ricorrenza').'</h3>
|
<h3 class="box-title">'.tr('Ricorrenza').'</h3>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
@ -328,7 +328,7 @@ echo '
|
|||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "checkbox", "label": "'.tr('Ricorsiva').'", "name": "ricorsiva", "value": "" ]}
|
{[ "type": "checkbox", "label": "'.tr('Attività ricorrente').'", "name": "ricorsiva", "value": "" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4 ricorrenza">
|
<div class="col-md-4 ricorrenza">
|
||||||
@ -367,7 +367,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- DETTAGLI CLIENTE -->
|
<!-- DETTAGLI CLIENTE -->
|
||||||
<div class="box box-success collapsable collapsed-box">
|
<div class="box box-info collapsable collapsed-box">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">'.tr('Dettagli cliente').'</h3>
|
<h3 class="box-title">'.tr('Dettagli cliente').'</h3>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
@ -378,7 +378,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box-body" id="dettagli_cliente">
|
<div class="box-body" id="dettagli_cliente">
|
||||||
'.tr('Prima seleziona un cliente').'...
|
'.tr('Seleziona prima un cliente').'...
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ echo '
|
|||||||
<!-- ORE LAVORO -->
|
<!-- ORE LAVORO -->
|
||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title"><?php echo tr('Ore di lavoro'); ?></h3>
|
<h3 class="panel-title"><?php echo tr('Ore lavoro'); ?></h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
@ -46,7 +46,7 @@ switch (filter('op')) {
|
|||||||
$newsletter->completed_at = filter('completed_at');
|
$newsletter->completed_at = filter('completed_at');
|
||||||
|
|
||||||
$newsletter->subject = filter('subject');
|
$newsletter->subject = filter('subject');
|
||||||
$newsletter->content = $_POST['content']; //filter('content');
|
$newsletter->content = post('content', true); //filter('content');
|
||||||
|
|
||||||
$newsletter->save();
|
$newsletter->save();
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ if ($bilancio_gia_aperto) {
|
|||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<button type="button" class="btn btn-lg btn-info" data-toggle="modal" data-title="'.tr('Stampa Bilancio').'" data-href="'.base_path().'/modules/partitario/stampa_bilancio.php" ><i class="fa fa-print"></i> '.tr('Stampa Bilancio').'</button>
|
|
||||||
<button type="button" class="btn btn-lg '.$btn_class.'" data-op="apri-bilancio" data-title="'.tr('Apertura bilancio').'" data-backto="record-list" data-msg="'.$msg.'" data-button="'.tr('Riprendi saldi').'" data-class="btn btn-lg btn-warning" onclick="message( this );">
|
<button type="button" class="btn btn-lg '.$btn_class.'" data-op="apri-bilancio" data-title="'.tr('Apertura bilancio').'" data-backto="record-list" data-msg="'.$msg.'" data-button="'.tr('Riprendi saldi').'" data-class="btn btn-lg btn-warning" onclick="message( this );">
|
||||||
<i class="fa fa-folder-open"></i> '.tr('Apertura bilancio').'
|
<i class="fa fa-folder-open"></i> '.tr('Apertura bilancio').'
|
||||||
</button>
|
</button>
|
||||||
@ -60,9 +59,6 @@ foreach ($primo_livello as $conto_primo) {
|
|||||||
<i class="fa fa-plus-circle"></i>
|
<i class="fa fa-plus-circle"></i>
|
||||||
</button>
|
</button>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="pull-right">
|
|
||||||
'.Prints::getLink('Mastrino', $conto_primo['id'], null, tr('Stampa'), null, 'lev=1').'
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box-body">';
|
<div class="box-body">';
|
||||||
|
@ -74,4 +74,22 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">'.tr('Piano dei conti').'</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel-body">
|
||||||
|
<button type="button" class="btn btn-primary col-md-2" data-toggle="modal" data-title="'.tr('Stampa Bilancio').'" data-href="'.base_path().'/modules/stampe_contabili/stampa_bilancio.php" ><i class="fa fa-print fa-2x"></i> <br>'.tr('Stampa').'<br>'.tr('bilancio').'</button>
|
||||||
|
|
||||||
|
'.Prints::getLink('Mastrino', 1, 'btn-primary col-md-4 col-md-push-1', '<br>'.tr('Stampa situazione').'<br>'.tr('patrimoniale'), '|default| fa-2x', 'lev=1').'
|
||||||
|
|
||||||
|
'.Prints::getLink('Mastrino', 2, 'btn-primary col-md-4 col-md-push-2', '<br>'.tr('Stampa situazione').'<br>'.tr('economica'), '|default| fa-2x', 'lev=1').'
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
@ -49,6 +49,7 @@ if (Services::isEnabled()) {
|
|||||||
<th width="50%">'.tr('Nome').'</th>
|
<th width="50%">'.tr('Nome').'</th>
|
||||||
<th>'.tr('Tipo').'</th>
|
<th>'.tr('Tipo').'</th>
|
||||||
<th width="30%">'.tr('Scadenza').'</th>
|
<th width="30%">'.tr('Scadenza').'</th>
|
||||||
|
<th width="10%" class="text-center" >'.tr('#').'</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@ -61,11 +62,28 @@ if (Services::isEnabled()) {
|
|||||||
<td>'.$servizio['codice'].' - '.$servizio['nome'].'</td>
|
<td>'.$servizio['codice'].' - '.$servizio['nome'].'</td>
|
||||||
<td>'.$servizio['sottocategoria'].'</td>
|
<td>'.$servizio['sottocategoria'].'</td>
|
||||||
<td>'.dateFormat($scadenza).' ('.$scadenza->diffForHumans().')</td>
|
<td>'.dateFormat($scadenza).' ('.$scadenza->diffForHumans().')</td>
|
||||||
|
<td class="text-center" >
|
||||||
|
<input type="checkbox" class="check_rinnova '.($scadenza->lessThan($limite_scadenze) ? "" : "hide").'" name="rinnova[]" value="'.$servizio['codice'].'">
|
||||||
|
</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$servizi_in_scadenza = Services::getServiziInScadenza($limite_scadenze);
|
||||||
|
$servizi_scaduti = Services::getServiziScaduti();
|
||||||
|
if (!$servizi_in_scadenza->isEmpty() || !$servizi_scaduti->isEmpty()){
|
||||||
|
//TODO: Il tasto deve preparare correttamente il carrello con servizi e le risorse in scadenza, considerando anche eventuali ampliamenti (es. spazio FE esaurito o in esaurimento)
|
||||||
|
echo ' </tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">
|
||||||
|
<a type="button" href="https://marketplace.devcode.it/" target="_blank" id="btn_rinnova" class="btn btn-xs btn-primary pull-right disabled" ><i class="fa fa-shopping-cart"></i> '.tr('Rinnova').'</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>';
|
||||||
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</tbody>
|
|
||||||
</table>';
|
</table>';
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
@ -98,26 +116,26 @@ if (Services::isEnabled()) {
|
|||||||
|
|
||||||
if (!$risorse_in_scadenza->isEmpty() || !$risorse_scadute->isEmpty() ) {
|
if (!$risorse_in_scadenza->isEmpty() || !$risorse_scadute->isEmpty() ) {
|
||||||
|
|
||||||
|
if (!$risorse_scadute->isEmpty()){
|
||||||
|
echo '
|
||||||
|
<div class="alert alert-danger" role="alert"> <i class="fa fa-exclamation-triangle"></i> '.tr('Attenzione, alcune risorse sono scadute o hanno esaurito i crediti:', [
|
||||||
|
'_NUM_' => $risorse_scadute->count(),
|
||||||
|
]).'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
if (!$risorse_in_scadenza->isEmpty()){
|
if (!$risorse_in_scadenza->isEmpty()){
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-warning" role="alert"> <i class="fa fa-clock-o"></i> '.tr('Attenzione, _NUM_ risorse sono in scadenza o stanno per esaurire i crediti:', [
|
<div class="alert alert-warning" role="alert"> <i class="fa fa-clock-o"></i> '.tr('Attenzione, alcune risorse sono in scadenza o stanno per esaurire i crediti:', [
|
||||||
'_NUM_' => $risorse_in_scadenza->count(),
|
'_NUM_' => $risorse_in_scadenza->count(),
|
||||||
]).'</div>';
|
]).'</div>';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$risorse_scadute->isEmpty()){
|
|
||||||
echo '
|
|
||||||
<div class="alert alert-danger" role="alert"> <i class="fa fa-exclamation-triangle"></i> '.tr('Attenzione, _NUM_ risorse sono scadute o hanno esaurito i crediti:', [
|
|
||||||
'_NUM_' => $risorse_scadute->count(),
|
|
||||||
]).'</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
echo '
|
/*echo '
|
||||||
<div class="alert alert-success" role="alert"> <i class="fa fa-check-circle"></i> '.tr('Bene, tutte le risorse sono attive e non presentano avvisi:', [
|
<div class="alert alert-success" role="alert"> <i class="fa fa-check-circle"></i> '.tr('Bene, tutte le risorse sono attive e non presentano avvisi:', [
|
||||||
'_NUM_' => $risorse_attive->count(),
|
'_NUM_' => $risorse_attive->count(),
|
||||||
]).'</div>';
|
]).'</div>';*/
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
@ -137,8 +155,8 @@ if (Services::isEnabled()) {
|
|||||||
echo '
|
echo '
|
||||||
<tr class="'.($scadenza->lessThan(Carbon::now()) ? 'danger' : ($scadenza->lessThan($limite_scadenze) ? 'warning' : '')).'">
|
<tr class="'.($scadenza->lessThan(Carbon::now()) ? 'danger' : ($scadenza->lessThan($limite_scadenze) ? 'warning' : '')).'">
|
||||||
<td>'.$servizio['name'].'</td>
|
<td>'.$servizio['name'].'</td>
|
||||||
<td>'.(($servizio['credits'] < 100 && $servizio['credits']) ? '<b><i class="fa fa-icon fa-warning" ></i>' : '').(($servizio['credits']) ? $servizio['credits'] : '-').(($servizio['credits'] < 100 && $servizio['credits']) ? '</b>' : '').'</td>
|
<td>'.(($servizio['credits'] < 100 && $servizio['credits'] !== null) ? '<b><i class="fa fa-icon fa-warning text-warning" ></i> ' : '').(($servizio['credits'] !== null) ? $servizio['credits'] : '-').(($servizio['credits'] < 100 && $servizio['credits'] !== null) ? '</b>' : '').'</td>
|
||||||
<td>'.((Carbon::now()->diffInDays($scadenza, false) < $days && $scadenza) ? '<b><i class="fa fa-icon fa-warning" ></i>' : '').dateFormat($scadenza).' ('.$scadenza->diffForHumans().')'.((Carbon::now()->diffInDays($scadenza, false) < $days && $scadenza) ? '</b>' : '').'</td>
|
<td>'.((Carbon::now()->diffInDays($scadenza, false) < $days && $scadenza) ? '<b><i class="fa fa-icon fa-warning text-warning" ></i> ' : '').dateFormat($scadenza).' ('.$scadenza->diffForHumans().')'.((Carbon::now()->diffInDays($scadenza, false) < $days && $scadenza) ? '</b>' : '').'</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,26 +168,26 @@ if (Services::isEnabled()) {
|
|||||||
if (Services::getRisorseAttive()->where('name', 'Fatturazione Elettronica')->count()) {
|
if (Services::getRisorseAttive()->where('name', 'Fatturazione Elettronica')->count()) {
|
||||||
echo '
|
echo '
|
||||||
|
|
||||||
<div class="panel panel-info">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading" > <i class="fa fa-bar-chart"></i> '.tr('Statistiche su Fatture Elettroniche').'</div>
|
<div class="panel-heading" > <i class="fa fa-bar-chart"></i> '.tr('Statistiche su Fatture Elettroniche').'</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
|
||||||
<div class="alert hidden" role="alert" id="spazio-fe">
|
<div class="alert hidden" role="alert" id="spazio-fe">
|
||||||
<i id="spazio-fe-icon" class=""></i> <span>'.tr('Spazio per fatture elettroniche _TEXT_: _NUM_ utilizzati su _TOT_ disponibili', [
|
<i id="spazio-fe-icon" class=""></i> <span>'.tr('Attenzione, spazio per fatture elettroniche _TEXT_: _NUM_ utilizzati su _TOT_ disponibili', [
|
||||||
'_TEXT_' => '<span id="spazio-fe-text"></span>',
|
'_TEXT_' => '<span id="spazio-fe-text"></span>',
|
||||||
'_NUM_' => '<span id="spazio-fe-occupato"></span>',
|
'_NUM_' => '<span id="spazio-fe-occupato"></span>',
|
||||||
'_TOT_' => '<span id="spazio-fe-totale"></span>',
|
'_TOT_' => '<span id="spazio-fe-totale"></span>',
|
||||||
]).'.<br>'.tr("Contatta l'assistenza per risolvere il problema").'</span>.
|
]).'.<br>'.tr("Contattare l'assistenza per risolvere il problema").'</span>.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="alert hidden" role="alert" id="numero-fe">
|
<div class="alert hidden" role="alert" id="numero-fe">
|
||||||
<i id="numero-fe-icon" class=""></i> <span>'.tr('Numero di fatture elettroniche per l\'annualità _TEXT_: _NUM_ documenti transitati su _TOT_ disponibili', [
|
<i id="numero-fe-icon" class=""></i> <span>'.tr('Attenzione, numero di fatture elettroniche per l\'annualità _TEXT_: _NUM_ documenti transitati su _TOT_ disponibili', [
|
||||||
'_TEXT_' => '<span id="numero-fe-text"></span>',
|
'_TEXT_' => '<span id="numero-fe-text"></span>',
|
||||||
'_NUM_' => '<span id="numero-fe-occupato"></span>',
|
'_NUM_' => '<span id="numero-fe-occupato"></span>',
|
||||||
'_TOT_' => '<span id="numero-fe-totale"></span>',
|
'_TOT_' => '<span id="numero-fe-totale"></span>',
|
||||||
]).'.<br>'.tr("Contatta l'assistenza per risolvere il problema").'</span>.
|
]).'.<br>'.tr("Contattare l'assistenza per risolvere il problema").'</span>.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -178,14 +196,14 @@ if (Services::isEnabled()) {
|
|||||||
<tr>
|
<tr>
|
||||||
<th>'.tr('Anno').'</th>
|
<th>'.tr('Anno').'</th>
|
||||||
<th>
|
<th>
|
||||||
'.tr('Documenti archiviati').'
|
'.tr('N. documenti archiviati').'
|
||||||
<span class="tip" title="'.tr('Fatture attive e relative ricevute, fatture passive').'.">
|
<span class="tip" title="'.tr('Fatture attive e relative ricevute, fatture passive').'.">
|
||||||
<i class="fa fa-question-circle-o"></i>
|
<i class="fa fa-question-circle-o"></i>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
<th>
|
<th>
|
||||||
'.tr('Totale spazio occupato').'
|
'.tr('Spazio utilizzato').'
|
||||||
<span class="tip" title="'.tr('Fatture attive con eventuali allegati e ricevute, fatture passive con eventuali allegati').'.">
|
<span class="tip" title="'.tr('Fatture attive con eventuali allegati e ricevute, fatture passive con eventuali allegati').'.">
|
||||||
<i class="fa fa-question-circle-o"></i>
|
<i class="fa fa-question-circle-o"></i>
|
||||||
</span>
|
</span>
|
||||||
@ -193,13 +211,13 @@ if (Services::isEnabled()) {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody id="elenco-fe">
|
<tfoot id="elenco-fe">
|
||||||
<tr style="background-color:#CCCCCC;" >
|
<tr style="background-color:#CCCCCC;" >
|
||||||
<td>'.tr('Totale').'</td>
|
<td>'.tr('Totale').'</td>
|
||||||
<td id="fe_numero"></td>
|
<td id="fe_numero"></td>
|
||||||
<td id="fe_spazio"></td>
|
<td id="fe_spazio"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -263,6 +281,24 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
$(".check_rinnova").each(function() {
|
||||||
|
|
||||||
|
var len = 0;
|
||||||
|
|
||||||
|
input(this).change(function() {
|
||||||
|
|
||||||
|
len = $("input[type=checkbox]:checked.check_rinnova").length;
|
||||||
|
|
||||||
|
if (len>0){
|
||||||
|
$("#btn_rinnova").removeClass("disabled");
|
||||||
|
}else{
|
||||||
|
$("#btn_rinnova").addClass("disabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
function aggiornaStatisticheFE(){
|
function aggiornaStatisticheFE(){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: globals.rootdir + "/actions.php",
|
url: globals.rootdir + "/actions.php",
|
||||||
@ -277,35 +313,39 @@ function aggiornaStatisticheFE(){
|
|||||||
|
|
||||||
$("#fe_spazio").html(response.spazio_occupato);
|
$("#fe_spazio").html(response.spazio_occupato);
|
||||||
|
|
||||||
if (response.spazio_totale){
|
|
||||||
$("#fe_spazio").html($("#fe_spazio").html() + " / " + response.spazio_totale);
|
|
||||||
|
|
||||||
if (response.spazio_occupato>response.spazio_totale && response.avviso_spazio){
|
|
||||||
$("#fe_spazio").html("<span style=\"font-weight:bold;\" ><i class=\"fa fa-warning\" ></i> " + $("#fe_spazio").html() + "</span>");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Informazioni sullo spazio occupato
|
// Informazioni sullo spazio occupato
|
||||||
$("#spazio-fe-occupato").html(response.spazio_occupato);
|
$("#spazio-fe-occupato").html(response.spazio_occupato);
|
||||||
$("#spazio-fe-totale").html(response.spazio_totale);
|
$("#spazio-fe-totale").html(response.spazio_totale);
|
||||||
|
|
||||||
if (response.avviso_spazio) {
|
if (response.avviso_spazio) {
|
||||||
|
|
||||||
$("#spazio-fe").removeClass("hidden");
|
$("#spazio-fe").removeClass("hidden");
|
||||||
|
$("input.check_rinnova").addClass("disabled");
|
||||||
|
|
||||||
|
response.spazio_occupato = parseFloat(response.spazio_occupato);
|
||||||
|
response.spazio_totale = parseFloat(response.spazio_totale);
|
||||||
|
|
||||||
|
if (response.spazio_totale){
|
||||||
|
$("#fe_spazio").html($("#fe_spazio").html() + " / " + response.spazio_totale);
|
||||||
|
|
||||||
|
if (response.spazio_occupato>response.spazio_totale && response.avviso_spazio){
|
||||||
|
$("#fe_spazio").html("<span style=\"font-weight:bold;\" ><i class=\"fa fa-warning text-warning\" ></i> " + $("#fe_spazio").html() + "</span>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (response.spazio_occupato<response.spazio_totale){
|
if (response.spazio_occupato<response.spazio_totale){
|
||||||
$("#spazio-fe-icon").addClass("fa fa-warning");
|
$("#spazio-fe-icon").addClass("fa fa-clock-o");
|
||||||
$("#spazio-fe").addClass("alert-warning");
|
$("#spazio-fe").addClass("alert-warning");
|
||||||
$("#spazio-fe-text").html("'.tr('in esaurimento').'");
|
$("#spazio-fe-text").html("'.tr('in esaurimento').'");
|
||||||
}
|
}
|
||||||
else if (response.spazio_occupato>=response.spazio_totale){
|
else if (response.spazio_occupato>=response.spazio_totale){
|
||||||
$("#spazio-fe-icon").addClass("fa fa-times");
|
$("#spazio-fe-icon").addClass("fa fa-warning");
|
||||||
$("#spazio-fe").addClass("alert-danger");
|
$("#spazio-fe").addClass("alert-danger");
|
||||||
$("#spazio-fe-text").html("'.tr('terminato').'");
|
$("#spazio-fe-text").html("'.tr('terminato').'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.history.length) {
|
if (response.history.length) {
|
||||||
|
|
||||||
|
|
||||||
for (let i = 0; i < response.history.length; i++) {
|
for (let i = 0; i < response.history.length; i++) {
|
||||||
|
|
||||||
@ -319,7 +359,7 @@ function aggiornaStatisticheFE(){
|
|||||||
data["number"] = number + " / " + response.maxNumber;
|
data["number"] = number + " / " + response.maxNumber;
|
||||||
|
|
||||||
if (response.avviso_numero)
|
if (response.avviso_numero)
|
||||||
data["number"] = "<span style=\"font-weight:bold;\" > <i class=\"fa fa-warning\" ></i> " + data["number"] + "</span>";
|
data["number"] = "<span style=\"font-weight:bold;\" > <i class=\"fa fa-warning text-warning\" ></i> " + data["number"] + "</span>";
|
||||||
|
|
||||||
$("#numero-fe-occupato").html(number);
|
$("#numero-fe-occupato").html(number);
|
||||||
$("#numero-fe-totale").html(response.maxNumber);
|
$("#numero-fe-totale").html(response.maxNumber);
|
||||||
@ -327,21 +367,21 @@ function aggiornaStatisticheFE(){
|
|||||||
if (response.avviso_numero) {
|
if (response.avviso_numero) {
|
||||||
|
|
||||||
$("#numero-fe").removeClass("hidden");
|
$("#numero-fe").removeClass("hidden");
|
||||||
|
$("input.check_rinnova").addClass("disabled");
|
||||||
|
|
||||||
if (number<response.maxNumber){
|
if (number<response.maxNumber){
|
||||||
$("#numero-fe-icon").addClass("fa fa-warning");
|
$("#numero-fe-icon").addClass("fa fa-clock-o");
|
||||||
$("#numero-fe").addClass("alert-warning");
|
$("#numero-fe").addClass("alert-warning");
|
||||||
$("#numero-fe-text").html("'.tr('in esaurimento').'");
|
$("#numero-fe-text").html("'.tr('in esaurimento').'");
|
||||||
}
|
}
|
||||||
else if (number>=response.maxNumber){
|
else if (number>=response.maxNumber){
|
||||||
$("#numero-fe-icon").addClass("fa fa-times");
|
$("#numero-fe-icon").addClass("fa fa-warning");
|
||||||
$("#numero-fe").addClass("alert-danger");
|
$("#numero-fe").addClass("alert-danger");
|
||||||
$("#numero-fe-text").html("'.tr('esaurito').'");
|
$("#numero-fe-text").html("'.tr('esaurito').'");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
var highlight = "<tr>";
|
var highlight = "<tr>";
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
"dropzone": "^5.7.2",
|
"dropzone": "^5.7.2",
|
||||||
"eonasdan-bootstrap-datetimepicker": "^4.17.47",
|
"eonasdan-bootstrap-datetimepicker": "^4.17.47",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
"fullcalendar": "^3.4.0",
|
"fullcalendar": "^3.10.4",
|
||||||
"geocomplete": "^1.7.0",
|
"geocomplete": "^1.7.0",
|
||||||
"hotkeys-js": "^3.8.5",
|
"hotkeys-js": "^3.8.5",
|
||||||
"html5sortable": "^0.13.2",
|
"html5sortable": "^0.13.2",
|
||||||
|
@ -60,9 +60,9 @@ echo '
|
|||||||
<th class="text-center col-md-4">'.($direzione == 'entrata' ? tr('Cliente') : tr('Fornitore')).'</th>
|
<th class="text-center col-md-4">'.($direzione == 'entrata' ? tr('Cliente') : tr('Fornitore')).'</th>
|
||||||
<th class="text-center col-md-4">'.tr('Prezzo predefinito').'</th>';
|
<th class="text-center col-md-4">'.tr('Prezzo predefinito').'</th>';
|
||||||
if ($direzione == 'uscita') {
|
if ($direzione == 'uscita') {
|
||||||
echo '<th class="text-center col-md-4">'.tr('Fornitore predefinito').'</th>';
|
echo '<th class="text-center col-md-4">'.tr('E\' il fornitore predefinito?').'</th>';
|
||||||
} else {
|
} else {
|
||||||
echo '<th class="text-center col-md-4"></th>';
|
echo '<th class="text-center col-md-4">'.tr('Fornitore predefinito').'</th>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
</tr>
|
</tr>
|
||||||
@ -72,7 +72,7 @@ echo '
|
|||||||
if ($direzione == 'uscita') {
|
if ($direzione == 'uscita') {
|
||||||
echo '<td class="text-center"><i class="fa fa-'.$icon.' text-'.$color.'"></i> '.$text.'</td>';
|
echo '<td class="text-center"><i class="fa fa-'.$icon.' text-'.$color.'"></i> '.$text.'</td>';
|
||||||
} else {
|
} else {
|
||||||
echo '<td></td>';
|
echo '<td class="text-center">'.(!empty($articolo->id_fornitore) ? Anagrafica::find($articolo->id_fornitore)->ragione_sociale : tr('Nessuno')).'</td>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
</tr>
|
</tr>
|
||||||
@ -89,7 +89,7 @@ echo '
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "checkbox", "label": "'.tr('Imposta prezzo per questa anagrafica').'", "name": "modifica_prezzi", "value": "'.intval(!empty($dettaglio_predefinito)).'" ]}
|
{[ "type": "checkbox", "label": "'.tr('Imposta prezzo specifico per questa anagrafica').'", "name": "modifica_prezzi", "value": "'.intval(!empty($dettaglio_predefinito)).'" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -97,6 +97,7 @@ echo '
|
|||||||
<div class="info_prezzi">
|
<div class="info_prezzi">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "number", "label": "'.tr('Prezzo specifico').'", "name": "prezzo_unitario_fisso", "value": "'.($prezzi_ivati ? $dettaglio_predefinito->prezzo_unitario_ivato : $dettaglio_predefinito->prezzo_unitario).'", "icon-after": "'.currency().'", "help": "'.($prezzi_ivati ? tr('Importo IVA inclusa') : '').'" ]}
|
{[ "type": "number", "label": "'.tr('Prezzo specifico').'", "name": "prezzo_unitario_fisso", "value": "'.($prezzi_ivati ? $dettaglio_predefinito->prezzo_unitario_ivato : $dettaglio_predefinito->prezzo_unitario).'", "icon-after": "'.currency().'", "help": "'.($prezzi_ivati ? tr('Importo IVA inclusa') : '').'" ]}
|
||||||
|
<button type="button" style="margin-top:-10px;" class="btn btn-xs btn-info pull-right '.($prezzo_predefinito>0 ? "" : "disabled").'" onclick="copiaPrezzoPredefinito()"><i class="fa fa-refresh"></i> '.tr('Importa').'</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
@ -107,7 +108,7 @@ echo '
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div id="imposta_prezzo_qta" class="col-md-4">
|
<div id="imposta_prezzo_qta" class="col-md-4">
|
||||||
{[ "type": "checkbox", "label": "'.tr('Imposta un prezzo in base alla quantità').'", "name": "prezzo_qta", "value": "'.intval($dettagli->count() != 0).'" ]}
|
{[ "type": "checkbox", "label": "'.tr('Imposta prezzo in base alla quantità').'", "name": "prezzo_qta", "value": "'.intval($dettagli->count() != 0).'" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -214,6 +215,11 @@ echo '
|
|||||||
<script>$(document).ready(init);</script>
|
<script>$(document).ready(init);</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
function copiaPrezzoPredefinito() {
|
||||||
|
$("#prezzo_unitario_fisso").val('.$prezzo_predefinito.').trigger("change");
|
||||||
|
}
|
||||||
|
|
||||||
var key = '.$dettagli->count().';
|
var key = '.$dettagli->count().';
|
||||||
function aggiungiPrezzo(button) {
|
function aggiungiPrezzo(button) {
|
||||||
cleanup_inputs();
|
cleanup_inputs();
|
||||||
@ -266,5 +272,5 @@ input("prezzo_qta").change(function () {
|
|||||||
})
|
})
|
||||||
|
|
||||||
$(document).ready(cambioImpostazioni);
|
$(document).ready(cambioImpostazioni);
|
||||||
content_was_modified = false;
|
content_was_modified = false;
|
||||||
</script>';
|
</script>';
|
||||||
|
@ -23,6 +23,7 @@ use Plugins\ListinoClienti\DettaglioPrezzo;
|
|||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$id_articolo = $id_record;
|
$id_articolo = $id_record;
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="box-header">
|
<div class="box-header">
|
||||||
@ -32,7 +33,7 @@ echo '
|
|||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "id_cliente_informazioni", "required":"1", "ajax-source": "clienti" ]}
|
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "id_cliente_informazioni", "required":"1", "ajax-source": "clienti", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Cliente&readonly_tipo=1" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
|
@ -38,9 +38,9 @@ if (!empty($id_riga)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<p>'.tr('Informazioni relative al fornitore _NAME_', [
|
<p>'.tr('Informazioni relative al fornitore: _NAME_', [
|
||||||
'_NAME_' => $anagrafica->ragione_sociale,
|
'_NAME_' => '<b>'.$anagrafica->ragione_sociale.'</b>',
|
||||||
]).'.</p>
|
]).'</p>
|
||||||
|
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
|
@ -32,7 +32,7 @@ echo '
|
|||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
{[ "type": "select", "label": "'.tr('Fornitore').'", "name": "id_fornitore_informazioni", "required":"1", "ajax-source": "fornitori" ]}
|
{[ "type": "select", "label": "'.tr('Fornitore').'", "name": "id_fornitore_informazioni", "required":"1", "ajax-source": "fornitori","icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Fornitore&readonly_tipo=1" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
|
@ -55,10 +55,10 @@ echo '
|
|||||||
{[ "type": "select", "label": "'.tr('Ricorrenza fatturazione').'", "name": "scadenza", "values": "list=\"\":\"Seleziona un\'opzione\", \"Mensile\":\"Mensile\", \"Bimestrale\":\"Bimestrale\", \"Trimestrale\":\"Trimestrale\", \"Quadrimestrale\":\"Quadrimestrale\", \"Semestrale\":\"Semestrale\", \"Annuale\":\"Annuale\"", "value": "Mensile", "help":"'.tr('Specificare la cadenza con cui creare la pianificazione fatturazione').'" ]}
|
{[ "type": "select", "label": "'.tr('Ricorrenza fatturazione').'", "name": "scadenza", "values": "list=\"\":\"Seleziona un\'opzione\", \"Mensile\":\"Mensile\", \"Bimestrale\":\"Bimestrale\", \"Trimestrale\":\"Trimestrale\", \"Quadrimestrale\":\"Quadrimestrale\", \"Semestrale\":\"Semestrale\", \"Annuale\":\"Annuale\"", "value": "Mensile", "help":"'.tr('Specificare la cadenza con cui creare la pianificazione fatturazione').'" ]}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
{[ "type": "select", "label": "'.tr('Giorno di fatturazione').'", "name": "cadenza_fatturazione", "values": "list=\"\":\"Seleziona un\'opzione\", \"Inizio\":\"Inizio mese\", \"Fine\":\"Fine mese\", \"Giorno\":\"Giorno fisso\" ", "value": "Inizio", "help":"'.tr('Specificare per la pianificazione fatturazione se si desidera creare le fatture a inizio mese o alla fine. Se non specificata alcuna opzione saranno create di default a fine mese.').'" ]}
|
{[ "type": "select", "label": "'.tr('Giorno di fatturazione').'", "name": "cadenza_fatturazione", "values": "list=\"\":\"Seleziona un\'opzione\", \"Inizio\":\"Inizio mese\", \"Fine\":\"Fine mese\", \"Giorno\":\"Giorno fisso\" ", "value": "Inizio", "help":"'.tr('Specificare per la pianificazione fatturazione se si desidera creare le fatture ad inizio o alla fine del mese. Se non specificata alcuna opzione saranno create di default a fine mese.').'" ]}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3" id="div_giorno_fisso" hidden>
|
<div class="col-md-3">
|
||||||
{[ "type": "select", "label": "'.tr('Giorno fisso fatturazione').'", "name": "giorno_fisso", "values": '.json_encode($giorni_fatturazione).', "value": "1", "help":"'.tr('Selezionare il giorno fisso di fatturazione.').'" ]}
|
{[ "type": "select", "label": "'.tr('Giorno fisso fatturazione').'", "disabled": 1, "name": "giorno_fisso", "id":"giorno_fisso", "values": '.json_encode($giorni_fatturazione).', "value": "", "help":"'.tr('Selezionare il giorno fisso di fatturazione.').'" ]}
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="data_inizio" value="'.$contratto->data_accettazione.'">
|
<input type="hidden" name="data_inizio" value="'.$contratto->data_accettazione.'">
|
||||||
</div>
|
</div>
|
||||||
@ -127,16 +127,25 @@ foreach ($righe as $riga) {
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione['.$riga->id.']", "value": "'.$descrizione.'" ]}
|
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione['.$riga->id.']", "value": "'.$descrizione.'", "extra": "rows=6" ]}
|
||||||
|
|
||||||
{[ "type": "number", "label": "'.tr('Q.tà per fattura').'", "class":"qta_fattura", "name": "qta['.$riga->id.']", "required": 1, "value": "1", "decimals": "qta", "min-value": "1", "icon-after":"'.tr('Su _TOT_', [
|
{[ "type": "number", "label": "'.tr('Q.tà per fattura').'", "class":"qta_fattura", "name": "qta['.$riga->id.']", "required": 1, "value": "1", "decimals": "qta", "min-value": "1", "icon-after":"'.tr('su _TOT_ totali', [
|
||||||
'_TOT_' => Translator::numberToLocale(($riga->qta - $riga->qta_evasa)),
|
'_TOT_' => Translator::numberToLocale(($riga->qta - $riga->qta_evasa)),
|
||||||
]).'", "options":"'.str_replace('"', '\"', $options).'" ]}
|
]).'", "options":"'.str_replace('"', '\"', $options).'" ]}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3" id="totali_'.$riga->id.'">
|
<div class="col-md-3" id="totali_'.$riga->id.'">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>';
|
||||||
<hr>';
|
|
||||||
|
|
||||||
|
|
||||||
|
echo ' <div class="label label-warning alert_rate hide">
|
||||||
|
<i class="fa fa-warning"></i> <span>'.tr('Attenzione, sono previste _RATE_ rate su _TOT_ quantità totali', [
|
||||||
|
'_RATE_' => '<span class="num_rate"></span>',
|
||||||
|
'_TOT_' => '<span class="qta_disponibili">'.Translator::numberToLocale(($riga->qta - $riga->qta_evasa)).'</span>',
|
||||||
|
]).'</span>.
|
||||||
|
</div><hr>';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
@ -148,7 +157,7 @@ echo '
|
|||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
<button type="submit" class="btn btn-primary"><i class="fa fa-chevron-right"></i> '.tr('Procedi').'</button>
|
<button type="submit" class="btn btn-primary" id="btn_procedi" ><i class="fa fa-chevron-right"></i> '.tr('Procedi').'</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -167,6 +176,7 @@ echo '
|
|||||||
get_prezzi();
|
get_prezzi();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$("#scadenza").change(function(){
|
$("#scadenza").change(function(){
|
||||||
caricaCadenza();
|
caricaCadenza();
|
||||||
});
|
});
|
||||||
@ -181,6 +191,20 @@ echo '
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function controlloProcedi(){
|
||||||
|
var len = 0;
|
||||||
|
$(this).change(function() {
|
||||||
|
|
||||||
|
len = $("input[type=checkbox]:checked.check_periodo").length;
|
||||||
|
|
||||||
|
if (len>0){
|
||||||
|
$("#btn_procedi").removeClass("disabled");
|
||||||
|
}else{
|
||||||
|
$("#btn_procedi").addClass("disabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function selezionaTutto(){
|
function selezionaTutto(){
|
||||||
var check = 0;
|
var check = 0;
|
||||||
@ -192,6 +216,17 @@ echo '
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#total_check").html("Rate: " + check).trigger("change");
|
$("#total_check").html("Rate: " + check).trigger("change");
|
||||||
|
$(".num_rate").html(check).trigger("change");
|
||||||
|
|
||||||
|
var qta_disponibili = 0;
|
||||||
|
$(".alert_rate").each(function (){
|
||||||
|
qta_disponibili = parseFloat($(this).find(".qta_disponibili").text());
|
||||||
|
if (check > qta_disponibili ){
|
||||||
|
$(this).removeClass("hide");
|
||||||
|
}else{
|
||||||
|
$(this).addClass("hide");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deselezionaTutto(){
|
function deselezionaTutto(){
|
||||||
@ -204,6 +239,18 @@ echo '
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#total_check").html("Rate: " + check).trigger("change");
|
$("#total_check").html("Rate: " + check).trigger("change");
|
||||||
|
$(".num_rate").html(check).trigger("change");
|
||||||
|
|
||||||
|
var qta_disponibili = 0;
|
||||||
|
$(".alert_rate").each(function (){
|
||||||
|
qta_disponibili = parseFloat($(this).find(".qta_disponibili").text());
|
||||||
|
if (check > qta_disponibili ){
|
||||||
|
$(this).removeClass("hide");
|
||||||
|
}else{
|
||||||
|
$(this).addClass("hide");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(".qta_fattura").change(function(){
|
$(".qta_fattura").change(function(){
|
||||||
@ -232,12 +279,14 @@ echo '
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#cadenza_fatturazione").change(function(){
|
$("#cadenza_fatturazione").change(function(event){
|
||||||
|
event.preventDefault();
|
||||||
if( $(this).val()=="Giorno" ){
|
if( $(this).val()=="Giorno" ){
|
||||||
$("#div_giorno_fisso").show();
|
$("#giorno_fisso").prop("required", true);
|
||||||
|
input("giorno_fisso").enable();
|
||||||
}else{
|
}else{
|
||||||
$("#giorno_fisso").selectReset();
|
$("#giorno_fisso").prop("required", false);
|
||||||
$("#div_giorno_fisso").hide();
|
input("giorno_fisso").disable();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ echo '
|
|||||||
echo '
|
echo '
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<label for="m_'.$count.'">
|
<label for="m_'.$count.'">
|
||||||
<input type="checkbox" class="unblockable" id="m_'.$count.'" name="selezione_periodo['.$count.']" '.$checked.' />
|
<input type="checkbox" onchange="controlloProcedi();" class="unblockable check_periodo" id="m_'.$count.'" name="selezione_periodo['.$count.']" '.$checked.' />
|
||||||
'.ucfirst($data_corrente->formatLocalized('%B %Y')).'
|
'.ucfirst($data_corrente->formatLocalized('%B %Y')).'
|
||||||
</label>
|
</label>
|
||||||
<input type="hidden" name="periodo['.$count.']" value="'.$data.'">
|
<input type="hidden" name="periodo['.$count.']" value="'.$data.'">
|
||||||
@ -89,6 +89,18 @@ echo '
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("#total_check").html("Rate: " + check).trigger("change");
|
$("#total_check").html("Rate: " + check).trigger("change");
|
||||||
|
$(".num_rate").html(check).trigger("change");
|
||||||
|
|
||||||
|
var qta_disponibili = 0;
|
||||||
|
$(".alert_rate").each(function (){
|
||||||
|
qta_disponibili = parseFloat($(this).find(".qta_disponibili").text());
|
||||||
|
if (check > qta_disponibili ){
|
||||||
|
$(this).removeClass("hide");
|
||||||
|
}else{
|
||||||
|
$(this).addClass("hide");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#periodi input").change(function(){
|
$("#periodi input").change(function(){
|
||||||
@ -99,5 +111,17 @@ echo '
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("#total_check").html("Rate: " + check).trigger("change");
|
$("#total_check").html("Rate: " + check).trigger("change");
|
||||||
|
$(".num_rate").html(check).trigger("change");
|
||||||
|
|
||||||
|
var qta_disponibili = 0;
|
||||||
|
$(".alert_rate").each(function (){
|
||||||
|
qta_disponibili = parseFloat($(this).find(".qta_disponibili").text());
|
||||||
|
if (check > qta_disponibili ){
|
||||||
|
$(this).removeClass("hide");
|
||||||
|
}else{
|
||||||
|
$(this).addClass("hide");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
@ -117,7 +117,7 @@ if (!$pianificazioni->isEmpty()) {
|
|||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
<i class="fa fa-info-circle"></i> '.tr('Pianificazione della fatturazione non impostata per questo contratto').'.
|
<i class="fa fa-info-circle"></i> '.tr('Nessuna pianificazione della fatturazione impostata per questo contratto').'.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="button" '.(!empty($is_pianificabile) ? '' : 'disabled').' title="'.tr('Aggiungi una nuova pianificazione').'" data-toggle="tooltip" class="btn btn-primary pull-right tip" id="pianifica">
|
<button type="button" '.(!empty($is_pianificabile) ? '' : 'disabled').' title="'.tr('Aggiungi una nuova pianificazione').'" data-toggle="tooltip" class="btn btn-primary pull-right tip" id="pianifica">
|
||||||
|
@ -115,7 +115,7 @@ if (!empty($impianti)) {
|
|||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" class="text-left" >'.tr('Matricola').': <b>'.$impianti[$i]['matricola'].'</b></td>
|
<td colspan="2" class="text-left" >'.tr('Matricola').': <b>'.$impianti[$i]['matricola'].'</b></td>
|
||||||
<td colspan="2" class="text-left" >'.tr('Data').': <b>'.Translator::dataToLocale($impianti[$i]['data']).'</b></td>
|
<td colspan="2" class="text-left" >'.tr('Data').': <b>'.Translator::dateToLocale($impianti[$i]['data']).'</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4" class="text-left" >'.tr('Nome').': <b>'.$impianti[$i]['nome'].'</b></td>
|
<td colspan="4" class="text-left" >'.tr('Nome').': <b>'.$impianti[$i]['nome'].'</b></td>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($options['hide_header']) {
|
if ($options['hide-header']) {
|
||||||
echo '
|
echo '
|
||||||
<!-- Intestazione vuota fornitore -->
|
<!-- Intestazione vuota fornitore -->
|
||||||
<div class="row" style="height:111px;">
|
<div class="row" style="height:111px;">
|
||||||
|
@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
|
|||||||
if ($record['titolo'] != $prev_titolo && get('lev') == 1) {
|
if ($record['titolo'] != $prev_titolo && get('lev') == 1) {
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="4">'.$record['titolo'].'</th>
|
<th colspan="5">'.$record['titolo'].'</th>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,10 +22,13 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_documenti`\nINNER
|
|||||||
|
|
||||||
-- Task per l'eliminazione automatica della coda d'invio
|
-- Task per l'eliminazione automatica della coda d'invio
|
||||||
INSERT INTO `zz_tasks` (`id`, `name`, `class`, `expression`, `next_execution_at`, `last_executed_at`) VALUES
|
INSERT INTO `zz_tasks` (`id`, `name`, `class`, `expression`, `next_execution_at`, `last_executed_at`) VALUES
|
||||||
(NULL, 'Eliminazione automatica coda d\'invio', 'Modules\\StatoEmail\\EliminaMailTask', '0 */4 * * *', NULL, NULL);
|
(NULL, "Eliminazione automatica coda d'invio", 'Modules\\StatoEmail\\EliminaMailTask', '0 */4 * * *', NULL, NULL);
|
||||||
|
|
||||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES
|
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES
|
||||||
(NULL, 'Numero di giorni mantenimento coda di invio', '0', 'integer', 1, 'Mail', 1, NULL);
|
(NULL, 'Numero di giorni mantenimento coda di invio', '0', 'integer', 1, 'Mail', 1, NULL);
|
||||||
|
|
||||||
-- Plugin contratti del cliente
|
-- Plugin contratti del cliente
|
||||||
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Contratti del cliente', 'Contratti del cliente', '2', '2', 'tab', 'contratti_cliente.php', '1', '0', '0', '', '', NULL, NULL, '', '');
|
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Contratti del cliente', 'Contratti del cliente', '2', '2', 'tab', 'contratti_cliente.php', '1', '0', '0', '', '', NULL, NULL, '', '');
|
||||||
|
|
||||||
|
-- Aggiunto campo descrizione (facoltativo) in gestione documentale
|
||||||
|
ALTER TABLE `do_documenti` ADD `descrizione` TEXT NULL AFTER `nome`;
|
Loading…
x
Reference in New Issue
Block a user