MAIN_VERSION='2.0.9229.19760';
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 :
(m1.length > 0 ? m2[0].domNode.clientHeight : m3[0].domNode.clientHeight);
lll *= Math.max(m1.length, m2.length, m3.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.addChild(cp3);
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("Несовпадение версий библиотек. Обновите страницу, если не поможет, то почистите кэш браузера.