<input id="hUser" name="hUser" type="hidden" value="dpapini" /><input id="hUserId" name="hUserId" type="hidden" value="0" /><input id="hUserRole" name="hUserRole" type="hidden" value="0" /><input id="hUserTag" name="hUserTag" type="hidden" value="" />
<html lang="it">
<head>
<meta charset="utf-8" />
<title>Kogeta</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, user-scalable=no">
<meta content="Enterprise Resource Plannning" name="description" />
<meta content="David Papini" name="author" />
<!-- BEGIN GLOBAL MANDATORY STYLES -->
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/font-awesome-4.7.0 2/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/simple-line-icons/simple-line-icons.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/uniform/css/uniform.default.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css" rel="stylesheet" />
<link href="/Template/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css" rel="stylesheet" />
<link href="/Template/global/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
<link href="/Template/global/plugins/bootstrap-timepicker/css/bootstrap-timepicker.min.css" rel="stylesheet" />
<link href="/Template/global/plugins/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
<link href="/Template/global/plugins/datatables/datatables.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/datatables/Responsive-2.2.2/css/responsive.bootstrap.min.css" rel="stylesheet" />
<!-- END GLOBAL MANDATORY STYLES -->
<!-- BEGIN THEME GLOBAL STYLES -->
<link href="/Template/global/plugins/select2/css/select2.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/select2/css/select2-bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/css/components.css" rel="stylesheet" id="style_components" type="text/css" />
<link href="/Template/global/css/plugins.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/pages/css/loader.css" rel="stylesheet" type="text/css" />
<link href="/Template/pages/css/inbox.min.css" rel="stylesheet" />
<!-- BEGIN THEME LAYOUT STYLES -->
<link href="/Template/layouts/layout4/css/layout.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/layouts/layout4/css/themes/light.min.css" rel="stylesheet" type="text/css" id="style_color" />
<link href="/Template/layouts/layout4/css/custom.css" rel="stylesheet" type="text/css" />
<!-- END THEME LAYOUT STYLES -->
<!-- END THEME GLOBAL STYLES -->
<link rel="shortcut icon" href="/Image/favicon.png" />
<script src="/Template/global/plugins/jquery.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery-ui/jquery-ui.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery.rotate.js"></script>
<script src="/Template/global/scripts/app.js" type="text/javascript"></script>
<script src="/Template/layouts/layout4/scripts/layout.min.js" type="text/javascript"></script>
<script src="/Template/layouts/layout4/scripts/demo.js" type="text/javascript"></script>
<script src="/Template/layouts/global/scripts/quick-sidebar.min.js" type="text/javascript"></script>
<script src="/Template/global/scripts/datatable.js" type="text/javascript"></script>
<script src="/Template/global/plugins/datatables/datatables.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/datatables/plugins/bootstrap/datatables.bootstrap.js" type="text/javascript"></script>
<script src="/Template/global/plugins/datatables/Responsive-2.2.2/js/dataTables.responsive.js"></script>
<!-- BEGIN PAGE LEVEL CSS -->
<link href="/Template/global/plugins/bootstrap-toastr/toastr.min.css" rel="stylesheet" type="text/css" />
<link href="/Template/global/plugins/bootstrap-touchspin/bootstrap.touchspin.min.css" rel="stylesheet" />
<style>
td.details-control:before {
content: "\f067"; /* this is your text. You can also use UTF-8 character codes as I do here */
font-family: FontAwesome;
position: relative;
text-align:center;
top: 0;
}
td.details-control {
cursor: pointer;
}
tr.details td.details-control:before {
content: "\f068"; /* this is your text. You can also use UTF-8 character codes as I do here */
font-family: FontAwesome;
position: relative;
text-align: center;
top: 0;
}
</style>
<!-- END PAGE LEVEL CSS -->
</head>
<body class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo">
<div id="loader-wrapper">
<div id="loader-wrapperin">
<div id="fountainTextG"><div id="fountainTextG_1" class="fountainTextG">A</div><div id="fountainTextG_2" class="fountainTextG">t</div><div id="fountainTextG_3" class="fountainTextG">t</div><div id="fountainTextG_4" class="fountainTextG">e</div><div id="fountainTextG_5" class="fountainTextG">n</div><div id="fountainTextG_6" class="fountainTextG">d</div><div id="fountainTextG_7" class="fountainTextG">e</div><div id="fountainTextG_8" class="fountainTextG">r</div><div id="fountainTextG_9" class="fountainTextG">e</div><div id="fountainTextG_10" class="fountainTextG">.</div><div id="fountainTextG_11" class="fountainTextG">.</div><div id="fountainTextG_12" class="fountainTextG">.</div></div>
</div>
</div>
<!-- BEGIN HEADER -->
<div class="page-header navbar navbar-fixed-top">
<!-- BEGIN HEADER INNER -->
<div class="page-header-inner ">
<!-- BEGIN LOGO -->
<div class="page-logo">
<a href="../Home/DashBoard">
<img src="/Template/layouts/layout4/img/logo-light.png" alt="logo" class="logo-default" style="width:150px;height:30px;" />
</a>
<div class="menu-toggler sidebar-toggler">
<!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->
</div>
</div>
<!-- END LOGO -->
<!-- BEGIN RESPONSIVE MENU TOGGLER -->
<a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse"> </a>
<!-- END RESPONSIVE MENU TOGGLER -->
<!-- BEGIN PAGE TOP -->
<div class="page-top">
<!-- BEGIN HEADER SEARCH BOX -->
<!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->
<!-- END HEADER SEARCH BOX -->
<!-- BEGIN TOP NAVIGATION MENU -->
<div class="top-menu">
<ul class="nav navbar-nav pull-right">
<li class="dropdown dropdown-extended dropdown-tasks dropdown-dark dropdown-calendar" id="header_task_bar">
<a href="/Home/Calendario" class="dropdown-toggle">
<i class="icon-calendar"></i>
<span class="badge badge-primary" id="badgeToDo">0</span>
</a>
</li>
<li class="separator hide"> </li>
<!-- BEGIN USER LOGIN DROPDOWN -->
<!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->
<li class="dropdown dropdown-user dropdown-dark">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
<span class="username username-hide-on-mobile"> <label id="userName"></label> </span>
<!-- DOC: Do not remove below empty space( ) as its purposely used -->
<img alt="" class="img-circle" src="/Template/layouts/layout4/img/avatar.png" />
</a>
<ul class="dropdown-menu dropdown-menu-default">
<li>
<a href="/Home/UserProfile">
<i class="icon-user"></i> Profilo
</a>
</li>
<li class="divider"> </li>
<li>
<a href="#" id="aLogOut"><i class="icon-key"></i> Uscita</a>
</li>
</ul>
</li>
<!-- END USER LOGIN DROPDOWN -->
</ul>
</div>
<!-- END TOP NAVIGATION MENU -->
</div>
<!-- END PAGE TOP -->
</div>
<!-- END HEADER INNER -->
</div>
<!-- END HEADER -->
<!-- BEGIN HEADER & CONTENT DIVIDER -->
<div class="clearfix"> </div>
<!-- END HEADER & CONTENT DIVIDER -->
<!-- BEGIN CONTAINER -->
<div class="page-container">
<!-- BEGIN SIDEBAR -->
<div class="page-sidebar-wrapper">
<!-- BEGIN SIDEBAR -->
<!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->
<!-- DOC: Change data-auto-speed="200" to adjust the sub menu slide up/down speed -->
<div class="page-sidebar navbar-collapse collapse" style="margin-top: 9px;">
<ul class="page-sidebar-menu " data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200"></ul>
<!-- END SIDEBAR MENU -->
</div>
<!-- END SIDEBAR -->
</div>
<!-- END SIDEBAR -->
<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<script type="text/javascript">
var arrFrmOther = [];
$(document).ready(function () {
document.cookie = 'cross-site-cookie=bar; SameSite=None; Secure';
$('body').attr('onload', function () {
$('#loader-wrapper').hide();
});
$(function () {
if ( false == true) {
//console.log("[basepage] timeout : " + new Date());
window.stop();
window.location.href = "../Home/Login";
}
else {
$('#userName').html('dpapini');
};
})
});
</script>
<div class="page-content">
<div class="row">
<div class="col-md-12">
<div class="portlet box blue" style="border-right: 1px !important;border-bottom: 0px !important;">
<div class="portlet-title tabbable-line ">
<div class="caption caption-md">
<i class="icon-globe theme-font hide"></i>
<span class="caption-subject" style="font-size: 24px !important;font-weight: 100 !important;">
Piano di carico
<i class="fa fa-spinner fa-spin fa-fw" id="loadPianoDiCarico" style="display:none"></i>
</span>
</div>
<div class="line-bottom" style="border-top: 1px solid #e7ecf1 !important;margin-top: 60px;"></div>
<div class="alert alert-primary display-hide" role="alert" >
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="alert alert-danger display-hide pianodicarico">
<button class="close" data-close="alert"></button>
<span> Errore: alcuni campi obbligatori non sono stati valorizzati</span>
</div>
<!--START RICERCA-->
<div class="portlet-body form" style="border:solid 1px #e7ecf1;border-top:none;padding: 15px 15px 15px 15px;" id="divSearch_pianodicarico">
<form role="form" action="#" id="frmSearch_pianodicarico" name="frmSearch_pianodicarico" class="search">
<input type="hidden" id="pIdUser" name="pIdUser" />
<div class="form-body">
<div class="row">
<div class="form-group col-md-3">
<div class="input-group input-group-sm col-md-12">
<label class="control-label sr-only">Codice Deposito</label>
<select class="form-control form-control-sm select2 js-data-example-ajax" id="pCdDeposito" name="pCdDeposito" >
</select>
<script type="text/javascript">
$(document).ready(function () {
var e = jQuery.Event('keydown');
e.which = 13;
var _url
var _dataType = "jsonp";
_url = App.getGlobalWcfErgonPath() + "GetDdDeposito"
$('#pCdDeposito').attr("required", true);
$('#pCdDeposito > .offer_checkout_page_link .select2-selection').trigger(e);
$('#pCdDeposito').select2({
placeholder: "Deposito",
allowClear: true,
closeOnSelect: true,
theme: "bootstrap",
width: "100%",
ajax: {
url: _url,
contentType: "application/json; charset=utf-8",
dataType: _dataType,
delay: 250,
data: function (params) {
if (params.term == undefined) params.term = '';
return {
"Filter" : JSON.stringify(params.term),
}
},
processResults: function (data, params) {
var results = [];
$.each(JSON.parse(data.Data), function (i, v) {
var o = {};
o.id = "" + v.Id;
o.text = v.Text != undefined ? v.Text : v.Testo;
o.tag = v;
results.push(o);
});
return {results: results};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
templateResult:
function (item) {
if (item.loading) return item.text;
var markup = '<option value="' + item.id + '">' + item.text + '</option>';
return markup;
}
,
templateSelection:
function (item) {
return item.value || item.text;
}
,
});
$('#pCdDeposito').on('select2:focus', function () { $('#pCdDeposito').select2("open");})
$('#pCdDeposito').select2("close");
//apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.
$('#pCdDeposito').change(function () {
//$(this).closest('form').validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input
});
$('#pCdDeposito').on("select2:select", function (e) {
$('#pCdDeposito').closest('.form-group').find('label').css('visibility','visible');
$('#pCdDeposito').select2("close");
});
$('#pCdDeposito').on("select2:unselecting", function (e) {
$('#pCdDeposito').closest('.form-group').find('label').css('visibility','visible');
$('#pCdDeposito').select2("close");
});
$('#pCdDeposito').on("select2:unselect",
function (e) {
$('#pCdDeposito').closest('.form-group').find('label').css('visibility','hidden');
});
$('#pCdDeposito').prop('disabled',);
});
</script>
</div>
</div>
<div class="form-group col-md-2 ">
<label class="control-label sr-only ">Dt. Consegna</label>
<div class="input-group input-group-sm date date-picker">
<input class="form-control" data-mask="00/00/0000" id="pDtConsegna" name="pDtConsegna" placeholder="Data di Consegna" required="required" size="10" type="text" value="" />
<span class="input-group-btn">
<button class="btn default date-set" type="button">
<i class="fa fa-calendar"></i>
</button>
</span>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
//inizializzo i DatePicker
$('.date-picker').datepicker(
{
"format": "dd/mm/yyyy",
"language": "it",
clearBtn: true,
autoclose: true,
todayHighlight: true,
});
var d = DateTimeYYYMMDD('21/02/2020 16:20:57').replace(/\s/, 'T');
$('#pDtConsegna').closest('div.date-picker').datepicker('setDate', new Date(d));
});
</script>
<div class="form-group col-md-3">
<label class="control-label sr-only">Refresh automatico</label>
<div class="md-checkbox-inline">
<div class="md-checkbox">
<input type="checkbox" id="flRefresh" name="flRefresh" class="md-check">
<label for="flRefresh" style="color:black !important">
<span class="inc"></span>
<span class="check"></span>
<span class="box"></span>
Refresh automatico
</label>
</div>
</div>
</div>
</div>
<div class="form-actions right ">
<button type="button" id="btnSearch_pianodicarico" class="btn blue"> Cerca </button>
</div>
</div>
</form>
</div>
</br>
<!--END RICERCA-->
<!--START RESULT-->
<div class="portlet-body form" id="divResult_pianodicarico" style="border:solid 1px #e7ecf1;border-top:none;padding:15px;display:none">
<form role="form" action="#" id="frmResult" name="fmrResult">
<div class="row">
<div class="col-md-12 col-lg-12 col-sm-12 col-xs-12 table-responsive">
<table class="display" cellspacing="0" width="100%" id="tablePianodicaricoMaster">
<tbody>
<tr><td class="dataTables_empty" colspan="5">Nessun risultato</td></tr>
</tbody>
</table>
<script type="text/javascript">
//var editor;
$(document).ready(function () {
//datatable definition
$('#tablePianodicaricoMaster').dataTable({
dom: 'frtip',
data: [],
paging: true,
pageLength: 10,
rowCallback: function (row, data) { return jsFunctionProgress(row, data); },
"filter": true,"info": false,"ordering": true,"processing": true,"retrieve": true, order: [[1, 'asc']],
responsive: true,
language: {
"url": "//cdn.datatables.net/plug-ins/1.10.16/i18n/Italian.json"
},
columns: [
{
"data": null,
"defaultContent": '',
"title": "",
"className": "details-control",
"orderable": false,
"visible": true,
},
{
"data": "CdGiro",
"type": "text",
"title": "Giro",
"className": "dt-left",
"orderable": true,
"visible": true,
},
{
"data": "DsGiro",
"type": "text",
"title": "Ds. Giro",
"className": "dt-left progress style='background-color: transparent !important;'",
"orderable": true,
"visible": true,
},
{
"data": "NrScarichi",
"type": "text",
"title": "Nr. Scarichi",
"className": "dt-right",
"orderable": true,
"visible": true,
},
{
"data": "GV",
"type": "text",
"title": "GV",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "OF",
"type": "text",
"title": "OF",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "SG",
"type": "text",
"title": "SG",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "PF",
"type": "text",
"title": "PF",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "CR",
"type": "text",
"title": "CR",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "SL",
"type": "text",
"title": "SL",
"className": "dt-right",
"orderable": true,
"visible": true,
"render": function(data,type, full, meta) {return jsFunctionHideZero(data, type, full, meta); },
},
{
"data": "TotaleKg",
"type": "text",
"title": "Tot. KG.",
"className": "dt-right",
"orderable": true,
"visible": true,
},
{
"data": "Im",
"type": "text",
"title": "Importo",
"className": "dt-right",
"orderable": true,
"visible": false,
},
{
"data": "NrRighe",
"type": "text",
"title": "NrRighe",
"className": "dt-right",
"orderable": true,
"visible": false,
},
{
"data": "NrRigheEvase",
"type": "text",
"title": "NrRigheEvase",
"className": "dt-right",
"orderable": true,
"visible": false,
},
{
"data": "RepartoCollection",
"type": "text",
"title": "RepartoCollection",
"className": "dt-right",
"orderable": true,
"visible": false,
},
],
select: true,
preDrawCallback: function (oSettings) {
$(this).find('tbody').hide();
return true;
},
drawCallback: function (oSettings) {
$(this).find('tbody').show("fast", function () {
$('#loadPianodicarico').hide();
$('#loader-wrapper').hide();
});
$('#tablePianodicaricoMaster').dataTable().resize();
},
});
$('#tablePianodicaricoMaster'+'_wrapper').addClass('actions');
$('#tablePianodicaricoMaster').on('page.dt', function () {
$('#tablePianodicaricoMaster').DataTable().rows().eq(0).each(function (idx) {
var row = $('#tablePianodicaricoMaster').DataTable().row(idx);
if (row.child.isShown()) {
row.child.hide();
}
});
})
});
</script>
</div>
</div>
</form>
</div>
<!--END RESULT-->
</div>
<div class="portlet-body form">
<form role="form" action="/Home/Pianodicarico" id="frmPianodicarico" name="frmPianodicarico"></form>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade draggable-modal" id="modalOrdine" tabindex="-1" role="dialog" aria-hidden="true"></div>
</div>
</div>
<!-- END CONTAINER -->
<!-- BEGIN FOOTER -->
<div class="page-footer">
<div class="page-footer-inner">2019© Sapori di Toscana Spa <b>by dp</b></div>
<div class="scroll-to-top"><i class="icon-arrow-up"></i></div>
</div>
<!-- END FOOTER -->
<!-- BEGIN CORE PLUGINS -->
<script src="/Template/global/plugins/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/js.cookie.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery.blockui.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/uniform/jquery.uniform.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js" type="text/javascript"></script>
<script src="/Template/pages/scripts/jquery.cookie.js" type="text/javascript"></script>
<script src="/Template/pages/scripts/jquery.storage.js" type="text/javascript"></script>
<script src="/Template/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
<script src="/Template/global/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js"></script>
<script src="/Template/global/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script src="/Template/global/plugins/bootstrap-timepicker/js/bootstrap-timepicker.min.js"></script>
<script src="/Template/global/plugins/moment.min.js"></script>
<script src="/Template/global/plugins/moment-with-locales.min.js"></script>
<script src="/Template/global/plugins/fullcalendar/core/main.min.js"></script>
<script src="/Template/global/plugins/fullcalendar/daygrid/main.min.js"></script>
<script src="/Template/global/plugins/fullcalendar/interaction/main.min.js"></script>
<!-- END CORE PLUGINS -->
<!-- BEGIN PAGE LEVEL PLUGINS -->
<script src="/Template/global/plugins/jquery-validation/js/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery-validation/js/additional-methods.min.js" type="text/javascript"></script>
<script src="/Template/global/plugins/jquery-validation/js/localization/messages_it.min.js"></script>
<!-- END PAGE LEVEL PLUGINS -->
<!-- BEGIN THEME GLOBAL SCRIPTS -->
<script src="/Template/global/plugins/select2/js/select2.js" type="text/javascript"></script>
<script src="/Template/global/plugins/bootstrap-toastr/toastr.min.js" type="text/javascript"></script>
<script src="/Template/pages/scripts/ui-toastr.js" type="text/javascript"></script>
<script src="/Template/global/plugins/bootbox/bootbox.min.js"></script>
<script src="/Template/global/plugins/jQuery-Mask-Plugin-master/dist/jquery.mask.min.js"></script>
<script src="/Template/global/scripts/functions.js"></script>
<!-- END THEME GLOBAL SCRIPTS -->
<!-- BEGIN PAGE LEVEL SCRIPTS -->
<script src="/Template/global/plugins/lz-string/lz-string.min.js"></script>
<script src="/Template/global/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js"></script>
<script src="/Template/global/plugins/fuelux/js/spinner.min.js"></script>
<!-- END PAGE LEVEL SCRIPTS -->
<script type="text/javascript">
var detailRows = [];
var lastPage = null;
function jsFunctionProgress(row, data) {
var pc = 0;
var tot = data["NrRighe"];
var par = data["NrRigheEvase"];
var x = par * 100 / tot;
var p = "";
p += "<span>" + data["DsGiro"] + "</span>";
p += "<div class='progress' style='height:2px; margin-bottom: 0px !important;'>";
p += "<div class='progress-bar'"
p += "role='progressbar' aria-valuenow='" + x + "' aria-valuemin='0' aria-valuemax='100' style = 'width:" + x + "%;"
if (x == 100) p += " background-color:green !important;"
p += "' >";
p += "</div>";
p += "</div>";
$(row.cells[2]).html(p);
}
function jsFunctionHideZero(data, type, full, meta) {
if (data == 0) return '';
else {
return data;
}
}
function jsFunctionHideZeroD(data, type, full, meta) {
if (data == 0) return '';
else {
if (full.RepartoCollection != null || full.RepartoCollection != undefined) {
$.each(full.RepartoCollection, function (i, v) {
if (v.Acronimo == meta.settings.aoColumns[meta.col].sTitle) {
var p = "";
p += "<span>" + data + "</span>";
p += "<div class='progress' style='height:2px; margin-bottom: 0px !important;'>";
p += "<div class='progress-bar'"
p += "role='progressbar' aria-valuenow='100' aria-valuemin='0' aria-valuemax='100' style = 'width:100%;"
p += "' >";
p += "</div>";
p += "</div>";
data = p;
}
})
}
return data;
}
}
function jsFunctionAction(data, type, full) {
var a = JSON.stringify(JSON.stringify(full));
a = LZString.compressToEncodedURIComponent(a);
var p = "<span>";
p += "<a href='#' title='Cambio giro' dataname='EditButton'";
if (full.Bloccato == true || full.StatoOrdine == "E" ) {
p += " class='disabled' ";
}
p += " onClick = 'return functionChangeGiro(\"" + a + "\");' > <i class='fa fa-exchange fa-lg' aria-hidden='true' style='color:black;'></i></a ></span> "
p += "<span><a href='#' title='Cambio sequenza' dataname='EditButton' "
if (full.Bloccato == true || full.StatoOrdine == "E" ) {
p += " class='disabled' ";
}
p += " onClick = 'return functionChangeSequenza(\"" + a + "\");' > <i class='fa fa-bars fa-lg' aria-hidden='true' style='color:black;'></i></a > "
p += "</span>";
return p;
}
function functionChangeGiro(d) {
d = JSON.parse(LZString.decompressFromEncodedURIComponent(d));
var full = JSON.parse(d);
var giri;
$('#loader-wrapper').show();
callback = function (AnnoOrdine, NrOrdine, CdGiro, data) {
var ordine = {}
ordine["AnnoOrdine"] = AnnoOrdine;
ordine["NrOrdine"] = NrOrdine;
ordine["CdGiro"] = data[0].id;
ordine["Utente"] = $('#hUser').val();
ordine["pAnnoOrd"] = AnnoOrdine;
ordine["pNrOrd"] = NrOrdine;
ordine["pCdGiro"] = CdGiro;
var lsOrdini = []
lsOrdini.push(JSON.stringify(ordine))
$.ajax({
type: "POST",
data: { "EditJson": JSON.stringify(lsOrdini) },
url: App.getGlobalWcfErgonPath() + "UpdateGiroConsegna",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
if (result.Error == null || result.Error == "") {
//toaster
$.toast('success', 'Salvataggio avvenuto con successo', undefined, function () {
$('#loader-wrapper').hide();
loadDataTable();
giroModal.modal('hide');
});
} else {
$.toast('error', "Il salvataggio ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br> <b>" + JSON.parse(result.Error).Message) + "</b>";
$('#loader-wrapper').hide();
giroModal.modal('hide');
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
};
var guid = $.now();
var giroModal = $(getGiroModal(guid));
giroModal.find('#okButton').click(function (e) {
//recupero il valore selezionato
var data = $(this).closest('.modal').find('.select2').select2('data');
callback(full.AnnoOrdine, full.NrOrdine, full.CdGiro, data);
});
giroModal.modal({ keyboard: true, });
giroModal.on('shown.bs.modal', function () { initiateSelect2('#idSelectCambioGiro', guid, "GetDdGiroConsegna", "Giro Consegna"); });
giroModal.data('bs.modal').handleUpdate();
giroModal.on('hidden.bs.modal', function () {
$(this).data('bs.modal', null);
$(this).remove();
$('#loader-wrapper').hide();
});
}
function getGiroModal(guid) {
var controlSelect = document.createElement('select');
controlSelect.id = "idSelectCambioGiro" + guid;
controlSelect.className = "form-control form-control-sm select2 js-data-example-ajax";
var sGiroModal =
'<div class="modal fade draggable-modal" role="dialog" aria-hidden="true">' +
'<div class="modal-dialog modal-lg">' +
'<div class= "modal-content" > ' +
'<div class="modal-header">' +
'<h2 class="alert-heading">Cambio Giro Consegna</h2>' +
'<button type="button" class="close" id="btnModalClose" aria-hidden="true"></button>' +
'</div> ' +
'<div class="modal-body"><div class="row"><div class="form-group col-md-12"><div class="input-group input-group-sm col-md-12">' +
controlSelect.outerHTML +
'</div></div></div></div>' +
'<div class="modal-footer">' +
'<a class="btn default" data-dismiss="modal">Annulla</a>' +
'<a id="okButton" class="btn green btn-primary">OK</a>' +
'</div>' +
'</div> ' +
'</div>';
return sGiroModal;
}
function getSequenzaModal(guid) {
var inputSpinner = document.createElement('input');
inputSpinner.id = "idSequenza" + guid;
inputSpinner.type = "text"
inputSpinner.setAttribute("value", "full.Sequenza")
inputSpinner.setAttribute("name", "demo_vertical")
inputSpinner.className = "form-control";
inputSpinner.style.cssText = "display:block;"
var sSequenzaModal =
'<div class="modal fade draggable-modal" role="dialog" aria-hidden="true">' +
'<div class="modal-dialog modal-lg">' +
'<div class= "modal-content" > ' +
'<div class="modal-header">' +
'<h2 class="alert-heading">Cambio Sequenza Consegna</h2>' +
'<button type="button" class="close" id="btnModalClose" aria-hidden="true"></button>' +
'</div> ' +
'<div class="modal-body"><div class="row"><div class="form-group col-md-12"><div class="input-group input-group-sm col-md-12">' +
inputSpinner.outerHTML +
'</div></div></div></div>' +
'<div class="modal-footer">' +
'<a class="btn default" data-dismiss="modal">Annulla</a>' +
'<a id="okButton" class="btn green btn-primary">OK</a>' +
'</div>' +
'</div> ' +
'</div>';
return sSequenzaModal;
}
function initiateSelect2(id, guid, method, placeholder) {
var s2 = $(id + guid);
s2.select2({
placeholder: placeholder,
allowClear: true,
minimumInputLength: 0,
closeOnSelect: true,
theme: "bootstrap",
width: "100%",
ajax: {
url: App.getGlobalWcfErgonPath() + method,
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
delay: 250,
data: function (params) {
return {
Filter: JSON.stringify(params.term),
Deposito: $("#pCdDeposito").val(),
IdUser: $('#pIdUser').val(),
}
},
processResults: function (data, params) {
var results = [];
$.each(JSON.parse(data.Data), function (i, v) {
var o = {};
o.id = "" + v.Id;
o.text = v.Testo;
results.push(o);
})
return {
results: results
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
templateResult: function (item) {
if (item.loading) return item.text;
var markup = '<option value="' + item.id + '">' + item.id + " - " + item.text + '</option>';
return markup;
},
templateSelection: function (item) {
return item.value || item.text;
},
}).on("select2:focus", function () {
s2.select2("open");
});
}
function initTouchSpin(guid) {
var ts = $('#idSequenza' + guid);
ts.TouchSpin({
min: -1,
max: 100,
stepinterval: 1,
//maxboostedstep: 10000000,
//prefix: '$'
});
}
function functionChangeSequenza(d) {
d = JSON.parse(LZString.decompressFromEncodedURIComponent(d));
var full = JSON.parse(d);
var giri;
$('#loader-wrapper').show();
callback = function (AnnoOrdine, NrOrdine, DtConsegna, CdGiro, Sequenza, data) {
var ordine = {}
ordine["AnnoOrdine"] = AnnoOrdine;
ordine["NrOrdine"] = NrOrdine;
ordine["DtConsegna"] = moment(DtConsegna).format();
ordine["CdDeposito"] = $("#pCdDeposito").val();
ordine["CdGiro"] = CdGiro;
ordine["Sequenza"] = data;
ordine["pAnnoOrd"] = AnnoOrdine;
ordine["pNrOrd"] = NrOrdine;
ordine["pCdGiro"] = CdGiro;
ordine["pSequenza"] = Sequenza;
var lsOrdini = []
lsOrdini.push(JSON.stringify(ordine))
$.ajax({
type: "POST",
data: { "EditJson": JSON.stringify(lsOrdini) },
url: App.getGlobalWcfErgonPath() + "UpdateSequenzaConsegna",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
if (result.Error == null || result.Error == "") {
//toaster
$.toast('success', 'Salvataggio avvenuto con successo', undefined, function () {
$('#loader-wrapper').hide();
loadDataTable();
sequenzaModal.modal('hide');
});
} else {
$.toast('error', "Il salvataggio ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br> <b>" + JSON.parse(result.Error).Message) + "</b>";
$('#loader-wrapper').hide();
sequenzaModal.modal('hide');
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
};
var guid = $.now();
var sequenzaModal = $(getSequenzaModal(guid));
sequenzaModal.find('#okButton').click(function (e) {
//funzione di aggiornamento ajax
//recupero il valore selezionato
var data = $(this).closest('.modal').find('input[name="demo_vertical"]').val();
callback(full.AnnoOrdine, full.NrOrdine, full.DtConsegna, full.CdGiro, full.Sequenza, data);
});
sequenzaModal.modal({ keyboard: true, });
sequenzaModal.on('shown.bs.modal', function () { initTouchSpin(guid); });
sequenzaModal.data('bs.modal').handleUpdate();
sequenzaModal.on('hidden.bs.modal', function () {
$(this).data('bs.modal', null);
$(this).remove();
$('#loader-wrapper').hide();
});
}
function jsFunctionRagioneSociale(data, type, full) {
var color;
color = '';
if (full.Bloccato == true)
color += '<span style="color: red">';
else color += '<span>';
color += data;
if (full.NoteOrdine != undefined && full.NoteOrdine != "") {
var note;
note = full.NoteOrdine;
color += "<span style='float: right;'><a href='#' id='aNote' onClick='return functionViewNote(\"" + note + "\");";
color += "'><i class='fa fa-sticky-note fa-lg' aria-hidden='true'></i></a></span>";
}
color += '</span>';
return color;
}
function cambioSequenza(e, dt, node, config) {
//recupero le righe selezionate
var data = dt.table().$('input[type="checkbox"]:checked');
if (data.length == 0) {
bootbox.alert("Non è stato selezionato nessun ordine da spostare");
return;
} else {
$('#loader-wrapper').show();
var arrCli= []
data.each(function (i, v) {
var o = $(v).val().split('.');
var oi = {};
oi["CdCli"] = o[4];
arrCli.push(oi)
})
var af = new Set(arrCli.sort(function (a, b) {
var f1 = a.CdCli;
var f2 = b.CdCli;
if (f1 < f2) return -1;
if (f1 > f2) return 1;
return 0;
}).map(x => x.CdCli));//restituisce una collection di fornitori univoci
if (af.size > 1) {
bootbox.alert("Non è possible cambiare sequenza in maniera comulativa per clienti diversi");
$('#loader-wrapper').hide();
return;
}
var lsOrdini = []
//visualizzo la finestra modale per la richiesta del giro di destinazione
var guid = $.now();
var sequenzaModal = $(getSequenzaModal(guid));
sequenzaModal.find('#okButton').click(function (e) {
//funzione di aggiornamento ajax
//recupero il valore selezionato
var data = $(this).closest('.modal').find('input[name="demo_vertical"]').val();
callback(data);
});
sequenzaModal.modal({ keyboard: true, });
sequenzaModal.on('shown.bs.modal', function () { initTouchSpin(guid); });
sequenzaModal.data('bs.modal').handleUpdate();
sequenzaModal.on('hidden.bs.modal', function () {
$(this).data('bs.modal', null);
$(this).remove();
$('#loader-wrapper').hide();
});
callback = function (val) {
data.each(function (i, v) {
var o = $(v).val().split('.');
var ordine = {}
ordine["AnnoOrdine"] = o[0];
ordine["NrOrdine"] = o[1];
ordine["DtConsegna"] = moment($("#pDtConsegna").closest('div.date-picker').datepicker('getUTCDate')).format()
ordine["CdDeposito"] = $("#pCdDeposito").val();
ordine["CdGiro"] = o[2];
ordine["Sequenza"] = val;
ordine["Utente"] = $('#hUser').val();
ordine["pAnnoOrd"] = o[0];
ordine["pNrOrd"] = o[1]
ordine["pCdGiro"] = o[2];
ordine["pSequenza"] = o[3];
ordine["pCdCliente"] = o[4];
lsOrdini.push(JSON.stringify(ordine))
})
$.ajax({
type: "POST",
data: { "EditJson": JSON.stringify(lsOrdini) },
url: App.getGlobalWcfErgonPath() + "UpdateSequenzaConsegna",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
if (result.Error == null || result.Error == "") {
//toaster
$.toast('success', 'Salvataggio avvenuto con successo', undefined, function () {
$('#loader-wrapper').hide();
loadDataTable();
sequenzaModal.modal('hide');
});
} else {
$.toast('error', "Il salvataggio ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br> <b>" + JSON.parse(result.Error).Message) + "</b>";
$('#loader-wrapper').hide();
sequenzaModal.modal('hide');
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
};
}
}
function cambioGiro(e, dt, node, config) {
//recupero le righe selezionate
var data = dt.table().$('input[type="checkbox"]:checked');
if (data.length == 0) {
bootbox.alert("Non è stato selezionato nessun ordine da spostare");
return;
} else {
$('#loader-wrapper').show();
var lsOrdini = []
//visualizzo la finestra modale per la richiesta del giro di destinazione
var guid = $.now();
var giroModal = $(getGiroModal(guid));
giroModal.find('#okButton').click(function (e) {
//recupero il valore selezionato
var data = $(this).closest('.modal').find('.select2').select2('data');
callback(data[0].id);
});
giroModal.modal({ keyboard: true, });
giroModal.on('shown.bs.modal', function () { initiateSelect2('#idSelectCambioGiro', guid, "GetDdGiroConsegna", "Giro Consegna"); });
giroModal.data('bs.modal').handleUpdate();
giroModal.on('hidden.bs.modal', function () {
$(this).data('bs.modal', null);
$(this).remove();
$('#loader-wrapper').hide();
});
callback = function (val) {
data.each(function (i, v) {
var o = $(v).val().split('.');
var ordine = {}
ordine["AnnoOrdine"] = o[0];
ordine["NrOrdine"] = o[1];
ordine["CdGiro"] = val;
ordine["Utente"] = $('#hUser').val();
ordine["pAnnoOrd"] = o[0];
ordine["pNrOrd"] = o[1]
ordine["pCdGiro"] = o[2];
lsOrdini.push(JSON.stringify(ordine))
})
$.ajax({
type: "POST",
data: { "EditJson": JSON.stringify(lsOrdini) },
url: App.getGlobalWcfErgonPath() + "UpdateGiroConsegna",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
if (result.Error == null || result.Error == "") {
//toaster
$.toast('success', 'Salvataggio avvenuto con successo', undefined, function () {
$('#loader-wrapper').hide();
loadDataTable();
giroModal.modal('hide');
});
} else {
$.toast('error', "Il salvataggio ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br> <b>" + JSON.parse(result.Error).Message) + "</b>";
$('#loader-wrapper').hide();
giroModal.modal('hide');
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
};
}
//sul conferma aggiorno le righe
}
function getAssegnazioneModal(guid) {
//var controlSelectAutomezzo = document.createElement('select');
//controlSelectAutomezzo.id = "idSelectAutomezzo" + guid;
//controlSelectAutomezzo.className = "form-control form-control-sm select2 js-data-example-ajax";
var controlSelectConducente = document.createElement('select');
controlSelectConducente.id = "idSelectConducente" + guid;
controlSelectConducente.className = "form-control form-control-sm select2 js-data-example-ajax";
var sGiroModal =
'<div class="modal fade draggable-modal" role="dialog" aria-hidden="true">' +
'<div class="modal-dialog modal-lg">' +
'<div class= "modal-content" > ' +
'<div class="modal-header">' +
'<h2 class="alert-heading">Assegnazione Giro Consegna</h2>' +
'<button type="button" class="close" id="btnModalClose" aria-hidden="true"></button>' +
'</div> ' +
//'<div class="modal-body"><div class="row"><div class="form-group col-md-12"><div class="input-group input-group-sm col-md-12">' +
//controlSelectAutomezzo.outerHTML +
//'</div></div></div></div>' +
'<div class="modal-body"><div class="row"><div class="form-group col-md-12"><div class="input-group input-group-sm col-md-12">' +
controlSelectConducente.outerHTML +
'</div></div></div></div>' +
'<div class="modal-footer">' +
'<a class="btn default" data-dismiss="modal">Annulla</a>' +
'<a id="okButton" class="btn green btn-primary">OK</a>' +
'</div>' +
'</div> ' +
'</div>';
return sGiroModal;
}
function AssegnaGiro(e, dt, node, config) {
//recupeoro le righe selezionate
$('#loader-wrapper').show();
//visualizzo la finestra modale per la richiesta del giro di destinazione
var guid = $.now();
var data;
dt.data().map(function (row) {
data = {};
data["pCdDeposito"] = $("#pCdDeposito").val();
data["pDtConsegna"] = moment(row.DtConsegna).format();
data["pCdGiro"] = row.CdGiro;
});
var assegnazioneModal = $(getAssegnazioneModal(guid));
assegnazioneModal.find('#okButton').click(function (e) {
var ls = [];
var data = [];
//recupero il valore selezionato
$(this).closest('.modal').find('.select2').select2().each(function (i, v) {
ls.push(v);
});
for (var i = 0; i < ls.length; i++) {
var d = $(ls[i]).select2('data');
if(d.length>0)data.push($(ls[i]).select2('data'));
}
callback(data);
});
assegnazioneModal.modal({ keyboard: true, });
assegnazioneModal.on('shown.bs.modal', function () {
//initiateSelect2('#idSelectAutomezzo', guid, "GetDdAutomezzo", "Automezzo");
initiateSelect2('#idSelectConducente', guid, "GetDdConducente", "Conducente");
});
assegnazioneModal.data('bs.modal').handleUpdate();
assegnazioneModal.on('hidden.bs.modal', function () {
$(this).data('bs.modal', null);
$(this).remove();
$('#loader-wrapper').hide();
});
callback = function (val) { //riceve un array delle select valorizzate
var ordine = {}
ordine["CdDep"] = data["pCdDeposito"];
ordine["DtConsegna"] = data["pDtConsegna"];
ordine["CdGiro"] = data["pCdGiro"];
//ordine["IdAutomezzo"] = val[0][0].id;
ordine["IdConducente"] = val[0][0].id;
$.ajax({
type: "POST",
data: { "EditJson": JSON.stringify(ordine) },
url: App.getGlobalWcfErgonPath() + "AssegnazioneGiroConsegna",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
if (result.Error == null || result.Error == "") {
//toaster
$.toast('success', 'Salvataggio avvenuto con successo', undefined, function () {
$('#loader-wrapper').hide();
loadDataTable();
assegnazioneModal.modal('hide');
});
} else {
$.toast('error', "Il salvataggio ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br> <b>" + JSON.parse(result.Error).Message) + "</b>";
$('#loader-wrapper').hide();
assegnazioneModal.modal('hide');
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
};
}
function printDetails(e, dt, node, config) {
var win;
var data;
dt.data().map(function (row) {
data = {};
data["pCdDeposito"] = $("#pCdDeposito").val();
data["pDtConsegna"] = moment(row.DtConsegna).format();
data["pCdGiro"] = row.CdGiro;
});
var action = "/Home/ReportViewer";
var url = '/Home/ReportViewerGet?ReportName=ReportPianoDiCarico&ReportService=GetDtPianoDiCaricoDetail&JsonResponse=jsonresponse';
url = url.replace(/&/g, "&");
var jsonR = LZString.compressToEncodedURIComponent(JSON.stringify(data));
url = url.replace("jsonresponse", jsonR);
window.open(url, "_blank");
};
function loadDataTable() {
console.log('loadDataTable');
console.trace()
$("#loadPianoDiCarico").show();
var w = App.getGlobalWcfErgonPath();
dataTableSearch('frmSearch_pianodicarico', w, 'GetDtPianoDiCaricoMaster', '#tablePianodicaricoMaster', '#divResult_pianodicarico', lastPage, detailRows);
$("#loadPianoDiCarico").hide();
}
function setEditButton() {
var pathname = $(location).attr('pathname');
var grant = $('a[href="' + pathname + '"]').attr('data-grant');
var a = $('a[dataname=EditButton]');
$.each(a, function (i, v) {
if (!($.inArray('U', grant) > 0))
$(v).addClass('disabled');
});
var ic = $('input[type="checkbox"][dataname=EditButton]');
$.each(ic, function (i, v) {
if (!($.inArray('U', grant) > 0))
$(v).attr("disabled", true);;
});
}
function jsFunctionCheckBox(data, type, full, meta) {
var d = ''
if (full.StatoOrdine == "E" || full.Bloccato) { d = "disabled"; }
return '<input type="checkbox" dataname="EditButton" ' + d + ' value=' + full.AnnoOrdine + '.' + full.NrOrdine + '.' + full.CdGiro + '.' + full.Sequenza + '.' + full.CdCli + '>';
};
function onRowDetailsClick(table) {
//console.log('DataTable > onRowDetailsClick [' + new Date() + "]");
var tr = $(this).closest('tr');
var row = $('#tablePianodicaricoMaster').DataTable().row(tr);
var rowData = row.data();
var idx = $.inArray(row.index(), detailRows);
var _url = App.getGlobalWcfErgonPath() + "GetDtPianoDiCaricoDetail";
var _data = JSON.stringify({ pCdDeposito: $("#pCdDeposito").val(), pDtConsegna: moment($('#pDtConsegna').closest('div.date-picker').datepicker('getDate')).format(), pCdGiro: rowData.CdGiro });
if (row.child.isShown()) {
tr.removeClass('shown');
row.child.hide();
// Remove from the 'open' array
detailRows.splice(row.index(), 1);
}
else {
tr.addClass('shown');
//row.child(format(row.data())).show();
row.child("<div class='wrapper loading'><div id='loadDetail" + rowData.CdGiro + "' class='elaborazione'>Elaborazione ...</div>" +
"<table class='table table-bordered table-hover child_table' cellspacing='0' id='tablePianodicaricoDetail" + rowData.CdGiro +
"' style='padding-left:50px;'><tbody></tbody></table></div>").show();
var detailsTableOpt = $('#tablePianodicaricoDetail' + rowData.CdGiro).dataTable({
'dom': 'Bfrtip',
'data': [],
'serverSide': false,
'processing': false,
'scrollY': '50vh',
'scrollCollapse': true,
'searching': false,
'info': false,
'paging': false,
'language': { "url": "//cdn.datatables.net/plug-ins/1.10.16/i18n/Italian.json" },
'destroy': true,
'responsive': true,
'order': [],
'buttons': [
{
text: '<i class="fa fa-print" aria-hidden="true"></i>',
titleAttr: 'Stampa',
action: function (e, dt, node, config) {
return printDetails(e, dt, node, config);
}
},
{
extend: 'copyHtml5',
text: '<i class="fa fa-files-o"></i>',
titleAttr: 'Copia',
exportOptions: { columns: ':visible' }
},
{
extend: 'excelHtml5',
text: '<i class="fa fa-file-excel-o"></i>',
titleAttr: 'Excel',
exportOptions: { columns: ':visible' }
},
{
extend: 'pdfHtml5',
text: '<i class="fa fa-file-pdf-o"></i>',
titleAttr: 'PDF',
exportOptions: { columns: ':visible' }
},
{
text: '<i class="fa fa-exchange aria-hidden="true"></i>',
titleAttr: 'Cambio Giro',
action: function (e, dt, node, config) {
return cambioGiro(e, dt, node, config);
}
},
{
text: '<i class="fa fa-bars aria-hidden="true"></i>',
titleAttr: 'Cambio Sequenza',
action: function (e, dt, node, config) {
return cambioSequenza(e, dt, node, config);
}
},
{
text: '<i class="fa fa-upload aria-hidden="true"></i>',
titleAttr: 'Assegna giro',
action: function (e, dt, node, config) {
return AssegnaGiro(e, dt, node, config);
}
},
],
'columns': [
{ data: null, className: "dt-body-center", render: function (data, type, full) { return jsFunctionCheckBox(data, type, full); }, orderable: false },
{ data: "Sequenza", title: "Seq.", className: "dt-center details-control1", visible: true, orderable: true },
{ data: "CdCli", title: "Cliente", className: "dt-center", visible: true, orderable: false },
{ data: "RagioneSociale", title: "Ragione Sociale", className: "dt-left", visible: true, orderable: false, render: function (data, type, full) { return jsFunctionRagioneSociale(data, type, full); } },
{ data: "Indirizzo", title: "Indirizzo", className: "dt-left", visible: false, orderable: false },
{ data: "Localita", title: "Località", className: "dt-left", visible: true, orderable: false },
{ data: "Provincia", title: "Provincia", className: "dt-left", visible: false, orderable: false },
{ data: "NrRighe", title: "Nr. Righe", className: "dt-right", visible: true, orderable: false },
{ data: "Bloccato", title: "Bloccato", className: "dt-right", visible: false, orderable: false },
{ data: "StatoOrdine", title: "StatoOrdine", className: "dt-right", visible: false, orderable: false },
{ data: "GV", title: "GV", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "OF", title: "OF", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "SG", title: "SG", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "PF", title: "PF", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "CR", title: "CR", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "SL", title: "SL", className: "dt-right", visible: true, orderable: false, render: function (data, type, full, meta) { return jsFunctionHideZeroD(data, type, full, meta); } },
{ data: "TotaleKg", title: "Tot. KG.", className: "dt-right", visible: true, orderable: false },
{ data: "Im", title: "Importo", className: "dt-right", visible: false, orderable: false },
{ data: "NoteOrdine", title: "Note", className: "dt-right", visible: false, orderable: false },
{ data: null, title: "Azioni", className: "dt-right", visible: true, orderable: false, render: function (data, type, full) { return jsFunctionAction(data, type, full); } },
{ data: "AnnoOrdine", title: "AnnoOrdine", className: "dt-left", visible: false, orderable: false },
{ data: "NrOrdine", title: "NrOrdine", className: "dt-left", visible: false, orderable: false },
{ data: "CdGiro", title: "CdGiro", className: "dt-left", visible: false, orderable: false },
{ data: "DsGiro", title: "DsGiro", className: "dt-left", visible: false, orderable: false },
{ data: "DtConsegna", title: "DtConsegna", className: "dt-left", visible: false, orderable: false },
],
'select': {
style: 'os',
selector: 'multi'
},
});
$.ajax({
type: "POST",
data: { "StringSearch": _data },
url: _url,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
}).done(function (result) {
$(detailsTableOpt).DataTable().clear().draw();
$(detailsTableOpt).DataTable().rows.add($.parseJSON(result.Data)).draw();
var inputCheckBox = document.createElement('input');
inputCheckBox.id = "detail-select-all";
inputCheckBox.type = "checkbox";
inputCheckBox.onclick = function () { return selezionaTutto(this, $(detailsTableOpt).attr('id')); }
$($(detailsTableOpt).DataTable().table().header()).find('th').eq(0).append(inputCheckBox);
setEditButton();
$('.wrapper').removeClass('loading');
$('#loadDetail' + rowData.CdGiro).hide();
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("errore:" + textStatus);
});
// Add to the 'open' array
if (idx === -1) {
detailRows.push(row.index());
}
}
function selezionaTutto(t, d) {
var rows = $('#' + d).DataTable().table().rows({ 'search': 'applied' }).nodes();
$('input[type="checkbox"]:enabled', rows).prop('checked', $(t).is(":checked"));
}
// Add event listener for opening and closing second level child details
$('.child_table tbody').off().on('click', 'td.details-control1', function () {
var tr = $(this).closest('tr');
var row = $($(this).closest('table')).DataTable().row(tr)
var rowData = row.data();
ordineSearch = {}
ordineSearch["pAnnoOrd"] = rowData.AnnoOrdine;
ordineSearch["pNrOrd"] = rowData.NrOrdine;
var jsonR = LZString.compressToEncodedURIComponent(JSON.stringify(ordineSearch));
$('#loadPianoDiCarico').show;
$.get("/Home/OrdineModalJson?JsonData=" + jsonR, function (t) {
$('#modalOrdine').html(t);
$('#modalOrdine').modal({ keyboard: true, });
$('#modalOrdine').data('bs.modal').handleUpdate();
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("OrdineModalJson err :" + textStatus);
$.toast('error', "L'operazione ha generato un errore.</br> Se l'errore persiste contattare l\'amministratore.</br></br></b>");
}).always(function () {
$('#loader-wrapper').hide();
$('#loadPianoDiCarico').hide();
});
});
}
$(document).ready(function () {
$('#pIdUser').val($('#hUserId').val()); //valorizzo lo user sul form del piano di carico
$("#btnModalClose").on('click', function () {
$('.modal [role="dialog"]').modal('hide');
});
//validate form
$('#frmSearch_pianodicarico').validate({
ignore: "",
errorClass: 'help-block help-block-error', // default input error message class
focusInvalid: false, // do not focus the last invalid input
invalidHandler: function (event, validator) { //display error alert on form submit
$('.alert-danger.pianodicarico').show();
$('#loader-wrapper').hide();
},
errorPlacement: function (error, element) { // render error placement for each input type
var icon = $(element).parent('.input-group').children('i');
icon.removeClass('fa-check').addClass("fa-warning");
icon.attr("data-original-title", error.text()).tooltip({ 'container': 'body' });
},
highlight: function (element) { // hightlight error inputs
$(element)
.closest('.input-group').addClass('has-error'); // set error class to the control group
var tpane = $(element).closest('.tab-pane').attr('id');
$("a[href=#" + tpane + "]").tab('show');
},
success: function (label, element) {
$(element).closest('.input-group').removeClass('has-error');
},
submitHandler: function (form) {
$('.alert-danger.pianodicarico').hide();
}
});
$('#tablePianodicaricoDetail').hide();
$('#btnSearch_pianodicarico').on('click', function () {
var isValid = false
isValid = $('#frmSearch_pianodicarico').validate().form();
if (isValid) {
detailRows = [];
$('.alert-danger.pianodicarico').hide();
loadDataTable();
}
});
$('#tablePianodicaricoMaster tbody').on('click', 'td.details-control', function () {
console.log('DataTable > click td.details-control [' + new Date() + "]");
onRowDetailsClick.call(this, $('#tablePianodicaricoMaster').DataTable());
});
$('#flRefresh').on('change', function () {
var pages = $('#tablePianodicaricoMaster').DataTable().page.info().pages;
var page = $('#tablePianodicaricoMaster').DataTable().page();
if (this.checked) {
idInterval = setInterval(function () {
page++;
$('#tablePianodicaricoMaster').DataTable().page(page).draw('page');
if (page >= pages - 1) page = -1;
}, 60000);
}
else {
clearInterval(idInterval);
}
});
$('#tablePianodicaricoMaster').on('draw.dt', function () {
console.log('DataTable > draw.dt [' + new Date() + "]");
console.trace();
lastPage = $('#tablePianodicaricoMaster').DataTable().page();
var table = $('#tablePianodicaricoMaster').DataTable();
table.rows({ page: 'current' }).every(function () {
var row = this;
if (row.child.isShown()) {
var tr = $(table).closest('tr');
tr.removeClass('details');
row.child.hide();
// Remove from the 'open' array
detailRows.splice(row.index, 1);
}
});
});
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#jsonMenu").val(JSON.parse($.sessionStorage('jsonMenu')));
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name]) { //controllo se ho già aggiunto il campo nell'array
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
if ($('[name=' + this.name + ']').hasClass("NotSerialized")) return;
//if ($("#" + this.name).parent().hasClass('date-picker'))
if ($('[name=' + this.name + ']').parent().hasClass('date-picker'))
o[this.name] = $("#" + this.name).closest('div.date-picker').datepicker('getUTCDate') || '';
else
o[this.name] = this.value || '';
}
});
return o;
};
$('#aLogOut').on('click', function () {
var $Param = { id: $('#hUserId').val()};
$.ajax({
type: "GET",
data: $Param,
url: App.getGlobalApiPath() + "login/LogOut",
contentType: "application/json; charset=utf-8",
dataType: "json",
processdata: false, //True or False
success: function (result) {
$.sessionStorage('jsonMenu', null);
window.stop();
window.location.href = "../Home/Login";
},
error: function () {
$('.alert-danger', $('.login-form')).show()
$('#loader-wrapper').hide();
}
})
});
if ($('#hUser').val() != '' && $('#hUser').val() != undefined) {
if ($("#jsonMenu").val() == null || $("#jsonMenu").val() == undefined || $("#jsonMenu").val() == '') {
var $Param = { Role: $('#hUserRole').val(), AllMenu: "false" };
$.ajax({
type: "GET",
url: App.getGlobalApiPath() + "login/GetMenu",
data: $Param,
contentType: "application/json; charset=utf-8",
dataType: "json",
processdata: false, //True or False
success: function (result) {
if (result.Error == null || result.Error == "") {
//set value hidden field
$.sessionStorage('jsonMenu', JSON.stringify(result.Data));
$('<li class="nav-item start">' +
'<a href="../Home/DashBoard" class="nav-link nav-toggle">' +
'<i class="icon-home"></i>' +
'<span class="title">Dashboard</span>' +
'</a>' +
'</li>').appendTo('.page-sidebar-menu');
buildMenu($('.page-sidebar-menu'), $.parseJSON(result.Data));
var pathname = $(location).attr('pathname');
$('a[href="' + pathname + '"]').parentsUntil('.page-sidebar-menu').addClass('active open');
$('.page-sidebar-menu>li.active>a>span.arrow').each(function () { $(this).addClass('open') });
} else alert("Errore nel caricamento del menu");
},
error: function () {
alert("Errore nel caricamento del menu")
}
})
$('.dropdown-user').show();
$('.dropdown-calendar').show();
$('.page-footer').show();
} else {
buildMenu($('.page-sidebar-menu'), $.parseJSON($("#jsonMenu").val()));
var pathname = $(location).attr('pathname');
$('a[href="' + pathname + '"]').parentsUntil('.page-sidebar-menu').addClass('active open');
$('.page-sidebar-menu>li.active>a>span.arrow').each(function () { $(this).addClass('open') });
}
} else {
$('.dropdown-user').hide();
$('.dropdown-calendar').hide();
$('.page-footer').hide();
}
function buildMenu(parent, items) {
$.each(items, function () {
//buil tag li
var li = $('<li></li>');
li.addClass('nav-item');
parent.append(li);
var a = $('<a></a>');
if (this.path == "")
a.attr('href', "#");
else a.attr('href', this.path);
var dt = [];
if (!this.read) a.attr('disabled, true');
if (this.read) dt.push('R');
if (this.insert) dt.push('I');
if (this.update) dt.push('U');
if (this.delete) dt.push('D');
a.attr('data-grant', dt.join(";"));
a.addClass('nav-link nav-toggle');
li.append(a);
var i = $('<i></i>') //icon todo addclass
i.addClass(this.ico);
a.append(i);
var span = $('<span>' + this.text + '</span>');
span.addClass('title');
a.append(span);
if (this.List && this.List.length > 0) {
var spanArrow = $('<span></span>');
spanArrow.addClass('arrow')
a.append(spanArrow);
var ul = $('<ul></ul>');
ul.addClass('sub-menu');
li.append(ul);
buildMenu(ul, this.List);
}
});
}
});
</script>
</body>
</html>
You can jump to the latest bin by adding /latest
to your URL
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + [ | Indents selected lines |
ctrl + ] | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Clone Bin |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |