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 = ''; } } ); } 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 = ''; } } ); //document.getElementById('previewPDF').innerHTML = ''; } 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;