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; }; } /* Decree */ addEvent( window, 'load', function() { var CHANGER = new changer(); CHANGER.interval = 500; CHANGER.add( 'account_acc_wn', 'checked', function(obj) { if (true == obj.checked) { document.getElementById('acc_wn').disabled = true; document.getElementById('acc_wn_code').disabled = true document.getElementById('btn_acc_wn_code').disabled = true document.getElementById('btn_clr_acc_wn_code').disabled = true return true; } document.getElementById('acc_wn').disabled = false; document.getElementById('acc_wn_code').disabled = false; document.getElementById('btn_acc_wn_code').disabled = false; document.getElementById('btn_clr_acc_wn_code').disabled = false; }, false ); CHANGER.add( 'account_acc_ma', 'checked', function(obj) { if (true == obj.checked) { document.getElementById('acc_ma').disabled = true; document.getElementById('acc_ma_code').disabled = true document.getElementById('btn_acc_ma_code').disabled = true document.getElementById('btn_clr_acc_ma_code').disabled = true return true; } document.getElementById('acc_ma').disabled = false; document.getElementById('acc_ma_code').disabled = false; document.getElementById('btn_acc_ma_code').disabled = false; document.getElementById('btn_clr_acc_ma_code').disabled = false; }, false ); set_focus(); //initialize table N = new MyTable('decreeTable'); N.divParent = document.getElementById('decreeTableDIV'); var from_popup_return = false; function returnedData(popup_reply_data) { from_popup_return = true; var form_name = popup_reply_data.form_name; var name_to_value_array = popup_reply_data.name_to_value_array; for (var the_key in name_to_value_array) { if (the_key == 'toJSON') { // } else { var displayValue = name_to_value_array[the_key].replace(/&/gi, '&').replace(/</gi, '<').replace(/>/gi, '>').replace(/'/gi, '\'').replace(/"/gi, '"'); var e = document.getElementById(the_key); if (e) { e.value = displayValue; } } } // if(N.selectedRow) // N.selectedRow.calculateTotal(); } N.onRefreshRowIndex = function(row) { return true; var data = new Object(); data['index'] = (row.index + 1).toString(); row.cells.item(0).setData(data); }; N.onCreateRow = function(row) { console.log(row); row.newPos = false; row.style.height = OPT['row_item_height']; row.ondblclick = function() { this.newPos = !this.newPos; for (var i = 0; i < this.myTable.colCount(); i++) { this.cells.item(i).change(!this.newPos); } }; row.onSelect = function() { for (var i = 0; i < this.myTable.colCount(); i++) { this.cells.item(i).style.height = OPT['row_item_height_selected']; this.cells.item(i).change(!this.newPos); } }; row.onDeselect = function() { for (var i = 0; i < this.myTable.colCount(); i++) { this.cells.item(i).style.height = OPT['row_item_height']; this.cells.item(i).change(false); } }; row.calculateTotal = function() { console.log('calculateTotal'); return true; var data = new Object(); this.cells.item(3).getData(data, true); this.cells.item(5).getData(data, true); this.cells.item(6).getData(data, true); if (data.quantity && data.price) { data.price2 = data.price - data.price * data.discount / 100; data.total = data.quantity * data.price2; } else { data.total = 0; data.price2 = 0; } this.cells.item(7).setData(data); this.cells.item(10).setData(data); calculateTotalItems(); }; }; var itd = document.getElementById('decreeTableDIV'); itd.onscroll = function() { console.log('onscroll'); return true; if (!AjaxSearch1Items.AjaxSearchFrozen) if (N.selectedCell && N.selectedCell.LeftPosition && N.selectedCell.TopPosition) { var top = N.selectedCell.TopPosition + N.selectedCell.offsetHeight; if (((N.selectedCell.offsetTop + N.selectedCell.offsetHeight - this.scrollTop) > (this.offsetHeight + 5)) || ((N.selectedCell.offsetTop - this.scrollTop) < (-10))) AjaxSearch1Items.div.style.display = 'none'; else AjaxSearch1Items.div.style.display = ''; AjaxSearch1Items.div.style.top = top - this.scrollTop; } }; N.onCreateCell = function(cell) { console.log(cell); var i = cell.index; cell.change = function(select) { // }; cell.style.height = OPT['row_item_height']; // cell.onDeselect = function() { // var data = this.parentNode.getData(); // if (!data.id || data.id == '') { // var data2 = new Object(); // this.parentNode.setData(data2); // } // }; // Position. if (i == 0) { cell.select = function() { this.selectNext(); }; cell.getData = function(data) { data.index = cell.firstChild.value; }; cell.setData = function(data) { if (data.index) { cell.firstChild.value = data.index; } }; var edit = document.createElement('input'); edit.setAttribute('type', 'text'); edit.setAttribute('readOnly', 'readonly'); edit.setAttribute('tabIndex', 1); edit.className = 'inputs'; cell.appendChild(edit); } // Name. if (i == 1) { cell.getData = function(data) { data.vr_name = this.firstChild.value; }; cell.setData = function(data) { this.firstChild.value = data.vr_name; }; var edit = document.createElement('input'); edit.setAttribute('type', 'text'); // edit.setAttribute('readOnly', 'readonly'); edit.setAttribute('tabIndex', 1); edit.className = 'inputs'; cell.appendChild(edit); var img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_IMG_SEARCH']); img.setAttribute('src', 'modules/EcmInvoiceOuts/images/search.gif'); img.style.cursor = 'pointer'; img.onclick = function() { try { // this.parentNode.select(); } catch(e) { // } this.parentNode.ajax_search = false; var ecmpopup = my_popup( 'EcmFkVatRegs', { id: 'id_p', name: 'name_p', position: 'position_p', } ); setTimeout( function(){ // ecmpopup.focus(); }, 200 ); } // Search image button. // cell.appendChild(img); } // Wn. if (i == 2) { cell.getData = function(data) { data.acc_wn_code = this.firstChild.value; }; cell.setData = function(data) { this.firstChild.value = data.acc_wn_code; }; var edit = document.createElement('input'); edit.setAttribute('type', 'text'); // edit.setAttribute('readOnly', 'readonly'); edit.setAttribute('tabIndex', 1); edit.className = 'inputs'; cell.appendChild(edit); var img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_IMG_SEARCH']); img.setAttribute('src', 'modules/EcmInvoiceOuts/images/search.gif'); img.style.cursor = 'pointer'; img.onclick = function() { try { // this.parentNode.select(); } catch(e) { // } this.parentNode.ajax_search = false; var ecmpopup = my_popup( 'EcmBankAccounts', { id: 'id_p', name: 'name_p', code: 'code_p', kind: 'kind_p', type: 'type_p', bo: 'bo_p', format: 'format_p', date_created: 'date_created_p', date_modified: 'date_modified_p', deleted: 'deleted_p' } ); setTimeout( function(){ // ecmpopup.focus(); }, 200 ); } // Search image button. // cell.appendChild(img); } // Ma. if (i == 3) { cell.getData = function(data) { data.acc_ma_code = this.firstChild.value; }; cell.setData = function(data) { this.firstChild.value = data.acc_ma_code; }; var edit = document.createElement('input'); edit.setAttribute('type', 'text'); // edit.setAttribute('readOnly', 'readonly'); edit.setAttribute('tabIndex', 1); edit.className = 'inputs'; cell.appendChild(edit); var img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_IMG_SEARCH']); img.setAttribute('src', 'modules/EcmInvoiceOuts/images/search.gif'); img.style.cursor = 'pointer'; img.onclick = function() { try { // this.parentNode.select(); } catch(e) { // } this.parentNode.ajax_search = false; var ecmpopup = my_popup( 'EcmBankAccounts', { id: 'id_p', name: 'name_p', code: 'code_p', kind: 'kind_p', type: 'type_p', bo: 'bo_p', format: 'format_p', date_created: 'date_created_p', date_modified: 'date_modified_p', deleted: 'deleted_p' } ); setTimeout( function(){ // ecmpopup.focus(); }, 200 ); } // Search image button. // cell.appendChild(img); } // Options. if (i == 4) { var img; //insert img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_INSERT_NEW_ROW']); img.setAttribute('src', 'modules/EcmFkPackages/images/insertrow.gif'); img.style.cursor = 'pointer'; img.onclick = function() { this.parentNode.myTable.addRow(this.parentNode.parentNode.index + 1); }; //delete cell.appendChild(img); cell.appendChild(document.createTextNode(" ")); img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_DELETE_ROW']); img.setAttribute('src', 'modules/EcmFkPackages/images/deleterow.gif'); img.style.cursor = 'pointer'; img.onclick = function() { removeReservation(cell); this.parentNode.parentNode.deleteRow(); }; cell.appendChild(img); cell.appendChild(document.createElement('br')); //move up img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_MOVE_ROW_UP']); img.setAttribute('src', 'modules/EcmFkPackages/images/moverowup.gif'); img.style.cursor = 'pointer'; img.onclick = function() { this.parentNode.parentNode.moveUp(); }; cell.appendChild(img); cell.appendChild(document.createTextNode(" ")); //move down img = document.createElement('img'); img.setAttribute('alt', MOD['LBL_MOVE_ROW_DOWN']); img.setAttribute('src', 'modules/EcmFkPackages/images/moverowdown.gif'); img.style.cursor = 'pointer'; img.onclick = function() { this.parentNode.parentNode.moveDown(); }; cell.appendChild(img); } }; N.onSetCellData = function(row, cell, data) { if (cell.innerHTML == '') { cell.innerHTML = ' '; } }; var pl = document.getElementById('decree_list').value; if (pl && pl != '') { try { pl = eval(pl); // console.log(pl); for (x in pl) { var pl_row = pl[x]; // if (!pl[x].code || pl[x].code == '') // { // // } else { N.addRow().setData(pl_row); // } } } catch (err) { pl = null; } } if (N.rowCount() == 0) { N.addRow(); } calculateTotalItems = function() { return true; var vats = new Object(); var subtotal = 0; var total = 0; for (var i = 0; i < N.rowCount(); i++) { var data = N.row(i).getData(); if (OPT.to_is_vat_free == 0) { if (data.vat_id && data.name != '') { if (typeof(vats[data.vat_id]) != "object") { vats[data.vat_id] = new Object(); vats[data.vat_id]['vat'] = 0; } vats[data.vat_id]['vat'] += data.total; } } subtotal += data.total; } total = subtotal; var rt = document.getElementById('position_result_table'); for (var i = 1; i < rt.rows.length - 1; i++) { if (!vats[rt.rows.item(i).id]) { rt.deleteRow(i); --i; } else { vats[rt.rows.item(i).id]['node'] = rt.rows.item(i); } } for (var x in vats) { if (VAT[x]) { vats[x]['vat'] = vats[x]['vat'] * (parseFloat(VAT[x].value) / 100); total += vats[x]['vat']; var txL = MOD['LBL_VAT'] + ' (' + VAT[x].name + ')'; var txF = NumberToUserFormatNumber(vats[x]['vat']); } if (vats[x]['node']) { vats[x]['node'].id = x; vats[x]['node'].cells.item(0).innerHTML = txL; vats[x]['node'].cells.item(1).innerHTML = ""; } else { rt.insertRow(1); rt.rows.item(1).id = x; rt.rows.item(1).insertCell(0); rt.rows.item(1).cells.item(0).className = 'positionsLabel'; rt.rows.item(1).cells.item(0).innerHTML = txL; rt.rows.item(1).insertCell(1); rt.rows.item(1).cells.item(1).className = 'positionsField'; rt.rows.item(1).cells.item(1).innerHTML = ""; } } var total2 = total; total2 = ((OPT['type'] == "correct") ? '-' : '') + NumberToUserFormatNumber(total2).toString(); total = ((OPT['type'] == "correct") ? '-' : '') + NumberToUserFormatNumber(total).toString(); document.getElementById('articles_subtotal').value = NumberToUserFormatNumber(subtotal); if (document.getElementById('articles_total')) document.getElementById('articles_total').value = total2; }; ItemListSave = function(json) { var data = ''; for (var i = 0; i < N.rowCount(); i++) { data = data + '&decree_' + i.toString() + '=' + JSON.stringifyNoSecurity(N.row(i).getData()); } return data; }; ItemsList = function(json) { var data = ''; for (var i = 0; i < N.rowCount(); i++) { data = data + '||||' + JSON.stringifyNoSecurity(N.row(i).getData()); } return data; }; if (typeof sqs_objects != 'undefined') { sqs_objects["code_p"] = { "method": "get_product_array", "modules": ["EcmProducts"], "field_list": ["index_dbf", "id", "name", "currency_id"], "populate_list": ["code_p", "id_p", "name_p", "currency_id_p"], "conditions": [{ "name": "index_dbf", "op": "like_custom", "end": "%", "value": "" }], "limit": "30", "order": "index_dbf", "no_match_text": "No Match" }; sqs_objects["name_p"] = { "method": "get_product_array", "modules": ["EcmProducts"], "field_list": ["date_entered", "name", "id", "index_dbf", "currency_id"], "populate_list": ["name_p", "name_p", "id_p", "code_p", "currency_id_p"], "conditions": [{ "name": "name", "op": "like_custom", "end": "%", "value": "" }], "limit": "30", "order": "name", "no_match_text": "No Match" }; } function generateNumber() { var url = 'to_pdf=1&generate=1&module=EcmFkPackages&action=generateNumber&type=normal&template_id=' + document.getElementById('template_id').value;//+'&record='+document.forms.EditView.record.value; //if(document.getElementById('template_id').value == '') { alert('There are no DocumentTemplates in data base!'); return;} doRequest( 'index.php', url, function(result) { var arr = eval(result)[0]; document.getElementById('number').value = arr.number; document.getElementById('document_no').value = arr.document_no; }, '' ); }; //calculateTotalItems(); if (OPT['new_number']) { generateNumber(); document.getElementById('ITEMS_menu').style.display = 'none'; document.getElementById('SERVICES_menu').style.display = 'none'; //save PW document.getElementById('stock_doc_inside_in').value = '1'; } function setToAddrEmail(str) { if (str && str != '') str = eval(str); else str = ''; if (typeof(str) == "object") str = str[0]; else str = ''; if (document.getElementById('parent_type').value == 'Accounts') { //= document.getElementById('to_addrs_field'); if(tmp) tmp.value = (str=='')?'':(((str.name)?str.name:'')+' <'+((str.email1)?str.email1:'')+'>; '); tmp = document.getElementById('parent_address_street'); if (tmp) { tmp.value = (str.billing_address_street) ? str.billing_address_street : ''; } tmp = document.getElementById('parent_address_city'); if (tmp) { tmp.value = (str.billing_address_city) ? str.billing_address_city : ''; } tmp = document.getElementById('parent_address_postalcode'); if (tmp) { tmp.value = (str.billing_address_postalcode) ? str.billing_address_postalcode : ''; } tmp = document.getElementById('parent_address_country'); if (tmp) { tmp.value = (str.billing_address_country) ? str.billing_address_country : ''; } // tmp = document.getElementById('to_nip'); // // if (tmp) { // tmp.value = (str.sic_code) ? str.sic_code : ''; // } tmp = document.getElementById('to_vatid'); if (tmp) { tmp.value = (str.nip) ? str.nip : ''; } tmp = document.getElementById('to_is_vat_free'); if (tmp) { tmp.checked = (str.is_vat_free == 1) ? true : false; } document.getElementById('parent_name_copy').value = document.getElementById('parent_name').value; tmp = document.getElementById('ecmlanguage'); if (tmp && str.ecmlanguage) { if (tmp.value != str.ecmlanguage) { tmp.value = str.ecmlanguage; setTexts(); } } } } function ChangeAccessFunction(obj, type) { var objs = obj.getElementsByTagName('input'); for (var i = 0; i < objs.length; i++) if (objs[i].id != 'parent_name' && objs[i].id != 'parent_id' && objs[i].name != 'btn_parent_name' && objs[i].name != 'btn_clr_parent_name' && objs[i].name != 'btn_create_parent_name') { objs[i].disabled = type; } var objs = obj.getElementsByTagName('textarea'); for (var i = 0; i < objs.length; i++) { objs[i].disabled = type; } var objs = obj.getElementsByTagName('select'); for (var i = 0; i < objs.length; i++) { if (objs[i].id != 'parent_type') { objs[i].disabled = type; } } if (type == 'disabled') { TabsMainBlock = true; } else { TabsMainBlock = false; } } console.log('N done'); } ); /* /Decree */ CHANGER.startTimer();