MAIN_VERSION='2.0.8860.18846';  app = {}; dj = {}; app.info = null; require(["dojo/request", "dojo/dom", "dojo/json", "dojo/on"], function (request, dom, json,on) { dj.request = request; dj.dom = dom; dj.json = json; dj.on = on; }); require(["dojo/parser", "dijit/form/Button", "dijit/form/TextBox", "dijit/form/Select", "dijit/layout/TabContainer"]); require(["dojo/parser", "dojo/domReady!"], function (parser) { parser.parse(); // console.log(registry.byId("selOperator")); // on(registry.byId("selOperator"),"change", function () { SetDivisionOption(); }); }); require(["dojo/ready"], function (ready) { ready(function () { dijit.byId("selOperator").on("change", function () { SetDivisionOption(); }); params.assign(); }); }); function Logout() { dj.request.post("service/login.asmx/vihodit", { handleAs: "json", data: dj.json.stringify({ "sid": app.info.sid }), headers: { 'Content-Type': 'application/json' } } ).then( function (response) { ; }, function (error) { ; } ); app.info = null; ShowEl("loginContainer",true); ShowEl("dataContainer",false); } function Login() { dj.dom.byId("divLoginError").innerHTML = ""; dj.request.post("service/login.asmx/vhodit", { handleAs: "json", data: dj.json.stringify({ "login": dj.dom.byId("txtLogin").value, "password": dj.dom.byId("txtPass").value }), headers: { 'Content-Type': 'application/json' } } ).then( function (response) { procLoginSuccess(response); }, function (error) { procLoginError(error); } ); } function procLoginSuccess(response) { dj.dom.byId("txtPass").value = ""; var r; try { r = dj.json.parse(response.d); } catch (ex) { procLoginError(ex); } if (r.err) { procLoginError(r.err); return; } dj.dom.byId("divLoginError").innerHTML = ""; app.info = r; ShowEl("loginContainer"); ShowEl("dataContainer", true); ShowEl("footerConteiner", true); SetText("nameContainer",r.name); PrevMonth(2); SetOperatorOption(); SetRegionOption(); SetAgentOption(); SetFormatOption(); AddReports(); CHECK_VERSION(app.info.VERSION) dj.dom.byId("genmail").innerHTML = ('rep' + 'ort@kgi' + 'z' + 'c.ru').replace(/z/g, "stolrt".substr(3,4-2*3+3)); // console.log(r); } function procLoginError(error) { dj.dom.byId("divLoginError").innerHTML = error; // console.log(error); } _StartDate = new Date(2016, 8, 30); function PrevMonth(key) { var n = new Date(); switch (key) { case 0: // предыдущий try { n = GetDateFromInterface(); } catch (ex) { return;} var s = new Date(n.getFullYear(), n.getMonth() - 1, 1); var e = new Date(n.getFullYear(), n.getMonth(), 0); if (s < _StartDate) return; break; case 1: var s = new Date(n.getFullYear(), n.getMonth(), 1); var e = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 1); break; case 2: var s = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 1); var e = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 1); break; case 3: try { n = GetDateFromInterface(); } catch (ex) { return; } var s = new Date(n.getFullYear(), n.getMonth()+1,1); var e = new Date(n.getFullYear(), n.getMonth() + 2, 0); if (s > new Date()) return; break; } document.getElementById("inputDate1").value = "" + s.getDate() + "." + (s.getMonth() + 1) + "." + s.getFullYear(); document.getElementById("inputDate2").value = "" + e.getDate() + "." + (e.getMonth() + 1) + "." + e.getFullYear(); } function GetDateFromInterface() { var arr = document.getElementById("inputDate1").value.split(/(?:,|\s|\.)+/); var d2 = parseInt(arr[2]); var d1 = parseInt(arr[1]); var d0 = parseInt(arr[0]); var res = new Date(d2, d1-1, d0); if (res < _StartDate) return _StartDate; var n = new Date(); if (res > n) return n; return res; } function ShowEl(element, show) { dj.dom.byId(element).style.display = show ? "block" : "none"; } function SetText(element, text) { ShowEl(element, true); dj.dom.byId(element).innerHTML = text; } function SetOperatorOption() { var newList = []; if (app.info.ofl) newList.push({ label: "Все перевозчики", value: 0 }); for (var i = 0; i < app.info.ol.length; i++) newList.push({ label: app.info.ol[i].name, value: app.info.ol[i].id }); dijit.byId("selOperator").set("options", newList); dijit.byId("selOperator").set("value", newList[0]); } function SetFormatOption() { var newList = []; newList.push({ label: "XLSX", value: 0 }); newList.push({ label: "CSV", value: 1 }); dijit.byId("selFormat").set("options", newList); dijit.byId("selFormat").set("values", newList[0]); } function SetDivisionOption() { var newList = []; var selOperId = dijit.byId("selOperator").get("value"); // var selOper; if (selOperId == 0) newList.push({ label: "Выберите перевозчика", value: 0 }); else { for(var i=0;i 0 ? m1[0].domNode.clientHeight : m2[0].domNode.clientHeight; lll *= Math.max(m1.length, m2.length); dj.dom.byId("reportContainer").innerHTML = ""; var tc = new dijit.layout.TabContainer({ style: "height: 100%; width: " + document.getElementById('reportContainer').offsetWidth + "px" }, "reportContainer"); console.log(lll); if (cp1.getChildren().length) tc.addChild(cp1); tc.addChild(cp2); tc.startup(); // console.log(Math.max(m1.length, m2.length)) // document.getElementById('reportContainer').style.height = lll+20 + "px"; document.getElementById('dateContainer').style.height = tc._borderBox.h + "px"; // console.log(cp2); // console.log(tc); // console.log(tc._borderBix.h); reportContainer dateContainer // tc.domStyle.height = Math.max(cp1.content.offsetHeight, cp2.content.offsetHeight) + "px"; } // добавляет отчёт в интерфейс function AddReport(r, positions) { //var cont = dojo.byId("reportContainer"); //Button require(["dojo/dom-construct", "dijit/form/Button", "dijit/form/TextBox", "dijit/form/Select", "dijit/form/CheckBox"], function (domConstruct, djButton, djTextBox, djSelect, djCheckBox) { //console.log(r); var repMain = domConstruct.create("div", { innerHTML: "", "class": "repMain", "id":"repMain"+r.id.toString() }, positions[r.position]);// "reportContainer" // r.name var repButtonContainer = domConstruct.create("div", { innerHTML: "", "class": "repButtonContainer" }, repMain); var repName = domConstruct.create("div", { innerHTML: '' + r.number+ ' '+r.name, "class": "repName", "id": "repName" + r.id.toString() }, repMain); dj.on(repName,"click",function (evt) { ShowReportInfo(r); }); if (r.version >= 2) { if (r.id == -50) console.log(r); var repParams = domConstruct.create("div", { innerHTML: "", // "class": "repAnswer", "id": "repParams" + r.id.toString() }, repMain); if (r.TimeType) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); var repInp1 = domConstruct.create("checkbox", { innerHTML: "", id: "param-TimeType" + r.id.toString(), "class": "repParamTimeType" }, conteiner); new djCheckBox({ name: "param-TimeType" + r.id.toString() }, repInp1).set("class", "repParamTimeType"); var chk = new domConstruct.create("label", { id: "idChk", innerHTML: "Отчетное время 03:00" }, conteiner); } if (r.CardNumber) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); /* domConstruct.create("label", { innerHTML: "Номер карты", "class": "repParamLabel" }, conteiner); */ var repInp1 = domConstruct.create("input", { innerHTML: "", id: "param-CardNumber" + r.id.toString(), "class": "repParamCardNumber" }, conteiner); new djTextBox({ name: "param-CardNumber" + r.id.toString(), value: "" /* no or empty value! */, placeHolder: "Номер карты" }, repInp1).set("class", "repParamCardNumber"); } // CardNumber if (r.TerminalNumber) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); var repInp1 = domConstruct.create("input", { innerHTML: "", id: "param-TerminalNumber" + r.id.toString(), "class": "repParamTerminalNumber" }, conteiner); new djTextBox({ name: "param-TerminalNumber" + r.id.toString(), value: "" /* no or empty value! */, placeHolder: "Номер терминала" }, repInp1).set("class", "repParamTerminalNumber"); } // TerminalNumber if (r.Celler) { /* var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); var repInp1 = domConstruct.create("select", { innerHTML: "", id: "param-Celler" + r.id.toString(), "class": "repParamCeller" }, conteiner); var newel = new djSelect({ name: "param-Celler" + r.id.toString() }, repInp1).set("class", "repParamCeller"); var newList = []; newList.push({ label: "Все агенты", value: 0 }); for (var i = 0; i < app.info.ce.length; i++) newList.push({ label: app.info.ce[i].name, value: app.info.ce[i].id }); newel.set("options", newList); newel.set("value", newList[0]); */ } if (r.SeriaGroup) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); var repInp1 = domConstruct.create("select", { innerHTML: "", id: "param-SeriaGroup" + r.id.toString(), "class": "repParamSeriaGroup" }, conteiner); var newel = new djSelect({ name: "param-SeriaGroup" + r.id.toString() }, repInp1).set("class", "repParamSeriaGroup"); var newList = []; newList.push({ label: "Все серии и наличность", value: 0 }); newList.push({ label: "Наличная оплата", value: 1 }); newList.push({ label: "Все серии", value: 2 }); for (var i = 0; i < app.info.sl.length; i++) newList.push({ label: app.info.sl[i].name, value: app.info.sl[i].id }); newel.set("options", newList); newel.set("value", newList[0]); } if (r.ReportGrouping) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repReportGrouping" }, repParams); var repInp1 = domConstruct.create("select", { innerHTML: "", id: "param-ReportGrouping" + r.id.toString(), "class": "repReportGrouping" }, conteiner); var newel = new djSelect({ name: "param-ReportGrouping" + r.id.toString() }, repInp1).set("class", "repReportGrouping"); var newList = []; newList.push({ label: "Выберите группировку отчёта", value: 0 }); for (var i = 0; i < r.ReportGrouping.length; i++) newList.push({ label: r.ReportGrouping[i].Item2, value: r.ReportGrouping[i].Item1 }); newel.set("options", newList); newel.set("value", newList[0]); } if (r.RouteCode) { var conteiner = domConstruct.create("div", { innerHTML: "", "class": "repParamContainer" }, repParams); var repInp1 = domConstruct.create("input", { innerHTML: "", id: "param-RouteCode" + r.id.toString(), "class": "repParamRouteCode" }, conteiner); new djTextBox({ name: "param-RouteCode" + r.id.toString(), value: "" /* no or empty value! */, placeHolder: "Номер маршрута" }, repInp1).set("class", "repParamRouteCode"); } } var repAnswer = domConstruct.create("div", { innerHTML: "", "class": "repAnswer", "id": "repAnswer" + r.id.toString() }, repMain); var btnid = "repRun" + r.id.toString(); var btndj = dijit.byId(btnid); if (btndj) btndj.destroy(); var repRun = domConstruct.create("button", { innerHTML: "", "class": "repRun", "id": btnid }, repButtonContainer); var myButton = new djButton({ label: "Сформировать", onClick: function () { RunReport(r); } }, repRun).startup(); }); } // показывает подсказки для отчёта function ShowReportInfo(r) { params.inputDate1.setDisabled(!r.date1); params.inputDate2.setDisabled(!r.date2); params.selOperator.setDisabled(!r.oper); params.selDivision.setDisabled(!r.div); params.selFormat.setDisabled(!r.format); params.selRegion.setDisabled(!r.region); params.selAgent.setDisabled(!r.agent); params.cbxSumma.setDisabled(!r.summa); params.cbxRoute.setDisabled(!r.route); params.cbxSeria.setDisabled(!r.seria); params.cbxMonth.setDisabled(true); params.cbxDivide.setDisabled(!r.divide); dj.dom.byId("txtDescription").innerHTML = r.descr; dj.dom.byId("txtLink").innerHTML = "" + ' Пример отчета ';; require(["dojo/dom-style"], function (domStyle) { var color = "LightGreen"; domStyle.set(dj.dom.byId("date1Container"), "background-color", r.date1 ? color : "inherit"); domStyle.set(dj.dom.byId("date2Container"), "background-color", r.date2 ? color : "inherit"); domStyle.set(dj.dom.byId("operSelectContainer"), "background-color", r.oper ? color : "inherit"); domStyle.set(dj.dom.byId("divisionSelectContainer"), "background-color", r.div ? color : "inherit"); domStyle.set(dj.dom.byId("formatSelectContainer"), "background-color", r.format ? color : "inherit"); domStyle.set(dj.dom.byId("regionSelectContainer"), "background-color", r.region ? color : "inherit"); domStyle.set(dj.dom.byId("agentSelectContainer"), "background-color", r.agent ? color : "inherit"); domStyle.set(dj.dom.byId("cSummaContainer"), "background-color", r.summa ? color : "inherit"); domStyle.set(dj.dom.byId("cRouteContainer"), "background-color", r.route ? color : "inherit"); domStyle.set(dj.dom.byId("cSeriaContainer"), "background-color", r.seria ? color : "inherit"); domStyle.set(dj.dom.byId("cDivideContainer"), "background-color", r.divide ? color : "inherit"); }); } // куда уж без этого то require(["dijit/Dialog", "dojo/domReady!"], function (Dialog) { MessageBox = new Dialog({ title: "Сообщение", content: "", style: "width: 500px" }); MessageBox.Show = function (message) { MessageBox.set("content", message); MessageBox.show(); } CHECK_VERSION(); }) document.onkeyup = function (e) { e = e || window.event; if (e.keyCode === 13) { if (app.info) return; else { Login(); return false; } alert("Вы нажали Enter!"); } } function CHECK_VERSION(service) { if (service) { if(HTML_VERSION== service) return; } else { if ((MAIN_VERSION == HTML_VERSION) && (HTML_VERSION == REPORTS_VERSION)) return; } MessageBox.Show("Несовпадение версий библиотек. Обновите страницу, если не поможет, то почистите кэш браузера.