function renderDType(dtype, changeableOid){ var po = "", img = "suitcase", tip = "Самовывоз"; switch(dtype){ case 'TK': img = "truck";tip = "ТК"; break; case 'INTOWN': img = "car";tip = "по городу"; break; default: break; } if(changeableOid){ po += ""; } po += ""; if(changeableOid){ po += ""; } return po; } function renderPosOptions(row){ var po =" ";// renderDType(row.odtype);// var img = "", tip = ""; switch(parseInt(row.opackage)){ case 1: img = "carton";tip = "картон"; break; case 2: img = "wood";tip = "дерево (обрешетка)"; break; default: img = "";tip = "нет"; break; } if(img){ po += " "; } if(row.owait !== "" && row.owait !== "0" && row.owait !== 0 && row.owait !== null) po += " "; if(row.ooverprice !== "" && parseInt(row.ooverprice) > 0) po += " "; if(po === " ") po = "нет"; return po; } function dropZero(dec){ if(parseInt(dec+"") == dec) return parseInt(dec+""); return dec; }var PageUtils = { current: 'IndexPage', renderPager: function (Page, c) { if (c === undefined) c = ''; var pages = Math.ceil(Page.rowsData.total / Page.rowsPerPage); var html = ''; for (var i = 1; i <= pages; i++) { if ((i - 1) !== Page.resultPage) { html += ''; } else html += ''; if (i < pages && i % 30 == 0) html += ''; } var sta = eval(PageUtils.current + '.rowsPerPage'); var sta50 = '', sta100 = '', sta250 = '', sta500 = ''; if (sta === "50") sta50 = "selected"; else if (sta === "100") sta100 = "selected"; else if (sta === "250") sta250 = "selected"; else if (sta === "500") sta500 = "selected"; html += '
Стр.: ' + i + '' + i + '
на стр:' + '' + '
'; return html; }, onChangeRows: function (c) { if (c === undefined) c = ''; eval(PageUtils.current + '.rowsPerPage = $("#limit' + c + '").val()'); eval(PageUtils.current + '.switchPage(0);'); }, goto: function (page) { window.location.hash = '#' + page; }, setHead: function (text) { $('#h1').html(text); if (text === "Поиск автозапчастей") { $("#catlinks").show(); } else $("#catlinks").hide(); }, renderTitle: function (t, shortlen) { if (!shortlen) shortlen = 40; if (!t || t.length < shortlen) return t; var id = guid(); var sh2ln = " >>>"; var ln2sh = " <<<"; var nt = "
" + t.substr(0, shortlen) + sh2ln + "
"; return nt; } };/* global ClientPanel */ var UserUtils = { createCaCombo: function (cfg) { var html = ""; if (ClientPanel.contragents && ClientPanel.contragents.length > 0) { html += ""; } return html; }, renderCa: function (id) { //if(ClientPanel.contragents.length > 1){ for (var i = 0; i < ClientPanel.contragents.length; i++) { var ca = ClientPanel.contragents[i]; if (ca.id == id) return (ca.title === "" || ca.own == "1" || ca.title === undefined) ? ClientPanel.contact + " (" + UserUtils.renderCaid(ca.id) + ")" : ca.title + " (" + UserUtils.renderCaid(ca.id) + ")"; } //} return ""; }, renderCaid: function (v) { return (v + "").replace(/\.0/g, '-').replace(/\./g, '-'); } }; /* global SRV_ENTRY, ClientPanel, RegisterPage, PricePage, PageUtils, ViewcartPage, ProfilePage */ var Cart = { selection: {}, addHandler: function (id0, count0, priceInfo) { if (PricePage.searchMode === 1) { $("#adp" + PricePage.prevSelectedListRow).html(priceInfo); var el = $("#adq" + PricePage.prevSelectedListRow); el.html(el.html() + "+" + count0); } }, resolveCIS: function (ci) { if (!ci) { ci = "0"; var inputs = $('#cartTable input[type=checkbox]:checked'); for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; ci += "," + $(inp).attr("id").substr(3); } } return ci; }, toggleSel: function (id) { Cart.selection[id] ^= 1; }, toggleAll: function () { var allCheckboxes = $("#cartTable input:checkbox:enabled"); for (var i = 0; i < allCheckboxes.length; i++) { var inp = allCheckboxes[i]; if ($(inp).val() === undefined) continue; if ($(inp).attr("checked")) { $(inp).removeAttr("checked"); } else { $(inp).attr("checked", "checked"); } if ($(inp).attr("id")) Cart.toggleSel($(inp).attr("id").substr(3)); } }, add: function (id, count, nomId) { if (count <= 0) return; for (var i = 0; i < PricePage.rowsData.length; i++) { var row = PricePage.rowsData[i]; if (row.id !== id) continue; try { if (parseInt(row.quantity) < parseInt(count)) { jAlert('Вы пытаетесь заказать недоступное количество!', 'Ошибка'); return; } var c = ClientPanel.contragents; if (c && row.supplier_id == c[0].uacc) { jAlert('Вы пытаетесь заказать сами у себя!', 'Ошибка'); return; } } catch (e) { } } $("#prow" + id).animate({opacity: 0.1}, 200); $("#totalItems").html(""); $("#totalCost").html(""); $.getJSON("pss/client", { p: 'AddToCart', id: id, quantity: count, nomId: nomId }, function (data) { $("#prow" + id).animate({opacity: 1}, 400); if (data.success) { ClientPanel.render(data); if (Cart.addHandler) Cart.addHandler(id, count, $("#pr" + id).html()); } else { RegisterPage.render(); } }); }, remove: function () { var cis = Cart.resolveCIS(); var ids = cis.split(","); for (var i = 0; i < ids.length; i++) { var id = ids[i]; delete Cart.selection[id]; } $.getJSON("pss/client", { p: 'ClearCart', ids: cis }, function (data) { if (data.success) { ClientPanel.render(data); } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } if (PageUtils.current === 'ViewcartPage') ViewcartPage.render(); }); }, submit: function (preorder) { var cis = Cart.resolveCIS(); wait(); $.getJSON("pss/client", { p: 'SubmitCart', ucomment: $("#uComment").val(), ids: cis, preorder: preorder, addToOrder: $("#addToOrdCombo").val(), caid: $("#caid-combo").val() }, function (data) { endWait(); if (data.r) { jAlert(data.r, "Сообщение от сервера"); ViewcartPage.render(); } else if (data.success) { if (data.goto) { PageUtils.goto(data.goto); ProfilePage.render(); } else { if (preorder) window.location.hash = '#preorders'; else window.location.hash = '#orders'; } ClientPanel.render(data); } }); }, xls: function () { window.open(SRV_ENTRY + '?p=exportCart'); }, cartOptionsDialog: function (id, evt) { var cis = id; if (!id) cis = Cart.resolveCIS(); $("#container-h").load(SRV_ENTRY + "?h=cartOptionsDialog&ids=" + cis, function () { $("#container-h").dialog({ modal: true, closeText: "", resizable: false, title: "Опции по выбранным позициям", width: 525, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Сохранить": function () { Cart.saveOptions(); } } }); $("body select").msDropDown(); } ); }, saveOptions: function (id) { $('#posOptionsForm').ajaxSubmit({ dataType: 'json', success: function (responseText, statusText) { var a = responseText; if (a.success === true) { $("#container-h").dialog("close"); ViewcartPage.render(); } else jAlert(a.r, "Сообщение от сервера"); } }); } };/* global SRV_ENTRY, PricePage, ClientPanel */ var SearchList = { prevSelectedListRow: 0, prevSelectedListRowEcode: 0, listsArray: [], add: function (id, count, cb) { if (count <= 0) return; for (var i = 0; i < PricePage.rowsData.length; i++) { var row = PricePage.rowsData[i]; if (row.id !== id) continue; try { if (parseInt(row.quantity) < parseInt(count)) { jAlert('Вы пытаетесь заказать недоступное количество!', 'Ошибка'); return; } } catch (e) { } } var el = $("#adp" + SearchList.prevSelectedListRow); el.html("
Загрузка
"); $("#a" + id).animate({opacity: 0.1}, 100); $("#a" + id).animate({opacity: 1}, 100); $.getJSON("pss/client", { p: 'AddToQuotation', id: id, quantity: count, listRowId: SearchList.prevSelectedListRow }, function (data) { if (data.success) { if (cb) cb(id, count, data); el.html(SearchList.renderQuotation(data.rows)); } }); }, remove: function () { }, submit: function (preorder) { }, xls: function () { window.open(SRV_ENTRY + '?p=exportSearchList'); }, reload: function (listId) { if (!listId) listId = $("#searchlist").val(); $.ajax({ type: "get", url: rfn('getSearchList'), data: { list: listId }, cache: false, dataType: 'json', success: function (data) { if (data.success) { SearchList.renderSearchlist(data.list, data.rows); } } }); }, renderSearchlist: function (list, quot) { var str = ""; var rowClass = "order"; if (list.length > 0) { for (var i = 0; i < list.length; i++) { var row = list[i]; var onclick = "SearchList.onListRowClick(" + row.id + ",\"" + row.article + "\"," + row.nomenclature_id + "," + row.ecode + ");"; var cursor = "style='cursor: pointer;'"; if (row.ecode == 2 || row.ecode == 4) { onclick = ""; cursor = ""; } str += SearchList.opLogo(row); str += "" + (i + 1) + ""; str += "" + row.brand + " "; str += "" + row.article + " "; str += "" + row.quantity + " "; str += "" + row.title + " "; str += "" + (row.price == 0 || row.price == '' ? " " : row.price) + " "; str += ""; if (quot && quot[row.id]) { str += SearchList.renderQuotation(quot[row.id]); } else str += " "; str += ""; } } else { str += "Позиций не обнаружено!"; } $('#loadedNumbers').html("" + // ""+ // ""+ "" + "" + "" + "" + str + "
БрендАртикулК-оИнфо 1Инфо 2Отобрано
"); }, renderQuotation: function (qq) { var strh = ""; if (qq.length) for (var j = 0; j < qq.length; j++) { var q = qq[j]; var article = q.article; if (q.used !== undefined && q.used === "1") { article += " (бу)"; } /* if(q.sku !== undefined &&q.sku !== null && q.sku !== ""){ article = q.sku+"
"+article+""; } */ strh += "" + "" + article + "" + "" + q.brand + "" + "" + q.price + "" + "" + q.quantity + "" + "" + ""; } else strh = " "; return "" + strh + "
"; }, onListRowClick: function (id, article, nom, ecode) { PricePage.searchMode = 1; if (SearchList.prevSelectedListRow != 0) { var c = ""; switch (parseInt(SearchList.prevSelectedListRowEcode + "")) { case 1: c = "#E9FCBF"; break; case 2: c = "#FEAEAE"; break; case 3: c = "#E9FCBF"; break; case 4: c = "#FEAEAE"; break; default: c = "white"; break; } $("#srow" + SearchList.prevSelectedListRow).css("background-color", c); } SearchList.prevSelectedListRow = id; SearchList.prevSelectedListRowEcode = ecode; $("#srow" + id).css("background-color", "#CFEAFA"); $("#priceTableData").html(""); if (nom) PricePage.renderTable({renderTo: "#priceTableData2", nomId: nom}); else PricePage.renderTable({renderTo: "#priceTableData2", article: article}); }, opLogo: function (row) { var title = "", colorCss = "", cursorCss = ""; switch (parseInt(row.ecode + "")) { case 1: title = "не указан производитель"; colorCss = "background-color:#E9FCBF;"; cursorCss = "cursor:pointer;"; break; case 2: title = "не указан артикул"; colorCss = "background-color:#FEAEAE;"; break; case 3: title = "не опознан бренд"; colorCss = "background-color:#E9FCBF;"; cursorCss = "cursor:pointer;"; break; case 4: title = "нет в номенклатуре"; colorCss = "background-color:#FEAEAE;"; break; default: title = "проценить"; colorCss = "background-color:white;"; cursorCss = "cursor:pointer;"; break; } if (parseInt(row.done) > 0) { colorCss = "background-color:#A7FFD3;"; cursorCss = ""; } return ""; }, removeItem: function (id, slpos_id) { var el = $("#adp" + slpos_id); el.html("
Загрузка
"); $.getJSON(SRV_ENTRY + "", {p: 'removeQuotationItem', id: id}, function (data) { if (data.success) { el.html(SearchList.renderQuotation(data.quot)); } }); }, clearQuot: function () { $.getJSON(SRV_ENTRY + "", {p: 'clearQuotation'}, function (data) { if (data.success) { $.getJSON(SRV_ENTRY + "", {p: 'getSearchList'}, function (data) { if (data.success && data.list.length > 0) { SearchList.renderSearchlist(data.list, data.quot); } }); } }); }, addToCart: function () { $.getJSON("pss/client", {p: 'QuotationToCart'}, function (data) { if (data.success) { $("#basketArea").animate({ opacity: 0.1 }, 200); $("#basketArea").animate({ opacity: 1 }, 400); if (data.r) { jAlert(data.r, "Сообщение"); SearchList.onChangeList(); } ClientPanel.render(data); } }); }, onChangeList: function () { $('#priceTableData2').html(""); SearchList.reload($("#searchlist").val()); }, deleteCurrentList: function () { $.getJSON(SRV_ENTRY + "", {p: 'deleteSearchList'}, function (data) { if (data.success) { SearchList.listsArray = data.lists; SearchList.refreshListSelectorOptions(); SearchList.reload(); } }); }, refreshListSelectorOptions: function () { var optionsHtml = ""; for (var i = 0; i < SearchList.listsArray.length; i++) { var listId = SearchList.listsArray[i]; optionsHtml += ""; } $("#searchlist").html(optionsHtml); } }; /* global ClientPanel, Content, PageUtils, SRV_ENTRY, UserUtils, PricePage, Cart */ var ViewcartPage = { lastLoaded: {}, marked: [], lastOrder: 'id', lastDir: 'asc', header: '' + '№' + 'Бренд' + 'Артикул' + 'Наименование' + 'Вес' + //'Тип'+ 'Срок' + 'Где' + 'Цена' + 'Опции' + 'К-во' + "" + '', notes: //''+ //''+ '' + '' + '' + '' + '' + '' + '' + '
Пометка к заказу (для себя)
', //''+ //'', footer: '' + 'Всего:' + ' ' + //' '+ ' ' + ' ' + ' ' + ' ' + ' ' + '' + '', help: '

' + 'Предзаказ - это заказ БЕЗ запуска в обработку.' + '

' + '

' + 'Заказ в отличие от предзаказа обрабатывается менеджером в течение часа и' + 'если наличие детали подтверждено, то с баланса будут сняты деньги и деталь получит статус "В работе" либо "Не оплачен"' + '

', buttons: "
С отмеченными" + "Дополнительные опции" + "Удалить" + "Проценить заново" + "Предзаказ" + "Заказать" + "
", shortButtons: "
Перейти для редактирования и оформления заказа " + "Корзина" + "
", render: function (order) { PageUtils.setHead("Оформление заказа"); Content.load('viewCart'); var dir = ''; if (order !== 'none' && order !== undefined) { if (ViewcartPage.lastOrder === order) { if (ViewcartPage.lastDir === 'desc') { ViewcartPage.lastDir = 'asc'; dir = 'asc'; } else { ViewcartPage.lastDir = 'asc'; dir = 'desc'; } } ViewcartPage.lastOrder = order; } ClientPanel.refresh(function () { ViewcartPage.renderTable('#index-data', function () { $("body select").msDropDown(); $('#index-text2').html(ViewcartPage.help); }); }); PageUtils.current = 'ViewcartPage'; }, renderTable: function (doms, cb, shortMode) { wait(); var now = new Date(); $.getJSON("pss/client", { p: 'GetCart' }, function (data) { endWait(); if (data.success) { ViewcartPage.lastLoaded = data; var caCombo = "
" + UserUtils.createCaCombo({ width: 300, onchange: 'ViewcartPage.refreshAddToOrderCombo()' }) + " На кого оформляется заказ, т.е. на кого будет выставлен счет
"; var res = ViewcartPage.notes + "" + ViewcartPage.header; res += caCombo; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; var rowClass = 'order'; var article = row.article; if (row.sku !== undefined && row.sku !== "") { article = row.sku + "
" + article + ""; } var lotInfo = ""; if (row.lot_base > 1) lotInfo = "
" + (row.lot_type > 0 ? ("x " + row.lot_base + " шт.") : ("мин. " + row.lot_base + "шт.")) + ""; res += "" + "" + "" + "" + "" + "" + //""+ "" + "" + "" + "" + (shortMode ? "" : "") + (shortMode ? "" : "") + ""; } var addToOrderCombo = "
" + "" + " Добавить в существующий заказ или создать новый
"; res += ViewcartPage.footer + "
" + (i + 1) + " " + row.brand + "" + article + "
" + PricePage.formatTitle(idef(row.title, "")); if (row.images !== undefined) { for (var j = 0; j < row.images.length; j++) { res += " "; } } if (Cart.selection[row.id] === undefined) Cart.toggleSel(row.id); var inpChecked = inpChecked = Cart.selection[row.id] ? "checked" : ""; var priceColor = "darkgreen", priceTip = ""; var created = new Date(row.created_time); if (now.getTime() - created.getTime() > 3600 * 24 * 3 * 1000) { priceColor = "darkred"; priceTip = "Цена устарела, необходимо перепроценить"; } res += " 
" + idef(row.weight, "?") + ""+(row.used==1?"б/у":"нов.")+"" + row.delivery_tip + "" + (row.transit != 0 ? "Едет в " : "") + row.wherestore + "" + row.price + "" + renderPosOptions(row) + "" + row.quantity + lotInfo + "" + lotInfo + " 
" + addToOrderCombo + (shortMode ? ViewcartPage.shortButtons : ViewcartPage.buttons); $(doms).html('
' + res + "
"); $("#odtypeCombo").val(ClientPanel.odtype); ViewcartPage.refreshAddToOrderCombo(); ViewcartPage.onChangeQuantity(); if (cb) cb(data); } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); }, refreshAddToOrderCombo: function () { $.getJSON("pss/client", { p: 'GetAppendableOrders', contragent: $("#caid-combo").val() }, function (data) { var addToOrdHtml = " Добавить в существующий заказ или создать новый"; $("#addToOrd").html(addToOrdHtml); $("body select").msDropDown(); }); }, _disableOrdProps: function () { if ($("#addToOrdCombo").val() > 0) { $("#uComment").css("display", "none"); $("#odtypeTd").css("display", "none"); $("#odt_label").css("display", "none"); $("#ucomment_label").css("display", "none"); $("#ocomment_label").css("display", "none"); } else { $("#uComment").css("display", "block"); $("#odtypeTd").css("display", "block"); $("#odt_label").css("display", "block"); $("#ucomment_label").css("display", "block"); $("#ocomment_label").css("display", "block"); } }, onChangeQuantity: function () { var sum = 0, qnt = 0, wei = 0; for (var i = 0; i < ViewcartPage.lastLoaded.rows.length; i++) { var row = ViewcartPage.lastLoaded.rows[i]; var q = parseInt($("#it_" + row.id).val()); if (q !== parseInt(row.quantity)) { //console.log(row.quantity +" <> "+q); row.quantity = q; $.post("pss/client", { p: 'UpdateCartItem', id: row.id, quantity: q }, function (data) { if (data.success) { //ClientPanel.render(data); } else jAlert(data.r, "Сообщение от сервера"); }); } ViewcartPage.correctQuantity(row); sum += row.price * row.quantity; qnt += parseInt(row.quantity); wei += parseFloat(row.weight) * q; } $("#cartSum").html(toFixed(sum, 2)); $("#cartQuanity").html(qnt); $("#cartWeight").html(wei ? toFixed(wei, 2) : "?"); }, correctQuantity: function (oi) { if (oi.lot_base > 1) { if (oi.lot_type == 1 && oi.quantity % oi.lot_base > 0) { oi.quantity = oi.lot_base * Math.floor(oi.quantity / oi.lot_base); } else if (oi.quantity < oi.lot_base) { oi.quantity = oi.lot_base; } } return oi; }, redo: function () { var inputs = $('#cartTable input[type=checkbox]:checked'); var article = ""; if (inputs.length === 0) { jAlert("Необходимо выбрать хотябы одну позицию", "Ошибка"); return; } var cis = Cart.resolveCIS(); if (inputs.length === 1) { article = $(inputs[0]).attr("name"); PricePage.render(function () { PricePage.newSearch(article); }); } else { for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; article += $(inp).attr("id").substr(3) + ","; } $.getJSON("pss/client", { p: 'CreateSearchlist', orderItemIds: article }, function (data) { if (data.success) { window.location.hash = "list"; } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); } $.getJSON("pss/client", { p: 'ClearCart', ids: cis }, function (data) { if (data.success) { ClientPanel.render(data); } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); } }; /* global SRV_ENTRY, PricePage, PageUtils, SearchList */ var ClientPanel = { contragents: [], contact: "", managerContact: '', managerPhone: '', odtype: 0, defaultCa: 0, authorized: false, unread: { unreadEntry1: false, unreadEntry2: false, unreadEntry3: false, unreadEntry4: false, unreadEntry5: false, unreadEntry6: false, unreadEntry7: false }, popupId: 0, popupText: "", refresh: function (cb) { $.getJSON(rfnJ('GetUserPanel'), {}, function (data) { if (data.success) { ClientPanel.authorized = true; ClientPanel.render(data); ClientPanel.contragents = data.contragents; ClientPanel.contact = data.contact; ClientPanel.odtype = data.odtype; ClientPanel.contact = data.contact; ClientPanel.defaultCa = data.defaultCa; ClientPanel.managerContact = data.managerContact; ClientPanel.managerPhone = data.managerPhone; ClientPanel.popupId = data.popupId; ClientPanel.popupText = data.popupText; ClientPanel.unread = { unreadEntry1: data.unreadEntry1, unreadEntry2: data.unreadEntry2, unreadEntry3: data.unreadEntry3, unreadEntry4: data.unreadEntry4, unreadEntry5: data.unreadEntry5, unreadEntry6: data.unreadEntry6, unreadEntry7: data.unreadEntry7 }; if (data.popupId > 0) ClientPanel.showPopup(); if (cb) cb(); } else { $('#sidebar').load(SRV_ENTRY + '?h=sidebar'); if (PageUtils.current !== "PricePage") PricePage.render(); ClientPanel.authorized = false; } }); }, render: function (data) { if (data) { $('#totalItems').html(data.totalCartItems); $('#totalCost').html(data.totalCartCost); ClientPanel.defaultCa = data.defaultCa; if (data && (data.unreadEntry1 || data.unreadEntry2 || data.unreadEntry3 || data.unreadEntry4 || data.unreadEntry5 || data.unreadEntry6 || data.unreadEntry7)) { $('#showUnread').html(""); } else $('#showUnread').html(""); $('#balance0').attr("style", 'color: black'); } }, login: function () { var remember = $("#remember0").is(':checked'); var name = $("#username0").attr('value'); var pass = $("#password0").attr('value'); deleteCookie("username"); deleteCookie("password"); if (remember) { name = $("#username0").attr('value'); pass = $("#password0").attr('value'); setCookie("username", name, 2030, 12, 1); setCookie("password", pass, 2030, 12, 1); } $.getJSON("pss/client", { p: 'Login', login: name, password: pass }, function (data) { if (data.success) { // console.log(data) // return; ClientPanel.authorized = true; window.location.reload(); // $('#sidebar').load(SRV_ENTRY+'?h=sidebar_auth', function(){ // $('#historyBtn').css("display", ""); // $('#searchLabel').html("Простой поиск"); // }); // $('#tabs-0').load(SRV_ENTRY+'?h=price_articlesource', function(){ // }); // $('#tabs-1').load(SRV_ENTRY+'?h=price_filesource', function(){ // $('#listSearchTab').css("display", ""); // SearchList.onChangeList(); // }); // $('#tabs-2').load(SRV_ENTRY+'?h=price_download', function(){ // if($('#tabs-2').html() !== "") // $('#downloadTab').css("display", ""); // }); } else { jAlert(data.r, "Сообщение от сервера"); } }); }, logout: function () { window.location.hash = ""; $.getJSON("pss/client", { p: 'ca.Logout' }, function (data) { window.location.reload(); // $('#sidebar').load(SRV_ENTRY+'?h=sidebar'); // $('#historyBtn').css("display", "none"); // $('#searchLabel').html("Поиск без регистрации"); // $('#listSearchTab').css("display", "none"); // $('#downloadTab').css("display", "none"); // PricePage.render(); }); }, showPopup: function () { $("#container-h").html(ClientPanel.popupText); $("#container-h").dialog({ modal: true, resizable: false, closable: false, title: "Внимание!", width: 350, position: ['middle', 50], buttons: { "OK": function () { ClientPanel.confirmPopup(); $(this).dialog("close"); } } }); }, confirmPopup: function () { $.post("pss/client", { p: 'ShutdownMemo', memoId: ClientPanel.popupId }, function (data) { if (data.success) { ClientPanel.popupId = 0; } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); } }; /* global Content, PageUtils, SRV_ENTRY, ymaps */ var RegisterPage = { myMap: null, clusterer: null, reqHash: {}, render: function () { //PageUtils.setHead("Регистрация"); location.href = "https://partsib.ru/#register"; return; $('#index-data').load('pss/page?t=ca.RegisterPage&old=true', function () { ymaps.ready(function () { RegisterPage.myMap = new ymaps.Map("map", { center: [55.0415, 82.9346], zoom: 11 }); RegisterPage.myMap.behaviors.disable('ruler'); RegisterPage.clusterer = new ymaps.Clusterer({ groupByCoordinates: true, clusterDisableClickZoom: true, clusterHideIconOnBalloonOpen: false, geoObjectHideIconOnBalloonOpen: false }); RegisterPage.clusterer.createCluster = function (center, geoObjects) { var cluster = ymaps.Clusterer.prototype.createCluster.call(this, center, geoObjects); var label = ""; for (var i = 0; i < geoObjects.length; i++) { var go = geoObjects[i]; if (label !== "") label += ","; if (go.properties.get('iconContent') !== "?") label += go.properties.get('iconContent'); } cluster.properties.set('iconContent', label); cluster.options.set("preset", "islands#violetClusterIcons"); return cluster; }; RegisterPage.reauestServiceSpots(); RegisterPage.myMap.geoObjects.removeAll(); RegisterPage.myMap.geoObjects.add(RegisterPage.clusterer); RegisterPage.myMap.geoObjects.events.add('balloonopen', function (e) { var id = e.get('target').properties.get('iconContent'); $("#spot").val(id); }); }); }); PageUtils.current = 'RegisterPage'; Content.load("usr_register_new"); }, reauestServiceSpots: function () { $.getJSON("pss/client", { p: 'GetServiceSpots', sort: "city,addr", dir: "ASC" }, function (data) { RegisterPage.clusterer.removeAll(); for (var i = 0; i < data.rows.length; i++) { var d = data.rows[i]; var addrLabel = RegisterPage._createAddrLabel(d); RegisterPage.reqHash[addrLabel] = d; //alert(d.city+", "+d.addr) ymaps.geocode(d.city + ", " + d.addr, {results: 1}).then(RegisterPage.geoCoderResp); } }); }, geoCoderResp: function (res) { var req = res.metaData.geocoder.request;//alert(req) var d = RegisterPage.reqHash[req]; var go = res.geoObjects.get(0); go.properties.set('iconContent', d.id); go.properties.set('balloonContentHeader', "PartSib.ru"); go.properties.set('balloonContentBody', d.addr); go.properties.set('balloonContentFooter', "комментарий: " + (d.type === 1 ? "Розница, услуга подбора" : "Розница/Опт, без услуги подбора")); go.properties.set('hintContent', ""); //go.properties.set('clusterCaption', "Геообъект №2"); // Добавляем первый найденный геообъект на карту. RegisterPage.clusterer.add(go); }, _createAddrLabel: function (d) { if (!d) return "undefined"; return d.city + ", " + d.addr; }, submit: function () { return; // $('#registerForm').ajaxSubmit({ // dataType: 'json', // success: function(responseText, statusText){ // var a = responseText; // if(a.success === true){ // location.href = "index.php?search"; // } else // alert(a.r); // } // }); } }; /* global PageUtils, ClientPanel, SRV_ENTRY, Content, MsgPage */ MsgPage = { render: function () { PageUtils.current = 'MsgPage'; PageUtils.setHead("Сообщения - внутренняя почта"); Content.load('messaging'); $('#index-data').load("pss/page?t=msg.MessagesPanel&old=true", function () { $('#managerContact').html(ClientPanel.managerContact); $('#managerPhone').html(ClientPanel.managerPhone); $("#messa").tabs(); MsgPage.loadQuestionTab(1); $('#messa').bind('tabsactivate', function (event, ui) { // ui.tab // anchor element of the selected (clicked) tab // ui.panel // element, that contains the selected/clicked tab contents // ui.index // zero-based index of the selected (clicked) tab var index = ui.newTab.index(); MsgPage.loadQuestionTab(index + 1); switch (index) { case 0: //CommentSheet.loadSheet("customer", -1, "0"); break; // case 5: // CommentSheet.loadSheet("peresort", -1, "5"); // break; case 6: //CommentSheet.loadSheet("critique", -1, "6"); break; default: break; } }); } ); PageUtils.current = 'MsgPage'; ClientPanel.refresh(function () { MsgPage.updateNewMessageFlags(); }); }, loadQuestionTab: function (tab) { $('#tabs-' + tab + 'body').html(''); $.getJSON("pss/client", { p: 'GetQuestionList', displayEntry: tab }, function (data) { var htmlString = ""; if (data.success) { if (data.rows.length > 0) { for (var i = 0; i < data.rows.length; i++) { var q = data.rows[i]; var icon = q.unread ? "chat-orange" : "chat-blue"; htmlString += "" + q.id + "" + q.lastupdated + "" + (q.impt ? " " : " ") + q.preview + "... " + ""; } } } $('#tabs-' + tab + 'body').html(htmlString); } ); }, loadTopics: function (de) { $.getJSON("pss/client", { p: 'GetMessageTopics', displayEntry: de }, function (data) { var htmlString = ''; $('#topicSelectTd').html(htmlString); } ); }, updateNewMessageFlags: function () { //обновляет подсветку заголовков разделов на странице сообщений for (var i = 1; i <= 7; i++) $("#tab" + i + "title").css("color", ClientPanel.unread["unreadEntry" + i] ? "orange" : "black"); } }; /* global SRV_ENTRY, PageUtils, qq, SearchList, ClientPanel, PricePage */ PricePage = { rowsData: null, lastCfg: null, oldSearch: true, minPrice: Number.MAX_SAFE_INTEGER, minDelivery: Number.MAX_SAFE_INTEGER, brandStat: [{}, {}, {}], brandRows: [{}, {}, {}], idRows: {}, searchMode: 0, sortCol: -1, catalogBrands: { 'TOYOTA': 'TOYOTA', 'NISSAN': 'NISSAN', 'MITSUBISHI': 'MITSUBISHI', 'HUYNDAI/KIA': 'HUYNDAI', 'HONDA': 'HONDA', 'ISUZU': 'ISUZU', 'BMW': 'BMW', 'MERCEDES BENZ': 'MERCEDES', 'CHRYSLER': 'CHRYSLER', 'MAZDA': 'MAZDA', 'SUBARU': 'SUBARU', 'SUZUKI': 'SUZUKI' }, header: "" + "" + "↑↑↑" + "↑ Бренд" + "Артикул" + "Наименование" + "Справка" + "Где" + "↑ Срок" + "% вып." + "Нал." + "↑ Цена
руб." + "К-во" + " " + "", getSearch: function () { return $('#numSearchQuery').attr("value"); }, prepareDownload: function () { $.getJSON(SRV_ENTRY + "", { p: 'orderPriceDownload', brands: $('#brands').val(), deliveryFrom: $('#deliveryFrom').attr("value"), deliveryTo: $('#deliveryTo').attr("value") }, function (data) { jAlert("Ответ от сервера: " + data.r); if (data.success) { $("#prepareButton").html("Подготовка архива заказана."); } }); }, history: function () { var h = $('#searchHistory').val(); $('#numSearchQuery').attr("value", h); $('#searchHistory').val('0'); $("#container-h").dialog("close"); }, showHistoryWindow: function () { $.getJSON(SRV_ENTRY + "", { p: 'getSearchHistory' }, function (data) { if (data.success && data.rows.length > 0) { var res = "
"; res += "
"; $("#container-h").html(res); $("#container-h").dialog({ modal: true, closeText: "", draggable: true, position: ['middle', 50], title: "История поиска", width: 445 }); } }); }, onEnterSearch: function (event) { if (event.keyCode === 13) PricePage.newSearch(); }, render: function (cb) { PageUtils.setHead("Поиск автозапчастей"); $('#index-text').html(''); $('#index-text2').html(''); PageUtils.current = 'PricePage'; $('#index-data').load(SRV_ENTRY + '?h=price', function () { $('#news').css("display", "block"); $('#memos').css("display", "none"); $("#tabzz").tabs(); var fu = document.getElementById('file-uploader'); if (fu) { var uploader = new qq.FileUploader({ element: fu, action: 'uploadSearchFile.php', // additional data to send, name-value pairs params: {}, // validation // ex. ['jpg', 'jpeg', 'png', 'gif'] or [] allowedExtensions: ['xls', 'xlsx'], // each file size limit in bytes // this option isn't supported in all browsers sizeLimit: 262144, // max size minSizeLimit: 0, // min size // set to true to output server response to console debug: false, // events // you can return false to abort submit onSubmit: function (id, fileName) { }, onProgress: function (id, fileName, loaded, total) { }, onComplete: function (id, fileName, responseJSON) { if (!responseJSON || !responseJSON.success) return; SearchList.listsArray = responseJSON.lists; SearchList.refreshListSelectorOptions(); SearchList.renderSearchlist(responseJSON.list, responseJSON.quot); }, onCancel: function (id, fileName) { } }); SearchList.reload(); } if (cb) cb(); }); ClientPanel.refresh(); }, newSearch: function (art0) { PricePage.searchMode = 0; var art = art0 ? art0 : PricePage.getSearch(); if (window.location.hash === "#article=" + art) { PricePage.renderTable({article: art}); } else { window.location.hash = "article=" + art; } $('#index-text').html(''); }, mover: function (id) { $("#" + id + " > td").css({ backgroundColor: '#F4E4B7', cursor: 'pointer' }); }, mout: function (id) { $("#" + id + " > td").css('background-color', '#fbfcf3'); }, chooseBrand: function (data, doms, art) { if (data.success && data.rows.length > 0) { var res = "
" + "
"; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; if (row.title === null) row.title = ""; res += ""; } res += "
" + row.brand + "" + row.title + " 
"; $(doms).html(res); } }, brandSelected: function (nom, doms, art) { PricePage.renderTable({nomId: nom, renderTo: doms, article: art}); }, showSpec: function (nomId) { $.getJSON(SRV_ENTRY + "", { p: 'getNomenclature', id: nomId }, function (data) { if (!data.success) return; var res = "
"; res += "
"; if (!data.rows.spec || data.rows.spec.trim() === "") data.rows.spec = "Нет информации"; res += ""; res += "" + ""; res += "
Вес (кг)" + (data.rows.weight == 0 ? "?" : data.rows.weight) + "
Применимость, пометки" + data.rows.spec + "
"; $("#container-h").html(res); $("#container-h").dialog({ modal: true, closeText: "", resizabe: false, title: "Спецификация", position: ['middle', 50], width: 550 }); }); }, renderTable: function (cfg) { if (!cfg) cfg = {}; if (cfg.renderTo === undefined) cfg.renderTo = "#priceTableData"; if (cfg.article) $('#numSearchQuery').attr("value", cfg.article); $(cfg.renderTo).html("
Загрузка
"); $.getJSON("pss/client", { p: 'SearchArticle', article: cfg.article, alt: $('#alt').val(), nomId: cfg.nomId, filterExpensive: $('#filterExpensive').prop('checked'), maxDelivery: $('#maxDelivery').attr("value") }, function (data) { if (data.uacc === 765 && ClientPanel.authorized) ClientPanel.refresh(); PricePage.lastCfg = cfg; PricePage.rowsData = data.rows; if (data.r === "B" || data.brandsOnly === true) { $(cfg.renderTo).html(""); return PricePage.chooseBrand(data, cfg.renderTo, cfg.article); } $(cfg.renderTo).css("display", "none"); if (data.success && data.rows.length > 0) { PricePage.runthru(data.rows); //PricePage._renderTableData(data.rows); if (cfg.renderTo === "#priceTableData") $("#priceTableData2").html(""); PricePage.sortBy("col_0"); } else { $(cfg.renderTo).html('
По вашему запросу не найдено ни одной ' + 'позиции

Проверьте правильность введенного номера.


'); } $(cfg.renderTo).slideDown("fast", function () { $(cfg.renderTo).css("display", "inline"); }); $('#memos').css("display", "block"); $('#news').css("display", "none"); }); }, runthru: function (rows) { PricePage.minPrice = {};//Number.MAX_SAFE_INTEGER; PricePage.minDelivery = {};//Number.MAX_SAFE_INTEGER; PricePage.brandStat = [{}, {}, {}]; PricePage.brandRows = [{}, {}, {}]; PricePage.idRows = {}; for (var i = 0; i < rows.length; i++) { var r = rows[i]; if (!r.workout) r.workout = "1"; if (!r.price) r.price = "?"; if (!r.quantity) r.quantity = "Есть"; if (!r.wherestore) r.wherestore = "?"; if (!r.title) r.title = ""; if (PricePage.minPrice[r.nomenclature_id] === undefined) PricePage.minPrice[r.nomenclature_id] = Number.MAX_SAFE_INTEGER; if (PricePage.minDelivery[r.nomenclature_id] === undefined) PricePage.minDelivery[r.nomenclature_id] = Number.MAX_SAFE_INTEGER; if (r.price < PricePage.minPrice[r.nomenclature_id] && r.mark.trim() === "") PricePage.minPrice[r.nomenclature_id] = r.price; if (r.delivery < PricePage.minDelivery[r.nomenclature_id]) PricePage.minDelivery[r.nomenclature_id] = r.delivery; if (PricePage.brandStat[r.alt][r.brand] === undefined) PricePage.brandStat[r.alt][r.brand] = []; if (PricePage.brandStat[r.alt][r.brand][r.brand + "#" + r.article] === undefined) PricePage.brandStat[r.alt][r.brand][r.brand + "#" + r.article] = 0; PricePage.brandStat[r.alt][r.brand][r.brand + "#" + r.article] += 1; if (PricePage.brandRows[r.alt][r.brand] === undefined) PricePage.brandRows[r.alt][r.brand] = []; PricePage.brandRows[r.alt][r.brand].push(r.id); PricePage.idRows[r.id] = r; } ; }, sortBy: function (v) { switch (v) { case "col_0": PricePage.sortCol = 0; break; case "col_5": PricePage.sortCol = 5; break; case "col_8": PricePage.sortCol = 8; break; default: PricePage.sortCol = -1; break; } if (PricePage.rowsData) { PricePage.rowsData.sort(PricePage.sortFunc); PricePage._renderTableData(PricePage.rowsData); } //подсветка switch (v) { case "col_0": $("#" + v).css("color", "red"); $("#col_5").css("color", "#2B240F"); $("#col_8").css("color", "#2B240F"); break; case "col_5": $("#col_0").css("color", "#2B240F"); $("#" + v).css("color", "red"); $("#col_8").css("color", "#2B240F"); break; case "col_8": $("#col_5").css("color", "#2B240F"); $("#col_0").css("color", "#2B240F"); $("#" + v).css("color", "red"); break; default: $("#col_0").css("color", "#2B240F"); $("#col_5").css("color", "#2B240F"); $("#col_8").css("color", "#2B240F"); break; } }, sortFunc: function (r1, r2) { switch (PricePage.sortCol) { case 0://по бренду-артикулу if (r1.alt < r2.alt) return 1; if (r1.alt > r2.alt) return -1; if (r1.brand < r2.brand) return -1; if (r1.brand > r2.brand) return 1; if (r1.article < r2.article) return -1; if (r1.article > r2.article) return 1; if (r1.price < r2.price && r1.mark.trim() === "") return -1; if (r1.price > r2.price && r2.mark.trim() === "") return 1; if (r1.delivery < r2.delivery) return -1; if (r1.delivery > r2.delivery) return 1; break; case 5: if (r1.alt < r2.alt) return 1; if (r1.alt > r2.alt) return -1; if (r1.delivery < r2.delivery) return -1; if (r1.delivery > r2.delivery) return 1; if (r1.price < r2.price && r1.mark.trim() === "") return -1; if (r1.price > r2.price && r2.mark.trim() === "") return 1; if (r1.brand < r2.brand) return -1; if (r1.brand > r2.brand) return 1; break; case 8: if (r1.alt < r2.alt) return 1; if (r1.alt > r2.alt) return -1; if (r1.price < r2.price && r1.mark.trim() === "") return -1; if (r1.price > r2.price && r2.mark.trim() === "") return 1; if (r1.delivery < r2.delivery) return -1; if (r1.delivery > r2.delivery) return 1; if (r1.brand < r2.brand) return -1; if (r1.brand > r2.brand) return 1; break; default: break; } return 0; }, expandNum: function (area) { var body = $("#body" + area + " tr"); body.css("display", ""); $("#clps" + area).css("display", ""); $("#expd" + area).hide(); }, collapseNum: function (area) { var body = $("#body" + area + " tr"); body.css("display", "none"); $("#clps" + area).hide(); $("#expd" + area).css("display", ""); }, collapseBrand: function (alt, brand, toggler) { for (var i = 0; i < PricePage.brandRows[alt][brand].length; i++) { var id = PricePage.brandRows[alt][brand][i]; $("#r_" + id + "").hide(); $("#clps" + id).hide(); $("#expd" + id).hide(); $("#sep_" + id).hide(); $("#ntgsep" + id).hide(); } $("#brhead" + toggler).show(); $("#brsep" + toggler).show(); $("#clpb" + toggler).hide(); $("#expb" + toggler).show(); }, expandBrand: function (alt, brand, toggler) { for (var i = 0; i < PricePage.brandRows[alt][brand].length; i++) { var id = PricePage.brandRows[alt][brand][i]; $("#r_" + id + "").css("display", ""); $("#sep_" + id).show(); $("#clps" + id).show(); $("#expd" + id).hide(); $("#ntgsep" + id).show(); } $("#brhead" + toggler).hide(); $("#brsep" + toggler).hide(); $("#clpb" + toggler).show(); $("#expb" + toggler).hide(); }, toggleBrands: function () { if (PricePage.oldSearch) return; var brandLocks = [{}, {}, {}]; for (var i = 0; i < PricePage.rowsData.length; i++) { var r = PricePage.rowsData[i]; if (r.alt > 0 && $("#clpb" + r.id) !== undefined) { if (brandLocks[r.alt] === undefined) brandLocks[r.alt][r.brand] = []; if (sizeof(PricePage.brandStat[r.alt][r.brand]) > 1 && !brandLocks[r.alt][r.brand]) { brandLocks[r.alt][r.brand] = true; PricePage.collapseBrand(r.alt, r.brand, r.id); } } } }, numToggler: function (area) { return " -------------------------------------------------------------- еще предложения -------------------------------------------------------------- " + "↑ ------------------------------------------------------------ скрыть предложения ------------------------------------------------------------ ↑
"; }, brandToggler: function (r) { return "" + ""; }, _renderTableData: function (rows) { var alts = ["Запрошенный артикул", "", ""]; var prevBA = ["", "", ""], showBA = [true, true, true], lastShown = [true, true, true], lastBody = [0, 0, 0], lastR = [{}, {}, {}]; var priceLocks = [], delivLocks = []; PricePage.oldSearch = !$("#groupresult").attr("checked"); for (var i = 0; i < rows.length; i++) { var str = ""; var r = rows[i]; if (!PricePage.oldSearch) { var brandTogg = ""; var repeatBrand = prevBA[r.alt].split("#")[0] === r.brand; if (sizeof(PricePage.brandStat[r.alt][r.brand]) > 1 && !repeatBrand) brandTogg = PricePage.brandToggler(r); if (prevBA[r.alt] !== r.brand + "#" + r.article) { prevBA[r.alt] = r.brand + "#" + r.article; showBA[r.alt] = true; } else { showBA[r.alt] = false; } if (showBA[r.alt] && !lastShown[r.alt]) { str += ""; if (lastBody[r.alt] !== "") str += PricePage.numToggler(lastBody[r.alt]); } if (!showBA[r.alt] && lastShown[r.alt]) { str += ""; lastBody[r.alt] = r.id; } //шапка бренд-блока if (!repeatBrand && r.alt > 0 && sizeof(PricePage.brandStat[r.alt][r.brand]) > 1) { str += PricePage.renderBrandHead(r); } //дополнительно - не скрывать предложение если оно имеет лучшую цену/срок, но не больее одного var display = "none"; if (r.price === PricePage.minPrice[r.nomenclature_id] && !priceLocks[r.nomenclature_id]) { priceLocks[r.nomenclature_id] = true; display = ""; } if (r.delivery === PricePage.minDelivery[r.nomenclature_id] && !delivLocks[r.nomenclature_id] && r.delivery <= 4) { delivLocks[r.nomenclature_id] = true; display = ""; } str += PricePage.renderRow(r, { nested: !showBA[r.alt], display: showBA[r.alt] ? showBA[r.alt] : display, brandToggler: brandTogg }); } else { str += PricePage.renderRow(r, { nested: false, display: true, brandToggler: "" }); } alts[r.alt] += str; lastShown[r.alt] = showBA[r.alt]; lastR[r.alt] = r; } if (!lastShown[0]) alts[0] += "" + (PricePage.oldSearch ? "" : PricePage.numToggler(lastBody[0])); if (!lastShown[1]) alts[1] += "" + (PricePage.oldSearch ? "" : PricePage.numToggler(lastBody[1])); if (!lastShown[2]) alts[2] += "" + (PricePage.oldSearch ? "" : PricePage.numToggler(lastBody[2])); $(PricePage.lastCfg.renderTo).html("" + PricePage.header + alts[0] + (alts[1] ? "" + alts[1] : "") + (alts[2] ? "" + alts[2] : "") + "
Аналоги и заменители (требуют проверки)
" + "Возможные аналоги и заменители (кроссы предоставлены клиентами методом " + "собственного подбора)
"); }, renderBrandHead: function (r, cfg) { var z = ""; var cls = 'price'; if (r.alt === 1) cls = 'price-alt'; if (r.alt === 2) cls = 'price-alt2'; var brandExpander = ""; var dlvMin = 1000, priceMin = 100000, dlvMax = 0, priceMax = 0, total = PricePage.brandRows[r.alt][r.brand].length; for (var i = 0; i < total; i++) { var id = PricePage.brandRows[r.alt][r.brand][i]; var idr = PricePage.idRows[id]; if (idr.price < priceMin) priceMin = idr.price; if (idr.delivery < dlvMin) dlvMin = idr.delivery; if (idr.price > priceMax) priceMax = idr.price; if (idr.delivery > dlvMax) dlvMax = idr.delivery; } var dlvText = "от " + dlvMin + " до " + dlvMax + " дн."; if (dlvMin === dlvMax) dlvText = " " + dlvMax + " дн."; z += " "; z += "" + brandExpander + "" + "" + r.brand + "всего " + total + " предложений(я)" + dlvText + "от " + priceMin + " до " + priceMax + " руб."; return z; }, formatTitle: function (v) { return v.replace(/\\/g, " \/ ").replace(/\//g, " \/ ").replace(/,/g, ", ").replace(/;/g, "; ").replace(/\|/g, " / "); }, renderRow: function (r, cfg) { if (!cfg) cfg = {}; var z = ""; var cls = 'price'; if (r.alt === 1) cls = 'price-alt'; if (r.alt === 2) cls = 'price-alt2'; var lotInfo = ""; if (r.lot_base > 1) lotInfo = " " + (r.lot_type > 0 ? ("x " + r.lot_base) : ("мин. " + r.lot_base + "шт.")) + ""; if (!cfg.nested) z += "";//разделитель между строками z += ""; var title = PageUtils.renderTitle(r.title); if (r.used) title += ' (б/у)'; if (!cfg.nested) { z += "" + cfg.brandToggler + "" + r.brand + ""; z += "" + r.article + ""; z += "" + title;//PricePage.formatTitle(r.title); } else { z += ""; } if (r.images !== undefined) { z += "
"; for (var j = 0; j < r.images.length; j++) { z += " "; } // if(r.supplier_id===11071){ // z += "    "; // } } z += ""; //z += ""+(r.used?"б/у":"нов")+""; if (!cfg.nested) { z += "" + " "; //if((r.spec && r.spec.trim()!=="") && (r.weight || r.weight !== 0)) z += " "; if (r.brand in PricePage.catalogBrands) { var catId = PricePage.catalogBrands[r.brand]; z += ""; } z += ""; } else z += ""; z += "" + (r.transit ? "Едет в " : "") + r.wherestore + ""; z += "" + (r.delivery === 0 ? "Нал." : r.delivery) + ""; var color = "#086202"; if (r.workout < 60) color = "#E29200"; if (r.workout < 30) color = "#F30404"; var qnt = (r.quantity === null || r.quantity.length > 5 ? "Есть" : r.quantity); if (lotInfo != "") qnt += "
" + lotInfo; z += "" + r.workout + ""; z += "" + qnt + ""; z += "" + (r.mark === "" ? "    " : r.mark) + "" + r.price + ""; if (r.price > 0) { z += ""; if (PricePage.searchMode === 0) { z += ""; z += ""; } else { z += ""; z += ""; } } else z += ""; z += ""; return z; }, searchGoogle: function (brand, article) { var ywin = window.open("#", "googlepics", "width=960,height=600,status=no,toolbar=no,menubar=no,scrollbars=yes"); ywin.document.write( '
' + ' ' + ' ' + '
' + ' ' + ' ' + '
' ); ywin.document.forms["gqformс"].submit(); } }; /* global Content, SRV_ENTRY, PageUtils, UserUtils, ClientPanel, OrdersPage, PreordersPage */ PreordersPage = { rowsData: null, resultPage: 0, rowsPerPage: 250, tableHeader: "" + "Бренд" + "Артикул" + "Наименование" + "Тип" + "Цена" + "К-во" + "Накл." + "Сумма" + "  Срок   " + "Доп" + "Чат" + "Статус" + "", render: function () { PageUtils.setHead("Предзаказы"); Content.load('preorders'); $('#index-data').load('pss/page?t=orders.PreordersPage&old=true', function () { $(function () { $("#filters").tabs(); $("#fordered_date").datepicker(); $("#fordered_date").datepicker("option", "dateFormat", "yy-mm-dd"); $("#afordered_date").datepicker(); $("#afordered_date").datepicker("option", "dateFormat", "yy-mm-dd"); }); PreordersPage.renderTable(); }); PageUtils.current = 'PreordersPage'; //ClientPanel.refresh(); }, switchPage: function (p) { if (PageUtils.current != 'PreordersPage') PreordersPage.render(); PreordersPage.resultPage = p; PreordersPage.renderTable(); }, renderTable: function () { $("#ordersTablePager").html(''); wait(); var searchType = 0;//$("#filters").tabs('option', 'active'); $.getJSON("pss/client", { p: 'GetOrders', searchType: 1, statusSel: 10, caid: $("#balance_caid").val(), start: PreordersPage.resultPage * PreordersPage.rowsPerPage, article: $("#farticle").val(), brand: $("#fbrand").val(), oid: $("#foid").val(), orderedDate: $("#fordered_date").val(), comment: $("#fcomment").val(), limit: PreordersPage.rowsPerPage }, function (data) { PreordersPage.rowsData = data; if (data.success) PreordersPage._renderTableBody(data); $('#orderTable').css("display", "none"); $('#orderTable').slideDown("slow", function () { $('#orderTable').css("display", "inline"); }); endWait(); }); }, _renderTableBody: function (data) { var om = data.orderMeta; var rs = "" + PreordersPage.tableHeader; var prevOid = 0; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; var rowClass = 'order'; var chatIcon = 'chat-gray', chatTip = "Задать вопрос"; if (row.oid !== prevOid) { rs += "" + ""; prevOid = row.oid; if (om[row.oid] && om[row.oid].ucm !== "" && om[row.oid].ucm !== null) { rs += ""; } } rs += ""; var lotInfo = ""; if (row.lot_base > 1) lotInfo = "
" + (row.lot_type > 0 ? ("x " + row.lot_base + " шт.") : ("мин. " + row.lot_base + "шт.")) + ""; var title = PageUtils.renderTitle(row.title) rs += ""; var article = row.article; if (row.sku !== "") { article = row.sku + "
" + article + ""; } rs += ""; rs += ""; rs += ""; rs += ""; rs += ""; var st = (row.sarticle && row.price !== row.subst_price) ? "" + toFixed(row.quantity * row.price, 2) + "
" + toFixed(row.quantity * row.subst_price, 2) : toFixed(row.quantity * row.price, 2); row.total = toFixed((row.sarticle ? row.subst_price : row.price) * row.quantity, 2); var cl = (st == row.total ? 'black' : 'blue'); rs += ""; rs += ""; rs += ""; rs += ""; chatIcon = row.unread ? "chat-orange" : (row.msg ? "chat-blue" : 'chat-gray'); chatTip = row.unread ? "У Вас новое сообщение" : (row.msg ? "Лента сообщений" : chatTip); if (row.msg) rs += ""; else rs += ""; var statusHtml = row.statusTitle; rs += ""; rs += ""; } // rs += ""+ // "
Заказ: " + row.oid + ", от " + om[row.oid].createdDate.substring(0, 10) + ", Сумма: " + om[row.oid].orderSum + " " + "на " + UserUtils.renderCa(row.customer_id) + " от " + om[row.oid].corgTitle +/*renderDType(om[row.oid].odtype, row.oid)+*/"
" + om[row.oid].ucm + "
" + ((row.sbrand && row.brand !== row.sbrand) ? "" + row.brand + "
" + row.sbrand : row.brand) + "
" + ((row.sarticle && row.sarticle !== row.article) ? "" + article + "
" + row.sarticle : article) + "
" + title + " "; if (row.images !== undefined) { rs += "
"; for (var j = 0; j < row.images.length; j++) { rs += " "; } } rs += "
" + (row.used === 1 ? "б/у" : "нов.") + "" + ((row.sarticle && row.price !== row.subst_price) ? "" + toFixed(row.price, 2) + "
" + toFixed(row.subst_price, 2) : toFixed(row.price, 2)) + "
" + row.quantity + lotInfo + "" + toFixed(row.total - st, 2) + "" + toFixed(row.total, 2) + "" + row.delivery_tip + (row.wherestore ? " (" + row.wherestore + ")" : "") + (row.transit ? "
Транзит" : "") + "
" + renderPosOptions(row) + "" + "" + "" + statusHtml + ""; rs += "
"; rs += ""; $('#orderTable').html(rs); var pager = PageUtils.renderPager(PreordersPage); var pager2 = PageUtils.renderPager(PreordersPage, '2'); $("#ordersTablePager").html(pager); $("#ordersTablePager2").html(pager2); }, xls: function () { var oid = $("#foid").val(); if (oid === undefined) oid = ""; var art = $("#farticle").val(); if (art === undefined) art = ""; var bra = $("#fbrand").val(); if (bra === undefined) bra = ""; var ordered_date = $("#fordered_date").val(); if (ordered_date === undefined) ordered_date = ""; window.open(SRV_ENTRY + '?p=exportOrders&oid=' + oid + "&article=" + art + "&brand=" + bra + "&statusSel=10&ordered_date=" + ordered_date + "&searchType=1"); }, oidXls: function (oid) { window.open(SRV_ENTRY + '?p=exportOrder&preorders=1&oid=' + oid); }, resolveOG: function (orderGroup) { if (!orderGroup) { orderGroup = "0"; var inputs = $('#orderTable input[type=checkbox]:checked'); for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; orderGroup += "," + $(inp).attr("id").substr(3); } } return orderGroup; }, cancel: function (orderItem) { orderItem = PreordersPage.resolveOG(orderItem); $.getJSON("pss/client", { p: 'CancelOrderItem', items: orderItem }, function (data) { if (data.success) { PreordersPage.renderTable(); } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); }, go: function (orderGroup) { jAlert("В связи с постоянными изменениями курсов валют, " + "цена в предзаказе носит справочный характер. Для запуска в работу, необходимо перепроценивать " + "позиции заново и заказывать через корзину. Для удобства перепроценки можно" + " выделить требуемые позиции галками и нажать кнопку \"Проценить заново\"", "Сообщение от сервера"); /* orderGroup = PreordersPage.resolveOG(orderGroup); $.getJSON(SRV_ENTRY+"", { p: 'preorderGo', id: orderGroup }, function(data){ if(data.success){ ClientPanel.render(data); PreordersPage.switchPage(0); } else{ jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); */ }, redo: function () { OrdersPage.redo(); } }; /* global Content, SRV_ENTRY, PageUtils, ClientPanel, PricePage, UserUtils, OrdersPage */ OrdersPage = { rowsData: null, resultPage: 0, rowsPerPage: 250, tableHeader: "" + "Бренд" + "Артикул" + "Наименование" + "Тип" + "Цена" + "К-во" + "Накл." + "Итог" + "  Срок   " + "Доп" + "Чат" + "Статус" + "Дост." + "", render: function () { PageUtils.setHead("Ваши заказы"); Content.load('orders'); $('#index-data').load('pss/page?t=orders.OrdersPage&old=true', function () { $(function () { $("#fordered_date").datepicker(); $("#fordered_date").datepicker("option", "dateFormat", "yy-mm-dd"); $("#afordered_date").datepicker(); $("#afordered_date").datepicker("option", "dateFormat", "yy-mm-dd"); }); OrdersPage.renderTable(); }); PageUtils.current = 'OrdersPage'; ClientPanel.refresh(); }, switchPage: function (p) { if (PageUtils.current !== 'OrdersPage') OrdersPage.render(); OrdersPage.resultPage = p; OrdersPage.renderTable(); }, renderTable: function () { $("#ordersTablePager").html(''); wait(); var array_of_checked_values = $("#afstatus").multiselect("getChecked").map(function () { return this.value; }).get(); var chstr = "0"; for (var i = 0; i < array_of_checked_values.length; i++) { chstr += "," + array_of_checked_values[i]; } var searchType = 0;//$("#filters").tabs('option', 'active'); $.getJSON("pss/client", { p: 'GetOrders', searchType: searchType, caid: $("#balance_caid").val(), org: $("#org").val(), start: OrdersPage.resultPage * OrdersPage.rowsPerPage, article: searchType === 0 ? $("#farticle").val() : $("#afarticle").val(), brand: searchType === 0 ? $("#fbrand").val() : $("#afbrand").val(), statusSel: searchType === 0 ? $("#fstatus").val() : chstr, oid: searchType === 0 ? $("#foid").val() : $("#afoid").val(), orderedDate: searchType === 0 ? $("#fordered_date").val() : $("#afordered_date").val(), delivery: $("#fdelivery").val(), limit: OrdersPage.rowsPerPage, comment: $("#fcomment").val() }, function (data) { OrdersPage.rowsData = data; if (data.success) OrdersPage.renderTableBody(data); $('#orderTable').css("display", "none"); $('#orderTable').slideDown("slow", function () { $('#orderTable').css("display", "inline"); }); endWait(); }); }, renderTableBody: function (data) { var om = data.orderMeta; var rs = "" + OrdersPage.tableHeader; var prevOid = 0; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; var rowClass = 'order'; var chatIcon = 'chat-gray', chatTip = "Задать вопрос"; //шапка заказа if (row.oid !== prevOid) { rs += "" + ""; prevOid = row.oid; if (om[row.oid] && om[row.oid].ucm !== "" && om[row.oid].ucm !== null) { rs += ""; } } rs += ""; var lotInfo = ""; if (row.lot_base > 1) lotInfo = "
" + (row.lot_type > 0 ? ("x " + row.lot_base + " шт.") : ("мин. " + row.lot_base + "шт.")) + ""; var tip = ""; var title = PageUtils.renderTitle(row.title); rs += ""; var article = PageUtils.renderTitle(row.article); if (row.sku !== "") { article = row.sku + "
" + article + ""; } rs += ""; rs += ""; rs += ""; rs += ""; rs += ""; var st = (row.sarticle && row.price !== row.subst_price) ? "" + toFixed(row.quantity * row.price, 2) + "
" + toFixed(row.quantity * row.subst_price, 2) : toFixed(row.quantity * row.price, 2); row.total = toFixed((row.sarticle ? row.subst_price : row.price) * row.quantity + row.expenses, 2); var cl = (st == row.total ? 'black' : 'blue'); rs += ""; rs += ""; var deliveryComment = ""; if (row.started_time !== null) deliveryComment = "В работе с " + row.started_time; rs += ""; rs += ""; chatIcon = row.unread ? "chat-orange" : (row.msg ? "chat-blue" : 'chat-gray'); chatTip = row.unread ? "У Вас новое сообщение" : (row.msg ? "Ленты сообщений" : chatTip); if (row.msg) rs += ""; else rs += ""; var statusHtml = row.statusTitle; if (row.status == 5 || row.status == 18) { statusHtml = "" + statusHtml + ""; } if (row.impt === "1") statusHtml += " "; rs += ""; rs += ""; rs += ""; } rs += "
Заказ: " + row.oid + ", от " + om[row.oid].createdDate.substring(0, 10) + ", Сумма: " + om[row.oid].orderSum + ((row.orderSum === null || om[row.oid].corg === 0 || row.status === "5") ? "" : " ") + "  " + "на " + UserUtils.renderCa(row.customer_id) + " от " + om[row.oid].corgTitle +/*renderDType(om[row.oid].odtype, row.oid)+*/"
" + om[row.oid].ucm + "
" + ((row.sbrand && row.brand !== row.sbrand) ? "" + row.brand + "
" + row.sbrand : row.brand) + "
" + ((row.sarticle && row.sarticle !== row.article) ? "" + article + "
" + row.sarticle : article) + "
" + title + " "; if (row.images !== undefined) { rs += "
"; for (var j = 0; j < row.images.length; j++) { rs += " "; } } rs += "
" + (row.used === 1 ? "б/у" : "нов.") + "" + ((row.sarticle && row.price !== row.subst_price) ? "" + toFixed(row.price, 2) + "
" + toFixed(row.subst_price, 2) : toFixed(row.price, 2)) + "
" + row.quantity + lotInfo + "" + toFixed(row.total - st, 2) + "" + toFixed(row.total, 2) + "" + row.delivery_tip + (row.wherestore ? " (" + row.wherestore + ")" : "") + (row.transit ? "
Транзит" : "") + "
" + renderPosOptions(row) + "" + "" + "" + statusHtml + "" + (row.delivery_id > 0 ? row.delivery_id : "нет") + ""; rs += "
"; $('#orderTable').html(rs); var pager = PageUtils.renderPager(OrdersPage); var pager2 = PageUtils.renderPager(OrdersPage, '2'); $("#ordersTablePager").html(pager); $("#ordersTablePager2").html(pager2); }, xls: function () { var oid = $("#foid").val(); if (oid === undefined) oid = ""; var art = $("#farticle").val(); if (art === undefined) art = ""; var bra = $("#fbrand").val(); if (bra === undefined) bra = ""; var sta = $("#fstatus").val(); if (sta === undefined) sta = -1; var ordered_date = $("#fordered_date").val(); if (ordered_date === undefined) ordered_date = ""; window.open(SRV_ENTRY + '?p=exportOrders&oid=' + oid + "&article=" + art + "&brand=" + bra + "&statusSel=" + sta + "&ordered_date=" + ordered_date + "&searchType=0"); }, oidXls: function (oid) { window.open(SRV_ENTRY + '?p=exportOrder&oid=' + oid); }, resolveOG: function (orderGroup) { if (!orderGroup) { orderGroup = "0"; var inputs = $('#orderTable input[type=checkbox]:checked'); for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; orderGroup += "," + $(inp).attr("id").substr(3); } } return orderGroup; }, cancel: function (orderItem) { orderItem = OrdersPage.resolveOG(orderItem); $.getJSON("pss/client", { p: 'CancelOrderItem', items: orderItem }, function (data) { if (data.success) { OrdersPage.switchPage(0); ClientPanel.render(data); } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); }, redo: function () { var inputs = $('#orderTable input[type=checkbox]:checked'); var article = ""; if (inputs.length === 0) { jAlert("Необходимо выбрать хотябы одну позицию", "Ошибка"); return; } if (inputs.length === 1) { article = $(inputs[0]).attr("name").substr(1); PricePage.render(function () { $('#numSearchQuery').attr("value", article); PricePage.newSearch(); }); } else { for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; article += $(inp).attr("id").substr(3) + ","; } $.getJSON(SRV_ENTRY + "", { p: 'createSearchlist', oi: article }, function (data) { if (data.success) { window.location.hash = "list"; } else { jAlert("Соединение с сервером разорвано", "Сообщение от сервера"); } }); } }, openDoc: function (itemId) { window.open(SRV_ENTRY + '?c=printDoc&byoitem=' + itemId); } }; /* global Content, ViewcartPage, SRV_ENTRY, PageUtils, ClientPanel, OrdersPage, UserUtils */ var DeliveryPage = { render: function (order) { PageUtils.setHead("Сборка и доставка"); Content.load('delivery'); var dir = 'asc'; if (ViewcartPage.lastOrder == order && order !== 'none') { if (ViewcartPage.lastDir === 'desc') dir = 'asc'; else dir = 'desc'; } ViewcartPage.lastDir = dir; ViewcartPage.lastOrder = order; wait(); $('#index-data').load(SRV_ENTRY + '?h=delivery&order=' + order + '&dir=' + dir, function () { //$("#delivery").tabs(); $("body select").msDropDown(); DeliveryPage.renderActiveDevs(); DeliveryPage.renderFinishedDevs(); endWait(); } ); PageUtils.current = 'DeliveryPage'; ClientPanel.refresh(); }, renderTypeImg: function (t) { var img = "", tip = ""; switch (t) { case 'TK': img = "tk"; tip = "Транспортной компанией"; break; case 'INTOWN': img = "car"; tip = "По городу"; break; default: img = "suitcase"; tip = "Самовывоз"; break; } return ""; }, renderActiveDevs: function () { $.getJSON("pss/client", { p: 'GetDeliveries', done: 0 }, function (data) { var htmlString = "" + ""; if (data.success) { if (data.rows.length > 0) { for (var i = 0; i < data.rows.length; i++) { var dev = data.rows[i]; var cancelBtn = ""; var fn = "openNewQuestionDialog"; if (dev.msg) fn = "openDialog"; var chatIcon = dev.unread ? "chat-orange" : (dev.msg ? "chat-blue" : "chat-gray"); var chatTip = dev.unread ? "У Вас новое сообщение" : (dev.msg ? "Лента сообщений" : "Задать вопрос"); htmlString += "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; if (!dev.prepared) htmlString += cancelBtn; htmlString += ""; htmlString += ""; } } else { htmlString += "

Заказанных сборок/доставок нет

"; } htmlString += "
В очереди на отправку/сборку
Отменить
№ " + dev.id + "" + (dev.perform_on_date === "" ? "отправка по готовности" : dev.perform_on_date) + "" + DeliveryPage.renderTypeImg(dev.type) + "" + (dev.type === 'TK' ? dev.tk : (dev.type === 'INTOWN' ? "" : "Самовывоз со склада")) + "" + dev.box_label + "
" + UserUtils.renderCaid(dev.contragent_id) + "" + (dev.allowed==='TRUE' || (dev.fee_on_receipt && dev.type != 'TK') ? (dev.prepared ? "Мест: " + dev.places : "Не упаковано") : "Приостановлена") + "
" + "" + "
"; $('#activeDevs').html(htmlString); } } ); }, renderFinishedDevs: function () { $.getJSON("pss/client", { p: 'GetDeliveries', done: 1, sort: 'id', dir: 'DESC' }, function (data) { var htmlString = "" + ""; if (data.success) { if (data.rows.length > 0) { for (var i = 0; i < data.rows.length; i++) { var dev = data.rows[i]; var cancelBtn = ""; var fn = "openNewQuestionDialog"; if (dev.msg) fn = "openDialog"; var chatIcon = dev.unread ? "chat-orange" : (dev.msg ? "chat-blue" : "chat-gray"); var chatTip = dev.unread ? "У Вас новое сообщение" : (dev.msg ? "Лента сообщений" : "Задать вопрос"); htmlString += "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; if (!dev.prepared) htmlString += cancelBtn; htmlString += ""; htmlString += ""; } } else { htmlString += "

Отгруженных сборок нет (за последние 28 дней)

"; } htmlString += "
Выполненные сборки (за последние 28 дней)
Отменить
№ " + dev.id + "" + (dev.perform_on_date === "" ? "дата: по готовности" : dev.perform_on_date) + "" + DeliveryPage.renderTypeImg(dev.type) + "" + (dev.type === 'TK' ? dev.tk : (dev.type === 'INTOWN' ? "" : "Самовывоз со склада")) + "" + dev.box_label + "
" + UserUtils.renderCaid(dev.contragent_id) + "" + dev.ttn + "" + (dev.allowed === 'TRUE' || (dev.fee_on_receipt && dev.type != 'TK') ? (dev.prepared ? "Мест: " + dev.places : "Не упаковано") : "Приостановлена") + "
" + "" + "
"; $('#finishedDevs').html(htmlString); } } ); }, toggleDelivery: function (dev) { if ($('#pos' + dev).css("display") === "none") { $("#toggle_img" + dev).attr("src", "images/16x16/toggle_collapse.png"); wait(); $.getJSON("pss/client", { p: 'GetCustomerDeliveryItems', deliveryId: dev }, function (data) { if (data.success) { var htmlString = "" + "" + "Заказ" + "Бренд" + "Артикул" + "Наименование" + "Вес" + "К-во" + "Статус" + ""; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; var article = row.article; if (row.sku !== "") { article = row.sku + "
" + article + ""; } htmlString += "" + "" + (i + 1) + "" + "" + row.oid + "" + "" + row.brand + "" + "" + article + "" + "" + (row.title === null ? "" : row.title) + " " + "" + (row.weight != 0 && row.weight !== null ? row.weight : "?") + "" + "" + row.quantity + "" + "" + row.statusTitle + "" + ""; } $('#pos' + dev).html(htmlString); $('#pos' + dev).css("display", "inline"); } else { } endWait(); }); } else { $("#toggle_img" + dev).attr("src", "images/16x16/toggle.png"); $('#pos' + dev).css("display", "none"); } }, orderDelivery: function (selected0) { var selected = OrdersPage.resolveOG(selected0); var param = ""; if (selected && selected !== "0") { param = "&itemIds=" + selected; } $("#container-h").load("pss/page?t=delivery.OrderDeliveryDialog&old=true" + param, function () { $("#plannedDate").datepicker({ minDate: +0, maxDate: +15, constrainInput: true, beforeShowDay: jQuery.datepicker.noWeekends }); $("#plannedDate").datepicker("option", "dateFormat", "dd-mm-yy"); $("#container-h").dialog({ modal: true, resizable: false, title: "Заказ доставки", width: 450, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Сохранить": function () { DeliveryPage.submitDelivery(); } } }); $("body select").msDropDown(); DeliveryPage.manageFields(); }); }, cancelDelivery: function (id) { wait(); $.getJSON("pss/client", { p: 'CancelDelivery', id: id }, function (data) { if (!data.success) { jAlert(data.r, "Сообщение от сервера"); } else { window.location.hash = "delivery"; DeliveryPage.render(); } endWait(); }); }, submitDelivery: function () { var contragentId = $('input[name=caid_radio]:checked').val(); if (!contragentId) { jAlert("Не указан контрагент", "Ошибка"); return; } var receiverTown = $("#receiverTown").val(); var receiverContact = $("#receiverContact").val(); if (!receiverContact) { jAlert("Не указано контактное лицо", "Сообщение от сервера"); return; } var receiverPhone = $("#receiverPhone").val(); if (!receiverPhone) { jAlert("Не указан телефон", "Сообщение от сервера"); return; } var date = $("#plannedDate").val(); date = date.substr(6) + "-" + date.substr(3, 2) + "-" + date.substr(0, 2); wait(); $.getJSON("pss/client", { p: 'OrderDelivery', performDate: date, deliveryType: $("#dtype").val(), contact: receiverContact, phone: receiverPhone, feeOnReceipt: $('#feeOnReceipt').is(":checked"), boxLabel: $("#receiverTown").val() + ", " + $("#receiverRegion").val() + "\n" + receiverContact + "\n" + receiverPhone, mapAddrOut: $("#receiverAddr").val(), tkId: $("#tkSelect").val(), contragentId: contragentId, comment: $("#comment").val(), wishTime: $("#wishTime").val(), passport: $("#receiverPassport").val(), itemMids: $("#itemMids").val() }, function (data) { if (!data.success) { jAlert(data.r, "Сообщение от сервера"); } else { $("#container-h").dialog("close"); window.location.hash = "delivery"; //DeliveryPage.render(); } endWait(); }); }, manageFields: function(dtype){ if(! dtype) dtype = $("#dtype").val(); switch(dtype){ case "SELF"://Самовывоз $("#r_tkSelect").css("display", "none"); $("#r_region").css("display", "none"); $("#r_town").css("display", "none"); $("#r_addr").css("display", "none"); $("#r_recv").css("display", "block"); $("#r_phone").css("display", "none"); $("#r_fee").css("display", "block"); $("#r_passport").css("display", "none"); break; case "INTOWN"://по городу $("#r_tkSelect").css("display", "none"); $("#r_region").css("display", "none"); $("#r_town").css("display", "none"); $("#r_addr").css("display", "block"); $("#r_recv").css("display", "block"); $("#r_phone").css("display", "block"); $("#r_fee").css("display", "block"); $("#r_passport").css("display", "none"); break; case "TK": $("#r_tkSelect").css("display", "block"); $("#r_region").css("display", "block"); $("#r_town").css("display", "block"); $("#r_addr").css("display", "none"); $("#r_recv").css("display", "block"); $("#r_phone").css("display", "block"); $("#r_fee").css("display", "none"); $("#r_passport").css("display", "block"); break; } }, addDay: function () { $("#container-h").load(SRV_ENTRY + "?h=deliveryDayDialog", function () { DeliveryPage.manageFields($("#odtype").val()); $("#container-h").dialog({ modal: true, resizable: false, title: "Добавить день в расписание", width: 450, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Сохранить": function () { DeliveryPage.submitDay(); } } }); $("body select").msDropDown(); DeliveryPage.manageFields(); }); }, updateDay: function (id) { $("#container-h").load(SRV_ENTRY + "?h=deliveryDayDialog&id=" + id, function () { DeliveryPage.manageFields($("#odtype").val()); $("#container-h").dialog({ modal: true, resizable: false, title: "Изменить день в расписании", width: 450, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Удалить": function () { DeliveryPage.deleteTemplate(id); }, "Сохранить": function () { DeliveryPage.submitDay(id); } } }); $("body select").msDropDown(); DeliveryPage.manageFields(); }); }, deleteTemplate: function (id) { $.getJSON("pss/client", { p: 'DeleteDeliveryDay', id: id }, function (data) { if (!data.success) { jAlert(data.r, "Сообщение от сервера"); } else { $("#container-h").dialog("close"); DeliveryPage.render(); } }); }, submitDay: function (id) { $.getJSON("pss/client", { p: id ? 'UpdateDeliveryTemplate' : 'AddDeliveryTemplate', id: id, weekday: $("#weekday").val(), period: $("#period").val(), dtype: $("#dtype").val(), region: $("#receiverRegion").val(), town: $("#receiverTown").val(), contact: $("#receiverContact").val(), phone: $("#receiverPhone").val(), mapAddrOut: $("#mapAddrOut").val(), tkId: $("#tkSelect").val(), contragentId: $('input[name=caid_radio]:checked').val(), comment: $("#comment").val(), wishTime: $("#wishTime").val(), passport: $("#receiverPassport").val() }, function (data) { if (!data.success) { jAlert(data.r, "Сообщение от сервера"); } else { $("#container-h").dialog("close"); DeliveryPage.render(); } }); }, saveSchedule: function () { $('#dschedForm').ajaxSubmit({ success: function (responseText, statusText) { eval("var a = " + responseText + ";"); if (a.success === true) { jAlert("Данные успешно обновлены", "Сообщение от сервера"); } else jAlert(a.r, "Сообщение от сервера"); } }); jAlert("Данные успешно обновлены", "Сообщение от сервера"); } }; /* global Content, SRV_ENTRY, PageUtils, ClientPanel */ ProfilePage = { render: function () { PageUtils.setHead("Ваш текущий профиль"); Content.load('profile'); wait(); $('#index-data').load('pss/page?t=ca.AccountPage&old=true', function () { $("#tabzz").tabs(); $("#tabzz").tabs("option", "active", hasUndefinedOwn > 0 ? 1 : 0); //$("body select").msDropDown(); endWait(); }); PageUtils.current = 'ProfilePage'; ClientPanel.refresh(); }, updateUserAccount: function () { $('#profileUserAccountForm').ajaxSubmit({ success: function (responseText, statusText) { var a = responseText;//eval("var a = "+responseText+";"); jAlert(a.r, "Сообщение от сервера"); if (a.success == true) { window.location.reload(); } } }); }, addContragent: function () { $.getJSON("pss/client", { p: 'AddContragent' }, function (data) { jAlert(data.r, "Сообщение от сервера"); if (data.success) { window.location.reload(); } }); }, deleteContragent: function (id) { $.getJSON("pss/client", { p: 'DeleteContragent', id: id }, function (data) { jAlert(data.r, "Сообщение от сервера"); if (data.success) { window.location.reload(); } }); }, updateContragent: function (cid) { var cc = (cid + '').split('.'); var cc2 = parseInt(cc[1]) $('#profileContragentForm' + cc2).ajaxSubmit({ data: {id: cid}, success: function (a, statusText) { jAlert(a.r, "Сообщение от сервера"); if (a.success) window.location.reload(); // return false; } }); }, fillByBIK: function (cid) { $.getJSON(SRV_ENTRY + "", { p: 'getBankByBIK', bik: $("#bank_bik" + cid).val() }, function (data) { if (data.success && data.rows.length > 0) { var b = data.rows[0]; $('#bank_bik_text' + cid).html(b.namep); } else $('#bank_bik_text' + cid).html(""); }); } }; /* global Content, PricePage, qq, SRV_ENTRY, PageUtils, ClientPanel, MyPricePage */ MyPricePage = { rowsData: null, searchMode: 0, header: "" + "" + "Поз." + "Бренд" + "Артикул" + "Складской код " + "Наименование" + "Тип" + "всего
/резерв" + "Ост. К-во" + "Цена
руб." + "Срок" + "" + "", onEnterSearch: function (event) { if (event.keyCode === 13) PricePage.newSearch(); }, render: function (cb) { PageUtils.setHead("Размещение прайслиста"); $('#index-text').html(''); Content.load('myprice', 'index-text2'); PageUtils.current = 'MyPricePage'; $('#index-data').load('pss/page?t=price.MyPricePage&old=true', function () { var fu = document.getElementById('file-uploader'); if (fu) { var uploader = new qq.FileUploader({ element: fu, action: 'uploadPriceFile.php', // additional data to send, name-value pairs params: {limit: 100}, // validation // ex. ['jpg', 'jpeg', 'png', 'gif'] or [] allowedExtensions: ['txt', 'csv', 'xls', 'xlsx'], // each file size limit in bytes // this option isn't supported in all browsers sizeLimit: 8388608, // max size minSizeLimit: 0, // min size // set to true to output server response to console debug: false, // events // you can return false to abort submit onSubmit: function (id, fileName) { uploader.setParams({ clearFirst: $("#clearFirst").val(), a: $('#a').val(), b: $('#b').val(), c: $('#c').val(), d: $('#d').val(), e: $('#e').val(), f: $('#f').val() }); $("#freport").html(""); }, onProgress: function (id, fileName, loaded, total) { }, onComplete: function (id, fileName, responseJSON) { if (!responseJSON) return; if (responseJSON.r) { $("#freport").html(responseJSON.r.replace(/\n/g, "
")); } MyPricePage.reloadPrice(); }, onCancel: function (id, fileName) { } }); MyPricePage.reloadPrice(); } if (cb) cb(); }); ClientPanel.refresh(); }, openImage: function (path, descr) { $.prettyPhoto.open(path, 'Title', descr); }, add: function () { $("#container-h").load(SRV_ENTRY + "?h=addPositionForm&id=", function () { $("#container-h").dialog({ modal: true, resizable: false, title: "Позиция", width: 400, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Сохранить": function () { MyPricePage.save(); } } }); }); }, del: function () { jConfirm("Уверены что хотите удалить позицию(и)?", "Подтверждение", function (r) { if (r) { $.getJSON(rfn('deletePriceItem'), { id: MyPricePage.resolveItems() }, function (data) { if (data.success) { MyPricePage.reloadPrice(); } }); } } ); }, save: function () { $('#pricePositionForm').ajaxSubmit({ success: function (responseText, statusText) { var a = responseText; if (a.success === true) { MyPricePage.reloadPrice(); $("#container-h").dialog("close"); } else jAlert(a.r, "Сообщение от сервера"); } }); }, resolveItems: function () { var str = ""; var inputs = $('#loadedNumbers input[type=checkbox]:checked'); for (var i = 0; i < inputs.length; i++) { var inp = inputs[i]; if ($(inp).val() === undefined) continue; str += "," + $(inp).attr("id").substr(3); } return str; }, edit: function (posId) { $("#container-h").load(SRV_ENTRY + "?h=editPositionForm&id=" + posId, function () { $("#container-h").dialog({ modal: true, resizable: false, title: "Позиция", width: 440, buttons: { "Отмена": function () { $(this).dialog("close"); }, "Сохранить": function () { MyPricePage.save(); } } }); var fu = document.getElementById('file-uploader2'); if (fu) { var uploader = new qq.FileUploader({ element: fu, action: 'uploadItemImage.php', // additional data to send, name-value pairs params: {limit: 100}, // validation // ex. ['jpg', 'jpeg', 'png', 'gif'] or [] allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'bmp'], // each file size limit in bytes // this option isn't supported in all browsers sizeLimit: 1048576, // max size minSizeLimit: 0, // min size // set to true to output server response to console debug: false, // events // you can return false to abort submit onSubmit: function (id, fileName) { uploader.setParams({ id: posId }); $("#freport").html(""); }, onProgress: function (id, fileName, loaded, total) { }, onComplete: function (id, fileName, responseJSON) { if (!responseJSON) return; if (responseJSON.r) { $("#freport").html(responseJSON.r.replace(/\n/g, "
")); } MyPricePage.reloadPrice(); MyPricePage.edit(posId); }, onCancel: function (id, fileName) { } }); MyPricePage.reloadPrice(); } }); }, prev: function () { var c = parseInt($("#pagenum").val()); c--; if (c < 2) c = 1; $("#pagenum").val(c); MyPricePage.reloadPrice(); }, next: function () { var c = parseInt($("#pagenum").val()); c++; $("#pagenum").val(c); MyPricePage.reloadPrice(); }, reloadPrice: function () { var c = parseInt($("#pagenum").val()); var c1 = (c - 1) * 50; if (c && c > 0) $.getJSON(rfn('getPricelist'), { sublist: $("#sublist").val(), start: c1, article: $("#farticle").val(), brand: $("#fbrand").val(), sku: $("#fsku").val(), reserve: $("#freserve").val() }, function (data) { if (data.success) { $("#priceTotal").html( c1 + "-" + (c1 + 50 > parseInt(data.total) ? data.total : c1 + 50) + " из " + data.total), MyPricePage.renderPricelist(data.rows); } }); }, setPage: function (event) { if (event.keyCode === 13) { MyPricePage.reloadPrice(); } }, changePrice: function () { $("#sublist").val(); }, renderPricelist: function (data) { var str = ""; var rowClass = "order"; var c = parseInt($("#pagenum").val()); if (data.length > 0) { str += MyPricePage.header; for (var i = 0; i < data.length; i++) { var row = data[i]; str += ""; str += "" + ((c - 1) * 50 + i + 1) + ""; str += "" + row.brand + " "; str += "" + row.article + " "; str += "" + row.sku + " "; var lotInfo = ""; if (row.lot_base > 1) lotInfo = " " + (row.lot_type > 0 ? ("x " + row.lot_base) : ("мин. " + row.lot_base + "шт.")) + ""; str += "" + row.title + lotInfo; if (row.images !== undefined) { str += "
"; for (var j = 0; j < row.images.length; j++) { str += " "; } } str += " "; str += "" + (row.used === "1" ? "б/у" : "нов.") + ""; str += "" + (parseInt(row.quantity) + parseInt(row.reserved)) + " / " + row.reserved + " "; str += "" + row.quantity + " "; str += "" + (row.price === 0 || row.price === '' ? " " : row.price) + " "; str += "" + row.delivery + " "; str += ""; str += ""; } } else { str += "Позиций не обнаружено!"; } $("#loadedNumbers").html("" + str + "
"); } }; /* global SRV_ENTRY */ var CommentSheet = { loadSheet: function (quest, entIndex) { $.getJSON("pss/client", { p: 'GetCommentSheet', quest: quest, markViewed: true }, function (data) { var res = '' + '' + ''; if (data.success && data.rows.length > 0) { for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; res += ""; } } else { res += ""; } res += '
ДатаАвторСообщение
" + row.created + "" + row.contact + "" + row.data; if (row.fls !== undefined) { res += "
"; for (var j = 0; j < row.fls.length; j++) { var path = row.fls[j].split("?")[0];console.log(path) var parts = path.split("."); if (parts) { var ext = parts[parts.length - 1].toLowerCase(); console.log(ext) if (ext === "png" || ext === "bmp" || ext === "jpg" || ext === "jpeg") res += " " + " "; else res += " " + " "; } } } res += "
Сообщений нет
'; var tsel = "#commentSheetTable" + (entIndex !== undefined ? entIndex : ""); $(tsel).html(res); if ($(tsel)[0]) $(tsel).scrollTop($(tsel)[0].scrollHeight); $("#topicSpan").html(data.topic ? data.topic : ""); $("#entityTip").html(data.entityTip ? data.entityTip : ""); }); }, openDialog: function (cfg) { $("#container-h").load("pss/page?t=msg.QuestionMenu&old=true&entity=" + cfg.entity + "&ref=" + cfg.ref + "&clickEntry=" + cfg.clickEntry + "&displayEntry=" + cfg.displayEntry, function () { $("#container-h").dialog({ modal: true, resizable: false, title: "Вопросы по позиции", width: 700, position: ['middle', 50], buttons: {} }); $.getJSON("pss/client", { p: 'GetQuestionList', entity: cfg.entity, ref: cfg.ref, clickEntry: cfg.clickEntry, displayEntry: cfg.displayEntry }, function (data) { var htmlString = ""; if (data.success && data.rows.length > 0) { for (var i = 0; i < data.rows.length; i++) { var t = data.rows[i]; var color = "black"; if (t.unread) color = "blue"; htmlString += "" + (t.impt ? " " : " ") + "№ " + t.id + ", обн. " + t.lastupdated.substr(0, 16) + "    " + " " + t.preview + ""; } } $('#questList').html(htmlString); }); } ); }, openQuest: function (cfg) { $("#container-h").load("pss/page?t=msg.QuestionDialog&old=true", function () { $("#container-h").dialog({ modal: true, resizable: false, title: "Лента сообщений по вопросу", width: 690, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Отправить менеджеру": function () { CommentSheet.addComment({ quest: cfg.quest, clearForm: true }); } } }); CommentSheet.loadSheet(cfg.quest); } ); }, openNewQuestionDialog: function (cfg) { //alert($('#messa').tabs('option', 'active')); $("#container-h").load("pss/page?t=msg.NewQuestionDialog&old=true&ref=" + cfg.ref + "&entity=" + cfg.entity + "&clickEntry=" + (cfg.clickEntry ? cfg.clickEntry : 0) + "&displayEntry=" + (cfg.displayEntry ? cfg.displayEntry : 0), function () { $("#container-h").dialog({ modal: true, resizable: false, title: "Задать вопрос", width: 690, position: ['middle', 50], buttons: { "Отмена": function () { $(this).dialog("close"); }, "Отправить менеджеру": function () { CommentSheet.addComment({ clearForm: false, entity: cfg.entity, ref: cfg.ref, entIndex: "", topic: $("#topic").val(), close: true }); } } }); } ); }, addComment: function (cfg) { $("#entity").val(cfg.entity); $("#ref").val(cfg.ref); $("#topic").val(cfg.topic); $("#type").val(cfg.type); $("#quest").val(cfg.quest); $('#addCommentForm0').ajaxSubmit({ type: 'post', dataType: 'json', clearForm: cfg ? cfg.clearForm : true, success: function (data, statusText) { if (!data.success) { jAlert(data.r.replace(/com.partsib.fn.msg.AddComment: /, ''), "Сообщение от сервера"); } else { $("#fileformlabel1").html(""); $("#fileformlabel2").html(""); $("#fileformlabel3").html(""); $("#fileformlabel4").html(""); $("#fileformlabel5").html(""); if (cfg.close) $("#container-h").dialog("close"); else if (data.quest) CommentSheet.loadSheet(data.quest, cfg.entIndex); } } }); } }; /* global PageUtils, ClientPanel, SRV_ENTRY, Content, PaymentPage, UserUtils */ var BalancePage = { render: function () { PageUtils.setHead("Баланс и взаиморасчеты"); Content.load(null); $('#index-data').load('pss/page?t=ca.BalancePage&old=true', function () { $("#plannedDate").datepicker({dateFormat: "yy-mm-dd"}); //Content.load('payment'); ClientPanel.refresh(); BalancePage.getLastPayments(); BalancePage.reloadPaymethodsCombo(); $("#bala").tabs(); $("#plannedDate").datepicker(); $("#plannedDate").datepicker("option", "dateFormat", "dd-mm-yy"); var d = $('#balanceFromDate').val(); $("#balanceFromDate").datepicker(); $("#balanceFromDate").datepicker("option", "dateFormat", "dd-mm-yy"); $('#balanceFromDate').val(d); } ); PageUtils.current = 'BalancePage'; ClientPanel.refresh(); }, xls: function () { window.open(SRV_ENTRY + '?p=exportBalance&caid=' + $('#balance_caid').val() + '&org=' + $('#org').val()); }, showSheet: function () { var from = $('#balanceFromDate').val(); if (!from) { jAlert("Не задана дата", "Ошибка"); return; } wait(); $("#balanceSheet").load("pss/page?t=ca.BalanceDetails&old=true", { caid: $('#balance_caid').val(), org: $('#org').val(), from: from }, function (resp, stat, rq) { endWait(); }); }, reloadPaymethodsCombo: function () { $.getJSON("pss/client", { p: 'GetPaymethods', caid: $('#caid').val() }, function (data) { if (data.success) { var options = ""; for (var i = 0; i < data.rows.length; i++) { var row = data.rows[i]; options += ""; } $('#bankAccountId').html(options); } }); }, getLastPayments: function () { $.getJSON("pss/client", { p: 'GetLastPayments' }, function (data) { if (data.success) { var listHtml = ""; for (var i = 0; i < data.rows.length; i++) { var r = data.rows[i]; var icon = r.unread ? "chat-orange" : (r.msg ? "chat-blue" : "chat-gray"); var opener = r.msg ? "openDialog" : "openNewQuestionDialog"; listHtml += ""; listHtml += "" + (r.title ? r.title : "Физ. лицо") + ""; listHtml += "" + r.planned.substr(0, 10) + ""; listHtml += "" + r.reference + " "; listHtml += "" + r.summa + " "; listHtml += "" + r.bankTitle + ""; listHtml += ""; listHtml += ""; switch (r.status) { case 1: listHtml += "" + r.completed.substr(0, 16) + ""; break; case 2: listHtml += "Платеж отклонен"; break; case 3: listHtml += "Платеж не найден"; break; case 4: listHtml += " "; break; default: listHtml += " "; break; } listHtml += ""; listHtml += ""; } $('#lastPaymentsList').html(listHtml); } }); }, send: function () { if ($('#paymethod').val() === 1 && $('#bankAccountId').val() === 0) { alert("Не указан банк получателя"); return; } var rawDate = $('#plannedDate').val(); var date = rawDate.substring(6) + "-" + rawDate.substring(3, 5) + "-" + rawDate.substring(0, 2); $.getJSON("pss/client", { p: 'NotifyPayment', bankAccountId: $('#bankAccountId').val(), caid: $('#caid').val(), number: $('#number').val(), summa: $('#summa').val(), planned: date }, function (data) { if (data.success) { BalancePage.render(); } else { jAlert(data.r, "Сообщение от сервера"); } }); } }; //