Migrazione parziale ad AdminLTE 3

This commit is contained in:
Pek5892 2024-05-16 18:02:50 +02:00
parent c2a740920c
commit e6fa02d41a
202 changed files with 2140 additions and 2197 deletions

View File

@ -62,6 +62,10 @@ $(document).ready(function(){
last = form.find(".box").last();
}
if (!last.length) {
last = form.find(".card").last();
}
if (!last.length) {
last = form.find(".row").eq(-2);
}

View File

@ -168,7 +168,7 @@ if (!empty($query)) {
// Icona
elseif (preg_match('/^icon_(.+?)$/', trim($field), $m)) {
$value = '<span class=\'label text-black\' style=\'font-weight:normal;\' ><i class="'.$r[$field].'" title="'.$r['icon_title_'.$m[1]].'" ></i> <span>'.$r['icon_title_'.$m[1]].'</span></span>';
$value = '<span class=\'badge text-black\' style=\'font-weight:normal;\' ><i class="'.$r[$field].'" title="'.$r['icon_title_'.$m[1]].'" ></i> <span>'.$r['icon_title_'.$m[1]].'</span></span>';
}
// Colore del testo

View File

@ -70,10 +70,9 @@ a.disabled {
#progress .progress-bar span {
position: absolute;
top: 2px;
left: 47%;
color: #a20;
font-weight: bold;
display: inline-block;
width: 100%;
text-align: center;
}
input[type=file] {
@ -149,7 +148,7 @@ input[type=file] {
}
.navbar a:hover,
.logo:hover,
.brand-link:hover,
.alert a,
.alert a:hover,
a:hover,
@ -175,6 +174,11 @@ a:focus {
margin: 7% auto
}
.card-center-large {
width: 1000px;
margin: 7% auto
}
.box-center .box-body,
.box-center-large .box-body {
padding: 20px;
@ -246,7 +250,7 @@ a:focus {
background: transparent url(../img/ajax-loader.gif) top left no-repeat;
}
body .header .logo {
body .header .brand-link {
font-family: inherit;
}
@ -312,20 +316,18 @@ span.form-control {
}
.input-group-addon {
padding: 0px 12px;
padding: 3px 12px;
}
.colorpicker {
margin-top: 0;
}
#pulsanti.affix {
#pulsanti {
top: 0;
padding: 10px 0;
width: 100%;
z-index: 800;
background: #fff;
border-bottom: 3px solid #ddd;
padding: 6px;
z-index: 1;
background: #f6f6f6;
}
@ -333,6 +335,7 @@ span.form-control {
.widget li {
margin-left: 0;
padding-top:10px;
list-style-type: none;
height: 106px;
}
@ -411,8 +414,8 @@ span.form-control {
height: 30px;
position: absolute;
margin-left: -30px;
bottom: 7px;
right: 17px;
bottom: 1px;
right: 15px;
float: right;
display: block;
overflow: hidden;
@ -427,12 +430,10 @@ span.form-control {
.info-box-icon i {
color: #fff;
}
.progress-description,
.info-box-text {
.progress-description {
white-space: normal;
overflow: auto;
font-size: 12px;
font-size: 1rem;
}
.colorpicker,
@ -484,14 +485,6 @@ span.form-control {
box-shadow: 0 0 5px rgba(0, 0, 0, 0.02) inset;
}
/*.sidebar-menu li > a > .pull-right-container {
position: absolute;
padding: 12px;
right: 10px;
top: 50%;
margin-top: -19px;
}*/
.sidebar-form {
border-radius: 3px;
margin: 10px 10px;
@ -536,14 +529,6 @@ span.form-control {
display: none
}
.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice {
margin: 2px 0 0 2px;
}
.select2-container--bootstrap .select2-selection--single .select2-selection__rendered {
padding: 4px;
}
.input-group-addon.no-padding {
border: 0px;
}
@ -915,9 +900,9 @@ input.small-width {
max-height: 20px;
}
.logo-image {
max-width: 320px;
max-height: 60px;
.brand-link {
max-width: 150px;
max-height: 100px;
}
.has-feedback .form-control {
@ -967,10 +952,6 @@ div.tip {
display: none;
}
.checkbox-group input[type="checkbox"]+.btn-group>label span {
/*width: 20px;*/
}
.checkbox-group input[type="checkbox"]+.btn-group {
width: 100%;
display: flex;
@ -1012,6 +993,15 @@ div.tip {
color: #888;
}
.control-sidebar > ul {
display: block;
}
.hide {
display: none;
}
/* Fix stile */
.skin-default .nav.navbar-nav li a {
color: #FFFFFF;
@ -1065,6 +1055,14 @@ div.tip {
padding: 2px;
}
.table {
padding: .5 rem !important;
}
table.dataTable {
border-collapse: collapse !important;
}
.alert-warning {
background-color: #EC971F !important;
}
@ -1098,14 +1096,6 @@ div.tip {
margin-top: 4px;
}
/*
* Spunta checkbox viste
*/
/*table.dataTable>tbody>tr.selected>td.select-checkbox::after,
table.dataTable>tbody>tr.selected>th.select-checkbox::after {
margin-top: -25px;
}*/
.btn-group>.btn-xs>input[type="checkbox"], .label>input[type="checkbox"] {
margin: 2px 0px;
}
@ -1203,7 +1193,7 @@ kbd{
margin-top: 20px
}
.main-header .logo {
.main-header .brand-link {
display: none;
}
}
@ -1259,12 +1249,14 @@ kbd{
@media screen and (min-width: 1140px) {
.with-control-sidebar {
margin-right: 230px;
margin-right: 150px;
}
.control-sidebar-open {
right: 0;
display: block !important;
width: 150px !important;
top: calc(5rem) !important;
}
.control-sidebar.control-sidebar-open,
@ -1272,13 +1264,8 @@ kbd{
right: 0;
}
.control-sidebar-toggle {
/*display: none !important;*/
}
}
/*
* Component: Sidebar Mini
*/

View File

@ -62,7 +62,7 @@ $(document).ready(function () {
});
// Fix per la visualizzazione di Datatables all'interno dei tab Bootstrap
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$('a[data-widget="tab"]').on('shown.bs.tab', function (e) {
$($.fn.dataTable.tables(true)).DataTable().columns.adjust();
$($.fn.dataTable.tables(true)).DataTable().scroller.measure();
});

View File

@ -17,31 +17,9 @@
*/
$(document).ready(function () {
// Fix per il menu principale
$('.sidebar-menu').tree({
followLink: true,
});
$('.sidebar-menu > li.treeview i.fa-angle-left').click(function (e) {
e.preventDefault();
$(this).find('ul').stop().slideDown();
});
$('.sidebar-menu > li.treeview i.fa-angle-down').click(function (e) {
e.preventDefault();
$(this).find('ul').stop().slideUp();
});
const elenco_menu = $('.treeview-menu > li.active');
for (i = 0; i < elenco_menu.length; i++) {
const elemento = $(elenco_menu[i]);
elemento.parent().show().parent().addClass('active');
elemento.parent().parent().find('i.fa-angle-left').removeClass('fa-angle-left').addClass('fa-angle-down');
}
// Menu ordinabile
if (!globals.is_mobile) {
const menu = sortable(".sidebar-menu", {
const menu = sortable(".nav-sidebar", {
axis: "y",
cursor: "move",
dropOnEmpty: true,
@ -50,7 +28,7 @@ $(document).ready(function () {
if (menu) {
menu.addEventListener("sortupdate", function (e) {
let order = $(".sidebar-menu > .treeview[data-id]").toArray().map(a => $(a).data("id"))
let order = $(".nav-sidebar > .nav-item[data-id]").toArray().map(a => $(a).data("id"))
$.post(globals.rootdir + "/actions.php", {
id_module: globals.order_manager_id,

View File

@ -52,7 +52,7 @@ $(document).ready(function () {
// Trasformazione risultati in formato leggibile
const results = data.map(function (result) {
return {
label: result.label ? result.label : '<h4>' + result.title + '</h4>' + result.labels
label: result.badge ? result.badge : '<h4>' + result.title + '</h4>' + result.badges
.join('').split('<br/>,').join('<br/>'),
group: result.category,
link: result.link,
@ -87,8 +87,8 @@ $(document).ready(function () {
},
render: function(item, currentValue){
const itemElement = document.createElement("div");
itemElement.innerHTML = item.label;
// <a href='" + item.link + "' title='Clicca per aprire'><b>" + item.value + "</b><br/>" + item.label + "</a>
itemElement.innerHTML = item.badge;
// <a href='" + item.link + "' title='Clicca per aprire'><b>" + item.value + "</b><br/>" + item.badge + "</a>
return itemElement;
}
});

View File

@ -322,7 +322,7 @@ function impostaCategorieAllegatiDisponibili(gestione, categorie) {
update(results);
},
onSelect: function (item) {
input.value = item.label;
input.value = item.badge;
},
});
}

View File

@ -291,7 +291,7 @@ function initComplete(settings) {
forceSearch = true;
}
$('<br><input type="text" style="width:100%" class="form-control' + (value ? ' input-searching' : '') + '" placeholder="' + globals.translations.filter + '..." value="' + value.replace(/"/g, '&quot;') + '"><i class="deleteicon fa fa-times fa-2x' + (value ? '' : ' hide') + '"></i>')
$('<br><input type="text" style="width:100%" class="form-control' + (value ? ' input-searching' : '') + '" placeholder="' + globals.translations.filter + '..." value="' + value.replace(/"/g, '&quot;') + '"><i class="deleteicon fa fa-times ' + (value ? '' : ' hide') + '"></i>')
.appendTo(column.header())
.on('keyup', function (e) {
clearInterval(tempo);

View File

@ -173,11 +173,11 @@ function updateHook(hook) {
if (number == 0) {
$("#hooks-notified").html('<i class="fa fa-check" aria-hidden="true"></i>');
$("#hooks-label").removeClass();
$("#hooks-label").addClass('label').addClass('label-success');
$("#hooks-label").addClass('badge').addClass('badge-success');
} else {
$("#hooks-notified").text(number);
$("#hooks-label").removeClass();
$("#hooks-label").addClass('label').addClass('label-danger');
$("#hooks-label").addClass('badge').addClass('badge-danger');
}
if (counter == $("#hooks-number").text()) {

View File

@ -19,7 +19,6 @@
function init() {
// Inizializzazzione dei box AdminLTE
$('.box').boxWidget();
// Modal di default
$('[data-href]').not('.ask, .bound').click(function () {
launch_modal($(this).data('title'), $(this).data('href'), 1);

View File

@ -49,14 +49,14 @@ if ($segmenti) {
echo '
<div class="nav-tabs-custom">
<ul class="nav nav-tabs pull-right" id="tabs" role="tablist">
<li class="pull-left active header">
<a data-toggle="tab" href="#tab_0">
<li class="pull-left active header nav-item">
<a class="nav-link" data-widget="tab" href="#tab_0" >
<i class="'.$structure['icon'].'"></i> '.$structure->getTranslation('title');
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
if ($structure->hasAddFile() && $structure->permission == 'rw') {
echo '
<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
<br><button type="button" class="btn btn-primary" data-widget="modal" data-title="'.tr('Aggiungi').'..." data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
}
echo '
@ -68,8 +68,8 @@ $plugins = Plugin::where('idmodule_to', $id_module)->where('position', 'tab_main
// Tab dei plugin
foreach ($plugins as $plugin) {
echo '
<li>
<a data-toggle="tab" href="#tab_'.$plugin->id.'" id="link-tab_'.$plugin->id.'">'.$plugin->getTranslation('title').'</a>
<li class="nav-item">
<a class="nav-link" data-widget="tab" href="#tab_'.$plugin->id.'" id="link-tab_'.$plugin->id.'">'.$plugin->getTranslation('title').'</a>
</li>';
}

View File

@ -109,15 +109,15 @@ if (empty($record) || !$has_access) {
echo '
<div class="nav-tabs-custom">
<ul class="nav nav-tabs pull-right" id="tabs" role="tablist">
<ul class="nav nav-tabs nav-item" id="tabs" role="tablist">
<li class="pull-left active header">
<a data-toggle="tab" href="#tab_0">
<i class="'.$structure['icon'].'"></i> '.$structure->getTranslation('title');
<a data-widget="tab" href="#tab_0" class="nav-link">
<i class="'.$structure['icon'].'"></i> '.$structure->getTranslation('title');
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
if ($structure->hasAddFile() && $structure->permission == 'rw') {
echo '
<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
<button type="button" class="btn btn-primary" data-widget="modal" data-title="'.tr('Aggiungi').'..." data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
}
echo '
@ -126,13 +126,13 @@ if (empty($record) || !$has_access) {
echo '
<li class="control-sidebar-toggle">
<a style="cursor: pointer">'.tr('Plugin').'</a>
<li class="control-sidebar-toggle nav-item">
<a class="nav-link" style="cursor: pointer">'.tr('Plugin').'</a>
</li>
</ul>
<div class="tab-content">
<div id="tab_0" class="tab-pane active">';
<div id="tab_0" class="tab-pane active nav-item">';
if (!empty($record['deleted_at'])) {
$operation = $dbo->fetchOne("SELECT zz_operations.created_at, username FROM zz_operations INNER JOIN zz_users ON zz_operations.id_utente = zz_users.id WHERE op='delete' AND id_module=".prepare($id_module).' AND id_record='.prepare($id_record).' ORDER BY zz_operations.created_at DESC');
@ -162,88 +162,65 @@ if (empty($record) || !$has_access) {
}
// Pulsanti di default
echo '
<div id="pulsanti">
<a class="btn btn-warning" id="back" href="'.base_path().'/controller.php?id_module='.$id_module.'">
<i class="fa fa-chevron-left"></i> '.tr("Torna all'elenco").'
</a>
echo '
<div class="pull-right">
{( "name": "button", "type": "print", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}
<div id="pulsanti">
<a class="btn btn-default" id="back" href="'.base_path().'/controller.php?id_module='.$id_module.'">
<i class="fa fa-chevron-left"></i> '.tr("Torna all'elenco").'
</a>
{( "name": "button", "type": "email", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
<div class="float-right d-none d-sm-inline">
{( "name": "button", "type": "print", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}
{( "name": "button", "type": "email", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
if (Module::find((new Module())->getByField('title', 'Account SMS', Models\Locale::getPredefined()->id))) {
echo '
{( "name": "button", "type": "sms", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
echo '
{( "name": "button", "type": "sms", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}';
}
echo '
<div class="btn-group" id="save-buttons">
<a class="btn btn-success" id="'.(!empty($record['deleted_at']) ? 'restore' : 'save').'">
<i class="fa fa-'.(!empty($record['deleted_at']) ? 'undo' : 'check').'"></i> '.(!empty($record['deleted_at']) ? tr('Salva e ripristina') : tr('Salva')).'
<div class="btn-group" id="save-buttons">
<button type="button" class="btn btn-success" id="'.(!empty($record['deleted_at']) ? 'restore' : 'save').'">
<i class="fa fa-'.(!empty($record['deleted_at']) ? 'undo' : 'check').'"></i> '.(!empty($record['deleted_at']) ? tr('Salva e ripristina') : tr('Salva')).'
</button>
<button type="button" class="btn btn-success dropdown-toggle dropdown-icon" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu" role="menu">
<a class="dropdown-item" href="#" id="'.(!empty($record['deleted_at']) ? 'restore' : 'save').'-close">
<i class="fa fa-'.(!empty($record['deleted_at']) ? 'undo' : 'check-square-o').'"></i>
'.(!empty($record['deleted_at']) ? tr('Ripristina e chiudi') : tr('Salva e chiudi')).'
</a>
<a type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" id="'.(!empty($record['deleted_at']) ? 'restore' : 'save').'-close">
<i class="fa fa-'.(!empty($record['deleted_at']) ? 'undo' : 'check-square-o').'"></i>
'.(!empty($record['deleted_at']) ? tr('Ripristina e chiudi') : tr('Salva e chiudi')).'
</a></li>
</ul>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
var form = $("#module-edit").find("form").first();
<script>
$(document).ready(function(){
var form = $("#module-edit").find("form").first();
// Aggiunta del submit
form.prepend(\'<button type="submit" id="submit" class="hide"></button>\');
// Aggiunta del submit
form.prepend(\'<button type="submit" id="submit" class="hide"></button>\');
$("#save").click(function(){
//submitAjax(form);
$("#save").click(function(){
//submitAjax(form);
$("#submit").trigger("click");
});
$("#save-close").on("click", function (){
form.find("[name=backto]").val("record-list");
$("#submit").trigger("click");
});';
// Pulsanti dinamici
if (!isMobile()) {
echo '
$("#pulsanti").affix({
offset: {
top: 200
}
});
if ($("#pulsanti").hasClass("affix")) {
$("#pulsanti").css("width", $("#tab_0").css("width"));
}
$("#pulsanti").on("affix.bs.affix", function(){
$("#pulsanti").css("width", $("#tab_0").css("width"));
});
$("#pulsanti").on("affix-top.bs.affix", function(){
$("#pulsanti").css("width", "100%");
});';
}
echo '
$("#submit").trigger("click");
});
</script>
<div class="clearfix"></div>
<br>';
$("#save-close").on("click", function (){
form.find("[name=backto]").val("record-list");
$("#submit").trigger("click");
});
});
</script>
<div class="clearfix"></div>
<br>';
// Pulsanti personalizzati
$buttons = $structure->filepath('buttons.php');
@ -253,12 +230,12 @@ if (empty($record) || !$has_access) {
$buttons = ob_get_clean();
echo '
<div class="pull-right" id="pulsanti-modulo">
'.$buttons.'
</div>
<div class="float-right d-none d-sm-inline" id="pulsanti-modulo">
'.$buttons.'
</div>
<div class="clearfix"></div>
<br>';
<div class="clearfix"></div>
<br>';
// Eventuale header personalizzato
$header = $structure->filepath('header.php');
if ($header) {
@ -269,7 +246,7 @@ if (empty($record) || !$has_access) {
// Contenuti del modulo
echo '
<div id="module-edit">';
<div id="module-edit">';
$path = $structure->getEditFile();
if (!empty($path)) {
@ -277,73 +254,73 @@ if (empty($record) || !$has_access) {
}
echo '
</div>
</div>';
</div>
</div>';
// Campi personalizzati
echo '
<div class="hide" id="custom_fields_top-edit_'.$id_module.'-'.$id_plugin.'">
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "top" )}
</div>
<div class="hide" id="custom_fields_top-edit_'.$id_module.'-'.$id_plugin.'">
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "top" )}
</div>
<div class="hide" id="custom_fields_bottom-edit_'.$id_module.'-'.$id_plugin.'">
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}
</div>
<div class="hide" id="custom_fields_bottom-edit_'.$id_module.'-'.$id_plugin.'">
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}
</div>
<script>
$(document).ready(function(){
let form = $("#edit-form").first();
<script>
$(document).ready(function(){
let form = $("#edit-form").first();
// Ultima sezione/campo del form
let last = form.find(".panel").last();
// Ultima sezione/campo del form
let last = form.find(".panel").last();
if (!last.length) {
last = form.find(".box").last();
}
if (!last.length) {
last = form.find(".box").last();
}
if (!last.length) {
last = form.find(".row").eq(-2);
}
if (!last.length) {
last = form.find(".row").eq(-2);
}
// Campi a inizio form
aggiungiContenuto(form, "#custom_fields_top-edit_'.$id_module.'-'.$id_plugin.'", {}, true);
// Campi a inizio form
aggiungiContenuto(form, "#custom_fields_top-edit_'.$id_module.'-'.$id_plugin.'", {}, true);
// Campi a fine form
aggiungiContenuto(last, "#custom_fields_bottom-edit_'.$id_module.'-'.$id_plugin.'", {});
});
</script>';
// Campi a fine form
aggiungiContenuto(last, "#custom_fields_bottom-edit_'.$id_module.'-'.$id_plugin.'", {});
});
</script>';
if ($structure->permission != '-' && $structure->use_notes && $user->gruppo != 'Clienti') {
echo '
<div id="tab_note" class="tab-pane">';
<div id="tab_note" class="tab-pane">';
include base_dir().'/plugins/notes.php';
echo '
</div>';
</div>';
}
if ($structure->permission != '-' && $structure->use_checklists) {
echo '
<div id="tab_checks" class="tab-pane">';
<div id="tab_checks" class="tab-pane">';
include base_dir().'/plugins/checks.php';
echo '
</div>';
</div>';
}
// Informazioni sulle operazioni
if (Auth::admin()) {
echo '
<div id="tab_info" class="tab-pane">';
<div id="tab_info" class="tab-pane">';
$operations = $dbo->fetchArray('SELECT `zz_operations`.*, `zz_users`.`username` FROM `zz_operations` LEFT JOIN `zz_users` ON `zz_operations`.`id_utente` = `zz_users`.`id` WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record).' ORDER BY `created_at` DESC LIMIT 200');
if (!empty($operations)) {
echo '
<ul class="timeline">';
<ul class="timeline">';
foreach ($operations as $operation) {
$description = $operation['op'];
@ -382,42 +359,42 @@ if (empty($record) || !$has_access) {
}
echo '
<li '.$timeline_class.'>
<div class="timeline-badge '.$color.'"><i class="fa fa-'.$icon.'"></i></div>
<div class="timeline-panel">
<div class="timeline-heading">
<div class="row">
<div class="col-md-8">
<h4 class="timeline-title">'.$description.'</h4>
</div>
<div class="col-md-4 text-right">
<p><small class="label label-default tip" title="'.Translator::timestampToLocale($operation['created_at']).'"><i class="fa fa-clock-o"></i> '.Carbon::parse($operation['created_at'])->diffForHumans().'</small></p>
<p><small class="label label-default"><i class="fa fa-user"></i> '.$operation['username'].'</small></p>
</div>
<li '.$timeline_class.'>
<div class="timeline-badge '.$color.'"><i class="fa fa-'.$icon.'"></i></div>
<div class="timeline-panel">
<div class="timeline-heading">
<div class="row">
<div class="col-md-8">
<h4 class="timeline-title">'.$description.'</h4>
</div>
<div class="col-md-4 text-right">
<p><span class="right badge badge-default tip" title="'.Translator::timestampToLocale($operation['created_at']).'"><i class="fa fa-clock-o"></i> '.Carbon::parse($operation['created_at'])->diffForHumans().'</small></p>
<p><span class="right badge badge-default"><i class="fa fa-user"></i> '.$operation['username'].'</small></p>
</div>
</div>
<div class="timeline-body">
</div>
<div class="timeline-footer">
</div>
</div>
</li>';
<div class="timeline-body">
</div>
<div class="timeline-footer">
</div>
</div>
</li>';
}
echo '
</ul>';
</ul>';
} else {
echo '
<div class="alert alert-info">
<i class="fa fa-info-circle"></i>
<b>'.tr('Informazione:').'</b> '.tr('Nessun log disponibile per questa scheda').'.
</div>';
<div class="alert alert-info">
<i class="fa fa-info-circle"></i>
<b>'.tr('Informazione:').'</b> '.tr('Nessun log disponibile per questa scheda').'.
</div>';
}
echo '
</div>';
</div>';
}
// Plugin
@ -426,21 +403,21 @@ if (empty($record) || !$has_access) {
$record = $module_record;
echo '
<div id="tab_'.$plugin['id'].'" class="tab-pane">';
<div id="tab_'.$plugin['id'].'" class="tab-pane">';
$id_plugin = $plugin['id'];
include base_dir().'/include/manager.php';
echo '
</div>';
</div>';
}
$record = $module_record;
echo '
</div>
</div>';
</div>
</div>';
}
redirectOperation($id_module, !empty($id_parent) ? $id_parent : $id_record);
@ -450,10 +427,10 @@ echo '{( "name": "widgets", "id_module": "'.$id_module.'", "id_record": "'.$id_r
if (!empty($record)) {
echo '
<hr>
<a class="btn btn-default" href="'.base_path().'/controller.php?id_module='.$id_module.'">
<i class="fa fa-chevron-left"></i> '.tr('Indietro').'
</a>';
<hr>
<a class="btn btn-default" href="'.base_path().'/controller.php?id_module='.$id_module.'">
<i class="fa fa-chevron-left"></i> '.tr('Indietro').'
</a>';
}
echo '
@ -467,7 +444,7 @@ if ($read_only || !empty($block_edit)) {
$(document).ready(function(){
$("input, textarea, select", "section.content")'.$not.'.attr("readonly", "true");
$("select, input[type=checkbox]", "section.content")'.$not.'.prop("disabled", true);
$(".checkbox-buttons label", "section.content")'.$not.'.addClass("disabled");
$(".checkbox-buttons badge", "section.content")'.$not.'.addClass("disabled");
';
// Nascondo il plugin Note interne ai clienti

View File

@ -124,6 +124,7 @@ const JS = gulp.parallel(() => {
'leaflet-gesture-handling/dist/leaflet-gesture-handling.min.js',
'ismobilejs/dist/isMobile.min.js',
'ua-parser-js/dist/ua-parser.min.js',
'popper.js/dist/umd/popper.js',
];
for (const i in vendor) {
@ -225,15 +226,15 @@ function srcCSS() {
.pipe(gulp.dest(config.production + '/' + config.paths.css));
const themes = gulp.src([
config.development + '/' + config.paths.css + '/themes/*.{css,scss,less,styl}',
config.nodeDirectory + '/admin-lte/dist/css/skins/_all-skins.min.css',
])
.pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus()))))
.pipe(autoprefixer())
.pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css)))
.pipe(concat('themes.min.css'))
.pipe(flatten())
.pipe(gulp.dest(config.production + '/' + config.paths.css));
config.development + '/' + config.paths.css + '/themes/*.{css,scss,less,styl}',
config.nodeDirectory + '/admin-lte/dist/css/adminlte.min.css',
])
.pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus()))))
.pipe(autoprefixer())
.pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css)))
.pipe(concat('themes.min.css'))
.pipe(flatten())
.pipe(gulp.dest(config.production + '/' + config.paths.css));
return merge(css, print, themes);
}
@ -307,11 +308,11 @@ const fonts = gulp.parallel(() => {
'font-awesome/fonts/fontawesome-webfont.woff',
'font-awesome/fonts/fontawesome-webfont.woff2',
'font-awesome/fonts/FontAwesome.otf',
'bootstrap/dist/fonts/glyphicons-halflings-regular.eot',
'bootstrap/dist/fonts/glyphicons-halflings-regular.svg',
'bootstrap/dist/fonts/glyphicons-halflings-regular.ttf',
'bootstrap/dist/fonts/glyphicons-halflings-regular.woff',
'bootstrap/dist/fonts/glyphicons-halflings-regular.woff2',
'select2-bootstrap-theme/docs/fonts/glyphicons-halflings-regular.eot',
'select2-bootstrap-theme/docs/fonts/glyphicons-halflings-regular.svg',
'select2-bootstrap-theme/docs/fonts/glyphicons-halflings-regular.ttf',
'select2-bootstrap-theme/docs/fonts/glyphicons-halflings-regular.woff',
'select2-bootstrap-theme/docs/fonts/glyphicons-halflings-regular.woff2',
'../assets/src/css/fonts/sourcesanspro-regular-webfont.eot',
'../assets/src/css/fonts/sourcesanspro-regular-webfont.svg',
'../assets/src/css/fonts/sourcesanspro-regular-webfont.ttf',

View File

@ -30,8 +30,8 @@ echo '
$fields = $dbo->fetchArray('SELECT `zz_views`.*, (SELECT GROUP_CONCAT(`zz_groups_lang`.`title`) FROM `zz_group_view` INNER JOIN `zz_groups` ON `zz_group_view`.`id_gruppo` = `zz_groups`.`id` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `zz_group_view`.`id_vista` = `zz_views`.`id`) AS gruppi_con_accesso FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module`='.prepare($id_module).' ORDER BY `order` ASC');
foreach ($fields as $field) {
echo '
<div class="panel panel-default clickable col-md-4" data-id="'.$field['id'].'">
<div class="panel-body no-selection">
<div class="card card-default clickable col-md-4" data-id="'.$field['id'].'">
<div class="card-body no-selection">
<input type="checkbox" name="visibile" '.($field['visible'] ? 'checked' : '').'>
<span class="text-'.($field['visible'] ? 'success' : 'danger').'">'.$field['name'].'<br><small>( '.$field['gruppi_con_accesso'].')</small></span>
@ -48,8 +48,8 @@ echo '
<script>
// Abilitazione dinamica delle colonne
$("input[name=visibile]").change(function() {
let panel = $(this).closest(".panel[data-id]");
let id = panel.data("id");
let card = $(this).closest(".card[data-id]");
let id = card.data("id");
// Aggiornamento effettivo
$.post(globals.rootdir + "/actions.php", {
@ -60,7 +60,7 @@ echo '
});
// Aggiornamento grafico
let text = panel.find("span");
let text = card.find("span");
if ($(this).is(":checked")) {
text.removeClass("text-danger")
.addClass("text-success");
@ -83,7 +83,7 @@ echo '
dropOnEmpty: true,
scroll: true,
})[0].addEventListener("sortupdate", function(e) {
let order = $(".panel[data-id]").toArray().map(a => $(a).data("id"))
let order = $(".card[data-id]").toArray().map(a => $(a).data("id"))
console.log(order);
$.post(globals.rootdir + "/actions.php", {

View File

@ -501,7 +501,7 @@ function verificaScontoArticolo() {
}
div.css("margin-top", "-13px");
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>`);
div.html(` <span class="right badge badge-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>`);
}
/**
@ -609,7 +609,7 @@ function verificaMinimoVendita() {
div.css("margin-top", "-13px");
if (prezzo_unitario < minimo_vendita) {
if (input("blocca_minimo_vendita").get() == "0") {
div.html(`<p class="label-warning">'.tr('Attenzione:<br>valore inferiore al prezzo minimo di vendita ').'` + minimo_vendita.toLocale() + ` ` + globals.currency + `</p>`);
div.html(`<p class="badge-warning">'.tr('Attenzione:<br>valore inferiore al prezzo minimo di vendita ').'` + minimo_vendita.toLocale() + ` ` + globals.currency + `</p>`);
}
} else {
div.html("");
@ -617,7 +617,7 @@ function verificaMinimoVendita() {
if (prezzo_unitario <= minimo_vendita) {
if (input("blocca_minimo_vendita").get() == "1") {
prezzo_unitario_input.val(minimo_vendita);
div.html(`<p class="label-warning">'.tr('Attenzione:<br>non è possibile inserire un prezzo inferiore al prezzo minimo di vendita ').'` + minimo_vendita.toLocale() + ` ` + globals.currency + `</p>`);
div.html(`<p class="badge-warning">'.tr('Attenzione:<br>non è possibile inserire un prezzo inferiore al prezzo minimo di vendita ').'` + minimo_vendita.toLocale() + ` ` + globals.currency + `</p>`);
}
}
}

View File

@ -82,11 +82,11 @@ echo '
// Creazione fattura dal documento
if (!empty($options['create_document'])) {
echo '
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Nuovo documento').'</h3>
<div class="card card-warning">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Nuovo documento').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<input type="hidden" name="create_document" value="on" />
@ -213,11 +213,11 @@ if (in_array($final_module->getTranslation('title'), ['Fatture di vendita', 'Fat
}
echo '
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Opzioni generali delle righe').'</h3>
<div class="card card-info">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Opzioni generali delle righe').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
echo '
<div class="row">';
@ -281,12 +281,12 @@ if (!empty($options['serials'])) {
// Righe del documento
echo '
<div class="box box-success">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Righe da importare').'</h3>
<div class="card card-success">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Righe da importare').'</h3>
</div>
<table class="box-body table table-striped table-hover table-condensed">
<table class="card-body table table-striped table-hover table-condensed">
<thead>
<tr>
<th width="2%"><input id="import_all" type="checkbox" checked/></th>
@ -428,15 +428,15 @@ echo '
// Elenco righe evase completametne
if (!$righe_evase->isEmpty()) {
echo '
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Righe evase completamente').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Righe evase completamente').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<table class="box-body table table-striped table-hover table-condensed">
<table class="card-body table table-striped table-hover table-condensed">
<thead>
<tr>
<th>'.tr('Descrizione').'</th>

View File

@ -181,10 +181,10 @@ if ($options['dir'] == 'entrata') {
if (guadagno < 0) {
parent.addClass("has-error");
$(".table-margine").addClass("label-danger").removeClass("label-success");
$(".table-margine").addClass("badge-danger").removeClass("badge-success");
} else {
parent.removeClass("has-error");
$(".table-margine").removeClass("label-danger").addClass("label-success");
$(".table-margine").removeClass("badge-danger").addClass("badge-success");
}
}
@ -254,15 +254,15 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit
$confermato = $result['confermato'];
}
echo '
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Informazioni aggiuntive').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "date", "label": "'.tr('Data prevista evasione').'", "name": "data_evasione", "value": "'.$result['data_evasione'].'" ]}
@ -341,15 +341,15 @@ if (in_array($module->getTranslation('title'), ['Fatture di vendita', 'Fatture d
if (prezzo_unitario < 0) {
if (input("is_nota").get() == true) {
if (input("dir").get() == "entrata") {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
div.html(`<span class="right badge badge-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
} else {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
div.html(`<span class="right badge badge-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
}
} else {
if (input("dir").get() == "entrata") {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
div.html(`<span class="right badge badge-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
} else {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
div.html(`<span class="right badge badge-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
}
}
} else {
@ -368,12 +368,12 @@ if (in_array($module->getTranslation('title'), ['Fatture di vendita', 'Fatture d
div_margine.css("margin-top", "-20px");
div_prezzi.css("margin-top", "-20px");
div_prezzi.css("margin-bottom", "20px");
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div_margine.css("margin-top", "-20px");
div_prezzi.css("margin-top", "-20px");
div_prezzi.css("margin-bottom", "20px");
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Maggiorazione').'</small>`);
} else {
div_margine.css("margin-top", "0px");
div_prezzi.css("margin-top", "0px");

View File

@ -74,9 +74,9 @@ echo '
}
if (sconto > 0) {
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Maggiorazione').'</small>`);
} else {
div.html("");
}
@ -94,9 +94,9 @@ echo '
}
if (sconto > 0) {
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
div.html(`<span class="right badge badge-default" >'.tr('Maggiorazione').'</small>`);
} else {
div.html("");
}

View File

@ -141,11 +141,11 @@ if (!empty(post('db_host'))) {
$creation = file_put_contents('config.inc.php', $new_config);
if (!$creation) {
echo '
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Permessi di scrittura mancanti').'</h3>
<div class="card card-center card-danger card-solid text-center">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Permessi di scrittura mancanti').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
@ -160,14 +160,14 @@ if (!empty(post('db_host'))) {
<button class="btn btn-info"><i class="fa fa-repeat"></i> '.tr('Riprova').'</button>
</form>
<hr>
<div class="box box-default collapsed-box">
<div class="box-header with-border">
<h4 class="box-title"><a class="clickable" data-widget="collapse">'.tr('Creazione manuale').'...</a></h4>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card card-default collapsed-card">
<div class="card-header with-border">
<h4 class="card-title"><a class="clickable" data-widget="collapse">'.tr('Creazione manuale').'...</a></h4>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Inserire il seguente testo nel file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'</p>
@ -190,11 +190,11 @@ if (!empty(post('db_host'))) {
// Controlla che i parametri di configurazione permettano l'accesso al database
if ((file_exists('config.inc.php') || $valid_config) && !$dbo->isConnected()) {
echo '
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Impossibile connettersi al database').'</h3>
<div class="card card-center card-danger card-solid text-center">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Impossibile connettersi al database').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Si è verificato un errore durante la connessione al database').'.</p>
<p>'.tr('Controllare di aver inserito correttamente i dati di accesso, e che il database atto ad ospitare i dati del gestionale sia esistente').'.</p>
<a class="btn btn-info" href="'.base_path().'/index.php"><i class="fa fa-repeat"></i> '.tr('Riprova').'</a>
@ -208,11 +208,11 @@ $img = App::getPaths()['img'];
if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
if (file_exists('config.inc.php')) {
echo '
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Parametri non sufficienti!').'</h3>
<div class="card card-center card-danger card-solid text-center">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Parametri non sufficienti!').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr("L'avvio del software è fallito a causa dell'assenza di alcuni parametri nella configurazione di base").'.</p>
<p>'.tr("Si prega di controllare che il file _FILE_ contenga tutti i dati inseriti durante la configurazione iniziale (con l'eccezione di password e indirizzo email amministrativi)", [
'_FILE_' => '<b>config.inc.php</b>',
@ -305,12 +305,12 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
</script>';
echo '
<div class="box box-center-large box-warning">
<div class="box-header with-border text-center">
<div class="card card-center-large card-warning">
<div class="card-header with-border text-center">
<img src="'.$img.'/logo_completo.png" width="300" alt="'.tr('OSM Logo').'">
</div>
<div class="box-body" id="smartwizard">
<div class="card-body" id="smartwizard">
<span class="pull-right col-md-4">
<select class="form-control hide" id="language" required="1">';

View File

@ -129,27 +129,29 @@ $img = App::getPaths()['img'];
// Visualizzazione dell'interfaccia di impostazione iniziale, nel caso il file di configurazione sia mancante oppure i paramentri non siano sufficienti
echo '
<div class="box box-center-large box-warning">
<div class="box-header with-border text-center">
<div class="card card-center-large card-warning">
<div class="card-header text-center">
<img src="'.$img.'/logo_completo.png" class="logo-image" alt="'.tr('OSM Logo').'">
</div>
<div class="box-body">
<div class="card-body">
<form action="" method="post" id="init-form" enctype="multipart/form-data">
<input type="hidden" name="action" value="init">';
if (!$has_user) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Amministrazione').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Amministrazione').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Username').'", "name": "admin_username", "value": "", "placeholder": "'.tr("Imposta l'username dell'amministratore").'", "required": 1 ]}
<div class="form-group">
<label for="admin_username">'.tr('Username').'</label>
<input type="text" class="form-control" id="admin_username" name="admin_username" placeholder="'.tr("Imposta l'username dell'amministratore").'" required>
</div>
</div>
<div class="col-md-6">
@ -157,7 +159,10 @@ if (!$has_user) {
</div>
<div class="col-md-6">
{[ "type": "email", "label": "'.tr('Email').'", "name": "admin_email", "value": "", "placeholder": "'.tr("Imposta l'indirizzo email dell'amministratore").'", "required": 1 ]}
<div class="form-group">
<label for="admin_email">'.tr('Email').'</label>
<input type="email" class="form-control" id="admin_email" name="admin_email" placeholder="'.tr("Imposta l'indirizzo email dell'amministratore").'" required>
</div>
</div>
</div>
</div>
@ -166,13 +171,12 @@ if (!$has_user) {
if (!$has_azienda) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Azienda predefinita').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Azienda predefinita').'</h3>
</div>
<div class="panel-body" id="bs-popup">';
<div class="card-body" id="bs-popup">';
$idtipoanagrafica = (new Tipo())->getByField('title', 'Azienda', Models\Locale::getPredefined()->id);
$readonly_tipo = true;
@ -184,23 +188,26 @@ if (!$has_azienda) {
echo str_replace('</form>', '', $anagrafica);
echo '
<div class="box box-success collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Logo stampe').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-success collapsed-card">
<div class="card-header">
<h3 class="card-title">'.tr('Logo stampe').'</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body collapse">
<div class="card-body collapse">
<div class="col-md-12">
{[ "type": "file", "placeholder": "'.tr('File').'", "name": "blob" ]}
<div class="form-group">
<label>'.tr('File').'</label>
<input type="file" class="form-control" name="blob">
</div>
</div>
<p>&nbsp;</p><div class="col-md-12 alert alert-info text-center">'.tr('Per impostare il logo delle stampe, caricare un file ".jpg". Risoluzione consigliata 302x111 pixel').'.</div>
<p>&nbsp;</p>
<div class="col-md-12 alert alert-info text-center">'.tr('Per impostare il logo delle stampe, caricare un file ".jpg". Risoluzione consigliata 302x111 pixel').'.</div>
</div>
</div>';
@ -212,13 +219,12 @@ if (!$has_azienda) {
if (!$has_settings) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Impostazioni di base').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Impostazioni di base').'</h3>
</div>
<div class="panel-body">';
<div class="card-body">';
$i = 0;
foreach ($settings as $setting => $required) {
if (empty(setting($setting))) {
@ -240,19 +246,18 @@ if (!$has_settings) {
echo ' </div>
</div>';
}
echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-4">
<span>*<small><small>'.tr('Campi obbligatori').'</small></small></span>
</div>
<div class="col-md-4 text-right">
<button type="submit" id="config" class="btn btn-success btn-block">
<i class="fa fa-cog"></i> '.tr('Configura').'
</button>
</div>
<!-- PULSANTI -->
<div class="row">
<div class="col-md-4">
<span>*<small><small>'.tr('Campi obbligatori').'</small></small></span>
</div>
<div class="col-md-4 text-right">
<button type="submit" id="config" class="btn btn-success btn-block">
<i class="fa fa-cog"></i> '.tr('Configura').'
</button>
</div>
</div>
</form>
</div>

View File

@ -24,17 +24,17 @@ if ($config['maintenance_ip'] != $_SERVER['REMOTE_ADDR']) {
$img = App::getPaths()['img'];
echo '
<div class="box box-center-large box-danger">
<div class="box-header with-border text-center">
<div class="card card-center-large card-danger">
<div class="card-header with-border text-center">
<img src="'.$img.'/logo_completo.png" width="300" alt="'.tr('OSM Logo').'">
</div>
<div class="box-body">
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Manutenzione in corso!').'</h3>
<div class="card-body">
<div class="card card-center card-danger card-solid text-center">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Manutenzione in corso!').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Il software si trova attualmente in modalità manutenzione, siete pregati di attendere sino alla conclusione dell\'intervento').'.</p>
</div>
</div>

View File

@ -46,11 +46,11 @@ if (!$creation) {
file_put_contents('manifest.json', $manifest);
} else {
echo '
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Permessi di scrittura mancanti').'</h3>
<div class="card card-center card-danger card-solid text-center">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Permessi di scrittura mancanti').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', [
'_FILE_' => '<b>manifest.json</b>',
]).'</p>

View File

@ -451,7 +451,7 @@ $requirements = [
]) => $apache,
tr('PHP (_VERSION_ _SUPPORTED_)', [
'_VERSION_' => phpversion(),
'_SUPPORTED_' => ((version_compare(phpversion(), $settings['php_version']['minimum'], '>=') && version_compare(phpversion(), $settings['php_version']['maximum'], '<=')) ? '' : '<small><small class="label label-danger" ><i class="fa fa-warning"></i> '.tr('versioni supportate:').' '.$settings['php_version']['description'].'</small></small>'),
'_SUPPORTED_' => ((version_compare(phpversion(), $settings['php_version']['minimum'], '>=') && version_compare(phpversion(), $settings['php_version']['maximum'], '<=')) ? '' : '<small> <span class="right badge badge-danger" ><i class="fa fa-warning"></i> '.tr('versioni supportate:').' '.$settings['php_version']['description'].'</small></small>'),
]) => $php,
tr('DBMS (_TYPE_)', [
'_TYPE_' => method_exists($database, 'getType') ? $database->getType() : '',
@ -476,14 +476,14 @@ foreach ($requirements as $key => $values) {
}
echo '
<div class="box box-'.($general_status ? 'success collapsed-box' : 'danger').'">
<div class="box-header with-border">
<h3 class="box-title">'.$key.'</h3>';
<div class="card card-'.($general_status ? 'success collapsed-card' : 'danger').'">
<div class="card-header with-border">
<h3 class="card-title">'.$key.'</h3>';
if ($general_status) {
echo '
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>';
@ -491,7 +491,7 @@ foreach ($requirements as $key => $values) {
echo '
</div>
<div class="box-body no-padding">
<div class="card-body no-padding">
<table class="table">';
foreach ($values as $value) {

View File

@ -33,99 +33,99 @@ if (filter('action') == 'do_update') {
$result = Update::doUpdate($updateRate);
if (!empty($result)) {
// Aggiunta del messaggio generico riguardante l'aggiornamento
// Adding a generic message regarding the update
echo '
<script>
addVersion("'.$update['name'].'");
</script>';
<script>
addVersion("'.$update['name'].'");
</script>';
if (is_array($result)) {
// Aggiunta del messaggio riguardante la conclusione dell'aggiornamento del database
// Adding a message about the completion of the database update
if (!empty($update['sql']) && $result[1] == $result[2]) {
echo '
<script>
$("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Aggiornamento del database (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.sql</i>',
]).'</p>");
</script>';
<script>
$("#progress .info").html($("#progress .info").html() + "<p><i class=\"fa fa-check\"></i> '.tr('Aggiornamento del database (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.sql</i>',
]).'</p>");
</script>';
}
$rate = $result[1] - $result[0];
} elseif (!empty($update['script'])) {
// Aggiunta del messaggio riguardante la conclusione dello script
// Adding a message about the completion of the script
echo '
<script>
$("#progress .info").html($("#progress .info").html() + "<p>&nbsp;&nbsp;&nbsp;&nbsp;<i class=\"fa fa-check\"></i> '.tr('Esecuzione dello script di aggiornamento (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.php</i>',
]).'</p>");
</script>';
<script>
$("#progress .info").html($("#progress .info").html() + "<p><i class=\"fa fa-check\"></i> '.tr('Esecuzione dello script di aggiornamento (_FILENAME_)', [
'_FILENAME_' => '<i>'.$update['filename'].'.php</i>',
]).'</p>");
</script>';
$rate = $scriptValue;
}
// Aumento della percentuale di completamento totale
// Increasing the total completion percentage
if (!empty($rate)) {
echo '
<script>
addProgress('.$rate.');
</script>';
<script>
addProgress('.$rate.');
</script>';
}
echo '
<script>
$("#result").load("index.php?action=do_update&firstuse='.$_GET['firstuse'].'");
</script>';
<script>
$("#result").load("index.php?action=do_update&firstuse='.$_GET['firstuse'].'");
</script>';
} else {
// Fallimento
// Failure
echo '
<div class="alert alert-danger">
<i class="fa fa-times"></i> '.tr("Errore durante l'esecuzione dell'aggiornamento alla versione _VERSION_", [
'_VERSION_' => $update['version'],
]).'
</div>';
<div class="alert alert-danger">
<i class="fa fa-times"></i> '.tr("Errore durante l'esecuzione dell'aggiornamento alla versione _VERSION_", [
'_VERSION_' => $update['version'],
]).'
</div>';
}
}
// Aggiornamento completato
// Update completed
elseif (Update::isUpdateCompleted()) {
Update::updateCleanup();
echo '
<p><strong>'.tr('Aggiornamento completato').'</strong> 😃</p>
<script>
setPercent(100);
</script>';
// Istruzioni per la prima installazione
<p><strong>'.tr('Aggiornamento completato').'</strong> 😃</p>
<script>
setPercent(100);
</script>';
// Instructions for the first installation
if ($_GET['firstuse'] == 'true') {
echo '
<p class="text-danger">'.tr('Si consiglia di rimuovere i permessi di scrittura dal file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'.</p>';
<p class="text-danger">'.tr('Si consiglia di rimuovere i permessi di scrittura dal file _FILE_', [
'_FILE_' => '<b>config.inc.php</b>',
]).'.</p>';
}
echo '
<a class="btn btn-success btn-block" href="'.base_path().'">
<i class="fa fa-check"></i> '.tr('Continua').'
</a>';
<a class="btn btn-success btn-block" href="'.base_path().'">
<i class="fa fa-check"></i> '.tr('Continua').'
</a>';
}
exit;
} elseif (Update::isUpdateAvailable()) {
// Controllo se l'aggiornamento è in esecuzione
// Check if the update is in progress
if (Update::isUpdateLocked() && filter('force') != '1') {
$pageTitle = tr('Aggiornamento in corso!');
include_once App::filepath('include|custom|', 'top.php');
echo '
<div class="box box-center box-danger box-solid text-center">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Aggiornamento in corso!').'</h3>
<div class="card card-danger card-outline text-center">
<div class="card-header">
<h3 class="card-title">'.tr('Aggiornamento in corso!').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Il software si trova attualmente nella fase di aggiornamento, potrebbero volerci fino a 10 minuti, siete pregati di attendere sino alla sua conclusione').'.</p>
<p>'.tr("In caso di problemi rivolgersi all'amministratore di sistema o all'assistenza del gestionale").'.</p>
<a class="btn btn-info" href="'.base_path().'/index.php"><i class="fa fa-repeat"></i> '.tr('Riprova').'</a>
<a class="btn btn-info" href="'.base_path().'/index.php"><i class="fa fa-redo"></i> '.tr('Riprova').'</a>
</div>
</div>';
@ -142,11 +142,11 @@ if (filter('action') == 'do_update') {
include_once App::filepath('include|custom|', 'top.php');
echo '
<div class="box box-center-large box-warning text-center">
<div class="box-header with-border">
<h3 class="box-title">'.(!$dbo->isInstalled() ? tr('Installazione') : tr('Aggiornamento')).'</h3>
<div class="card card-warning card-center-large text-center">
<div class="card-header">
<h3 class="card-title">'.(!$dbo->isInstalled() ? tr('Installazione') : tr('Aggiornamento')).'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if (!$dbo->isInstalled()) {
echo '
<p><strong>'.tr("E' la prima volta che avvii OpenSTAManager e non hai ancora installato il database").'.</strong></p>';
@ -158,7 +158,7 @@ if (filter('action') == 'do_update') {
<p>'.tr("Premi il tasto _BUTTON_ per procedere con l'".(!$dbo->isInstalled() ? tr('installazione') : tr('aggiornamento')).'!', [
'_BUTTON_' => '<b>"'.$button.'"</b>',
]).'</p>
<input type="button" class="btn btn-primary" value="'.$button.'" onclick="continue_update()" id="contine_button">
<input type="button" class="btn btn-primary" value="'.$button.'" onclick="continue_update()" id="continue_button">
<script>
function continue_update(){
@ -173,7 +173,7 @@ if (filter('action') == 'do_update') {
function(){
$("#progress").show();
$("#result").load("index.php?action=do_update&firstuse='.$firstuse.'");
$("#contine_button").remove();
$("#continue_button").remove();
}, function(){});
}
</script>
@ -185,21 +185,20 @@ if (filter('action') == 'do_update') {
</div>
</div>
<hr>
<div class="box box-info text-center collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><a class="clickable" data-widget="collapse">'.tr('Log').'</a></h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card card-info text-center collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><a class="clickable" data-card-widget="collapse">'.tr('Log').'</a></h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body info text-left"></div>
<div class="card-body info text-left"></div>
</div>
</div>
<div id="result"></div>';
$total = 0;
$updates = Update::getTodoUpdates();
foreach ($updates as $update) {
if ($update['sql'] && (!empty($update['done']) || is_null($update['done']))) {
$queries = readSQLFile(base_dir().'/'.$update['directory'].$update['filename'].'.sql', ';');
@ -216,45 +215,46 @@ if (filter('action') == 'do_update') {
}
echo '
<script>
$(document).ready(function(){
$(".login-box").fadeOut();
<script>
$(document).ready(function(){
$(".login-card").fadeOut();
count = '.count($updates).';
current = 0;
versions = [];
count = '.count($updates).';
current = 0;
versions = [];
progress = 0;
total = '.$total.';
});
progress = 0;
total = '.$total.';
});
function addProgress(rate){
progress += rate;
percent = progress / total * 100;
percent = Math.round(percent);
percent = percent > 100 ? 100 : percent;
function addProgress(rate){
progress += rate;
percent = progress / total * 100;
percent = Math.round(percent);
percent = percent > 100 ? 100 : percent;
setPercent(percent);
}
setPercent(percent);
}
function setPercent(percent){
$("#progress .progress-bar").width(percent + "%");
$("#progress .progress-bar span").text(percent + "%");
}
function setPercent(percent){
$("#progress .progress-bar").width(percent + "%");
$("#progress .progress-bar span").text(percent + "%");
}
function addVersion(version){
if(versions.indexOf(version) === -1){
versions.push(version);
current += 1;
function addVersion(version){
if(versions.indexOf(version) === -1){
versions.push(version);
current += 1;
$("#progress .info").html($("#progress .info").html() + "<p><strong>'.tr('Aggiornamento _DONE_ di _TODO_ (_VERSION_)', [
'_DONE_' => '" + current + "',
'_TODO_' => '" + count + "',
'_VERSION_' => '" + version.trim() + "',
]).'</strong></p>");
}
}
</script>
</div>
</div>';
}
$("#progress .info").html($("#progress .info").html() + "<p><strong>'.tr('Aggiornamento _DONE_ di _TODO_ (_VERSION_)', [
'_DONE_' => '" + current + "',
'_TODO_' => '" + count + "',
'_VERSION_' => '" + version.trim() + "',
]).'</strong></p>");
}
}
</script>
</div>
</div>';
}

View File

@ -101,11 +101,11 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
$table_id = 'main_'.random_int(0, 99);
echo '
<table data-idmodule="'.$id_module.'" data-idplugin="'.$id_plugin.'" data-idparent="'.$id_record.'" data-selected="'.implode(';', $selezione).'" id="'.$table_id.'" width="100%" class="main-records'.(!empty($id_plugin) ? '-plugins' : '').' table table-condensed table-bordered">
<thead>
<tr>
<th id="th_selector"></th>';
<table data-idmodule="'.$id_module.'" data-idplugin="'.$id_plugin.'" data-idparent="'.$id_record.'" data-selected="'.implode(';', $selezione).'" id="'.$table_id.'" width="100%" class="table main-records table-hover table-striped '.(!empty($id_plugin) ? '-plugins' : '').'">
<thead>
<tr>
<th id="th_selector"></th>';
foreach ($total['fields'] as $key => $field) {
$attr_td = '';
$name = trim($field);

View File

@ -90,7 +90,7 @@ $(document).ready(function () {
update(results);
},
onSelect: function (item) {
input.value = item.label;
input.value = item.badge;
},
});
});

View File

@ -45,7 +45,7 @@ include_once __DIR__.'/righe_riferimenti.php';
echo '
</div>
<div class="alert alert-info" id="box-loading-riferimenti">
<div class="alert alert-info" id="card-loading-riferimenti">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -84,12 +84,12 @@ foreach ($ordini as $elemento) {
}
echo '
<div class="box">
<div class="box-header">
<h3 class="box-title">'.tr('Nuovo riferimento').'</h3>
<div class="card">
<div class="card-header">
<h3 class="card-title">'.tr('Nuovo riferimento').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "'.tr('Documento').'", "name": "documento_riferimento", "required": 1, "values": '.$documenti_disponibili->toJson().' ]}
@ -98,7 +98,7 @@ echo '
<div id="righe_documento"></div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>
</div>
@ -110,8 +110,8 @@ echo '
<script>
$(document).ready(function(){
$("#box-loading").hide();
$("#box-loading-riferimenti").hide();
$("#card-loading").hide();
$("#card-loading-riferimenti").hide();
});
var riferimenti = JSON.parse(\''.json_encode($elenco_riferimenti).'\');
@ -130,7 +130,7 @@ echo '
});
function caricaRiferimenti() {
let loader = $("#box-loading-riferimenti");
let loader = $("#card-loading-riferimenti");
let content = $("#righe_riferimenti");
loader.show();
@ -158,7 +158,7 @@ echo '
function caricaRighe(tipo_documento, id_documento){
let content = $("#righe_documento");
let loader = $("#box-loading");
let loader = $("#card-loading");
loader.show();
content.html("");

View File

@ -372,108 +372,110 @@ if (Auth::check()) {
<!-- Loader senza overlay -->
<div id="tiny-loader" style="display:none;"></div>
<header class="main-header">
<a href="'.tr('https://www.openstamanager.com').'" class="logo" title="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione").'" target="_blank">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini">'.tr('OSM').'</span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg">'.tr('OpenSTAManager').'</span>
</a>
<nav class="main-header navbar navbar-expand">
<a href="'.tr('https://www.openstamanager.com').'" class="navbar-brand brand-link" title="'.tr("Il gestionale open source per l'assistenza tecnica e la fatturazione").'" target="_blank">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="brand-link-mini">'.tr('OSM').'</span>
<!-- logo for regular state and mobile devices -->
<span class="brand-link-lg">'.tr('OpenSTAManager').'</span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top" role="navigation">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">'.tr('Mostra/nascondi menu').'</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<ul class="navbar-nav"><li class="nav-item"><a class="nav-link" data-widget="pushmenu" href="#"><i class="fa fa-bars"></i></a></li></ul>
<!-- Navbar Left Menu -->
<div class="navbar-left">
<ul class="nav navbar-nav">
<li><a href="#" id="daterange" role="button" >
<i class="fa fa-calendar" style="color:inherit"></i> <i class="fa fa-caret-down" style="color:inherit"></i>
</a></li>
<li><a style="cursor:default;padding:0px;padding-right:5px;padding-left:5px;margin-top:15px;" class="label label-'.$calendar_color_label.'">
'.Translator::dateToLocale($_SESSION['period_start']).' - '.Translator::dateToLocale($_SESSION['period_end']).'
</a></li>
<div class="navbar-left">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a href="#" id="daterange" class="nav-link" role="button">
<i class="fa fa-calendar" style="color:inherit"></i> <i class="fa fa-caret-down" style="color:inherit"></i>
</a>
</li>
<li class="nav-item">
<a style="cursor:default;padding:0px;padding-right:5px;padding-left:5px;margin-top:15px;" class="badge bg-'.$calendar_color_label.'">
<'.Translator::dateToLocale($_SESSION['period_start']) . ' - ' . Translator::dateToLocale($_SESSION['period_end']).'>
</a>
</li>
</ul>
</div>
</div>
<!-- Navbar Right Menu -->
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li class="nav-button hide"><a href="'.base_path().'/bug.php" class="tip nav-button" title="'.tr('Segnalazione bug').'">
<i class="fa fa-bug"></i>
</a></li>
<li class="nav-button" >
<p style="padding:10px 15px;">&nbsp;</p>
</li>';
<ul class="navbar-nav ml-auto">';
// Visualizzo gli hooks solo se non sono stati disabilitati
if (!$config['disable_hooks']) {
echo '
<li class="dropdown notifications-menu nav-button">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
<span id="hooks-label" class="label label-warning">
<span id="hooks-badge" class="badge badge-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>
<span id="hooks-number" class="hide">0</span>
<span id="hooks-counter" class="d-none">0</span>
<span id="hooks-number" class="d-none">0</span>
</span>
</a>
<ul class="dropdown-menu">
<li class="header"><span class="small" id="hooks-header"></span></li>
<li><ul class="menu" id="hooks">
</ul></li>
<li class="nav-item">
<ul class="menu" id="hooks">
<li class="nav-item">
<a href="#" class="nav-link">
<span class="small" id="hooks-header"></span>
</a>
</li>
</ul>
</li>
</ul>
</li>';
}
echo '
<li class="nav-button"><a href="#" onclick="window.print()" class="tip nav-button" title="'.tr('Stampa').'">
<i class="fa fa-print"></i>
</a></li>
<li class="nav-item">
<a href="#" onclick="window.print()" class="nav-link" title="'.tr('Stampa').'">
<i class="fa fa-print nav-icon"></i>
</a>
</li>
<li class="nav-button"><a href="'.base_path().'/log.php" class="tip nav-button" title="'.tr('Log accessi').'">
<i class="fa fa-book"></i>
</a></li>
<li class="nav-item">
<a href="'.base_path().'/log.php" class="nav-link" title="'.tr('Log accessi').'">
<i class="fa fa-book nav-icon"></i>
</a>
</li>
<li class="nav-button"><a data-href="'.base_path().'/shortcuts.php" data-title="'.tr('Scorciatoie da tastiera').'" class="tip nav-button" title="'.tr('Scorciatoie').'">
<i class="fa fa-keyboard-o"></i>
</a></li>
<li class="nav-item">
<a href="'.base_path().'/shortcuts.php" class="nav-link" title="'.tr('Scorciatoie').'">
<i class="fa fa-keyboard-o nav-icon"></i>
</a>
</li>
<li class="nav-button"><a href="'.base_path().'/info.php" class="tip nav-button" title="'.tr('Informazioni').'">
<i class="fa fa-info"></i>
</a></li>
<li class="nav-item">
<a href="'.base_path().'/info.php" class="nav-link" title="'.tr('Informazioni').'">
<i class="fa fa-info nav-icon"></i>
</a>
</li>
<li class="nav-button"><a href="'.base_path().'/index.php?op=logout" onclick="sessionStorage.clear()" class="bg-red tip" title="'.tr('Esci').'">
<i class="fa fa-power-off"></i>
</a></li>
<li class="nav-item">
<a href="'.base_path().'/index.php?op=logout" onclick="sessionStorage.clear()" class="nav-link bg-danger" title="'.tr('Esci').'">
<i class="fa fa-power-off nav-icon"></i>
</a>
</li>
</ul>
</div>
</nav>
</header>
<aside class="main-sidebar">
<section class="sidebar">
<aside class="main-sidebar sidebar-dark-primary">
<div class="sidebar os-host os-theme-light os-host-overflow os-host-overflow-y os-host-resize-disabled os-host-transition os-host-scrollbar-horizontal-hidden">
<!-- Sidebar user panel -->
<div class="user-panel text-center info" style="height: 60px">
<div class="info">
<p><a href="'.base_path().'/modules/utenti/info.php">
'.$user['username'].'
</a></p>
<p id="datetime"></p>
</div>
<a class="image" href="'.base_path().'/modules/utenti/info.php">';
<!-- Sidebar user panel -->
<div class="user-panel mt-3 pb-3 mb-3 text-center info">
<div class="info">
<p><a href="'.base_path().'/modules/utenti/info.php">
'.$user['username'].'
</a></p>
<p id="datetime"></p>
</div>
<a class="image" href="'.base_path().'/modules/utenti/info.php">';
$user_photo = $user->photo;
if ($user_photo) {
@ -491,18 +493,17 @@ if (Auth::check()) {
<!-- search form -->
<div class="sidebar-form">
<div class="input-group">
<input type="text" name="q" class="form-control" id="supersearch" placeholder="'.tr('Cerca').'..."/>
<span class="input-group-btn">
<button class="btn btn-flat" id="search-btn" name="search" type="submit">
<i class="fa fa-search"></i>
</button>
</span>
<input type="text" name="q" class="form-control" id="supersearch" placeholder="'.tr('Cerca').'"/>
<div class="input-group-append">
<button class="btn btn-flat" id="search-btn" name="search" type="submit">
<i class="fa fa-search"></i>
</button>
</div>
</div>
</div>
<!-- /.search form -->
<ul class="sidebar-menu">';
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu">';
echo Modules::getMainMenu();
echo '
</ul>
@ -516,79 +517,77 @@ if (Auth::check()) {
<aside class="control-sidebar control-sidebar-light">
<h4><i class="fa fa-plug"></i> '.tr('Plugin').'</h4>
<ul class="nav nav-tabs nav-pills nav-stacked">
<li data-toggle="control-sidebar" class="active btn-default">
<a data-toggle="tab" href="#tab_0">
<li data-toggle="control-sidebar" class="active btn-default nav-item">
<a class="nav-link" data-toggle="tab" href="#tab_0">
'.$structure->getTranslation('title').'
</a>
</li>';
// Tab dei plugin
if (!empty($id_record)) {
$plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`, `title`, `options`, `options2` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab' AND `enabled` = 1 ORDER BY `zz_plugins`.`order` DESC");
foreach ($plugins as $plugin) {
// Badge count per record plugin
$count = 0;
$opt = '';
if (!empty($plugin['options2'])) {
$opt = json_decode($plugin['options2'], true);
} elseif (!empty($plugin['options'])) {
$opt = json_decode($plugin['options'], true);
// Tab dei plugin
if (!empty($id_record)) {
$plugins = $dbo->fetchArray('SELECT `zz_plugins`.`id`, `title`, `options`, `options2` FROM `zz_plugins` LEFT JOIN `zz_plugins_lang` ON (`zz_plugins`.`id` = `zz_plugins_lang`.`id_record` AND `zz_plugins_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `idmodule_to`='.prepare($id_module)." AND `position`='tab' AND `enabled` = 1 ORDER BY `zz_plugins`.`order` DESC");
foreach ($plugins as $plugin) {
// Badge count per record plugin
$count = 0;
$opt = '';
if (!empty($plugin['options2'])) {
$opt = json_decode($plugin['options2'], true);
} elseif (!empty($plugin['options'])) {
$opt = json_decode($plugin['options'], true);
}
if (!empty($opt)) {
$q = str_replace('|id_parent|', $id_record, $opt['main_query'][0]['query']);
$count = $dbo->fetchNum($q);
}
echo '
<li data-widget="control-sidebar" class="btn-default nav-item" >
<a class="nav-link" data-widget="tab" href="#tab_'.$plugin['id'].'" id="link-tab_'.$plugin['id'].'">
'.$plugin['title'].'
<span class="right badge badge-danger">'.($count > 0 ? $count : '').'</span>
</a>
</li>';
}
}
if (!empty($opt)) {
$q = str_replace('|id_parent|', $id_record, $opt['main_query'][0]['query']);
$count = $dbo->fetchNum($q);
// Tab per le note interne
if ($structure->permission != '-' && $structure->use_notes) {
$notes = $structure->recordNotes($id_record);
echo '
<li data-widget="control-sidebar" class="btn-default">
<a class="bg-info" data-widget="tab" href="#tab_note" id="link-tab_note">
<'.tr('Note interne').'
<span class="badge pull-right">'.($notes->count() ?: '').'</span>
</a>
</li>';
}
echo '
<li data-toggle="control-sidebar" class="btn-default" >
<a data-toggle="tab" href="#tab_'.$plugin['id'].'" id="link-tab_'.$plugin['id'].'">
'.$plugin['title'].'
<span class="badge pull-right">'.($count > 0 ? $count : '').'</span>
</a>
</li>';
}
}
// Tab per le note interne
if ($structure->permission != '-' && $structure->use_notes) {
$notes = $structure->recordNotes($id_record);
echo '
<li data-toggle="control-sidebar" class="btn-default">
<a class="bg-info" data-toggle="tab" href="#tab_note" id="link-tab_note">
'.tr('Note interne').'
<span class="badge pull-right">'.($notes->count() ?: '').'</span>
</a>
</li>';
}
// Tab per le checklist
if ($structure->permission != '-' && $structure->use_checklists) {
$checklists_unchecked = $structure->recordChecks($id_record)->where('checked_at', null);
$checklists_total = $structure->recordChecks($id_record);
echo '
<li data-toggle="control-sidebar" class="btn-default">
<a class="bg-info" data-toggle="tab" href="#tab_checks" id="link-tab_checks">
'.tr('Checklist').'
'.(($checklists_total->count() > 0) ?
'<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').$checklists_total->count().'</span>' : '').'
</a>
</li>';
}
// Tab per le informazioni sulle operazioni
if (Auth::admin()) {
echo '
<li data-toggle="control-sidebar" class="btn-default">
<a class="bg-info" data-toggle="tab" href="#tab_info" id="link-tab_info">
'.tr('Info').'
</a>
</li>';
}
echo '
// Tab per le checklist
if ($structure->permission != '-' && $structure->use_checklists) {
$checklists_unchecked = $structure->recordChecks($id_record)->where('checked_at', null);
$checklists_total = $structure->recordChecks($id_record);
echo '
<li data-widget="control-sidebar" class="btn-default">
<a class="bg-info" data-widget="tab" href="#tab_checks" id="link-tab_checks">
<'.tr('Checklist').'
<'.($checklists_total->count() > 0) ? '<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').$checklists_total->count().'</span>' : ''.'
</a>
</li>';
}
// Tab per le informazioni sulle operazioni
if (Auth::admin()) {
echo '
<li data-widget="control-sidebar" class="btn-default">
<a class="bg-info" data-widget="tab" href="#tab_info" id="link-tab_info">
<'.tr('Info').'
</a>
</li>';
}
echo'
</ul>
</aside>
@ -626,12 +625,12 @@ if (Auth::check()) {
if (!empty($messages['warning']) || !empty($messages['error'])) {
echo '
<div class="box box-warning box-center">
<div class="box-header with-border text-center">
<h3 class="box-title">'.tr('Informazioni').'</h3>
<div class="card card-warning card-center">
<div class="card-header with-border text-center">
<h3 class="card-title">'.tr('Informazioni').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
}
}

View File

@ -107,52 +107,50 @@ include_once App::filepath('include|custom|', 'top.php');
// Controllo se è una beta e in caso mostro un warning
if (Update::isBeta()) {
echo '
<div class="clearfix">&nbsp;</div>
<div class="alert alert-warning alert-dismissable col-md-6 col-md-push-3 text-center fade in">
<i class="fa fa-warning"></i> <b>'.tr('Attenzione!').'</b> '.tr('Stai utilizzando una versione <b>non stabile</b> di OSM.').'
<div class="clearfix"></div>
<div class="alert alert-warning alert-dismissible col-md-6 offset-md-3 text-center show">
<i class="fa fa-exclamation-triangle"></i> <strong>'.tr('Attenzione!').'</strong> '.tr('Stai utilizzando una versione <b>non stabile</b> di OSM.').'
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
</div>';
</div>';
}
// Controllo se è una beta e in caso mostro un warning
if (Auth::isBrute()) {
echo '
<div class="box box-danger box-center" id="brute">
<div class="box-header with-border text-center">
<h3 class="box-title">'.tr('Attenzione').'</h3>
</div>
echo'
<div class="box box-danger" id="brute">
<div class="box-header with-border text-center">
<h3 class="box-title">'.tr('Attenzione').'</h3>
</div>
<div class="box-body text-center">
<p>'.tr('Sono stati effettuati troppi tentativi di accesso consecutivi!').'</p>
<p>'. tr('Tempo rimanente (in secondi)').': <span id="brute-timeout">'.(Auth::getBruteTimeout() + 1).'</span></p>
</div>
</div>
<div class="box-body text-center">
<p>'.tr('Sono stati effettuati troppi tentativi di accesso consecutivi!').'</p>
<p>'.tr('Tempo rimanente (in secondi)').': <span id="brute-timeout">'.(Auth::getBruteTimeout() + 1).'</span></p>
</div>
</div>
<script>
$(document).ready(function(){
$(".login-box").fadeOut();
brute();
});
<script>
$(document).ready(function(){
$(".login-box").hide();
brute();
});
function brute() {
var value = parseFloat($("#brute-timeout").html()) - 1;
$("#brute-timeout").html(value);
function brute() {
var value = parseFloat($("#brute-timeout").text()) - 1;
$("#brute-timeout").text(value);
if(value > 0){
setTimeout("brute()", 1000);
} else{
$("#brute").fadeOut();
$(".login-box").fadeIn();
}
}
</script>';
if(value > 0){
setTimeout(brute, 1000);
} else {
$("#brute").fadeOut();
$(".login-box").fadeIn();
}
}
</script>';
}
if (!empty(flash()->getMessage('error'))) {
echo '
<script>
$(document).ready(function(){
$(".login-box").effect("shake");
$(document).ready(function(){
$(".login-box").addClass("animated shake");
});
</script>';
}
@ -161,7 +159,7 @@ echo '
<form action="?op=login" method="post" autocomplete="off">
<div class="login-box">
<div class="login-logo">
<img src="'.App::getPaths()['img'].'/logo_completo.png" class="img-responsive" alt="'.tr('OpenSTAManager, il software gestionale open source per assistenza tecnica e fatturazione elettronica').'">
<img src="'.App::getPaths()['img'].'/logo_completo.png" alt="'.tr('OpenSTAManager, il software gestionale open source per assistenza tecnica e fatturazione elettronica').'" style="max-width: 100%; max-height: 100%;">
</div>
<div class="login-box-body">

View File

@ -26,15 +26,15 @@ $paths = App::getPaths();
include_once App::filepath('include|custom|', 'top.php');
echo '
<div class="box">
<div class="box-header">
<div class="card">
<div class="card-header">
<img src="'.$paths['img'].'/logo_completo.png" class="pull-left img-responsive" width="300" alt="'.tr('OSM Logo').'">
<div class="pull-right">
<div class="float-right d-none d-sm-inline">
<i class="fa fa-info"></i> '.tr('Informazioni').'
</div>
</div>
<div class="box-body">';
<div class="card-body">';
if (file_exists(base_dir().'/assistenza.php')) {
include base_dir().'/assistenza.php';
@ -60,12 +60,12 @@ if (file_exists(base_dir().'/assistenza.php')) {
<div class="row">
<div class="col-md-6">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title text-uppercase"><i class="fa fa-globe"></i> '.tr('Perchè software libero').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title text-uppercase"><i class="fa fa-globe"></i> '.tr('Perchè software libero').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr("Il progetto è software libero perchè permette a tutti di conoscere come funziona avendo il codice sorgente del programma e fornisce così la possibilità di studiare come funziona, modificarlo, adattarlo alle proprie esigenze e, in ambito commerciale, non obbliga l'utilizzatore ad essere legato allo stesso fornitore di assistenza").'.</p>
<p>'.tr("E' altrettanto importante sapere come funziona per conoscere come vengono trattati i VOSTRI dati, proteggendo così la vostra <b>privacy</b>").'.</p>
@ -83,23 +83,23 @@ if (file_exists(base_dir().'/assistenza.php')) {
</div>
<div class="col-md-6">
<div class="box box-warning">
<div class="box-header">
<h3 class="box-title text-uppercase"><i class="fa fa-download"></i> '.tr('Aggiornamenti e nuove versioni').'</h3>
<div class="card card-warning">
<div class="card-header">
<h3 class="card-title text-uppercase"><i class="fa fa-download"></i> '.tr('Aggiornamenti e nuove versioni').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr("Tutti gli aggiornamenti e le nuove versioni sono disponibili all'indirizzo").':</p>
<a href="https://www.openstamanager.com/downloads/" target="_blank"><i class="fa fa-external-link"></i> www.openstamanager.com/downloads/</a>
</div>
</div>
<div class="box box-default">
<div class="box-header">
<h3 class="box-title text-uppercase"><i class="fa fa-book"></i> '.tr('Guida e documentazione tecnica').'</h3>
<div class="card card-default">
<div class="card-header">
<h3 class="card-title text-uppercase"><i class="fa fa-book"></i> '.tr('Guida e documentazione tecnica').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr("La guida all'utilizzo di <strong>OpenSTAManager</strong> e la documentazione tecnica sono consultabili all'indirizzo").':</p>
<a href="https://docs.openstamanager.com/" target="_blank"><i class="fa fa-external-link"></i> docs.openstamanager.com/</a>
</div>
@ -109,12 +109,12 @@ if (file_exists(base_dir().'/assistenza.php')) {
<div class="row">
<div class="col-md-6">
<div class="box box-danger">
<div class="box-header">
<h3 class="box-title text-uppercase"><i class="fa fa-group"></i> '.tr('Community').'</h3>
<div class="card card-danger">
<div class="card-header">
<h3 class="card-title text-uppercase"><i class="fa fa-group"></i> '.tr('Community').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('La community è un componente importante in un progetto open-source perchè mette in contatto le persone tra di loro, utenti e programmatori').'.</p>
<p>'.tr('Con OpenSTAManager siamo presenti su').':</p>
@ -164,12 +164,12 @@ if (file_exists(base_dir().'/assistenza.php')) {
</div>
<div class="col-md-6">
<div class="box box-success">
<div class="box-header">
<h3 class="box-title text-uppercase"><i class="fa fa-euro"></i> '.tr('Servizi a pagamento').'</h3>
<div class="card card-success">
<div class="card-header">
<h3 class="card-title text-uppercase"><i class="fa fa-euro"></i> '.tr('Servizi a pagamento').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Per le aziende che hanno necessità di essere seguite da <b>supporto professionale</b> è disponibile un servizio di assistenza e supporto a pagamento').'.</p>
<p>'.tr("E' disponibile anche un <b>servizio cloud</b> su cui poter installare OpenSTAManager, in modo da non doverti più preoccupare di backup, aggiornamenti e gestione dei dati").'.</p>

16
log.php
View File

@ -26,13 +26,13 @@ $pageTitle = tr('Log');
include_once App::filepath('include|custom|', 'top.php');
echo '
<div class="box">
<div class="box-header">
<h3 class="box-title"><i class="fa fa-book"></i> '.tr('Ultimi 100 accessi').'</h3>
<div class="card">
<div class="card-header">
<h3 class="card-title"><i class="fa fa-book"></i> '.tr('Ultimi 100 accessi').'</h3>
</div>
<!-- /.box-header -->
<div class="box-body table-responsive no-padding">
<!-- /.card-header -->
<div class="card-body table-responsive no-padding">
<table class="datatables table table-hover">
<thead>
<tr>
@ -81,7 +81,7 @@ foreach ($logs as $log) {
<td class="tip" title="'.$created_at->format('d/m/Y H:i:s').'">'.$created_at->diffForHumans().'</td>
<td>'.$log['ip'].'</td>
<td class="user-agent tip" title="'.strip_tags($log['user_agent']).'">'.$log['user_agent'].'</td>
<td><span class="label label-'.$type.'">'.$stato.'</span></td>
<td><span class="badge badge-'.$type.'">'.$stato.'</span></td>
</tr>';
}
@ -90,9 +90,9 @@ echo '
</tbody>
</table>
</div>
<!-- /.box-body -->
<!-- /.card-body -->
</div>
<!-- /.box -->';
<!-- /.card -->';
?>
<script>

View File

@ -30,13 +30,13 @@ if (empty($effettua_controllo)) {
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>
<script>
var content = $("#righe_controlli");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function () {
loader.show();

View File

@ -37,7 +37,7 @@ echo '
<p class="text-center">'.tr('Operazione in corso').': <span id="operazione"></span></p>
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>
@ -48,7 +48,7 @@ echo '
<script>
var content = $("#controlli");
var loader = $("#progress");
var progress = $("#box-loading");
var progress = $("#card-loading");
$(document).ready(function () {
loader.hide();
@ -134,13 +134,13 @@ function avviaControllo(controllo) {
}
// Creazione pannello informativo e aggiunta righe
let panel = initPanel(controllo, success);
let card = initcard(controllo, success);
for(const record of records) {
addRiga(controllo, panel, record);
addRiga(controllo, card, record);
}
// Visualizzazione delle informazioni
$("#controlli").append(panel);
$("#controlli").append(card);
},
error: function(xhr, r, error) {
alert("'.tr('Errore').': " + error);
@ -190,27 +190,27 @@ function setPercentage(percent) {
* @param success
* @returns {*|jQuery|HTMLElement}
*/
function initPanel(controllo, success) {
function initcard(controllo, success) {
let cssClass = "";
let icon = "minus";
if (success) {
cssClass = "box-success";
cssClass = "card-success";
icon = "check text-success";
}
let panel = `<div class="box ` + cssClass + `" id="controllo-` + controllo["id"] + `">
<div class="box-header with-border">
<h3 class="box-title">` + controllo["name"] + `</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
let card = `<div class="card ` + cssClass + `" id="controllo-` + controllo["id"] + `">
<div class="card-header with-border">
<h3 class="card-title">` + controllo["name"] + `</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-widget="collapse">
<i class="fa fa-` + icon + `"></i>
</button>
</div>
</div>`
if (!success) {
panel += `
<div class="box-body">
card += `
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed table-bordered">
<thead>
@ -226,20 +226,20 @@ function initPanel(controllo, success) {
</div>`
}
panel += `
card += `
</div>`;
return $(panel);
return $(card);
}
/**
*
* @param controllo
* @param panel
* @param card
* @param record
*/
function addRiga(controllo, panel, record) {
let body = panel.find("tbody");
function addRiga(controllo, card, record) {
let body = card.find("tbody");
// Generazione riga
let riga = `<tr class="` + record.type + `" id="controllo-` + controllo["id"] + `-` + record.id + `">

View File

@ -80,13 +80,13 @@ if (empty($effettua_controllo)) {
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>
<script>
var content = $("#righe_controlli");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function () {
loader.show();

View File

@ -25,13 +25,13 @@ if (function_exists('customComponents')) {
$tables = customTables();
if (!empty($custom) || !empty($tables)) {
echo '
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title"><span class="tip" title="'.tr('Elenco delle personalizzazioni rilevabili dal gestionale').'.">
<div class="card card-warning">
<div class="card-header with-border">
<h3 class="card-title"><span class="tip" title="'.tr('Elenco delle personalizzazioni rilevabili dal gestionale').'.">
<i class="fa fa-edit"></i> '.tr('Personalizzazioni').'
</span></h3>
</div>
<div class="box-body">';
<div class="card-body">';
if (!empty($custom)) {
echo '
@ -188,13 +188,13 @@ function search(button) {
// Verifiche di integrità
echo '
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">
<div class="card card-primary">
<div class="card-header with-border">
<h3 class="card-title">
'.tr("Verifica l'integrità dell'installazione").' <span class="tip" title="'.tr("Verifica l'integrità della tua installazione attraverso un controllo sui checksum dei file e sulla struttura del database").'."><i class="fa fa-question-circle-o"></i></span>
</h3>
</div>
<div class="box-body">
<div class="card-body">
<button type="button" class="btn btn-primary btn-block" onclick="checksum(this)">
<i class="fa fa-list-alt"></i> '.tr('Controlla file').'
</button>
@ -214,13 +214,13 @@ echo '
echo '
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">
<div class="card card-primary">
<div class="card-header with-border">
<h3 class="card-title">
'.tr('Ricerca aggiornamenti').' <span class="tip" title="'.tr('Controllo automatico della presenza di aggiornamenti per il gestionale').'."><i class="fa fa-question-circle-o"></i></span>
</h3>
</div>
<div class="box-body" id="update-search">';
<div class="card-body" id="update-search">';
if (extension_loaded('curl')) {
echo ' <button type="button" class="btn btn-info btn-block" onclick="search(this)">
<i class="fa fa-search"></i> '.tr('Ricerca').'
@ -238,13 +238,13 @@ echo ' </div>
// Form di caricamento aggiornamenti gestionale o moduli
echo '
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">
<div class="card card-primary">
<div class="card-header with-border">
<h3 class="card-title">
'.tr('Carica aggiornamenti o nuovi moduli').' <span class="tip" title="'.tr('Form di caricamento aggiornamenti del gestionale e innesti di moduli e plugin').'."><i class="fa fa-question-circle-o"></i></span>
</h3>
</div>
<div class="box-body">
<div class="card-body">
<form action="'.base_path().'/controller.php?id_module='.$id_module.'" method="post" enctype="multipart/form-data" id="update">
<input type="hidden" name="op" value="upload">

View File

@ -58,16 +58,16 @@ echo '
</div>';
echo '
<div class="box box-info collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Dati anagrafici').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card card-info collapsed-card">
<div class="card-header">
<h3 class="card-title">'.tr('Dati anagrafici').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="card-body collapse">
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "'.tr('Partita IVA').'", "maxlength": 16, "name": "piva", "id": "piva_add", "class": "text-center alphanumeric-mask", "validation": "partita_iva"]}

View File

@ -139,7 +139,7 @@ $operations = [];
if (App::debug()) {
$operations['delete-bulk'] = [
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="label label-danger">beta</span>',
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="badge badge-danger">beta</span>',
'data' => [
'msg' => tr('Vuoi davvero eliminare le anagrafiche selezionate?'),
'button' => tr('Procedi'),

View File

@ -23,7 +23,7 @@ use Models\Module;
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo '
<div class="btn-group">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-magic"></i>
<button type="button" class="btn btn-info dropdown-toggle" data-widget="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-magic"></i>
'.tr('Crea').'... <span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
@ -32,45 +32,45 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
// Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.(new Module())->getByField('title', 'Utenti e permessi', Models\Locale::getPredefined()->id)->id_record.'&id_record='.(new Group())->getByField('title', 'Tecnici', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.(new Module())->getByField('title', 'Utenti e permessi', Models\Locale::getPredefined()->id)->id_record.'&id_record='.(new Group())->getByField('title', 'Tecnici', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
</a></li>';
}
if (in_array($id_cliente, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi preventivo').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Preventivi', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text"></i>'.tr('Nuovo preventivo').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi preventivo').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Preventivi', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text"></i>'.tr('Nuovo preventivo').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi contratto').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Contratti', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i>'.tr('Nuovo contratto').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi contratto').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Contratti', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i>'.tr('Nuovo contratto').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine cliente').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini cliente', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i>'.tr('Nuovo ordine cliente').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi ordine cliente').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini cliente', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i>'.tr('Nuovo ordine cliente').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di vendita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di vendita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i>'.tr('Nuova fattura di vendita').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi fattura di vendita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di vendita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i>'.tr('Nuova fattura di vendita').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (cliente)').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (cliente)').'
</a></li>';
}
if (in_array($id_fornitore, $tipi_anagrafica)) {
echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini fornitore', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
echo '<li><a data-widget="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini fornitore', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di acquisto').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di acquisto', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i>'.tr('Nuova fattura di acquisto').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi fattura di acquisto').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di acquisto', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i>'.tr('Nuova fattura di acquisto').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (fornitore)').'
<li><a data-widget="modal" data-title="'.tr('Aggiungi registrazione contabile').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i>'.tr('Nuova registrazione contabile (fornitore)').'
</a></li>';
}

View File

@ -85,12 +85,12 @@ if (sizeof($problemi_anagrafica) > 0) {
<input type="hidden" name="op" value="update">
<!-- DATI ANAGRAFICI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati anagrafici'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Dati anagrafici'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Denominazione'); ?>", "name": "ragione_sociale", "required": 1, "value": "$ragione_sociale$", "extra": "" ]}
@ -121,32 +121,30 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
<!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' -->
<?php if ($record['tipo'] == 'Privato') {
?>
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
</div>
<div class="col-md-4">
{[ "type": "date", "label": "<?php echo tr('Data di nascita'); ?>", "name": "data_nascita", "value": "$data_nascita$" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Sesso'); ?>", "name": "sesso", "values": "list=\"\": \"Non specificato\", \"M\": \"<?php echo tr('Uomo'); ?>\", \"F\": \"<?php echo tr('Donna'); ?>\"", "value": "$sesso$" ]}
</div>
</div>
<?php
} ?>
<div class="row">
<div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('Codice anagrafica'); ?>", "name": "codice", "required": 1, "class": "text-center alphanumeric-mask", "value": "$codice$", "maxlength": 20, "validation": "codice" ]}
</div>
<div class="col-md-2">
<?php
<!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' -->
<?php if ($record['tipo'] == 'Privato') { ?>
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
</div>
<div class="col-md-4">
{[ "type": "date", "label": "<?php echo tr('Data di nascita'); ?>", "name": "data_nascita", "value": "$data_nascita$" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Sesso'); ?>", "name": "sesso", "values": "list=\"\": \"Non specificato\", \"M\": \"<?php echo tr('Uomo'); ?>\", \"F\": \"<?php echo tr('Donna'); ?>\"", "value": "$sesso$" ]}
</div>
</div>
<?php } ?>
<div class="row">
<div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('Codice anagrafica'); ?>", "name": "codice", "required": 1, "class": "text-center alphanumeric-mask", "value": "$codice$", "maxlength": 20, "validation": "codice" ]}
</div>
<div class="col-md-2">
<?php
$help_codice_destinatario = tr("Per impostare il codice specificare prima il campo '_NATION_' dell'anagrafica", [
'_NATION_' => '<b>Nazione</b>',
]).':<br><br><ul>
@ -176,11 +174,11 @@ if (in_array($id_azienda, $tipi_anagrafica)) {
<div class="row">
<div class="col-md-8">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> <?php echo tr('Sede legale'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Sede legale'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-<?php echo (empty($record['indirizzo2'])) ? '10' : '8'; ?>">
@ -194,7 +192,6 @@ if (in_array($id_azienda, $tipi_anagrafica)) {
<div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('C.A.P.'); ?>", "name": "cap", "maxlength": 6, "class": "text-center", "value": "$cap$" ]}
</div>
</div>
<div class="row">
@ -257,11 +254,11 @@ $sede_azienda = $anagrafica_azienda->sedeLegale;
echo '
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> '.tr('Geolocalizzazione').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"> '.tr('Geolocalizzazione').'</h3>
</div>
<div class="panel-body">';
<div class="card-body">';
// Area caricamento mappa
echo '
@ -435,21 +432,21 @@ echo '
if ($is_cliente or $is_fornitore or $is_tecnico) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Informazioni per tipo di anagrafica').'</h3>
<div class="panel card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Informazioni per tipo di anagrafica').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified">
<li '.($is_cliente ? 'class="active"' : '').'><a href="#cliente" data-toggle="tab" class="'.($is_cliente ? '' : 'disabled').'" '.($is_cliente ? '' : 'disabled').'>'.tr('Cliente').'</a></li>
<li class="nav-item '.($is_cliente ? 'active"' : '"').'><a href="#cliente" data-card-widget="tab" class=" nav-link '.($is_cliente ? '' : 'disabled').'" '.($is_cliente ? '' : 'disabled').'>'.tr('Cliente').'</a></li>
<li '.(!$is_cliente && $is_fornitore ? 'class="active"' : '').'><a href="#fornitore" data-toggle="tab" class="'.($is_fornitore ? '' : 'disabled').'" '.($is_fornitore ? '' : 'disabled').'>'.tr('Fornitore').'</a></li>
<li class="nav-item '.(!$is_cliente && $is_fornitore ? 'active"' : '"').'><a href="#fornitore" data-card-widget="tab" class="nav-link '.($is_fornitore ? '' : 'disabled').'" '.($is_fornitore ? '' : 'disabled').'>'.tr('Fornitore').'</a></li>
<li><a href="#cliente_fornitore" data-toggle="tab" class="'.($is_cliente || $is_fornitore ? '' : 'disabled').'" '.($is_cliente || $is_fornitore ? '' : 'disabled').'>'.tr('Cliente e fornitore').'</a></li>
<li class="nav-item"><a href="#cliente_fornitore" data-card-widget="tab" class="nav-link'.($is_cliente || $is_fornitore ? '' : 'disabled').'" '.($is_cliente || $is_fornitore ? '' : 'disabled').'>'.tr('Cliente e fornitore').'</a></li>
<li '.(!$is_cliente && !$is_fornitore && $is_tecnico ? 'class="active"' : '').'><a href="#tecnico" data-toggle="tab" class="'.($is_tecnico ? '' : 'disabled').'" '.($is_tecnico ? '' : 'disabled').'>'.tr('Tecnico').'</a></li>
<li class="nav-item'.(!$is_cliente && !$is_fornitore && $is_tecnico ? 'active"' : '"').'><a href="#tecnico" data-card-widget="tab" class="nav-link'.($is_tecnico ? '' : 'disabled').'" '.($is_tecnico ? '' : 'disabled').'>'.tr('Tecnico').'</a></li>
</ul>
<div class="tab-content '.(!$is_cliente && !$is_fornitore && !$is_tecnico ? 'hide' : '').'">
@ -642,12 +639,12 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
}
?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Informazioni aggiuntive'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Informazioni aggiuntive'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Numero d\'iscrizione registro imprese'); ?>", "name": "codiceri", "value": "$codiceri$", "help": "<?php echo tr('Il numero registro imprese è il numero di iscrizione attribuito dal Registro Imprese della Camera di Commercio.'); ?>" ]}
@ -710,7 +707,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div>
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT `an_tipianagrafiche`.`id`, `title` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `t`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`title` = 'Azienda' AND `deleted_at` IS NULL) ORDER BY `title`", "value": "$idtipianagrafica$" ]}
<?php
if (in_array($id_azienda, $tipi_anagrafica)) {
@ -719,10 +716,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
}
?>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
{[ "type": "textarea", "label": "<?php echo tr('Note'); ?>", "name": "note", "value": "$note$", "charcounter": 1 ]}
</div>
</div>
@ -766,16 +760,16 @@ ORDER BY `data`');
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {
@ -867,7 +861,7 @@ if (empty($record['deleted_at'])) {
update(results);
},
onSelect: function (item) {
input.value = item.label;
input.value = item.badge;
},
});
}

View File

@ -25,11 +25,11 @@ include_once __DIR__.'/../../../core.php';
// Allegati dell'anagrafica
echo '
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Allegati dell\'anagrafica').'</h3>
<div class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Allegati dell\'anagrafica').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if (empty($_GET['visualizza_allegati'])) {
echo '

View File

@ -54,16 +54,16 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
</div>
</div>
<div class="box box-info collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><?php echo tr('Informazioni aggiuntive'); ?></h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><?php echo tr('Informazioni aggiuntive'); ?></h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Prezzo di acquisto'); ?>", "name": "prezzo_acquisto", "icon-after": "<?php echo currency(); ?>", "value": "<?php echo htmlentities(filter('prezzo_acquisto')) ?: 0; ?>" ]}

View File

@ -27,12 +27,12 @@ use Modules\Iva\Aliquota;
<input type="hidden" name="op" value="update">
<!-- DATI ANAGRAFICI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Articolo'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Articolo'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "image", "label": "<?php echo tr('Immagine'); ?>", "name": "immagine", "class": "img-thumbnail", "value": "<?php echo $articolo->image; ?>", "accept": "image/x-png,image/gif,image/jpeg" ]}
@ -98,14 +98,14 @@ use Modules\Iva\Aliquota;
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
<?php echo tr('Giacenza totale'); ?>
</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "number", "label": "<?php echo tr('Quantità'); ?>", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta", "min-value": "undefined", "icon-after": "<?php echo !empty($record['um']) ? $record['um'] : ''; ?>" ]}
@ -161,12 +161,12 @@ use Modules\Iva\Aliquota;
<!-- informazioni Acquisto/Vendita -->
<div class="row">
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Acquisto'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Acquisto'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Prezzo di acquisto'); ?>", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "<?php echo currency(); ?>", "help": "<?php echo tr('Prezzo di acquisto previsto per i fornitori i cui dati non sono stati inseriti nel plugin Fornitori'); ?>." ]}
@ -213,14 +213,14 @@ use Modules\Iva\Aliquota;
</div>
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
<?php echo tr('Vendita'); ?>
</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="clearfix"></div>
<div class="row">
@ -285,14 +285,14 @@ echo '
<div class="row">
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
<?php echo tr('Ultimi 20 prezzi di acquisto'); ?>
</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="clearfix"></div>
<div class="row">
@ -303,14 +303,14 @@ echo '
</div>
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
<?php echo tr('Ultimi 20 prezzi di vendita'); ?>
</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="clearfix"></div>
<div class="row">
@ -401,16 +401,16 @@ UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<table class="table table-striped table-bordered table-extra-condensed">
<tr>
<th>'.tr('Documento').'</td>

View File

@ -45,12 +45,12 @@ $query = 'SELECT
`qta_ordinata` > 0";
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Articolo').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Articolo').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
<span><b>'.tr('Codice: ').'</b>'.$articolo->codice.'</span>
@ -69,12 +69,12 @@ echo '
echo '
<div class="row">
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Impegnato').'<span class="tip pull-right" title="'.tr('Quantità impegnate in ordini cliente che non siano già completamente evasi.').'">
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Impegnato').'<span class="tip pull-right" title="'.tr('Quantità impegnate in ordini cliente che non siano già completamente evasi.').'">
<i class="fa fa-question-circle-o"></i></span></h3>
</div>
<div class="panel-body" style="min-height:98px;">';
<div class="card-body" style="min-height:98px;">';
$ordini = $dbo->fetchArray(str_replace('|dir|', 'entrata', $query));
$impegnato = sum(array_column($ordini, 'qta_impegnata'));
@ -135,12 +135,12 @@ echo '
*/
echo '
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('In ordine').'<span class="tip pull-right" title="'.tr('Quantità ordinate al fornitore in ordini che non siano già completamente evasi.').'">
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('In ordine').'<span class="tip pull-right" title="'.tr('Quantità ordinate al fornitore in ordini che non siano già completamente evasi.').'">
<i class="fa fa-question-circle-o"></i></span></h3>
</div>
<div class="panel-body" style="min-height:98px;">';
<div class="card-body" style="min-height:98px;">';
$ordini = $dbo->fetchArray(str_replace('|dir|', 'uscita', $query));
@ -207,12 +207,12 @@ $da_ordinare = (($diff <= 0) ? 0 : $diff);
echo '
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Da ordinare').'<span class="tip pull-right" title="'.tr('Quantità richieste dal cliente meno le quantità già ordinate.').'">
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Da ordinare').'<span class="tip pull-right" title="'.tr('Quantità richieste dal cliente meno le quantità già ordinate.').'">
<i class="fa fa-question-circle-o"></i></span></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12 text-center" style="font-size:35pt;">
'.numberFormat($da_ordinare, 'qta').' '.$articolo->um.'
@ -228,12 +228,12 @@ echo '
$disponibile = $qta_presente - $impegnato;
echo '
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Disponibile').'<span class="tip pull-right" title="'.tr('Quantità disponibili nel magazzino.').'">
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Disponibile').'<span class="tip pull-right" title="'.tr('Quantità disponibili nel magazzino.').'">
<i class="fa fa-question-circle-o"></i></span></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12 text-center" style="font-size:35pt;">
@ -252,12 +252,12 @@ $giacenze = $articolo->getGiacenze();
echo '
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Giacenze').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Giacenze').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<table class="table table-striped table-condensed table-bordered">
<thead>
<tr>

View File

@ -36,8 +36,8 @@ echo '
echo '
<div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified">
<li class="active"><a href="#generazione" data-toggle="tab">'.tr('Generazione multipla').'</a></li>
<li><a href="#inserimento" data-toggle="tab">'.tr('Inserimento singolo').'</a></li>
<li class="active"><a class="nav-link" href="#generazione" data-widget="tab">'.tr('Generazione multipla').'</a></li>
<li><a class="nav-link" href="#inserimento" data-widget="tab">'.tr('Inserimento singolo').'</a></li>
</ul>
<div class="tab-content">
@ -100,11 +100,11 @@ echo '
// Elenco
if (empty(get('modal'))) {
echo '
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Elenco seriali').'</h3>
<div class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Elenco seriali').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
// Conteggio totale prodotti
$rs = $dbo->fetchArray('SELECT COUNT(id) AS tot FROM mg_prodotti WHERE id_articolo='.prepare($id_record));

View File

@ -23,12 +23,12 @@ use Models\Module;
use Modules\Anagrafiche\Anagrafica;
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Articolo').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Articolo').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
<span><b>'.tr('Codice: ').'</b>'.$articolo->codice.'</span>
@ -43,10 +43,10 @@ echo '
// Movimentazione degli articoli
echo '
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Movimenti').'</h3>
<div class="pull-right">';
<div class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Movimenti').'</h3>
<div class="float-right d-none d-sm-inline">';
echo '
<a class="btn btn-warning btn-xs" onclick="openModal(\''.tr('Movimenta articolo').'\', \''.base_path().'/modules/articoli/modals/add_movimento.php?id_module='.(new Module())->getByField('title', 'Movimenti', Models\Locale::getPredefined()->id).'&id_articolo='.$id_record.'\');">
@ -77,7 +77,7 @@ echo '
echo '
</div>
</div>
<div class="box-body">';
<div class="card-body">';
// Calcolo la quantità dai movimenti in magazzino
$qta_totale = $dbo->fetchOne('SELECT SUM(qta) AS qta FROM mg_movimenti WHERE idarticolo='.prepare($id_record))['qta'];

View File

@ -24,12 +24,12 @@ echo '
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Dati').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Dati').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Titolo').'", "name": "titolo", "value": "'.$attributo->getTranslation('title').'", "required": 1, "help": "'.tr("Nome visibile dell'attributo").'" ]}
@ -39,12 +39,12 @@ echo '
</div>
</form>
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">'.tr('Valori attributo').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Valori attributo').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<button type="button" class="btn btn-primary pull-right" onclick="aggiungiValore(this)">
<i class="fa fa-plus"></i> '.tr('Aggiungi valore').'
</button>

View File

@ -11,12 +11,12 @@ unset($_SESSION['superselect']['idautomezzo']);
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<!-- DATI ARTICOLO -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Automezzo'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Automezzo'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
@ -40,16 +40,16 @@ unset($_SESSION['superselect']['idautomezzo']);
<!--TECNICI -->
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="card card-primary">
<div class="card-header">
<div class="row">
<div class="col-md-12">
<h3 class="panel-title"><?php echo tr('Tecnici responsabili automezzo'); ?></h3>
<h3 class="card-title"><?php echo tr('Tecnici responsabili automezzo'); ?></h3>
</div>
</div>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12" >
<form action="<?php echo $rootdir; ?>/editor.php?id_module=<?php echo (new Module())->getByField('title', 'Automezzi', Models\Locale::getPredefined()->id); ?>&id_record=<?php echo $id_record; ?>" id="updatetech-form" method="post" role="form">
@ -65,7 +65,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<a href="javascript:;" class="btn btn-sm btn-success pull-right" title="Aggiorna date" onclick="$('#updatetech-form input[name=op]').val('savetech'); $('#updatetech-form').submit();"><i class="fa fa-edit"></i> <?php echo tr('Salva date'); ?></a>
<div class="pull-left">
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_tecnico.php?idautomezzo=<?php echo $id_record; ?>" data-toggle="modal" data-title="Aggiungi tecnico"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi tecnico'); ?></a><br>
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_tecnico.php?idautomezzo=<?php echo $id_record; ?>" data-card-widget="modal" data-title="Aggiungi tecnico"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi tecnico'); ?></a><br>
</div>
<div class="clearfix"></div>
</div>
@ -77,16 +77,16 @@ unset($_SESSION['superselect']['idautomezzo']);
<!-- MAGAZZINO AUTOMEZZO -->
<div class="col-md-6">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="card card-primary">
<div class="card-header">
<div class="row">
<div class="col-md-12">
<h3 class="panel-title"><?php echo tr('Magazzino automezzo'); ?></h3>
<h3 class="card-title"><?php echo tr('Magazzino automezzo'); ?></h3>
</div>
</div>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">
<?php
@ -94,7 +94,7 @@ unset($_SESSION['superselect']['idautomezzo']);
?>
<div class="pull-left">
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_articolo.php?idautomezzo=<?php echo $id_record; ?>" data-toggle="modal" data-title="Aggiungi articoli"><i class="fa fa-plus"></i> <?php echo tr('Articolo magazzino'); ?></a><br>
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_articolo.php?idautomezzo=<?php echo $id_record; ?>" data-card-widget="modal" data-title="Aggiungi articoli"><i class="fa fa-plus"></i> <?php echo tr('Articolo magazzino'); ?></a><br>
</div>
<div class="clearfix"></div>
</div>

View File

@ -65,7 +65,7 @@ if (!empty($rs2)) {
// Pulsanti
echo '
<td class="text-center">
<a class="btn btn-warning btn-xs" data-href="'.$structure->fileurl('add_articolo.php').'?idautomezzo='.$id_record.'&idarticolo='.$r['idarticolo'].'" data-toggle="modal" data-title="'.tr('Aggiungi articoli').'">
<a class="btn btn-warning btn-xs" data-href="'.$structure->fileurl('add_articolo.php').'?idautomezzo='.$id_record.'&idarticolo='.$r['idarticolo'].'" data-widget="modal" data-title="'.tr('Aggiungi articoli').'">
<i class="fa fa-edit"></i>
</a>
<a class="btn btn-danger btn-xs ask" data-backto="record-edit" data-op="moverow" data-idautomezzotecnico="'.$r['id'].'", data-idarticolo="'.$r['idarticolo'].'" data-msg="'.tr("Rimuovere articolo dell'automezzo?").'">

View File

@ -171,13 +171,13 @@ $max_execution_time = ini_get('max_execution_time');
if (setting('Permetti il ripristino di backup da file esterni')) {
echo '
<div class="col-md-4">
<div class="box box-success">
<div class="box-header with-border">
<h3 class="box-title">
<div class="card card-success">
<div class="card-header with-border">
<h3 class="card-title">
'.tr('Ripristina backup').' <small>(upload_max_filesize: '.$upload_max_filesize.')</small> <small>(max_execution_time: '.$max_execution_time.')</small>
</h3>
</div>
<div class="box-body">
<div class="card-body">
<form action="" method="post" enctype="multipart/form-data" id="restore">
<input type="hidden" name="op" value="restore">
@ -246,7 +246,7 @@ 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>
<div class="pull-right">
<div class="float-right d-none d-sm-inline">
<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> '.tr('Ripristina').'
</a>
@ -296,7 +296,7 @@ if (file_exists($backup_dir)) {
<a class="btn btn-sm btn-warning disabled" href="javascript:;"><i class="fa fa-times"></i> '.tr('Non scaricabile').'</a>
<div class="pull-right">
<div class="float-right d-none d-sm-inline">
<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">
<i class="fa fa-upload"></i>
</a>

View File

@ -24,12 +24,12 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
<?php echo Modules::link('Anagrafiche', $record['id_anagrafica'], null, null, 'class="pull-right"'); ?>
@ -85,12 +85,12 @@ include_once __DIR__.'/../../core.php';
</form>
<!-- Composizione IBAN -->
<div class="box box-info">
<div class="box-header">
<h3 class="box-title"><?php echo tr('Composizione IBAN'); ?></h3>
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Composizione IBAN'); ?></h3>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Nazione'); ?>", "name": "id_nazione", "value": "$id_nazione$", "ajax-source": "nazioni" ]}

View File

@ -26,12 +26,12 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}

View File

@ -25,12 +25,12 @@ use Models\Module;
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
@ -51,14 +51,14 @@ use Models\Module;
</form>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Sottocategorie'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Sottocategorie'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="pull-left">
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-toggle="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Sottocategoria'); ?></a><br>
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-card-widget="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Sottocategoria'); ?></a><br>
</div>
<div class="clearfix"></div>
<hr>
@ -96,16 +96,16 @@ $elementi = $dbo->fetchArray('SELECT `mg_articoli`.`id`, `mg_articoli`.`codice`,
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Articoli collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Articoli collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -26,12 +26,12 @@ use Models\Module;
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
@ -53,14 +53,14 @@ use Models\Module;
</form>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Sottocategorie'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Sottocategorie'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="pull-left">
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-toggle="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Sottocategoria'); ?></a><br>
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-card-widget="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Sottocategoria'); ?></a><br>
</div>
<div class="clearfix"></div>
<hr>
@ -98,16 +98,16 @@ $elementi = $dbo->fetchArray('SELECT `my_impianti`.`id`, `my_impianti`.`matricol
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -35,11 +35,11 @@ include_once __DIR__.'/../../core.php';
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Flags'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Flags'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Causale predefinita'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr('Impostare questa causale di trasporto come predefinita per i ddt'); ?>." ]}
</div>

View File

@ -24,12 +24,12 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}

View File

@ -25,12 +25,12 @@ echo '
<input type="hidden" name="backto" value="record-edit">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Dati').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Dati').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "name", "value": "$name$", "required": 1 ]}
@ -80,12 +80,12 @@ foreach ($checks as $check) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Checklist').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Checklist').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<form action="" method="post" id="checklist-form" class="row">
<input type="hidden" name="op" value="add_item">
<input type="hidden" name="backto" value="record-edit">

View File

@ -51,7 +51,7 @@ if (!function_exists('renderChecklist')) {
$result .= '
<td style="border-top:0px;">
<span class="label label-default pull-right verificato '.(!$check->checked_at ? 'hidden' : '').'" style="margin-right:5px;padding:6px 8px;">'.(!empty($check->checked_at) ? tr('Verificato da _NAME_ il _DATE_', [
<span class="badge badge-default pull-right verificato '.(!$check->checked_at ? 'hidden' : '').'" style="margin-right:5px;padding:6px 8px;">'.(!empty($check->checked_at) ? tr('Verificato da _NAME_ il _DATE_', [
'_NAME_' => $check->checkUser->username,
'_DATE_' => timestampFormat($check->checked_at),
]) : '').'
@ -68,9 +68,9 @@ if (!function_exists('renderChecklist')) {
<button class="btn btn-default btn-xs '.(!$enabled ? 'disabled' : '').' save-nota" onclick="saveNota(\''.$check->id.'\')"><i class="fa fa-check"></i> '.tr('Salva nota').'</button>';
if (intval($check->assignedUsers->pluck('id')->toArray()) > 0) {
$result .= ' <span class="label label-info pull-right" style="padding:6px 8px;" data-toggle="tooltip" title="Assegnato a '.implode(', ', $check->assignedUsers->pluck('username')->toArray()).'"><i class="fa fa-user"></i></span>';
$result .= ' <span class="badge badge-info pull-right" style="padding:6px 8px;" data-widget="tooltip" title="Assegnato a '.implode(', ', $check->assignedUsers->pluck('username')->toArray()).'"><i class="fa fa-user"></i></span>';
} else {
$result .= ' <span class="label label-danger pull-right" style="padding:6px 8px;" data-toggle="tooltip" title="'.tr('Nessun utente assegnato').'"><i class="fa fa-user-times"></i></span>';
$result .= ' <span class="badge badge-danger pull-right" style="padding:6px 8px;" data-widget="tooltip" title="'.tr('Nessun utente assegnato').'"><i class="fa fa-user-times"></i></span>';
}
$result .= '

View File

@ -10,12 +10,12 @@ echo '
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Dati').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Dati').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Codice').'", "name": "codice", "value": "'.$combinazione->codice.'", "required": 1, "help": "'.tr('Codice di base per la combinazione: alla generazione variante vengono aggiunti i valore degli Attributi relativi').'" ]}
@ -50,17 +50,17 @@ echo '
</div>
</form>
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">'.tr('Varianti disponibili (Articoli)').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Varianti disponibili (Articoli)').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<button type="button" class="btn btn-primary" onclick="aggiungiVariante(this)">
<i class="fa fa-plus"></i> '.tr('Aggiungi variante').'
</button>
<div class="tip pull-right " data-toggle="tooltip" title="'.tr('Genera tutte le varianti sulla base degli Attributi associati alla Combinazione corrente').'. '.tr('Disponibile solo se non sono giò presenti delle varianti').'.">
<div class="tip pull-right " data-card-widget="tooltip" title="'.tr('Genera tutte le varianti sulla base degli Attributi associati alla Combinazione corrente').'. '.tr('Disponibile solo se non sono giò presenti delle varianti').'.">
<button type="button" class="btn btn-warning '.($numero_varianti === 0 ? '' : 'disabled').'" onclick="generaVarianti(this)">
<i class="fa fa-refresh"></i> '.tr('Genera tutte le varianti').'
</button>

View File

@ -70,17 +70,17 @@ echo '
</div>
<!-- Informazioni rinnovo -->
<div class="box box-primary collapsable collapsed-box">
<div class="box-header">
<h3 class="box-title">'.tr('Informazioni per rinnovo').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-primary collapsable collapsed-card">
<div class="card-header">
<h3 class="card-title">'.tr('Informazioni per rinnovo').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Rinnovabile').'", "name": "rinnovabile", "value": "'.setting('Crea contratto rinnovabile di default').'", "id": "rinnovabile_add", "help": "'.tr('Il contratto è rinnovabile?').'" ]}

View File

@ -56,7 +56,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -66,7 +66,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -27,10 +27,10 @@ $stati_fatturabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`title` SEPARATOR ", ")
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Per creare un documento deve essere inserita almeno una riga e lo stato del contratto deve essere tra: _STATE_LIST_', [
<div class="tip" data-widget="tooltip" title="'.tr('Per creare un documento deve essere inserita almeno una riga e lo stato del contratto deve essere tra: _STATE_LIST_', [
'_STATE_LIST_' => $stati_fatturabili,
]).'">
<button type="button" class="btn btn-info '.($is_fatturabile ? '' : 'disabled').' " data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<button type="button" class="btn btn-info '.($is_fatturabile ? '' : 'disabled').' " data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>
</div>';
@ -40,7 +40,7 @@ $rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusi
$stati_completati = $dbo->fetchOne('SELECT GROUP_CONCAT(`title` SEPARATOR ", ") AS stati_completati FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `is_completato` = 1')['stati_completati'];
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno di questi stati: _STATE_LIST_', [
<div class="tip" data-widget="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno di questi stati: _STATE_LIST_', [
'_STATE_LIST_' => $stati_completati,
]).'" id="rinnova">
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning">

View File

@ -36,12 +36,12 @@ if ($data_conclusione < $data_accettazione && !empty($data_accettazione) && !emp
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<!-- DATI INTESTAZIONE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Intestazione'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Intestazione'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$" ]}
@ -168,26 +168,26 @@ echo '
if (!empty($record['id_documento_fe']) || !empty($record['num_item']) || !empty($record['codice_cig']) || !empty($record['codice_cup'])) {
$collapsed = '';
} else {
$collapsed = ' collapsed-box';
$collapsed = ' collapsed-card';
}
?>
<!-- Fatturazione Elettronica PA-->
<div class="box box-primary collapsable <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?> <?php echo $collapsed; ?>">
<div class=" box-header">
<h4 class=" box-title">
<div class="card card-primary collapsable <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?> <?php echo $collapsed; ?>">
<div class=" card-header">
<h4 class=" card-title">
<?php echo tr('Dati appalto'); ?></h4>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Identificatore Documento'); ?>", "name": "id_documento_fe", "required": 0, "help": "<?php echo tr('<span>Obbligatorio per valorizzare CIG/CUP. &Egrave; possible inserire: </span><ul><li>N. determina</li><li>RDO</li><li>Ordine MEPA</li></ul>'); ?>", "value": "$id_documento_fe$", "maxlength": 20 ]}
@ -211,12 +211,12 @@ echo '
<!-- COSTI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Costi unitari'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Costi unitari'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12 col-lg-12">
<?php
@ -257,7 +257,7 @@ if (!empty($rs)) {
</td>
<td>
<button type="button" class="btn btn-warning" data-toggle="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.base_path().'/modules/contratti/actions.php\', { op: \'import\', idcontratto: \''.$id_record.'\', idtipointervento: \''.$rs[$i]['idtipointervento'].'\' }, function(data){ location.href=\''.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'\'; } ); }">
<button type="button" class="btn btn-warning" data-card-widget="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.base_path().'/modules/contratti/actions.php\', { op: \'import\', idcontratto: \''.$id_record.'\', idtipointervento: \''.$rs[$i]['idtipointervento'].'\' }, function(data){ location.href=\''.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'\'; } ); }">
<i class="fa fa-download"></i>
</button>
</td>
@ -309,7 +309,7 @@ if (!empty($rs)) {
</td>
<td>
<button type="button" class="btn btn-warning" data-toggle="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.base_path().'/modules/contratti/actions.php\', { op: \'import\', idcontratto: \''.$id_record.'\', idtipointervento: \''.$rs[$i]['idtipointervento'].'\' }, function(data){ location.href=\''.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'\'; } ); }">
<button type="button" class="btn btn-warning" data-card-widget="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.base_path().'/modules/contratti/actions.php\', { op: \'import\', idcontratto: \''.$id_record.'\', idtipointervento: \''.$rs[$i]['idtipointervento'].'\' }, function(data){ location.href=\''.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'\'; } ); }">
<i class="fa fa-download"></i>
</button>
</td>
@ -329,12 +329,12 @@ echo '
</form>
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Righe').'</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Righe').'</h3>
</div>
<div class="panel-body">';
<div class="card-body">';
if (!$block_edit) {
// Form di inserimento riga documento
@ -361,8 +361,8 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Riga').'
</a>
<div class="btn-group tip" data-toggle="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<div class="btn-group tip" data-card-widget="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-card-widget="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-list"></i> '.tr('Altro').'
<span class="caret"></span>
</button>
@ -590,16 +590,16 @@ $elementi = $dbo->fetchArray('
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
// Elenco attività o contratti collegati

View File

@ -98,8 +98,8 @@ if (!empty($interventi)) {
foreach ($sessioni as $sessione) {
// Visualizzo lo sconto su ore o km se c'è
$sconto_ore = !empty($sessione->sconto_totale_manodopera) ? '<br><span class="label label-danger">'.moneyFormat(-$sessione->sconto_totale_manodopera).'</span>' : '';
$sconto_km = !empty($sessione->sconto_totale_viaggio) ? '<br><span class="label label-danger">'.moneyFormat(-$sessione->sconto_totale_viaggio).'</span>' : '';
$sconto_ore = !empty($sessione->sconto_totale_manodopera) ? '<br><span class="badge badge-danger">'.moneyFormat(-$sessione->sconto_totale_manodopera).'</span>' : '';
$sconto_km = !empty($sessione->sconto_totale_viaggio) ? '<br><span class="badge badge-danger">'.moneyFormat(-$sessione->sconto_totale_viaggio).'</span>' : '';
echo '
<tr>
@ -150,7 +150,7 @@ if (!empty($interventi)) {
</tr>';
foreach ($articoli as $articolo) {
$sconto = !empty($articolo->sconto) ? '<br><span class="label label-danger">'.moneyFormat(-$articolo->sconto).'</span>' : '';
$sconto = !empty($articolo->sconto) ? '<br><span class="badge badge-danger">'.moneyFormat(-$articolo->sconto).'</span>' : '';
echo '
<tr>
@ -163,8 +163,8 @@ if (!empty($interventi)) {
</tr>';
// Raggruppamento per articolo con lo stesso prezzo
$ricavo = ($articolo->imponibile - $articolo->sconto) / $articolo->qta;
$costo = $articolo->spesa / $articolo->qta;
$ricavo = ($articolo->imponibile - $articolo->sconto) / ($articolo->qta>0 ? $articolo->qta : 1);
$costo = $articolo->spesa / ($articolo->qta > 0 ? $articolo->qta : 1);
$descrizione = $articolo->articolo->codice.' - '.$articolo->articolo->getTranslation('title');
$materiali_art[$descrizione][$ricavo][$costo]['id'] = $articolo->articolo->id;
@ -190,7 +190,7 @@ if (!empty($interventi)) {
</tr>';
foreach ($righe as $riga) {
$sconto = !empty($riga->sconto) ? '<br><span class="label label-danger">'.moneyFormat(-$riga->sconto).'</span>' : '';
$sconto = !empty($riga->sconto) ? '<br><span class="badge badge-danger">'.moneyFormat(-$riga->sconto).'</span>' : '';
echo '
<tr>
@ -343,8 +343,8 @@ ksort($tipologie);
foreach ($tipologie as $key => $tipologia) {
$margine = $tipologia['ricavo'] - $tipologia['costo'];
if ($tipologia['ricavo']) {
$margine_prc = (int) (1 - ($tipologia['costo'] / $tipologia['ricavo'])) * 100;
$ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / $tipologia['costo']) - 1) * 100) : 100;
$margine_prc = (int) (1 - ($tipologia['costo'] / ($tipologia['ricavo'] > 0 ? $tipologia['ricavo'] : 1))) * 100;
$ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / ($tipologia['costo']> 0 ? $tipologia['costo'] : 1)) - 1) * 100) : 100;
}
echo '
@ -376,8 +376,8 @@ ksort($tecnici);
foreach ($tecnici as $key => $tecnico) {
$margine = $tecnico['ricavo'] - $tecnico['costo'];
if ($tecnico['ricavo']) {
$margine_prc = (int) (1 - ($tecnico['costo'] / $tecnico['ricavo'])) * 100;
$ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / $tecnico['costo']) - 1) * 100) : 100;
$margine_prc = (int) (1 - ($tecnico['costo'] / ($tecnico['ricavo']>0 ? $tecnico['ricavo'] : 1))) * 100;
$ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / ($tecnico['costo'] > 0 ? $tecnico['costo'] : 1)) - 1) * 100) : 100;
}
echo '
<tr>
@ -410,8 +410,8 @@ ksort($stati_intervento);
foreach ($stati_intervento as $key => $stato) {
$margine = $stato['ricavo'] - $stato['costo'];
if ($stato['ricavo']) {
$margine_prc = (int) (1 - ($stato['costo'] / $stato['ricavo'])) * 100;
$ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / $stato['costo']) - 1) * 100) : 100;
$margine_prc = (int) (1 - ($stato['costo'] / ($stato['ricavo'] > 0 ? $stato['ricavo'] : 1))) * 100;
$ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / ($stato['costo'] > 0 ? $stato['costo'] : 1)) - 1) * 100) : 100;
}
echo '
<tr>
@ -442,8 +442,8 @@ foreach ($materiali_art as $key => $materiali_array1) {
foreach ($materiali_array1 as $materiali_array2) {
foreach ($materiali_array2 as $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
$margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo']>0 ? $materiale['ricavo'] : 1))) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo'] > 0 ? $materiale['costo'] : 1)) - 1) * 100) : 100;
echo '
<tr>
<td>'.Modules::link('Articoli', $materiale['id'], $key).'</td>
@ -461,7 +461,7 @@ ksort($materiali_righe);
foreach ($materiali_righe as $key => $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo'] > 0 ? $materiale['ricavo'] : 1))) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo']>0 ? $materiale['costo'] : 1)) - 1) * 100) : 100;
echo '
<tr>
<td>'.$key.'</td>

View File

@ -122,7 +122,7 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) {
echo '
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
<br><span class="right badge badge-default">'.nl2br($riga->note).'</small>';
}
echo '
</td>';

View File

@ -19,14 +19,14 @@
echo '
<!-- Istruzioni per il contenuto -->
<div class="box box-info">
<div class="box-header">
<h3 class="box-title">'.tr('Istruzioni per il campo _FIELD_', [
<div class="card card-info">
<div class="card-header">
<h3 class="card-title">'.tr('Istruzioni per il campo _FIELD_', [
'_FIELD_' => tr('Codice'),
]).'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p>'.tr('Le seguenti sequenze di testo vengono sostituite nel seguente modo').':</p>
<ul>';

View File

@ -512,7 +512,7 @@ switch (filter('op')) {
<b>'.$sessione['ragione_sociale'].'</b>
<br>'.dateFormat($sessione['data_richiesta']).' ('.$sessione['tipo_intervento'].')
<div class="request">'.(!empty($sessione['richiesta']) ? ' - '.strip_tags($sessione['richiesta']) : '').'</div>
'.(!empty($sessione['numero_contratto']) ? '<span class="label label-'.$class.'">'.tr('Contratto numero: ').$sessione['numero_contratto'].tr(' del ').dateFormat($sessione['data_contratto']).'<span>' : '').' '.(!empty($sessione['data_scadenza'] && $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '<span class="label label-'.$class.'" >'.tr('Entro il: ').dateFormat($sessione['data_scadenza']).'</span>' : '').' '.(!empty($sessione['id_tecnico']) ? '<span class="label" style="color:'.color_inverse($sessione['colore']).';background-color:'.$sessione['colore'].';" >'.tr('Tecnico').': '.$sessione['ragione_sociale_tecnico'].'</span>' : '').'
'.(!empty($sessione['numero_contratto']) ? '<span class="badge badge-'.$class.'">'.tr('Contratto numero: ').$sessione['numero_contratto'].tr(' del ').dateFormat($sessione['data_contratto']).'<span>' : '').' '.(!empty($sessione['data_scadenza'] && $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '<span class="badge badge-'.$class.'" >'.tr('Entro il: ').dateFormat($sessione['data_scadenza']).'</span>' : '').' '.(!empty($sessione['id_tecnico']) ? '<span class="badge" style="color:'.color_inverse($sessione['colore']).';background-color:'.$sessione['colore'].';" >'.tr('Tecnico').': '.$sessione['ragione_sociale_tecnico'].'</span>' : '').'
</div>';
}
}

View File

@ -91,7 +91,7 @@ echo '
<div class="row">
<!-- STATI INTERVENTO -->
<div class="dropdown col-md-3" id="dashboard_stati">
<button type="button" class="btn btn-block counter_object" data-toggle="dropdown">
<button type="button" class="btn btn-block counter_object" data-card-widget="dropdown">
<i class="fa fa-filter"></i> '.tr('Stati attività').'
(<span class="selected_counter"></span>/<span class="total_counter"></span>) <i class="caret"></i>
</button>
@ -128,7 +128,7 @@ echo '
<!-- TIPI INTERVENTO -->
<div class="dropdown col-md-3" id="dashboard_tipi">
<button type="button" class="btn btn-block counter_object" data-toggle="dropdown">
<button type="button" class="btn btn-block counter_object" data-card-widget="dropdown">
<i class="fa fa-filter"></i> '.tr('Tipi attività').'
(<span class="selected_counter"></span>/<span class="total_counter"></span>) <i class="caret"></i>
</button>
@ -165,7 +165,7 @@ echo '
<!-- TECNICI -->
<div class="dropdown col-md-3" id="dashboard_tecnici">
<button type="button" class="btn btn-block counter_object" data-toggle="dropdown">
<button type="button" class="btn btn-block counter_object" data-card-widget="dropdown">
<i class="fa fa-filter"></i> '.tr('Tecnici').'
(<span class="selected_counter"></span>/<span class="total_counter"></span>) <i class="caret"></i>
</button>
@ -201,7 +201,7 @@ echo '
<!-- ZONE -->
<div class="dropdown col-md-3" id="dashboard_zone">
<button type="button" class="btn btn-block counter_object" data-toggle="dropdown">
<button type="button" class="btn btn-block counter_object" data-card-widget="dropdown">
<i class="fa fa-filter"></i> '.tr('Zone').'
(<span class="selected_counter"></span>/<span class="total_counter"></span>) <i class="caret"></i>
</button>

View File

@ -56,7 +56,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -66,7 +66,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -57,7 +57,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -67,7 +67,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -26,14 +26,14 @@ $id_module_collegamento = $ddt->direzione == 'entrata' ? (new Module())->getByFi
// Informazioni sui movimenti interni
if (!empty($ddt->id_ddt_trasporto_interno)) {
echo '
<div class="tip" data-toggle="tooltip" title="'.tr("Questo ddt è impostato sull'anagrafica Azienda, e pertanto rappresenta un trasporto interno di merce: il movimento tra sedi distinte è necessario completato tramite un DDT in direzione opposta").'.">
<div class="tip" data-widget="tooltip" title="'.tr("Questo ddt è impostato sull'anagrafica Azienda, e pertanto rappresenta un trasporto interno di merce: il movimento tra sedi distinte è necessario completato tramite un DDT in direzione opposta").'.">
<a class="btn btn-info" href="'.base_url().'/editor.php?id_module='.$id_module_collegamento.'&id_record='.$ddt->id_ddt_trasporto_interno.'">
<i class="fa fa-truck"></i> '.tr('DDT di completamento trasporto').'
</a>
</div>';
} elseif ($azienda->id == $ddt->anagrafica->id) {
echo '
<div class="tip" data-toggle="tooltip" title="'.tr("Questo ddt è impostato sull'anagrafica Azienda, e pertanto rappresenta un trasferimento interno di merci tra sedi distinte dell'Azienda: per completare la movimentazione, è necessario generare un DDT in direzione opposta tramite questo pulsante").'.">
<div class="tip" data-widget="tooltip" title="'.tr("Questo ddt è impostato sull'anagrafica Azienda, e pertanto rappresenta un trasferimento interno di merci tra sedi distinte dell'Azienda: per completare la movimentazione, è necessario generare un DDT in direzione opposta tramite questo pulsante").'.">
<button class="btn btn-warning '.($ddt->isImportabile() ? '' : 'disabled').'" onclick="completaTrasporto()">
<i class="fa fa-truck"></i> '.tr('Completa trasferimento tra sedi ').'
</button>
@ -75,11 +75,11 @@ foreach ($causali as $causale) {
}
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Il ddt è fatturabile solo se si trova negli stati _STATE_LIST_ e la relativa causale è una delle seguenti: _CAUSALE_LIST_', [
<div class="tip" data-widget="tooltip" title="'.tr('Il ddt è fatturabile solo se si trova negli stati _STATE_LIST_ e la relativa causale è una delle seguenti: _CAUSALE_LIST_', [
'_STATE_LIST_' => implode(', ', $stati_importabili),
'_CAUSALE_LIST_' => implode(', ', $causali_importabili),
]).'">
<button class="btn btn-info '.($ddt->isImportabile() ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'"><i class="fa fa-magic"></i> '.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'
<button class="btn btn-info '.($ddt->isImportabile() ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'"><i class="fa fa-magic"></i> '.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'
</button>
</div>';

View File

@ -88,12 +88,12 @@ if ($righe_vuote) {
<div class="row">
<div class="col-md-8">
<!-- INTESTAZIONE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Intestazione'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Intestazione'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<?php
if ($dir == 'uscita') {
@ -212,11 +212,11 @@ if (!empty($id_sede_azienda)) {
?>
<!-- GEOLOCALIZZAZIONE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-map"></i> <?php echo tr('Geolocalizzazione'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><i class="fa fa-map"></i> <?php echo tr('Geolocalizzazione'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<?php
if (!empty($sede_anagrafica->gaddress) || (!empty($sede_anagrafica->lat) && !empty($sede_anagrafica->lng))) {
echo '
@ -341,12 +341,12 @@ echo '
</div>
<!-- DATI DDT -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati ddt'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati ddt'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "icon-after": "add|<?php echo (new Module())->getByField('title', 'Aspetto beni', Models\Locale::getPredefined()->id); ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>" ]}
@ -479,26 +479,26 @@ if ($dir == 'entrata') {
if (!empty($record['id_documento_fe']) || !empty($record['num_item']) || !empty($record['codice_cig']) || !empty($record['codice_cup'])) {
$collapsed = '';
} else {
$collapsed = ' collapsed-box';
$collapsed = ' collapsed-card';
}
?>
<!-- Fatturazione Elettronica PA-->
<div class="box box-primary collapsable <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?> <?php echo $collapsed; ?>">
<div class=" box-header">
<h4 class=" box-title">
<div class="card card-primary collapsable <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?> <?php echo $collapsed; ?>">
<div class=" card-header">
<h4 class=" card-title">
<?php echo tr('Dati appalto'); ?></h4>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Identificatore Documento'); ?>", "name": "id_documento_fe", "required": 0, "help": "<?php echo tr('<span>Obbligatorio per valorizzare CIG/CUP. &Egrave; possible inserire: </span><ul><li>N. determina</li><li>RDO</li><li>Ordine MEPA</li></ul>'); ?>", "value": "$id_documento_fe$", "maxlength": 20 ]}
@ -522,12 +522,12 @@ if ($dir == 'entrata') {
</form>
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Righe'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Righe'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<?php
if (!$block_edit) {
@ -589,8 +589,8 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Riga').'
</a>
<div class="btn-group tip" data-toggle="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<div class="btn-group tip" data-card-widget="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-card-widget="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-list"></i> '.tr('Altro').'
<span class="caret"></span>
</button>
@ -608,13 +608,13 @@ if (!$block_edit) {
</li>
<li>
<a class="'.(!empty($tot_ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<a class="'.(!empty($tot_ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Ddt').'
</a>
</li>
<li>
<a class="'.(!empty($tot_ordini) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ordine.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Ordine').'" onclick="saveForm()">
<a class="'.(!empty($tot_ordini) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ordine.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ordine').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Ordine').'
</a>
</li>
@ -808,16 +808,16 @@ ORDER BY `data`');
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -140,7 +140,7 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) {
echo '
<br><small class="label label-default">'.nl2br($riga->note).'</small>';
<br><span class="right badge badge-default">'.nl2br($riga->note).'</small>';
}
echo '
</td>';

View File

@ -33,12 +33,12 @@ if (!$record['predefined']) {
<input type="hidden" name="backto" value="record-edit">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "value": "$title$", "required": 1, "extra": "<?php echo $attr; ?>" ]}
@ -142,12 +142,12 @@ $variables = $module->getPlaceholders($id_record);
echo '
<!-- Istruzioni per il contenuto -->
<div class="box box-info">
<div class="box-header">
<h3 class="box-title">'.tr('Variabili').'</h3>
<div class="card card-info">
<div class="card-header">
<h3 class="card-title">'.tr('Variabili').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if (!empty($variables)) {
echo '

View File

@ -28,12 +28,12 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}

View File

@ -30,12 +30,12 @@ use Modules\Pagamenti\Pagamento;
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$title$" ]}
@ -67,12 +67,12 @@ use Modules\Pagamenti\Pagamento;
</div>
<!-- Date aggiuntive -->
<div class="panel panel-primary hide">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Date aggiuntive'); ?></h3>
<div class="card card-primary hide">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Date aggiuntive'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div id="elenco-date">
<?php
@ -85,7 +85,7 @@ foreach ($results as $result) {
?>
</div>
<div class="pull-right">
<div class="float-right d-none d-sm-inline">
<button type="button" class="btn btn-info" onclick="aggiungiData()">
<i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?>
</button>
@ -103,11 +103,11 @@ foreach ($results as $result) {
<?php
echo '
<form class="hide" id="template">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Nuova data').'</h3>
<div class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Nuova data').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<input type="hidden" value="" name="id[-id-]">
<div class="row">
@ -144,16 +144,16 @@ $elementi = $dbo->fetchArray('SELECT `in_tipiintervento`.`codice`, `in_tipiinter
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Tipi interventi collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Tipi interventi collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -83,47 +83,47 @@ if ($dir == 'entrata') {
<div id="info" class="hidden">
<div class="row">
<div class="col-md-6 ">
<div id="info-title-bozza" class="box">
<div id="info-title-bozza" class="card">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Fatture in stato Bozza del cliente').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Fatture in stato Bozza del cliente').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-minus"></i>
</button>
</div>
</div>
<div class="box-body" id="info-content-bozza"></div>
<div class="card-body" id="info-content-bozza"></div>
</div>
</div>
<div class="col-md-6">
<div id="info-title-scadute" class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Fatture con termini di pagamento trascorsi').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div id="info-title-scadute" class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Fatture con termini di pagamento trascorsi').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-minus"></i>
</button>
</div>
</div>
<div class="box-body" id="info-content-scadute"></div>
<div class="card-body" id="info-content-scadute"></div>
</div>
</div>
</div>
</div>
<!-- DETTAGLI CLIENTE -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Dettagli cliente').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Dettagli cliente').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body" id="dettagli_cliente">
<div class="card-body" id="dettagli_cliente">
'.tr('Seleziona prima un cliente').'...
</div>
</div>';
@ -145,7 +145,7 @@ if ($dir == 'entrata') {
<script>
$(document).ready(function () {
if($("#idanagrafica_add").val()){
// Carico nel panel i dettagli del cliente
// Carico nel card i dettagli del cliente
$.get("'.base_path().'/ajax_complete.php?module=Interventi&op=dettagli&id_anagrafica=" + $("#idanagrafica_add").val(), function(data){
$("#dettagli_cliente").html(data);
});
@ -169,11 +169,11 @@ $(document).ready(function () {
},
success: function (results) {
$("#info").removeClass("box-info");
$("#info").removeClass("box-warning");
$("#info").removeClass("card-info");
$("#info").removeClass("card-warning");
if (results.length === 0){
$("#info-title-bozza").addClass("box-info");
$("#info-title-bozza").removeClass("box-warning");
$("#info-title-bozza").addClass("card-info");
$("#info-title-bozza").removeClass("card-warning");
$("#info-content-bozza").html("<p>'.tr('Per il cliente selezionato non è presente alcuna fattura in stato Bozza').'</p>")
} else {
let content = "";
@ -181,8 +181,8 @@ $(document).ready(function () {
results.forEach(function(item) {
content += "<li>" + item + "</li>";
});
$("#info-title-bozza").addClass("box-warning");
$("#info-title-bozza").removeClass("box-info");
$("#info-title-bozza").addClass("card-warning");
$("#info-title-bozza").removeClass("card-info");
$("#info-content-bozza").html("<p>'.tr('Attenzione: per il cliente selezionato sono presenti le seguenti fatture in stato Bozza').':</p><ul>" + content + "</ul>")
}
}
@ -199,11 +199,11 @@ $(document).ready(function () {
op: "fatture_scadute",
},
success: function (results) {
$("#info").removeClass("box-info");
$("#info").removeClass("box-warning");
$("#info").removeClass("card-info");
$("#info").removeClass("card-warning");
if (results.length === 0){
$("#info-title-scadute").addClass("box-info");
$("#info-title-scadute").removeClass("box-warning");
$("#info-title-scadute").addClass("card-info");
$("#info-title-scadute").removeClass("card-warning");
$("#info-content-scadute").html("<p>'.tr('Per il cliente selezionato non è presente alcuna fattura Scaduta').'</p>")
} else {
let content = "";
@ -211,14 +211,14 @@ $(document).ready(function () {
results.forEach(function(item) {
content += "<li>" + item + "</li>";
});
$("#info-title-scadute").addClass("box-warning");
$("#info-title-scadute").removeClass("box-info");
$("#info-title-scadute").addClass("card-warning");
$("#info-title-scadute").removeClass("card-info");
$("#info-content-scadute").html("<p>'.tr('Attenzione: per il cliente selezionato le seguenti fatture presentamento una o più rate scadute').':</p><ul>" + content + "</ul>")
}
}
});
// Carico nel panel i dettagli del cliente
// Carico nel card i dettagli del cliente
$.get("'.base_path().'/ajax_complete.php?module=Interventi&op=dettagli&id_anagrafica=" + data.id, function(data){
$("#dettagli_cliente").html(data);
});

View File

@ -58,7 +58,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -68,7 +68,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -58,7 +58,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -68,7 +68,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -58,7 +58,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -68,7 +68,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -57,7 +57,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -67,7 +67,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -274,7 +274,7 @@ echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-2">
<button type="button" class="btn btn-info '.($dir == 'uscita' ? 'hidden' : '').'" data-toggle="modal" data-title="'.tr('Aggiungi serial').'" data-href="'.base_path().'/modules/articoli/plugins/articoli.lotti.php?id_module='.$id_module_articoli.'&id_record='.$rs[0]['idarticolo'].'&modal=1"><i class="fa fa-magic"></i> '.tr('Crea').'</button>
<button type="button" class="btn btn-info '.($dir == 'uscita' ? 'hidden' : '').'" data-card-widget="modal" data-title="'.tr('Aggiungi serial').'" data-href="'.base_path().'/modules/articoli/plugins/articoli.lotti.php?id_module='.$id_module_articoli.'&id_record='.$rs[0]['idarticolo'].'&modal=1"><i class="fa fa-magic"></i> '.tr('Crea').'</button>
</div>
<div class="col-md-10 text-right">

View File

@ -660,7 +660,7 @@ $operations['copy-bulk'] = [
if (App::debug()) {
$operations['delete-bulk'] = [
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="label label-danger">beta</span>',
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="badge badge-danger">beta</span>',
];
}

View File

@ -24,7 +24,7 @@ if ($module->getTranslation('title') == 'Fatture di vendita') {
$attributi_visibili = $record['dati_aggiuntivi_fe'] != null || $record['stato'] == 'Bozza';
echo '
<a class="btn btn-info '.($attributi_visibili ? '' : 'disabled').'" data-toggle="modal" data-title="'.tr('Dati Fattura Elettronica').'" data-href="'.$structure->fileurl('fe/document-fe.php').'?id_module='.$id_module.'&id_record='.$id_record.'" '.($attributi_visibili ? '' : 'disabled').'>
<a class="btn btn-info '.($attributi_visibili ? '' : 'disabled').'" data-widget="modal" data-title="'.tr('Dati Fattura Elettronica').'" data-href="'.$structure->fileurl('fe/document-fe.php').'?id_module='.$id_module.'&id_record='.$id_record.'" '.($attributi_visibili ? '' : 'disabled').'>
<i class="fa fa-file-code-o"></i> '.tr('Attributi avanzati').'
</a>';
}
@ -32,7 +32,7 @@ if ($module->getTranslation('title') == 'Fatture di vendita') {
if ($dir == 'entrata' || !empty($abilita_autofattura)) {
echo '
<div class="btn-group">
<button type="button" class="btn btn-primary unblockable dropdown-toggle '.(((!empty($record['ref_documento']) || $record['stato'] != 'Bozza') and (empty($record['is_reversed']) || !empty($abilita_autofattura))) ? '' : 'disabled').'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<button type="button" class="btn btn-primary unblockable dropdown-toggle '.(((!empty($record['ref_documento']) || $record['stato'] != 'Bozza') and (empty($record['is_reversed']) || !empty($abilita_autofattura))) ? '' : 'disabled').'" data-widget="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>';

View File

@ -265,12 +265,12 @@ if ($righe_vuote) {
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<!-- INTESTAZIONE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Intestazione'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Intestazione'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<!-- id_segment -->
@ -596,12 +596,12 @@ if ($dir == 'entrata') {
<?php
if ($record['descrizione_tipo'] == 'Fattura accompagnatoria di vendita') {
echo '
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-edit"></i> '.tr('Dati Fattura accompagnatoria').'</h3>
<div class="card card-info">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-edit"></i> '.tr('Dati Fattura accompagnatoria').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "", "ajax-source": "aspetto-beni", "value": "$idaspettobeni$", "icon-after": "add|'.(new Module())->getByField('title', 'Aspetto beni', Models\Locale::getPredefined()->id).'||'.(($fattura->stato->id != $id_stato_bozza) ? 'disabled' : '').'" ]}
@ -779,12 +779,12 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
echo '
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Righe').'</h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">'.tr('Righe').'</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">';
@ -898,8 +898,8 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Riga').'
</a>
<div class="btn-group tip" data-toggle="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<div class="btn-group tip" data-card-widget="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-card-widget="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-list"></i> '.tr('Altro').'
<span class="caret"></span>
</button>
@ -919,32 +919,32 @@ if (!$block_edit) {
if ($dir == 'entrata') {
echo '
<li>
<a class="'.(!empty($interventi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_intervento.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Attività').'" onclick="saveForm()">
<a class="'.(!empty($interventi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_intervento.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Attività').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Attività').'
</a>
</li>
<li>
<a class="'.(!empty($preventivi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_preventivo.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Preventivo').'" onclick="saveForm()">
<a class="'.(!empty($preventivi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_preventivo.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Preventivo').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Preventivo').'
</a>
</li>
<li>
<a class="'.(!empty($contratti) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_contratto.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Contratto').'" onclick="saveForm()">
<a class="'.(!empty($contratti) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_contratto.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Contratto').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Contratto').'
</a>
</li>';
}
echo '
<li>
<a class="'.(!empty($ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<a class="'.(!empty($ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Ddt').'
</a>
</li>
<li>
<a class="'.(!empty($ordini) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ordine.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Ordine').'" onclick="saveForm()">
<a class="'.(!empty($ordini) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ordine.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ordine').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Ordine').'
</a>
</li>';

View File

@ -101,7 +101,7 @@ foreach ($righe as $riga) {
'_RIVALSA_' => $riga->rivalsa_inps ? '<br>'.tr('Cassa previdenziale').': '.moneyFormat(abs($riga->rivalsa_inps)) : null,
'_RITENUTA_ACCONTO_' => $riga->ritenuta_acconto ? '<br>Ritenuta acconto: '.moneyFormat(abs($riga->ritenuta_acconto)) : null,
'_RITENUTA_CONTRIBUTI_' => $riga->ritenuta_contributi ? '<br>Ritenuta previdenziale: '.moneyFormat(abs($riga->ritenuta_contributi)) : null,
'_DESCRIZIONE_CONTO_' => $descrizione_conto ?: '<span class="label label-danger" ><i class="fa fa-exclamation-triangle"></i>
'_DESCRIZIONE_CONTO_' => $descrizione_conto ?: '<span class="badge badge-danger" ><i class="fa fa-exclamation-triangle"></i>
'.tr('Conto mancante').'</span>',
'_ID_DOCUMENTO_' => $id_documento_fe ? ' - DOC: '.$id_documento_fe : null,
'_NUMERO_RIGA_' => $num_item ? ', NRI: '.$num_item : null,
@ -186,10 +186,10 @@ foreach ($righe as $riga) {
if (strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50);
$seconda_parte = substr($riga->note, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50);
$stringa_modificata = '<small class="label label-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
$stringa_modificata = '<span class="right badge badge-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><span class="right badge badge-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
} else {
$stringa_modificata = '<small class="label label-default">'.$riga->note.'</small>';
$stringa_modificata = '<span class="right badge badge-default">'.$riga->note.'</small>';
}
echo '

View File

@ -24,12 +24,12 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="backto" value="record-edit">
<!-- SCHEDA FILE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"> Scheda file</h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"> Scheda file</h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">

View File

@ -38,12 +38,12 @@ if (!empty($record['immagine'])) {
<input type="hidden" name="matricola" value="<?php echo $id_record; ?>">
<!-- DATI ANAGRAFICI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati impianto'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati impianto'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-3">
{[ "type": "image", "label": "<?php echo tr('Immagine'); ?>", "name": "immagine", "class": "img-thumbnail", "value": "<?php echo $img; ?>" ]}
@ -150,16 +150,16 @@ $class = '';
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -26,12 +26,12 @@ use Models\Module;
<input type="hidden" name="op" value="update">
<!-- DATI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Dati'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "title", "required": 1, "value": "$title$" ]}
@ -43,14 +43,14 @@ use Models\Module;
</form>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Modelli'); ?></h3>
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title"><?php echo tr('Modelli'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="pull-left">
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-toggle="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Modello'); ?></a><br>
<a class="btn btn-primary" data-href="<?php echo base_path(); ?>/add.php?id_module=<?php echo $id_module; ?>&id_original=<?php echo $id_record; ?>" data-card-widget="modal" data-title="<?php echo tr('Aggiungi riga'); ?>"><i class="fa fa-plus"></i> <?php echo tr('Modello'); ?></a><br>
</div>
<div class="clearfix"></div>
<hr>
@ -75,16 +75,16 @@ $elementi = $dbo->fetchArray('SELECT `my_impianti`.`id`, `my_impianti`.`matricol
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Impianti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $elemento) {

View File

@ -85,14 +85,14 @@ if (empty($id_record)) {
for ($column = 0; $column < $numero_colonne; ++$column) {
echo '
<div class="col-sm-6 col-lg-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">'.tr('Colonna _NUM_', [
<div class="card card-primary">
<div class="card-heading">
<h3 class="card-title">'.tr('Colonna _NUM_', [
'_NUM_' => $column + 1,
]).'</h3>
</div>
<div class="panel-body">';
<div class="card-body">';
// Individuazione delle corrispondenze
$selezionato = null;

View File

@ -56,17 +56,17 @@ echo '
foreach ($gruppi as $key => $gruppo) {
echo '
<!-- Impostazioni della singola sezione -->
<div class="box box-primary collapsed-box" title="'.$gruppo['nome'].'">
<div class="box-header clickable" id="impostazioni-'.$key.'">
<div class="box-title">'.tr('_SEZIONE_', [
<div class="card card-primary collapsed-card" title="'.$gruppo['nome'].'">
<div class="card-header clickable" id="impostazioni-'.$key.'">
<div class="card-title">'.tr('_SEZIONE_', [
'_SEZIONE_' => $gruppo['nome'],
]).'</div>
<div class="box-tools pull-right">
<div class="card-tools pull-right">
<div class="badge">'.$gruppo['numero'].'</div>
</div>
</div>
<div class="box-body""></div>
<div class="card-body""></div>
</div>';
}
@ -117,10 +117,10 @@ $("#ricerca_impostazioni").change(function (){
function caricaSezione(header) {
let box = $(header).closest(".box");
box.toggleClass("collapsed-box");
box.toggleClass("collapsed-card");
// Controllo sul caricamento già effettuato
let container = box.find(".box-body");
let container = box.find(".card-body");
if (container.html()){
return ;
}

View File

@ -238,33 +238,33 @@ echo '
</div>
<!-- DETTAGLI CLIENTE -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Dettagli cliente').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Dettagli cliente').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body" id="dettagli_cliente">
<div class="card-body" id="dettagli_cliente">
'.tr('Seleziona prima un cliente').'...
</div>
</div>
<!-- POSIZIONE -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Posizione').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse" onclick="autoload_mappa=true; caricaMappa();">
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Posizione').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse" onclick="autoload_mappa=true; caricaMappa();">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div id="map-add" style="height: 300px;width: 100%;display: flex;align-items: center;justify-content: center;"></div>
</div>
</div>';
@ -272,17 +272,17 @@ echo '
$espandi_dettagli = setting('Espandi automaticamente la sezione "Dettagli aggiuntivi"');
echo '
<!-- DATI AGGIUNTIVI -->
<div class="box box-info collapsable '.(empty($espandi_dettagli) ? 'collapsed-box' : '').'">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Dettagli aggiuntivi').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Dettagli aggiuntivi').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "timestamp", "label": "'.tr('Data/ora scadenza').'", "name": "data_scadenza", "required": 0, "value": "'.$data_scadenza.'" ]}
@ -298,17 +298,17 @@ echo '
// if (empty($id_intervento)) {
echo '
<!-- ASSEGNAZIONE TECNICI -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Assegnazione tecnici').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Assegnazione tecnici').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "'.tr('Tecnici assegnati').'", "multiple": "1", "name": "tecnici_assegnati[]", "ajax-source": "tecnici", "value": "'.$tecnici_assegnati.'", "icon-after": "add|'.$id_modulo_anagrafiche.'|tipoanagrafica=Tecnico&readonly_tipo=1", "readonly": '.intval($id_intervento).' ]}
@ -333,17 +333,17 @@ echo '
echo '
<!-- ORE LAVORO -->
<div class="box box-info collapsable '.($origine_dashboard ? '' : 'collapsed-box').'">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Sessioni di lavoro').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable '.($origine_dashboard ? '' : 'collapsed-card').'">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Sessioni di lavoro').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'.($origine_dashboard ? 'minus' : 'plus').'"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "timestamp", "label": "'.tr('Inizio attività').'", "name": "orario_inizio", "required": '.($origine_dashboard ? 1 : 0).', "value": "'.$inizio_sessione.'" ]}
@ -370,17 +370,17 @@ echo '
</div>
<!-- RICORRENZA -->
<div class="box box-info collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Ricorrenza').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-info collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Ricorrenza').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr('Attività ricorrente').'", "name": "ricorsiva", "value": "" ]}
@ -488,7 +488,7 @@ echo '
updateSelectOption("idanagrafica", value);
session_set("superselect,idanagrafica",value, 0);
// Carico nel panel i dettagli del cliente
// Carico nel card i dettagli del cliente
$.get("'.base_path().'/ajax_complete.php?module=Interventi&op=dettagli&id_anagrafica=" + value, function(data){
$("#dettagli_cliente").html(data);
});
@ -571,7 +571,7 @@ echo '
}
if (data !== undefined) {
// Carico nel panel i dettagli del cliente
// Carico nel card i dettagli del cliente
$.get("'.base_path().'/ajax_complete.php?module=Interventi&op=dettagli&id_anagrafica=" + value, function(data){
$("#dettagli_cliente").html(data);
});

View File

@ -58,7 +58,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -68,7 +68,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -58,7 +58,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -68,7 +68,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -57,7 +57,7 @@ echo '
</div>
<div class="alert alert-info" id="box-loading">
<div class="alert alert-info" id="card-loading">
<i class="fa fa-spinner fa-spin"></i> '.tr('Caricamento in corso').'...
</div>';
@ -67,7 +67,7 @@ echo '
<script>
var content = $("#righe_documento");
var loader = $("#box-loading");
var loader = $("#card-loading");
$(document).ready(function() {
loader.hide();

View File

@ -411,7 +411,7 @@ switch (post('op')) {
if (App::debug()) {
$operations['delete-bulk'] = [
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="label label-danger">beta</span>',
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span> <span class="badge badge-danger">beta</span>',
];
}

View File

@ -37,12 +37,17 @@ echo '
<i class="fa fa-copy"></i> '.tr('Duplica attività').'
</button>
<button type="button" class="btn btn-primary '.(!empty($info_firma) ? 'tip' : '').'" title="'.$info_firma.'" onclick="anteprimaFirma()" '.($record['flag_completato'] ? 'disabled' : '').'>
<i class="fa fa-'.(!empty($info_firma) ? 'refresh' : 'desktop').'"></i> '.$frase.'...
</button>
<a class="btn btn-info'.($prev ? '' : ' disabled').'" href="'.base_path().'/editor.php?id_module=3&id_record='.$prev.'">
<i class="fa fa-arrow-circle-left"></i> '.tr('Precedente').'
</a>
<a class="btn btn-info'.($next ? '' : ' disabled').'" href="'.base_path().'/editor.php?id_module=3&id_record='.$next.'">
'.tr('Successivo').' <i class="fa fa-arrow-circle-right"></i>
</a>
<script>
function duplicaIntervento() {
openModal("'.tr('Duplica attività').'", "'.$module->fileurl('modals/duplicazione.php').'?id_module='.$id_module.'&id_record='.$id_record.'");
@ -58,16 +63,16 @@ function anteprimaFirma() {
/*
echo '
<div class="btn-group">
<button class="btn btn-info dropdown-toggle '.(!$record['flag_completato'] ? 'disabled' : '').'" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<button class="btn btn-info dropdown-toggle '.(!$record['flag_completato'] ? 'disabled' : '').'" type="button" data-widget="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li>
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura').'
</a>
</li>
</ul>
</div>';
*/
*/

View File

@ -43,30 +43,11 @@ if (!empty($numero_previsto) && intval(setting('Verifica numero intervento'))) {
</div>';
}
echo '
<div class="row">
<div class="col-md-2">';
if ($prev) {
echo '
<a class="btn btn-info btn-block" href="'.base_path().'/editor.php?id_module=3&id_record='.$prev.'">
<i class="fa fa-arrow-circle-left"></i> '.tr('Precedente').'
</a>';
} echo '
</div>
<div class="col-md-2 col-md-offset-8">';
if ($next) {
echo '
<a class="btn btn-info btn-block" href="'.base_path().'/editor.php?id_module=3&id_record='.$next.'">
'.tr('Successivo').' <i class="fa fa-arrow-circle-right"></i>
</a>';
}
$tags = $database->fetchArray('SELECT `id_tag` FROM `in_interventi_tags` WHERE id_intervento = '.prepare($id_record));
$tags = $tags ? array_column($tags, 'id_tag') : [];
echo '
</div>
</div>
<br>
<form action="" method="post" id="edit-form">
<input type="hidden" name="op" value="update">
@ -85,18 +66,18 @@ echo '
<div class="col-md-12">
<!-- DATI CLIENTE -->
<div class="box box-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-box' : '').'">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Dati cliente').'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
</button>
</div>
</div>
<div class="box-body">
<div class="panel-body">
<div class="card-body">
<div class="card-body">
<!-- RIGA 1 -->
<div class="row">
<div class="col-md-3">
@ -288,12 +269,12 @@ echo '
?>
<!-- DATI INTERVENTO -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati intervento'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Dati intervento'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<!-- RIGA 3 -->
<div class="row">
<div class="col-md-3">
@ -380,9 +361,9 @@ if (!empty($record['idcontratto'])) {
?>
<!-- Fatturazione Elettronica PA-->
<div class="panel panel-primary <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?>" >
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati appalto'); ?>
<div class="card card-primary <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? 'show' : 'hide'; ?>" >
<div class="card-header">
<h3 class="card-title"><?php echo tr('Dati appalto'); ?>
<?php if (!empty($record['idcontratto'])) {
?>
<span class="tip" title="<?php echo tr('E\' possibile specificare i dati dell\'appalto solo se il cliente è di tipo \'Ente pubblico\' o \'Azienda\' e l\'attività non risulta già collegata ad un contratto.'); ?>" > <i class="fa fa-question-circle-o"></i></span>
@ -391,7 +372,7 @@ if (!empty($record['idcontratto'])) {
} ?>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-6">
{[ "type": "<?php echo !empty($record['idcontratto']) ? 'span' : 'text'; ?>", "label": "<?php echo tr('Identificatore Documento'); ?>", "name": "id_documento_fe", "required": 0, "help": "<?php echo tr('<span>Obbligatorio per valorizzare CIG/CUP. &Egrave; possible inserire: </span><ul><li>N. determina</li><li>RDO</li><li>Ordine MEPA</li></ul>'); ?>", "value": "<?php echo $record['id_documento_fe']; ?>", "maxlength": 20, "readonly": "<?php echo $record['flag_completato']; ?>", "extra": "" ]}
@ -415,12 +396,12 @@ if (!empty($record['idcontratto'])) {
</form>
<!-- ORE LAVORO -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Sessioni di lavoro'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Sessioni di lavoro'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<?php
if ($show_prezzi) {
echo "
@ -440,12 +421,12 @@ if (!empty($record['idcontratto'])) {
</div>
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Righe'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Righe'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12">
@ -509,8 +490,8 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Riga').'
</a>
<div class="btn-group tip" data-toggle="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<div class="btn-group tip" data-card-widget="tooltip">
<button type="button" class="btn btn-primary dropdown-toggle" data-card-widget="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-list"></i> '.tr('Altro').'
<span class="caret"></span>
</button>
@ -528,19 +509,19 @@ if (!$block_edit) {
</li>
<li title="'.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'.">
<a class="'.(!empty($preventivi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_preventivo.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Preventivo').'" onclick="saveForm()">
<a class="'.(!empty($preventivi) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_preventivo.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Preventivo').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Preventivo').'
</a>
</li>
<li title="'.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'.">
<a class="'.(!empty($contratti) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_contratto.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Contratto').'" onclick="saveForm()">
<a class="'.(!empty($contratti) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_contratto.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Contratto').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Contratto').'
</a>
</li>
<li title="'.tr('DDT in uscita per il Cliente che si trovano nello stato di Evaso o Parzialmente Evaso con una Causale importabile').'. '.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'.">
<a class="'.(!empty($ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<a class="'.(!empty($ddt) ? '' : ' disabled').'" style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
<i class="fa fa-plus"></i> '.tr('Ddt').'
</a>
</li>
@ -562,12 +543,12 @@ if (!$block_edit) {
</div>
<!-- COSTI TOTALI -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Costi totali'); ?></h3>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title"><?php echo tr('Costi totali'); ?></h3>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-12" id="costi"></div>
</div>
@ -863,16 +844,16 @@ $elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento_lang`.`
if (!empty($elementi)) {
echo '
<div class="box box-warning collapsable collapsed-box">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
<div class="card card-warning collapsable collapsed-card">
<div class="card-header with-border">
<h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
'_NUM_' => count($elementi),
]).'</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
<div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div class="box-body">
<div class="card-body">
<ul>';
foreach ($elementi as $fattura) {

View File

@ -100,7 +100,7 @@ echo '
<hr>
<div class="row">
<div class="col-md-1">
<img src="'.$logo.'" class="img-responsive">
<img src="'.$logo.'" class="brand-link">
</div>';
// Cliente
@ -126,11 +126,11 @@ echo '
// Panoramica
echo '
<div class="col-md-4">
<div class="box box-info">
<div class="box-header">
<h3 class="box-title"><i class="fa fa-map"></i> '.tr('Panoramica').'</h3>
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><i class="fa fa-map"></i> '.tr('Panoramica').'</h3>
</div>
<div class="box-body">
<div class="card-body">
<p style="margin:3px 0;"><i class="fa fa-'.($insoluti ? 'warning text-danger' : 'check text-success').'"></i>
'.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).'
@ -193,11 +193,11 @@ $sede_azienda = $anagrafica_azienda->sedeLegale;
echo '
<div class="col-md-4">
<div class="box box-info">
<div class="box-header">
<h3 class="box-title"><i class="fa fa-map"></i> '.tr('Geolocalizzazione').'</h3>
<div class="card card-info">
<div class="card-header">
<h3 class="card-title"><i class="fa fa-map"></i> '.tr('Geolocalizzazione').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
echo '

View File

@ -47,11 +47,11 @@ foreach ($id_records as $id) {
echo '
<div class="row">
<div class="col-md-4">
<div class="box box-success">
<div class="box-header">
<h3 class="box-title">'.tr('Interventi da firmare').'</h3>
<div class="card card-success">
<div class="card-header">
<h3 class="card-title">'.tr('Interventi da firmare').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if ($interventi_da_firmare) {
echo '
<table class="table table-hover table-bordered table-condensed">
@ -89,11 +89,11 @@ echo '
</div>
<div class="col-md-4">
<div class="box box-warning">
<div class="box-header">
<h3 class="box-title">'.tr('Interventi firmati non completati').'</h3>
<div class="card card-warning">
<div class="card-header">
<h3 class="card-title">'.tr('Interventi firmati non completati').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if ($interventi_firmati) {
echo '
<table class="table table-hover table-bordered table-condensed">
@ -131,11 +131,11 @@ echo '
</div>
<div class="col-md-4">
<div class="box box-danger">
<div class="box-header">
<h3 class="box-title">'.tr('Interventi completati').'</h3>
<div class="card card-danger">
<div class="card-header">
<h3 class="card-title">'.tr('Interventi completati').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
if ($interventi_completati) {
echo '
<table class="table table-hover table-bordered table-condensed">

View File

@ -23,11 +23,11 @@ include_once __DIR__.'/../../../core.php';
// INTERVENTI ESEGUITI SU QUESTO IMPIANTO
echo '
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">'.tr('Interventi eseguiti su questo impianto').'</h3>
<div class="card">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Interventi eseguiti su questo impianto').'</h3>
</div>
<div class="box-body">';
<div class="card-body">';
$results = $dbo->fetchArray('SELECT in_interventi.id, in_interventi.codice, descrizione, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=my_impianti_interventi.idintervento) AS data FROM my_impianti_interventi INNER JOIN in_interventi ON my_impianti_interventi.idintervento=in_interventi.id WHERE idimpianto='.prepare($id_record).' ORDER BY data DESC');
$totale_interventi = 0;

Some files were not shown because too many files have changed in this diff Show More