/**
* Created by test on 01.11.2018.
*/
var selectCfg;
function sendSaveCfgAjax() {
var ean13 = $("#page3_2").find('[name="cfgEan13"]').val();
var prodPut = JSON.parse(JSON.stringify(selectProd));
prodPut.ean13 = (ean13.length === 0) ? null : ean13;
if (!sendPutProductAjax(prodPut)) return;
var cfg = getTaskUI();
cfg.product.id = selectProd.id.toString();
console.log(JSON.stringify(cfg).toString());
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(cfg),
url: '/manage/task',
success: function (data) {
console.log(" SAVE CONFIG : " + cfg.id + "\n", data);
sendGetCfgAjax(viewCfgFS);
customHistory.back();
customHistory.back();
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("ERROR : ", jqXHR.responseText);
viewError("page3_2", jqXHR.responseText);
}
});
}
function sendPutCfgAjax() {
var ean13 = $("#page3_2").find('[name="cfgEan13"]').val();
if (selectCfg.product.ean13 != ean13) {
var prodPut = JSON.parse(JSON.stringify(selectCfg.product));
prodPut.ean13 = (ean13.length === 0) ? null : ean13;
if (!sendPutProductAjax(prodPut)) return;
}
var cfg = getTaskUI();
cfg.product.id = selectCfg.product.id.toString();
cfg.id = selectCfg.id;
// cfg.status = selectCfg.status;
console.log(JSON.stringify(cfg).toString());
$.ajax({
type: 'PUT',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(cfg),
url: '/manage/task/' + cfg.id,
success: function (data) {
console.log(" PUT CONFIG : " + cfg.id + "\n", data);
sendGetCfgAjax(viewCfgFS);
customHistory.back();
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("ERROR : ", jqXHR.responseText);
viewError("page3_2", jqXHR.responseText);
}
});
}
function sendPutProductAjax(product) {
console.log(" PUT PRODUCT : " + JSON.stringify(product));
var outNoErr = false;
$.ajax({
async: false,
type: 'PUT',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(product),
url: '/manage/product/' + product.id,
success: function (data) {
console.log(" PUT PRODUCT : " + product.id + "\n", data);
outNoErr = true;
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("ERROR : ", jqXHR.responseText);
viewError("page3_2", jqXHR.responseText);
outNoErr = false;
}
});
return outNoErr;
}
function sendTaskCodesAjax(selectFile, type) {
// Create a Deferred
let deferred = $.Deferred();
if( typeof selectFile == 'undefined' ) {
deferred.reject("Не выбран файл");
} else {
$('#loading').removeClass('hide');
var data = new FormData();
data.append('taskCodes', selectFile);
data.append('taskId', selectCfg.id);
data.append('type', type);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/manage/task/codes/import",
data: data,
processData: false,
contentType: false,
cache: false,
timeout: 1000000
})
.done(function (data, textStatus, jqXHR) {
loadCodesInfoAjax(selectCfg.id);
console.log("SUCCESS : ", data);
deferred.resolve();
})
.fail(function (jqXHR, textStatus, errorThrown) {
console.log("ERROR : ", jqXHR.responseText);
viewError("page3_2", jqXHR.responseText);
deferred.reject(jqXHR.responseText);
})
.always(function (data) {
$('#loading').addClass("hide");
})
}
return deferred;
}
function sendDeleteCfgAjax() {
let id = selectCfg.id;
$.ajax({
type: 'DELETE',
url: '/manage/task/' + id,
success: function (data) {
console.log(" DELETE CONFIG ID : " + id + "\n", data);
sendGetCfgAjax(viewCfgFS);
customHistory.back();
customHistory.back();
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("ERROR : ", jqXHR.responseText);
viewError("page3_2", JSON.parse(jqXHR.responseText));
customHistory.back();
}
});
}
function viewPkg() {
$("#cfgPkg").empty();
$("#cfgPlt").empty();
$("#cfgPkg").append('')
$("#cfgPlt").append('');
for (var i = 0; i < listPkg.length; i++) {
var pnktOpt = '';
if (listPkg[i].type == "PACK") {
$("#cfgPkg").append(pnktOpt);
}
if (listPkg[i].type == "PALLET") {
$("#cfgPlt").append(pnktOpt);
}
}
}
function viewCfgFS(cfgV) {
console.log(cfgV);
selectCfg = cfgV;
viewTaskUI(cfgV);
$("#page3_2").find(".delete").removeClass("hide");
$("#page3_2").find(".put").removeClass("hide");
$("#page3_2").find(".save").addClass("hide");
$("#page3_2").find(".put").prop("disabled", true);
$("#btnTaskExtraFieldSave").prop("disabled", true);
$("#btnTaskCodesImport").attr("disabled", !cfgV || !cfgV.id);
resetCodesInfo();
loadCodesInfoAjax(cfgV.id);
viewErrorReset("page3_2");
pageselect("page3_2");
}
function viewTaskUI(cfgV) {
let pack = cfgV.pack_pkg || cfgV.packPkg || {rows:"-", cols:"-", id:"-"};
$("#page3_2 form").trigger("reset");
$("#page3_2").find('[name="cfgName"]').val(cfgV.name);
$("#page3_2").find('.cfgPostFix .product').text(strCfgNamePostFix(cfgV.product.capacity, cfgV.product.alcVolume));
$("#page3_2").find('.cfgPostFix .count').text(strCfgNamePostFixCount(pack.rows, pack.cols, getPalletCapacity(cfgV.pallet_pkg)));
$("#page3_2").find('.cfgNameProd').text(cfgV.product.fullName + " " + strCfgNamePostFix(cfgV.product.capacity, cfgV.product.alcVolume));
$("#page3_2").find('[name="cfgEan13"]').val(cfgV.product.ean13);
$("#page3_2").find('[name="cfgPkg"]').val(pack.id);
$("#page3_2").find('[name="cfgPlt"]').val(!!cfgV.pallet_pkg ? cfgV.pallet_pkg.id : '-');
$("#page3_2").find('[name="prodName"]').val(cfgV.product.fullName);
console.log("defaultExtrafields", defaultExtrafields);
cfgV.extraFields = Object.assign(getExtraFieldsUI(defaultExtrafields), cfgV.extraFields)
let fullExtraFields = addExtrafields(cfgV);
$("#btnTaskExtraFields").prop("disabled", !fullExtraFields);
$("#btnTaskCodesImport").attr("disabled", !cfgV || !cfgV.id);
setTaskParam(cfgV);
getTaskLabels(cfgV);
}
function checkType() {
uiCheckType($("#cfgType"));
}
function uiCheckType(elem) {
var bb = elem.prop('checked');
if (bb) {
$("#page3_2").find(".paramTask").removeClass("hide");
elem.parent().removeClass("btn-success").addClass("btn-default");
elem.next().removeClass("glyphicon-ok").addClass("glyphicon-remove");
} else {
$("#page3_2").find(".paramTask").addClass("hide");
elem.parent().removeClass("btn-default").addClass("btn-success");
elem.next().removeClass("glyphicon-remove").addClass("glyphicon-ok");
}
}
function getCheckType() {
var t = $("#page3_2").find("#cfgType").prop('checked');
if (t) {
return "REGULAR";
} else {
return "SINGLE";
}
}
function setTaskParam(cfg) {
var elem = $("#page3_2").find("#cfgType");
var type = cfg.type;
var dt = new Date();
if (type == "SINGLE") {
elem.prop('checked', false);
elem.parent().removeClass('active');
$("#page3_2").find(".paramTask").removeClass("hide");
elem.parent().removeClass("btn-success").addClass("btn-default");
elem.next().removeClass("glyphicon-ok").addClass("glyphicon-remove");
dt = new Date(cfg.plannedStartDate);
$("#cfgDueDate").val(dateFormat(dt));
$("#cfgREQUIRED_COUNT").val(cfg.requiredCount);
$('#cfgStatus').empty().append(``)
if (cfg.status === "EXECUTED") $('#cfgStatus').append(``)
} else {
elem.prop('checked', true);
elem.parent().addClass('active');
$("#page3_2").find(".paramTask").addClass("hide");
elem.parent().addClass("btn-success").removeClass("btn-default");
elem.next().addClass("glyphicon-ok").removeClass("glyphicon-remove");
$("#cfgDueDate").val(dateFormat(dt));
}
}
function getTaskUI() {
var requiredCount = 0;
var dueDate = null;
let status = $("#page3_2").find('[name="cfgStatus"]').val();
var type = getCheckType();
if (type == "SINGLE") {
requiredCount = $("#page3_2").find('[name="cfgREQUIRED_COUNT"]').val();
dueDate = $("#page3_2").find('[name="cfgDueDate"]').val();
}
let extraFieldsUI = getExtraFieldsUI($('#taskExtraFields .fieldList input'));
let pltId = {id: $("#page3_2").find('[name="cfgPlt"]').val()};
if (pltId.id === '-') pltId = null;
let packId = {id: $("#page3_2").find('[name="cfgPkg"]').val()};
if (packId.id === '-') packId = null;
let cfg = {
id: null,
name: $("#page3_2").find('[name="cfgName"]').val(),
product: {id: null},
pack_pkg: packId,
pallet_pkg: pltId,
requiredCount: requiredCount,
plannedStartDate: dueDate,
status: status,
type: type,
extraFields: extraFieldsUI
};
return cfg;
}
function dateFormat(date) {
var dd = date.getDate();
if (dd < 10) dd = '0' + dd;
var mm = date.getMonth() + 1;
if (mm < 10) mm = '0' + mm;
var yyyy = date.getFullYear();
return yyyy + "-" + mm + "-" + dd;
}
function onChangeTask() {
$("#page3_2").find(".put").prop("disabled", false);
}
function loadCodesInfoAjax(taskId) {
if (taskId) {
$.get(`/manage/task/${taskId}/codes/summary`, function (summary) {
for (let type in summary) {
let summaryRow = summary[type];
let total = 0;
for (let status in summaryRow) {
let count = summaryRow[status];
total += count;
$(`#task-codes-${type}-${status}`).text(count);
}
$(`#task-codes-${type}-TOTAL`).text(total);
}
});
}
}
function resetCodesInfo() {
$(".task-codes-counter").text(0);
}