Files
crm.twinpol.com/modules/EcmFkPackages/EcmFkPackages.js
2025-05-12 15:45:17 +00:00

840 lines
24 KiB
JavaScript
Executable File

window.onbeforeunload = function() {
//removeDocumentReservations(document.getElementById("temp_id").value);
//saveDocumentReservations(document.getElementById("temp_id").value);
//alert("Wprowadzone zmiany nie zostały zapisane");
};
function BlockProducts() {
return true;
var tab = document.getElementById("tbody");
var tr = tab.getElementsByTagName("tr");
var qty;
var total;
for (var i = 0; i < tr.length; i++) {
var inp = tr[i].getElementsByTagName("input");
var img = tr[i].getElementsByTagName("img");
var tx = tr[i].getElementsByTagName("textarea");
//console.log(inp);
if (inp[2].value != '') {
inp[1].setAttribute('readonly', 'readonly');
inp[1].setAttribute('onkeydown', '');
img[2].setAttribute('style', 'display:none');
//img[1].setAttribute('style', 'display:none');
}
//if(inp[8].value==1)deleteEmptyComponents(inp[11].value);
}
return true;
}
function saveDocumentReservations(temp_id, operation) {
return true;
url = 'index.php?module=EcmStockOperations&action=saveDocumentReservations&temp_doc_id=' + temp_id + '&to_pdf=1';
var req = mint.Request();
req.OnSuccess = function() {
switch (operation)
{
case 'cancel':
case 'list':
default:
//window.location = "index.php?module=EcmFkPackages&action=index";
break;
}
return;
};
req.Send(url);
}
function removeDocumentReservations(temp_id, operation) {
return true;
url = 'index.php?module=EcmStockOperations&action=deleteDocumentReservations&temp_doc_id=' + temp_id + '&to_pdf=1';
var req = mint.Request();
req.OnSuccess = function() {
switch (operation)
{
case 'cancel':
case 'list':
default:
window.location = "index.php?module=EcmFkPackages&action=index";
break;
}
return;
};
req.Send(url);
}
function getProductQuantity(rowIndex, operation) {
return true;
//console.log('getProductQuantity');
var stock_id = document.getElementById("stock_id").value;
var product_id = N.row(rowIndex).getData().id;
url = 'index.php?module=EcmStockStates&action=getProductQuantity&stock_id=' + stock_id + '&product_id=' + product_id + '&to_pdf=1';
//console.log(url);
var req = mint.Request();
req.OnSuccess = function() {
//console.log("getProductQuantity:OnSuccess");
//return;
var data = N.row(rowIndex).getData();
//console.log(data);
data.stock = this.responseText;
N.row(rowIndex).setData(data);
if (!data.reserved)
data.reserved = 0;
if (operation == "saveReservation") {
N.row(rowIndex).className = '';
saveReservation(rowIndex, false);
//console.log(data);
if (parseFloat(data.stock) >= data.rq) {
N.row(rowIndex).addClass('greenRow');
} else {
N.row(rowIndex).addClass('redRow');
}
return;
//console.log(data);
//N.row(rowIndex).className='';
//if qty = 0 do clear reserved field
if (data.rq == 0) {
N.row(rowIndex).setData();
removeReservation(rowIndex);
}
if (data.quantity >= data.rq)
{
/*
saveReservation(rowIndex, false);
return;
*/
if (data.stock >= data.rq) {
saveReservation(rowIndex, false);
return;
}
if ((data.stock < data.rq) && (parseFloat(data.stock) + parseFloat(data.rq) > 0)) {
console.log(data.stock);
console.log(data.rq);
console.log(parseFloat(data.stock) + parseFloat(data.rq));
saveReservation(rowIndex, true, parseFloat(data.stock) + parseFloat(data.rq)); // orange row true;
return;
}
if (data.quantity == 0) {
data.reserved = 0;
N.row(rowIndex).setData();
removeReservation(rowIndex);
setTimeout(function() {
getProductQuantity(rowIndex);
}, 1000);
return;
}
/*
//stock > qty - all OK, can reserve
if (data.stock>=data.quantity-data.reserved) {
saveReservation(rowIndex, false);
return;
}
if ((data.stock<(data.quantity-data.reserved)) && (parseFloat(data.stock)+parseFloat(data.reserved)>0)) {
saveReservation(rowIndex, true, parseFloat(data.stock)+parseFloat(data.reserved)); //orange row true;
return;
}
//stock <= qty + res, sand reserve, do nothing
if (data.stock<(data.quantity-data.reserved)) {
N.row(rowIndex).className = 'redRow';
return;
}
*/
}
//if (data.stock < data.rq || data.quantity > data.rq) {
N.row(rowIndex).addClass('redRow');//className = 'redRow';
// return;
//}
}
};
req.Send(url);
}
function saveReservation(rowIndex, orangeRow, qty) {
return true;
//console.log('saveReservation');
var data = N.row(rowIndex).getData();
//console.log(data);
var product_id = data.id;
var temp_item_id = data.temp_item_id;
var quantity;
if (qty)
quantity = qty;
else
quantity = data.rq;
var date = document.getElementById("temp_date").value;
var stock_id = document.getElementById("stock_id").value;
var temp_doc_id = document.getElementById("temp_id").value;
var url = 'index.php?module=EcmStockOperations&action=saveReservation&stock_id=' + stock_id + '&product_id=' + product_id + '&temp_doc_id=' + temp_doc_id + '&temp_item_id=' + temp_item_id + '&date=' + date + '&quantity=' + quantity + '&to_pdf=1';
//console.log(url);
var req = mint.Request();
req.OnSuccess = function() {
//console.log("saveReservation:OnSuccess");
var data = N.row(rowIndex).getData();
data.reserved = quantity;
N.row(rowIndex).setData(data);
//N.row(rowIndex).cell(3).getElementById("reservation_info").innerHtml="("+data.reserved+")";
//N.row(rowIndex).cells.item(4).getElementsByTagName('input')[0].value = NumberToUserFormatNumber(data.reserved);
//cell(3).getElementById("reservation_info").innerHtml
if (orangeRow == true)
N.row(rowIndex).addClass('orangeRow'); //.className = 'orangeRow';
else
N.row(rowIndex).addClass('greenRow'); //.className = 'greenRow';
getProductQuantity(rowIndex);
}
req.Send(url);
}
function removeReservation(index) {
//Console.log('removeReservation');
var data = N.row(index).getData();
var temp_item_id = data.temp_item_id;
url = 'index.php?module=EcmStockOperations&action=deleteReservation&temp_item_id=' + temp_item_id + '&to_pdf=1';
//console.log('removeReservation: ' + url);
var req = mint.Request();
req.OnSuccess = function() {
//console.log('removeReservation OnSuccess');
}
req.Send(url);
}
function SetTabIndexs() {
var main = document.getElementById("main");
var td = main.getElementsByTagName("td");
var selectedTable = null;
//var selectingColor = "red";
//var selectingCellTable = "green";
var TableIndex = 0;
for (var i = 0; i < td.length; i++) {
if (td[i].className == "tabEditViewDF") {
var TI = 0;
if (td[i].parentNode.cells.item(1) == td[i])
TI = 101 + TableIndex;
else
TI = 102 + TableIndex;
var nodes = td[i].getElementsByTagName("input");
for (var j = 0; j < nodes.length; j++)
nodes[j].tabIndex = TI;
var nodes = td[i].getElementsByTagName("select");
for (var j = 0; j < nodes.length; j++)
nodes[j].tabIndex = TI;
var nodes = td[i].getElementsByTagName("textarea");
for (var j = 0; j < nodes.length; j++)
nodes[j].tabIndex = TI;
if (td[i].parentNode.parentNode.parentNode !== selectedTable) {
//if(selectingColor == "red") selectingColor = "blue"; else selectingColor = "red";
selectedTable = td[i].parentNode.parentNode.parentNode;
TableIndex++;
}
}
}
}
function doRequest(where, post, doFunction, error) {
this.Display = function(result) {
doFunction(result.responseText);
}
this.Fail = function(result) {
if (error)
alert(error);
}
YAHOO.util.Connect.asyncRequest(
"POST",
where,
{
success: this.Display,
failure: this.Fail
},
post
);
}
function changeValidateRequired(formname, name, required) {
for (var i = 0; i < validate[formname].length; i++)
if (validate[formname][i][0] == name) {
validate[formname][i][2] = required;
break;
}
}
function set_focus() {
document.getElementById("name").focus();
}
function my_popup(module, field_array, met, call_back_function, form_name) {
if (!call_back_function)
call_back_function = "set_return";
if (!form_name)
form_name = "EditView";
return open_popup(module, 900, 700, met, true, false, {
"call_back_function": call_back_function,
"form_name": form_name,
"field_to_name_array": field_array
});
}
function addEvent(object, eventName, do_function) {
if (typeof(object) == "string")
object = document.getElementById(object);
if (!object) {
alert("No object in function addEvent!");
return;
}
if (object.addEventListener) {
object.addEventListener(eventName, do_function, false);
} else {
object.attachEvent("on" + eventName, do_function);
}
}
function findPos(obj) {
var nleft = 0;
var ntop = 0;
if (obj.offsetParent) {
nleft = obj.offsetLeft
ntop = obj.offsetTop
while (obj = obj.offsetParent) {
nleft += obj.offsetLeft
ntop += obj.offsetTop
}
}
return [nleft, ntop];
}
function cursorEOT(isField) {
isRange = isField.createTextRange();
isRange.move("textedit");
isRange.select();
testOverflow = isField.scrollTop;
if (testOverflow != 0) {
return true
}
else {
return false
}
}
function adjustRows(isField) {
while (cursorEOT(isField)) {
isField.rows++
}
}
function insertText(isField, isText) {
isField.value = testText;
isField.focus();
}
function changer() {
this.list = new Object();
this.add = function(object, type, do_function, start_value) {
if (typeof(object) == "string")
object = document.getElementById(object);
if (!object)
return;
this.list[object.id] = new Object();
this.list[object.id].object = object;
this.list[object.id].type = type;
this.list[object.id].do_function = do_function;
this.list[object.id].start_value = start_value;
this.list[object.id].value = "";
}
this.getValue = function(element) {
var value = null;
if (element.object) {
if (element.type == "innerHTML")
value = element.object.innerHTML;
if (element.type == "value")
value = element.object.value;
if (element.type == "checked")
value = element.object.checked;
}
return value;
}
this.interval = 1000;
this.timer = null;
this.startTimer = function() {
var cc = this;
this.timer = setInterval(
function() {
var list = cc.list;
for (x in list) {
if (list[x].start_value) {
list[x].value = cc.getValue(list[x]);
list[x].start_value = false;
}
else {
var value = cc.getValue(list[x]);
if (list[x].value !== value)
if (list[x].do_function)
list[x].do_function(list[x].object);
list[x].value = value;
}
}
},
this.interval
);
}
this.stopTimer = function() {
clearInterval(this.timer);
this.timer = null;
}
}
var ERROR = false;
var ItemListSave = function(json) {
return "";
}
var FkPackageListSave = function(json) {
return "";
}
var IncomeListSave = function(json) {
return "";
}
function ShowLoadingView() {
var slv = document.getElementById("ShowLoadingView");
if (!slv) {
slv = document.createElement("div");
slv.id = "ShowLoadingView";
slv.className = "transparent_class_loading";
slv.style.width = "100%";
slv.style.height = "500%";
var sli = document.createElement("img");
sli.className = "transparent_class_loading_image";
sli.src = "themes/default/images/loading.gif";
slv.appendChild(sli);
document.body.appendChild(slv);
}
slv.style.display = "";
}
function HideLoadingView() {
var slv = document.getElementById("ShowLoadingView");
if (slv)
slv.style.display = "none";
}
function saveItems() {
document.getElementById("position_list").value = ItemsList(true);
}
function saveFkPackages() {
document.getElementById("fkpackages_list").value = FkPackagesList(true);
}
function checkStockQuantity() {
var tab = document.getElementById("tbody");
var tr = tab.getElementsByTagName("tr");
var qtyinstock;
var qty;
var total;
for (var i = 0; i < tr.length; i++) {
qtyinstock = tr[i].getElementsByTagName("input")[18].value;
qty = tr[i].getElementsByTagName("input")[17].value;
total = parseFloat(qtyinstock) - parseFloat(qty);
if (tr[i].getElementsByTagName("input")[17].checked == true && tr[i].getElementsByTagName("input")[2].value && parseInt(qtyinstock) - parseInt(qty) < 0) {
alert("Brakuje produktów na magazynie aby zrobic rezerwacje");
tr[i].getElementsByTagName("input")[17].value = parseInt(qtyinstock);
if (tr[i].getElementsByTagName("input")[9].value < tr[i].getElementsByTagName("input")[18].value) {
tr[i].getElementsByTagName("input")[18].value = parseInt(tr[i].getElementsByTagName("input")[9].value);
}
return false;
}
}
return true;
}
function removeHistoryRecord(id) {
var historyElement = document.forms.EditView.history;
var historyValue = JSON.parse(historyElement.value);
historyValue[id] = null;
//console.log(historyElement.value);
//console.log('Length: ' + historyValue.length);
historyElement.value = JSON.stringifyNoSecurity(historyValue);
return true;
}
function removeHistory(a) {
var paretLi = a.parentNode.parentNode;
var idParts = paretLi.id.split('_');
if (idParts[1] >= 0) {
removeHistoryRecord(idParts[1]);
//paretLi.removeChild(idParts[1]);
paretLi.style.display = 'none';
}
//console.log(paretLi.parentNode.children );
// Hide no-results item if needed.
if (paretLi.parentNode.children.length == 0) {
//
}
return true;
}
function addHistoryRecord(date, owner, record) {
var historyRecord = [
date,
owner,
record
];
var historyElement = document.forms.EditView.history;
var historyValue = JSON.parse(historyElement.value);
historyValue.unshift(historyRecord);
historyElement.value = JSON.stringifyNoSecurity(historyValue);
// Bof: Build list item.
{
var recordLi = document.createElement('li');
var dateP = document.createElement('p');
dateP.appendChild(document.createTextNode(date));
dateP.appendChild(document.createTextNode(', '));
dateP.appendChild(document.createTextNode(owner));
dateP.appendChild(document.createTextNode(':'));
//var ownerP = document.createElement('p');
//ownerP.appendChild(document.createTextNode(owner));
var recordP = document.createElement('p');
recordP.appendChild(document.createTextNode(record));
recordLi.appendChild(dateP);
//recordLi.appendChild(ownerP)
recordLi.appendChild(recordP);
}
// Eof: Build list item.
// Prepend new history record.
var wrapperList = document.getElementById('history_wrapper').children[0];
// Hide no-results item if needed.
if (wrapperList.children.length == 1 && wrapperList.children[0].getAttribute('class') == 'no-results') {
wrapperList.children[0].style.display = 'none';
}
wrapperList.insertBefore(recordLi, wrapperList.firstChild);
return true;
}
function addHistory() {
// Grab important form fields.
var owner = document.forms.EditView.history_owner;
var date = document.forms.EditView.history_date;
var record = document.forms.EditView.history_record;
// Check values.
if (owner.value.length == 0 || date.value.length == 0 || record.value.length == 0) {
alert('Wypełnij wszystkie pola.');
return false;
}
// Create row, update hidden history value.
addHistoryRecord(date.value, owner.value, record.value);
var date = new Date();
// Reset form.
owner.value = '';
date.value = date.toString('d.m.Y');
record.value = '';
return true;
}
function SaveForm() {
ShowLoadingView();
setTimeout(function() {
if (OPT["checkbox_demo"] == 1 && document.forms.EditView.record.value == "") {
alert(MOD.LBL_DEMO_VERSION_INFORMATION);
return;
}
ERROR = false;
//document.getElementById("position_list").value = ItemListSave(true);
if (ERROR) {
alert(MOD["LBL_SAVE_FORM_ERROR"]);
HideLoadingView();
return false;
}
document.forms.EditView.action.value = "Save";
if (check_form("EditView")) {
//var result = confirm(MOD.LBL_CONFIRM_QUESTION);
//if(result) document.forms.EditView.status.value = (OPT["auto_commiting"]?"s30":"s20");
doRequest(
"index.php",
getFormPost("Save"),
function(result) {
/*
console.log(result);
HideLoadingView();
return;
*/
document.forms.EditView.record.value = result.substring(result.length - 36);
if (OPT["setEmailTab"])
setEMAIL(true);
else
window.location = "index.php?module=" + document.forms.EditView.module.value + "&action=DetailView&record=" + document.forms.EditView.record.value;
},
MOD["LBL_NOT_SAVED"]
);
} else {
alert(MOD["LBL_NOT_SAVED"]);
HideLoadingView();
return false;
}
},
200);
}
function ItemListClear() {
while (N.rowCount() > 0)
N.row(0).deleteRow();
}
function getFormPost(action) {
if (!action)
action = "previewPDF";
var pd =
"to_pdf=1" +
"&module=EcmFkPackages&action=" +
action +
"&record=" +
document.forms.EditView.record.value;
pd += "&cache=fromJava" + ItemListSave(true) + FkPackageListSave(true) + IncomeListSave(true);
pd += '&history=' + document.forms.EditView.history.value;
var pd2 = new Object();
pd2["module"] = "EcmFkPackages";
pd2["action"] = action;
pd2["record"] = document.forms.EditView.record.value;
pd2["to_pdf"] = "1";
pd2["cache"] = "fromJava";
//pd2['history'] = document.forms.EditView.history.value;
document.forms.EditView.position_list.value = "";
document.forms["EditView"].action.value = action;
var tmp;
for (var i = 0; i < document.forms["EditView"].elements.length; i++) {
tmp = document.forms["EditView"].elements[i];
if (tmp.name != "") {
if (tmp.type == "checkbox")
pd2[document.forms["EditView"].elements[i].name] = (document.forms["EditView"].elements[i].checked ? "1" : "0");
else
pd2[document.forms["EditView"].elements[i].name] = document.forms["EditView"].elements[i].value;
}
}
pd += "&otherFormData=" + JSON.stringifyNoSecurity(pd2);
return pd;
}
function sendFormPostToPdf(type, panel) {
var tab = '_';
if (type != null) {
tab += type.toUpperCase();
}
ERROR = false;
document.getElementById("position_list").value = ItemListSave(true);
document.getElementById("fkpackages_list").value = FkPackageListSave(true);
document.getElementById("income_list").value = IncomeListSave(true);
if (ERROR) {
alert("There are some errors on list");
return false;
}
doRequest(
"index.php",
getFormPost("previewPDF"),
function(result) {
//console.log(result);
//return;
if (SHOW_PDF_IN_DIV == 1) {
HideLoadingView();
EcmPreviewPDF(
"index.php?module=EcmFkPackages&action=previewPDF&to_pdf=1&from=EcmFkPackages&type=" + type,
{
zoom: 75
}
);
}
else {
SetTab((panel ? "panel_" : "") + "PREVIEW" + tab);
document.getElementById("previewPDF" + tab).innerHTML = '<iframe style="border: none; width: 100%; height: 1200px;" frameborder="no" src="index.php?module=EcmFkPackages&action=previewPDF&to_pdf=1&from=EcmFkPackages&type=' + type + '#zoom=75">Yours browser not accept iframes!</iframe>';
}
}
);
}
preview_pdf = function() {
var type = document.getElementById('preview_type').value;
switch (type)
{
default:
type = 'income';
case 'fault':
case 'income':
case 'qty':
case 'val':
case 'warranty':
break;
}
doRequest(
"index.php",
getFormPost("previewPDF"),
function(result) {
//console.log(result);
//return;
if (SHOW_PDF_IN_DIV == 1) {
HideLoadingView();
EcmPreviewPDF(
"index.php?module=EcmFkPackages&action=previewPDF&to_pdf=1&from=EcmFkPackages&type=" + type,
{
zoom: 75
}
);
}
else {
document.getElementById("previewPDF").innerHTML = '<iframe style="border: none; width: 100%; height: 1200px;" frameborder="no" src="index.php?module=EcmFkPackages&action=previewPDF&to_pdf=1&from=EcmFkPackages&type=' + type + '#zoom=75">Yours browser not accept iframes!</iframe>';
}
}
);
//document.getElementById('previewPDF').innerHTML = '<iframe style="border:none;width:100%;height:1200px;" frameborder="no" src="index.php?module=EcmFkPackages&action=previewPDF&type=' + type + '&to_pdf=1&method=I&record=' + document.forms.DetailView.record.value + '#zoom=75">Yours browser not accept iframes!</iframe>';
}
function canConfirm() {
if (document.forms.EditView.status.value == "accepted" && !OPT.user.confirm_quotes) {
alert("This option is disabled for You.");
document.forms.EditView.status.value = ((OPT.old_status) ? OPT.old_status : "");
}
OPT.old_status = document.forms.EditView.status.value;
}
function CheckDiscount(noAlert) {
var discount = 0;
return 0;
}
var AjaxSearch1Items;
var AjaxSearch2Items;
var AjaxSearch3Items;
var parentFL;
var productFL;
var contactFL;