PageSourceSearch

https://smart-shop.pro/build/assets/lazy_quote-9TVCPP49.js

js smart-shop.pro collected 2026-10-07 15:41:51 UTC 127,198 bytes, 106 lines download raw bytes

1import{p as G,e as J,E as T,F as ae,K as N,L as _,l as de,o as ye,h as b,aD as C,s as f,r as x,aF as P,a0 as ge,a1 as ve,y as U,w as re,q as $e,ax as Se,ay as Ce,J as ke,c as X,C as se,f as we,aG as Be}from"./app-BLFWTgAp.js";import{u as xe}from"./lazy_files-mjj-IRS5.js";import"./vendor-CRPCMX9G.js";import"./lazy_upload-no-form-DOC-ipRR.js";const e={optimizeDatesArray:[],agentbonussum:0,wrnProjectRequests:"",adressnnumberFromOrder:"",orderpurpose:"",qtycustomers:0,haspricerequests:0,hasopenpricerequests:0,wrnpricerequests:"",wrnopenpricerequests:"",existLinesWOdate:0,typeForDeleveryterms:"",formated_date:"",dateOfLastDateCalc:"",srokcalculated:"",needcalculate:"",checksrok:0,isactual:0,quote_Payed:0,PaymentTermsNumber:0,sumByMaconomyNDS:0,sumByMaconomy:0,canApplyProjectDiscount:0,segmentName:"",canChangePaymentTerms:0,needShowPaymentTerms:0,ordernumber:"",cpfio:"",isPrintedQuote:0,canApplyVolumeBonus:0,futureBonusAvail:0,transportCompany:"",deliverySum:0,freeDeliveryLimit:0,ourDeliverySumBase:0,existsItemsToReserve:0,peniBonus:0,smartBonus:0,replaceDefectBonus:0,bonusVolumeAvail:0,canApplyDiscountOnQuote:0,notActiveQuoteActions:{},itemSumNds:0,itemSumWithoutMrc:0,orderCustomerNumber:"",paymentCustomer:"",existsMarkup:0,changedPaymentTerms:0,toastNotificationInterval:0,appliedMainDiscountSum:0,appliedManualDiscountSum:0,canSetReserve:0,canChangeManualFutureBonus:0,canChangeManualFutureSmarts:0,projectBrandsIsFilled:0,minLineSum:0,customertype:0,canChangeTagBrands:0,canChangeHeadComment:0,projectCard:null,lastProjectRequest:null,needGetProjectInfoFromLink:!1,canMakeManualDiscount:0,preliminaryDiscountSum:0,askForInactiveReason:0,canChangePaymentTermsInQuote:0,quoteToastActions:null,payerReserveLabel:""};function Te(o){return{peniBonus:{messageText:"Вы можете использовать скидку",buttonText:"Применить",onclick:()=>o.openApplyBonusCommonModal("Peni")},smartBonus:{messageText:"Вы можете использовать смарты",buttonText:"Применить",onclick:()=>o.openApplyBonusCommonModal("Smart")},volumeBonus:{messageText:"Вы можете использовать скидку на объем",buttonText:"Применить",onclick:()=>$(".bonus-volume-discount").trigger("click")},futureBonus:{messageText:"Получите бонус для следующих заказов",buttonText:"Получить",onclick:()=>$(".get-future-bonus").trigger("click")},setDeliveryAddress:{messageText:"Укажите адрес доставки",buttonText:"Указать",onclick:()=>$(".set-delivery-terms").trigger("click")},decreaseDeliveryCost:{messageText:"Вы можете уменьшить стоимость доставки",buttonText:"Уменьшить",onclick:()=>$("#optimizedates").trigger("click")},calculateDeliveryDates:{messageText:"Рассчитайте сроки поставки по позициям",buttonText:"Рассчитать",onclick:()=>$("#calculatedates").trigger("click")},changeClientToReserveDropdown:{messageText:"Вы можете зарезервировать товар",buttonText:"Выбрать",onclick:()=>$(".change-client-to-reserve").trigger("click")},changeToBetterTransportCompany:{messageText:"Вы можете выбрать более выгодную доставку",buttonText:"Выбрать",onclick:()=>o.openDeliveryModal()},sendQuotePdf:{messageText:"Сохраните счет и/или перешлите по E-mail",buttonText:"Выбрать",onclick:()=>$("#sendPdfButton").trigger("click")}}}function je(o){var d;const r=G();if(r.page!=="quotes.show"||!r.quote)return;e.quoteToastActions=Te(o),e.paymentCustomer.toUpperCase().indexOf("РЕЗЕРВ")>=0&&($(".replace-defect-bonus, .apply-peni-bonus, .apply-smart-bonus, #applyDiscountsAndBonuses, #agentMarkup, #splitAvailableAndToPurchase").addClass("button_notactive"),$(".change-client-to-reserve").addClass("button_notactive"),e.quoteToastActions.peniBonus.status=!1,e.quoteToastActions.smartBonus.status=!1,e.quoteToastActions.changeClientToReserveDropdown.status=!1);for(const[,l]of Object.entries(e.notActiveQuoteActions)){l.name=="printschet"&&($("#printschet, #savePdf, #sendPdfButton").addClass("button_notactive"),e.quoteToastActions.sendQuotePdf.status=!1),l.name=="printschetexcel"&&(document.getElementById("printschetexcel").dataset.bsToggle=void 0),l.name=="printschettocustomer"&&(document.getElementById("printschettocustomer").dataset.bsToggle=void 0),l.name=="progerssivediscount"&&($(".replace-defect-bonus, .apply-peni-bonus, .apply-smart-bonus, #applySmarts, #agentMarkup, #applyDiscountsAndBonuses").addClass("button_notactive"),e.quoteToastActions.peniBonus.status=!1,e.quoteToastActions.smartBonus.status=!1),l.name=="bonusvolumediscount"&&($(".bonus-volume-discount").addClass("button_notactive"),e.quoteToastActions.volumeBonu
1s.status=!1),l.name=="getfuturebonus"&&($(".get-future-bonus, #applyManualFutureBonus, #applyManualFutureSmarts").addClass("button_notactive"),e.quoteToastActions.futureBonus.status=!1),l.name=="splitquote"&&$("#splitAvailableAndToPurchase").addClass("button_notactive"),l.name=="setdeliveryterms"&&($(".set-delivery-terms").addClass("button_notactive"),$(".show-pay-or-reserve-options").addClass("button_notactive"),e.quoteToastActions.setDeliveryAddress.status=!1,e.quoteToastActions.changeToBetterTransportCompany.status=!1),l.name=="reserveitems"&&($(".change-client-to-reserve").addClass("button_notactive"),e.quoteToastActions.changeClientToReserveDropdown.status=!1);const y=$("#"+l.name);y.length&&(l.name=="optimizedates"&&(e.quoteToastActions.decreaseDeliveryCost.status=!1),l.name=="calculatedates"&&($("#calculatedates, .calculate-dates, #cancelcalculatedates").addClass("button_notactive"),e.quoteToastActions.calculateDeliveryDates.status=!1),y.addClass("button_notactive"))}if(isEmployee&&$("#filesBlock").removeClass("col-lg").addClass("col-lg-2"),e.canChangeHeadComment){const l=document.querySelector("form[name='changeHeadCommentForm'] textarea[name='comment']");l.value=l.value.replace(/<br\s*[\/]?>/gi,`
2`)}if(e.canChangeTagBrands&&$("#tagBrandsSelect").select2({placeholder:"Бренды",allowClear:!0,dropdownParent:$("#tagBrandsSelect").closest("div"),matcher:J}),e.askForInactiveReason&&$("#brandsForInactive").select2({placeholder:"Бренды",allowClear:!0,dropdownParent:$("#brandsForInactive").closest("div"),matcher:J}),e.isPrintedQuote&&(e.quoteToastActions.sendQuotePdf.status=!1),e.canApplyVolumeBonus||(e.quoteToastActions.volumeBonus.status=!1),e.futureBonusAvail<=0&&(e.quoteToastActions.futureBonus.status=!1),(e.adressnnumberFromOrder==""||e.transportCompany!="dellin")&&(e.quoteToastActions.changeToBetterTransportCompany.status=!1),e.adressnnumberFromOrder!=""&&(e.quoteToastActions.setDeliveryAddress.status=!1),(e.transportCompany!="SmartShop"||Number(e.sumByMaconomy)>=Number(e.freeDeliveryLimit)&&e.deliverySum==0||Number(e.sumByMaconomy)<Number(e.freeDeliveryLimit)&&e.deliverySum/e.ourDeliverySumBase<=1)&&(e.quoteToastActions.decreaseDeliveryCost.status=!1),e.checksrok==1&&(e.quoteToastActions.calculateDeliveryDates.status=!1,e.quoteToastActions.changeClientToReserveDropdown.status=!1),e.existLinesWOdate==1&&(e.quoteToastActions.sendQuotePdf.status=!1),e.hasopenpricerequests==1&&(e.quoteToastActions.sendQuotePdf.status=!1,e.quoteToastActions.calculateDeliveryDates.status=!1),e.cpfio||
2(e.quoteToastActions.smartBonus.status=!1),!e.canApplyDiscountOnQuote||e.haspricerequests!=0||e.appliedMainDiscountSum!=0?(e.quoteToastActions.peniBonus.status=!1,e.quoteToastActions.smartBonus.status=!1,e.quoteToastActions.volumeBonus.status=!1,e.quoteToastActions.futureBonus.status=!1):e.lastProjectRequest!=null&&(e.quoteToastActions.peniBonus.status=!1,e.quoteToastActions.smartBonus.status=!1,(e.lastProjectRequest.decision!=0||e.lastProjectRequest.canceleddate==" ")&&(e.quoteToastActions.futureBonus.status=!1),e.lastProjectRequest.decision==-1&&(e.quoteToastActions.volumeBonus.status=!1)),(e.existsMarkup||e.changedPaymentTerms!=0)&&(e.quoteToastActions.volumeBonus.status=!1,e.quoteToastActions.futureBonus.status=!1),e.canSetReserve||(e.quoteToastActions.changeClientToReserveDropdown.status=!1),(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)&&(e.quoteToastActions.sendQuotePdf.status=!1),e.isactual<0){(d=document.getElementById("applyManualDiscountOrMarkup"))==null||d.classList.add("button_notactive");const l=document.getElementById("payForDeliveryTKByBonusPeniLink");l==null||l.classList.add("button_notactive"),l&&(l.dataset.bsTarget=void 0,l.dataset.bsToggle=void 0)}$.ajax({url:route("quotes.data"),dataType:"json",data:{customerNumber:e.paymentCustomer,orderNumber:e.ordernumber},beforeSend:function(){$("#totalWeight, #totalVolume").html(ae.primary),$("#availableLimitInQuote").html(ae.warning)},success:function(l){if((Number(l.availableLimit.availablelimit)>Number(e.sumByMaconomyNDS)||e.existsItemsToReserve==0)&&(e.quoteToastActions.changeClientToReserveDropdown.status=!1),Number(e.sumByMaconomyNDS)>Number(l.availableLimit.availablelimit)?($("#collapsePayment, #blockPayment, #collapsePaymentToggleButton").removeClass("d-none"),$("#blockReservation").remove()):e.paymentCustomer.toUpperCase().indexOf("РЕЗЕРВ")<0&&e.orderpurpose!="GIFT"&&($("#blockReservation").removeClass("d-none"),$("#blockPayment").remove()),$("#blockPayment.d-none, #blockPayment.d-none").remove(),e.typeForDeleveryterms=="-"){const y=document.querySelector(".set-delivery-terms.step-action");y.closest("div.row").classList.add("burning-action"),y.classList.remove("link-base"),e.quoteToastActions.calculateDeliveryDates.status=!1,e.quoteToastActions.sendQuotePdf.status=!1}else if(e.srokcalculated!="1"||e.needcalculate!="0"||e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date){const y=document.getElementById("calculatedates");y&&(y.closest("div.row").classList.add("burning-action"),y.classList.remove("link-base"))}else if(e.quoteToastActions.calculateDeliveryDates.status=!1,(e.PaymentTermsNumber==0||e.PaymentTermsNumber==1)&&e.sumByMaconomyNDS>0)if(e.quote_Payed==0)if(Number(l.availableLimit.availablelimit)>=Number(e.sumByMaconomyNDS)||e.payerReserveLabel=="РЕЗЕРВ")$("#convertquote").removeClass("btn-light").addClass("btn-warning");else{e.PaymentTermsNumber==1&&$("#convertquote").removeClass("btn-light").addClass("btn-warning");let y;e.orderpurpose=="GIFT"?e.sumByMaconomyNDS>0&&(y=document.querySelector(".apply-smarts.step-action")):y=document.querySelector(".show-pay-or-reserve-options.step-action"),y&&(y.closest("div.row").classList.add("burning-action"),y.classList.remove("link-base"))}else $("#convertquote").removeClass("btn-light").addClass("btn-warning");else if(e.PaymentTermsNumber!=0&&e.transportCompany!="")if(Number(e.sumByMaconomyNDS)>Number(l.availableLimit.availablelimit)){let y;e.orderpurpose=="GIFT"?e.sumByMaconomyNDS>0&&(y=document.querySelector(".apply-smarts.step-action")):y=document.querySelector(".show-pay-or-reserve-options.step-action"),y&&(y.closest("div.row").classList.add("burning-action"),y.classList.remove("link-base"))}else $("#convertquote").removeClass("btn-light").addClass("btn-warning");else $("#convertquote").removeClass("btn-light").addClass("btn-warning");$("#totalWeight").html(l.totalWeightForDisplay),$("#totalVolume").html(l.totalVolumeForDisplay),$("#availableLimitInQuote, #availableLimitInQuote2").html(T(l.availableLimit.availablelimit)),$("#availableLimitInQuoteCurrency, #availableLimitInQuoteCurrency2").removeClass("d-none"),o.initToastNotifications()}}),$("#chatButton, #chatCloseButton").on("click",function(){$("#chat").hasClass("chat-open")?(o.getCurrentToastAction()?(o.setQuoteToastActionsSlider(),$("#quoteToast").toast("show")):o.openAvailableToastAction(),$("#showToastActionButton").addClass("d-none")):o.needHideQuoteToast()&&($("#quoteToast").toast("hide"),o.setAvailableToastAction()&&$("#showToastActionButton").removeClass("d-none"))});const s=N(),m={};typeof s.quote>"u"?(s.quote={},s.quote.collapseBlock={},_(s)):typeof s.quote.collapseBlock>"u"?(s.quote.collapseBlock={}
2,_(s)):Object.entries(s.quote.collapseBlock).forEach(l=>{m[l[0]]=l[1]}),o.initAvailableBonuses();const c=document.getElementById("quoteMainPart");c&&c.querySelectorAll(".collapse").forEach(l=>{(!Object.prototype.hasOwnProperty.call(m,l.id)||m[l.id]||document.getElementById(l.id).classList.contains("important-data"))&&$(document.getElementById(l.id)).collapse("show")}),de()}function Pe(){G().page==="quotes.show"&&de()}function qe(o){e.optimizeDatesArray=[],e.agentbonussum=o.agentBonusSum,e.wrnProjectRequests=o.wrnProjectRequests,e.adressnnumberFromOrder=o.adressNumberFromOrder,e.orderpurpose=o.orderPurpose,e.qtycustomers=o.qtyCustomers,e.haspricerequests=o.hasPriceRequests,e.hasopenpricerequests=o.hasOpenPriceRequest,e.wrnpricerequests=o.wrnPriceRequests,e.wrnopenpricerequests=o.wrnOpenPriceRequests,e.existLinesWOdate=o.existLinesWOdate,e.typeForDeleveryterms=o.deliveryTerms,e.formated_date=moment().format("YYYY.MM.DD"),e.dateOfLastDateCalc=o.dateOfLastDateCalc,e.srokcalculated=o.srokCalculated,e.needcalculate=o.needCalculate,e.checksrok=o.checkSrok,e.isactual=o.isActual,e.quote_Payed=o.payed,e.PaymentTermsNumber=o.paymentTermsNumber,e.sumByMaconomyNDS=o.sumByMaconomyNds,e.sumByMaconomy=o.sumByMaconomy,e.canApplyProjectDiscount=o.canApplyProjectDiscount,e.segmentName=o.segmentName,e.canChangePaymentTerms=o.canChangePaymentTerms,e.needShowPaymentTerms=o.needShowPaymentTerms,e.ordernumber=o.orderNumber,e.cpfio=o.cpfio,e.isPrintedQuote=o.isPrintedQuote,e.canApplyVolumeBonus=o.canApplyVolumeBonus,e.futureBonusAvail=o.futureBonusAvail,e.transportCompany=o.transportCompany,e.deliverySum=o.deliverySum,e.freeDeliveryLimit=o.freeDeliveryLimit,e.ourDeliverySumBase=o.ourDeliverySumBase,e.existsItemsToReserve=o.existsItemsToReserve,e.peniBonus=o.peniBonus,e.smartBonus=o.smartBonus,e.replaceDefectBonus=o.replaceDefectBonus,e.bonusVolumeAvail=o.bonusVolumeAvail,e.canApplyDiscountOnQuote=o.canApplyDiscountOnQuote,e.notActiveQuoteActions=o.notActiveQuoteActions,e.itemSumNds=o.itemSumNds,e.itemSumWithoutMrc=o.itemSumWithoutMrc,e.orderCustomerNumber=o.orderCustomerNumber,e.paymentCustomer=o.paymentCustomer,e.existsMarkup=o.existsMarkup,e.changedPaymentTerms=o.changedPaymentTerms,e.toastNotificationInterval=o.toastNotificationInterval,e.appliedMainDiscountSum=o.appliedMainDiscountSum,e.appliedManualDiscountSum=o.appliedManualDiscountSum,e.canSetReserve=o.canSetReserve,e.canChangeManualFutureBonus=o.canChangeManualFutureBonus,e.canChangeManualFutureSmarts=o.canChangeManualFutureSmarts,e.projectBrandsIsFilled=o.projectBrandsIsFilled,e.minLineSum=o.minLineSum,e.customertype=o.customerType,e.canChangeTagBrands=o.canChangeTagBrands,e.canChangeHeadComment=o.canChangeHeadComment,e.projectCard=o.projectCard,e.lastProjectRequest=o.lastProjectRequest,e.needGetProjectInfoFromLink=!1,e.canMakeManualDiscount=o.canMakeManualDiscount,e.preliminaryDiscountSum=o.preliminaryDiscountSum,e.askForInactiveReason=o.askForInactiveReason,e.canChangePaymentTermsInQuote=o.canChangePaymentTermsInQuote,e.payerReserveLabel=o.payerReserveLabel}function Ae(){const o=G();if(o.page!=="quotes.index"||!o.quotes)return;const r=o.quotes,s=r.status||"-1";if($("select[name='status'] option[value='"+s+"']").attr("selected","selected"),se("#brands",r.brands),r.canChangeTagBrands&&se("#tagBrands",r.tagBrands,"Теги брендов"),$("#employeeCreatedBy").length&&$("#employeeCreatedBy").val(r.employeeCreatedBy).change(),isCustomer){const m=r.createdBy||"-1";$("select[name='createdBy'] option[value='"+m+"']").attr("selected","selected")}we()}ye(()=>{var r,s,m,c,d,l,y,F,I,S;We(),Ae();const o=G();if(o.page==="quotes.show"&&o.quote&&(qe(o.quote),je({openApplyBonusCommonModal:K,openDeliveryModal:q,initToastNotifications:Ee,initAvailableBonuses:Re,getCurrentToastAction:Y,setQuoteToastActionsSlider:H,openAvailableToastAction:W,needHideQuoteToast:fe,setAvailableToastAction:ee}),Pe()),isAuthenticated){let j=function(t){let n=`<div class="text-start">
3                            <h5 class="mb-3">В счете есть позиции, срок поставки по которым неизвестен. Мы можем:</h6>
4                            <div class="form-check">
5                                <input id="onlyNotify" name="unknownDeliveryDateRadio" class="form-check-input"
6                                    type="radio" />
7                                <label class="form-check-label lh-base" for="onlyNotify">
8                                    Уведомить вас о поступлении товаров на склад поставщика по данному счету
9                                </label>
10                            </div>`;return t=="partial"&&(n+=`   <div class="form-check">
11                                <input id="notifyAndSplit" name="unknownDeliveryDateRadio" class="form-check-input"
12                                    type="radio" />
13                                <label class="form-check-label lh-base" for="notifyAndSplit">
14                                    Выделить товары в отдельный счет и уведомить вас о поступлении товаров на склад поставщика (все бонусы и скидки будут отменены)
15                                </label>
16                            </div>`),n+=`       <div class="form-check">
17                                <input id="doNothing" name="unknownDeliveryDateRadio" class="form-check-input"
18                                    type="radio" checked />
19                                <label class="form-check-label lh-base" for="doNothing">
20                                    Не изменять счет и не уведомлять о поступлении товаров
21                                </label>
22                            </div>
23                           </div>`,{title:"Товары с неизвестным сроком поставки",html:n,footer:`<a class="text-center" href="${application.urls.wiki+"Инструкции_Smart-Shop:Расчет_сроков_поставки_товара#Товары_с_неизвестным_сроком_поставки"}" target="_blank">Инструкция по товарам с неизвестным сроком поставки</a>`,confirmButtonText:"Готово",preConfirm:()=>({selected:$("input[type='radio'][name='unknownDeliveryDateRadio']:checked").attr("id")})}},M=function(t){return new Promise((n,a)=>
23{$.ajax({method:"POST",url:route("quotes.notify_not_calculated_dates_all_lines",{ordernumber:e.ordernumber}),data:{type:t},dataType:"json",beforeSend:()=>f(),success:function(i){i.status=="error"?Swal.fire(i.title,i.message,i.status).then(()=>{i.transportCompanyDeleted?Swal.fire(C).then(()=>{n(!1)}):n(!1)}):Swal.fire({title:i.title,html:i.message,icon:i.status}).then(()=>{i.transportCompanyDeleted?Swal.fire(C).then(()=>{n(!0)}):n(!0)})}})})},E=function(){return new Promise((t,n)=>{$.ajax({method:"POST",url:route("quotes.action_calculate_dates",{ordernumber:e.ordernumber}),data:{action:"NeedCalculateDates"},dataType:"json",beforeSend:()=>f(),success:function(a){a.status=="error"?Swal.fire(a.title,a.message,a.status).then(()=>{t(!1)}):t(!0)}})})};$(".button_notactive").on("click",function(t){t.preventDefault(),t.stopImmediatePropagation(),e.isactual<0?le(t):u(messages.unavailable_action)}),$("#projectDiscountModal").on("hidden.bs.modal",function(){D(1)}),$(".project-brand-checkbox").each(function(){$(this).on("change",()=>{$(this).prop("checked")?$(`.vendor-contactperson-select-container[data-brandnumber="${$(this).val()}"]`).removeClass("d-none"):$(`.vendor-contactperson-select-container[data-brandnumber="${$(this).val()}"]`).addClass("d-none"),$(`.vendor-contactperson-select-container select.vendor-contactperson-select[data-brandnumber="${$(this).val()}"]`).prop("disabled",!$(this).prop("checked"))})}),$("form[name='projectDiscountForm']").validate({validClass:"is-valid",errorClass:"is-invalid",errorElement:"div",rules:{projectDiscountReason:{required:!0},projectDiscountReasonBrand:{required:!0},projectRealisationDate:{required:!0}},messages:{projectDiscountReason:{required:"Выберите один из вариантов"},projectDiscountReasonBrand:{required:"Выберите бренд из списка"},projectRealisationDate:{required:"Укажите дату начала реализации"}},errorPlacement:function(t,n){t.addClass("invalid-feedback"),$(n).prop("type")!="radio"?t.insertAfter(n):t.insertAfter($("input[name='"+$(n).prop("name")+"']").last())},highlight:function(t,n,a){$(t).prop("type")!="radio"?$(t).addClass(n).removeClass(a):$("input[name='"+$(t).prop("name")+"']").addClass("is-invalid")},unhighlight:function(t,n,a){$(t).prop("type")!="radio"?$(t).addClass(a).removeClass(n):$("input[name='"+$(t).prop("name")+"']").removeClass("is-invalid")},submitHandler:async function(t,n){if(n.preventDefault(),t=$("form[name='projectDiscountForm']"),document.querySelector(".project-brand-checkbox")==null)return Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете не хватает суммы для запроса проектной скидки",icon:"info"}),!1;if(document.querySelector(".project-brand-checkbox:checked")==null)return Swal.fire({title:"Ошибка запроса проектной скидки",text:"Пожалуйста, выберите как минимум 1 бренд",icon:"error"}),!1;if(document.querySelector(".project-brand-checkbox:checked[data-hasprojectregistration='0']")!=null)return Swal.fire({title:"Запрос проектной скидки",text:"По поставщикам необходим запрос на регистрацию проекта в статусе «Защита» или «На общих основаниях» с заполненным номером проекта",icon:"info"}),!1;if(t.find(".vendor-contactperson-select-container .vendor-contactperson-select:not(:has(option:checked)):not(:disabled)").length)return Swal.fire({title:"Ошибка запроса проектной скидки",text:"Пожалуйста, выберите по каждому бренду минимум 1 КЛ поставщика",icon:"error"}),!1;const a=[];if(document.querySelectorAll(".project-brand-checkbox:checked[data-existbrandwithappliedbonus='0'][data-issumenough='0']").forEach(h=>{a.push({brandName:h.dataset.brandname,remainingSum:h.dataset.remainingsum})}),a.length>0){let h=`
24                            <div class="container-fluid text-start">
25                                <p class="text-secondary mb-2">
26                                    Для запроса проектной скидки не хватает минимальной суммы по брендам:
27                                </p>
28                                    ${a.map(v=>`
29                                        <div class="row mx-0">
30                                            <div class="col-5 text-dark text-nowrap">
31                                                ${v.brandName}
32                                            </div>
33                                            <div class="col-7 text-end text-muted text-nowrap">
34                                                ${v.remainingSum.toLocaleString()} руб.
35                                            </div>
36                                        </div>`).join("")}
37                            </div>`;if(!(await Swal.fire({title:"Проектная скидка",html:h,icon:"info",showDenyButton:!0,confirmButtonText:"Отправить",denyButtonText:"Отмена"})).isConfirmed)return!1}let i="";t.find("#brandSelectBlock input[type='checkbox']:checked").each(function(){i+=$(this).val()+","}),i=i.slice(0,-1);let p=t.serializeArray();p.push({name:"brandList",value:i}),$.ajax({method:"POST",url:t.attr("action"),dataType:"json",data:p,beforeSend:()=>f(),success:function(h){Swal.fire(h.title,h.message,h.status).then(()=>{h.transportCompanyDeleted?Swal.fire(C).then(()=>{h.status=="success"?location.reload():$("#projectDiscountModal").modal("hide")}):h.status=="success"?location.reload():$("#projectDiscountModal").modal("hide")})},complete:()=>b()})}}),$("form[name='projectDiscountForm']").find("input:not([type='checkbox']):not([type='radio']):not([name='projectRealisationDate']), textarea:not([disabled])").each(function(){$(this).rules("add",{required:!0,maxlength:255,NoSpecialChars:!0,normalizer:function(t){return $.trim(t)},messages:{required:"Поле обязательно для заполнения",maxlength:$.validator.format("Пожалуйста, введите не более {0} символов")}})}),$(".showProjectDiscountInfo").on("click",function(){D(2),document.querySelector("#projectDiscountModal .modal-footer").classList.add("d-none"),document.querySelector(".brand-table-block").classList.add("d-none"),document.getElementById("setProjectDiscountReasonContainer").classList.add("d-none"),document.querySelector("#projectDiscountModal .modal-title").innerHTML="Информация по проектному запросу";let t=document.getElementById("objectNameForProject");t.value=e.projectCard.objectname,t.setAttribute("disabled",!0);let n=document.getElementById("projectNameForProject");n.value=e.projectCard.projectname,n.setAttribute("disabled",!0);let a=document.getElementById("projectAddressForProject");a.value=e.projectCard.projectaddress,a.setAttribute("disabled",!0);let i=document.getElementById("projectRealisationDate");e.projectCard.realisationdate!=" "&&(i.value=e.projectCard.realisationdate.replaceAll(".","-")),i.setAttribute("disabled",!0);let p=this.getAttribute("data-project-remark"),h=document.getElementById("showProjectDiscountReasonContainer");h.classList.remove("d-none"),h.querySelector("textarea").value=p,$("#projectDiscountModal").modal("show")}),$("#applyBonusCommonModal").on("hide.bs.modal",function(){let t=$("form[name='applyBonusCommonForm']");x(t),$("#askNotZeroPriceBlock").removeClass("d-block").addClass("d-none"),t.find("button[type='submit']").unblockButton()}).on("show.bs.modal",function(){$("#bonusSelectModal").modal("hide")}),$("form[name='applyBonusCommonForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{discountSum:{required:!0,number:!0,min:0}},messages:{discountSum:{required:"Пожалуйста, введите сумму",number:"Пожалуста, введите корректное число",min:"Пожалуйста, введите положительное число"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='applyBonusCommonForm']");t.find("button[type='submit']").blockButton(),$.ajax({url:t.attr("action"),method:"POST",data:{sum:t.find('input[name="discountSum"]').val(),bonusType:t.find('input[name="bonusType"]').val(),notZeroPrice:t.find('input[name="notZeroPrice"]').prop("checked")},beforeSend:()=>f(),success:function(n){Swal.fire(n.title,n.message,n.status).then(()=>{n.status=="success"?location.reload():$("#applyBonusCommonModal").modal("hide")})},complete:()=>b()})}}),$("#applyDiscountsAndBonuses").on("click",function(){let t=document.getElementById("bonusSelectModal");if(t)if(t.querySelectorAll(".bonus-button").length>0)$(t).modal("show");else return e.lastProjectRequest!=null&&e.lastProjectRequest.canceleddate==" "&&e.lastProjectRequest.decision!=0?Swal.fire({title:"Отправлен запрос на получение проектной скидки",text:"Применение скидоÐ
37º и бонусов недоступно",icon:"warning"}):Swal.fire({title:"Счёт является проектным",text:"Дополнительных скидок и бонусов не предусмотрено",icon:"warning"}),!1}),$(".apply-peni-bonus").on("click",function(){K("Peni")}),$(".apply-smart-bonus").on("click",function(){K("Smart")}),$("#applySmarts, .apply-smarts").on("click",function(){if(!e.canApplyDiscountOnQuote)return P(),!1;if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(!e.cpfio)return u("Сначала необходимо выбрать контактное лицо по заявке"),!1;let t=$(this);if(t.data("sum")<=0)return Swal.fire({title:"Ошибка применения бонуса",text:"Сумма счета должна быть положительной",icon:"error"}),!1;Swal.fire({text:"Вы действительно хотите применить бонус на счет?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(n=>{n.isConfirmed&&$.ajax({url:route("quotes.apply_smarts",{ordernumber:$(this).attr("data-ordernumber")}),method:"POST",data:{sum:t.data("sum")},beforeSend:()=>f(),success:function(a){Swal.fire(a.title,a.message,a.status).then(()=>{a.status=="success"&&location.reload()})},complete:()=>b()})})}),$(".replace-defect-bonus").on("click",function(){if(!e.canApplyDiscountOnQuote)return P(),!1;if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;let t=R("ReplaceDefect");if(t.maxBonusSum<=0)return u(t.errorReasonText),!1;$("#bonusSelectModal").modal("hide"),$(".checkforApplyBonus").removeClass("d-none").addClass("d-block"),$("#checkForApplyBonusBlock").removeClass("d-none").addClass("d-block"),$("#replacementBonusApplyingRemark").html("Выберите строки для применения бонуса"),window.innerWidth>=992?X("quoteItemsTable",25):X("mobileItemsLines",50)}),$("#applyBonusButton").on("click",function(){let t=$('input[type="checkbox"].forApplyBonus:checked');if(t.length==0)return Swal.fire({title:"Ошибка применения бонуса",text:"Выберите хотя бы одну строку",icon:"error"}),!1;let n=[];t.each(function(){let a=$(this).closest(".itemLine").data("linenumber");n.push(a)}),$.ajax({url:route("quotes.apply_replace_defect_bonus",{ordernumber:$(this).attr("data-ordernumber")}),method:"POST",data:{bonusOrderLines:n},dataType:"json",beforeSend:()=>f(),success:function(a){Swal.fire(a.title,a.message,a.status).then(()=>{a.status=="success"?location.reload():$("#cancelApplyBonusButton").trigger("click")})},complete:()=>b()})}),$("#cancelApplyBonusButton").on("click",function(){$(".checkforApplyBonus").removeClass("d-block").addClass("d-none"),$("#checkForApplyBonusBlock").removeClass("d-block").addClass("d-none"),$("input[type='checkbox'].forApplyBonus").prop("checked",!1),$("#applyBonusButton").popover("hide"),$("#applyBonusButton").attr("data-bs-content","Выберите строки для применения бонуса"),new bootstrap.Popover($("#applyBonusButton")).update(),$("#rowNumber").css("border-top-left-radius","0.5rem")}),$("input[type='checkbox'].forApplyBonus").on("change",function(){let t=$("input[type='checkbox'].forApplyBonus:checked");if(t.length>0){let n=0;t.each(function(){n+=$(this).data("price")}),$("#replacementBonusApplyingRemark").html("Сумма выбранных позиций <br><span class='fw-semibold'>"+T(n)+" руб.</span>")}else $("#replacementBonusApplyingRemark").html("Выберите строки для применения бонуса")}),$("a.resetBonus").on("click",async function(){e.lastProjectRequest!=null&&e.lastProjectRequest.canceleddate==" "&&!await A(!1)||Swal.fire({text:"Вы действительно хотите отменить "+$(this).attr("data-bonustype")+"?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(t=>{t.isConfirmed&&$.ajax({url:route("quotes.reset_bonus",{ordernumber:$(this).attr("data-ordernumber")}),method:"POST",beforeSend:()=>f(),success:function(n){n.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload()}})})}),$("#resetPaymentTerms").on("click",function(){if(e.lastProjectRequest!=null){u(e.wrnProjectRequests);return}Swal.fire({text:"Вы действительно хотите отменить отсрочку?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(t=>{t.isConfirmed&&$.ajax({url:route("quotes.reset_payment_terms",{ordernumber:$(this).attr("data-ordernumber")}),method:"POST",beforeSend:()=>f(),success:function(n){n.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload()}})})}),$(".get-future-bonus").on("click",function(){if(!e.canApplyDiscountOnQuote)return P(),!1;if(e.existsMarkup)return Swal.fire({title:"Не удалось применить бонус",text:"В счете применена наценка. Обновите цены в счете для получения бонуса",icon:"error"}),!1;if(e.changedPaymentTerms)return Swal.fire({title:"Не удалось применить бонус",text:"В счете увеличена отсрочка платежа",icon:"error"}),!1;Swal.fire({text:"Вы действительно хотите получить бонус?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(t=>{t.isConfirmed&&$.ajax({url:route("quotes.apply_future_bonus",{ordernumber:e.ordernumber}),method:"POST",beforeSend:()=>f(),success:function(n){Swal.fire(n.title,n.message,n.status).then(()=>{n.status=="success"&&location.reload()})},complete:()=>b()})})}),$(".bonus-volume-discount").on("click",function(){if(e.existsMarkup)return Swal.fire({title:"Не удалось применить бонус",text:"В счете применена наценка. Обновите цены в счете для получения бонуса",icon:"error"}),!1;if(e.changedPaymentTerms)return Swal.fire({title:"Не удалось применить бонус",text:"В счете увеличена отсрочка платежа",icon:"error"}),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(e.preliminaryDiscountSum!=0)return Swal.fire({title:"Скидка на объем",text:"Данную скидку можно будет применить после получения окончательной скидки на проект",icon:"info"}),!1;Swal.fire({text:"Вы действительно хотите получить бонус?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(t=>{t.isConfirmed&&$.ajax({url:route("quotes.apply_volume_bonus",{ordernumber:e.ordernumber}),method:"POST",beforeSend:()=>f(),success:function(n){Swal.fire(n.title,n.message,n.status).then(()=>{n.status=="success"&&location.reload()})},complete:()=>b()})})}),$(".apply-preliminary-discount").on("click",function(){if(e.existsMarkup)return Swal.fire({title:"Не удалось применить бонус",text:"В счете применена наценка. Обновите цены в счете для получения бонуса",icon:"error"}),!1;if(e.changedPaymentTerms)return Swal.fire({title:"Не удалось применить бонус",text:"В счете увеличена отсрочка платежа",icon:"error"}),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;Swal.fire({text:"Вы действительно хотите получить скидку?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Отмена"}).then(t=>{t.isConfirmed&&$.ajax({method:"POST",url:route("quotes.apply_preliminary_bonus",{ordernumber:e.ordernumber}),beforeSend:()=>f(),success:n=>{Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>location.reload())},complete:()=>b()})})}),$("#agentMarkup").on("click",function(){if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;$("#agentMarkupModal").modal("show")}),$("form[name='agentMarkupForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{markupSum:{required:{depends:function(){return $("#markupAgent").is(":not(:filled)")}},number:!0,min:0}},messages:{markupSum:{required:"Пожалуйста, введите сумму",number:"Пожалуста, введите корректное число",min:"Пожалуйста, введите положительное число"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$("#agentMarkupSumInfo").addClass("d-none").removeClass("d-block").html(""),$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$("form[name='agentMarkupForm']").find("input").removeClass(n),$(t).addClass(a)},submitHandler:function(){let t=$("form[name='agentMarkupForm']");t.find("button[type='submit']").blockButton();let n=-1*$("#markupAgent").val();$.ajax({url:t.attr("action"),method:"POST",data:{sum:n},beforeSend:()=>f(),success:function(a){Swal.fire(a.title,a.message,a.status).then(()=>{a.status=="success"?location.reload():$("#agentMarkupModal").modal("hide")})},complete:()=>b()})}}),$("#agentMarkupModal").on("hidden.bs.modal",function(){let t=$("form[name='agentMarkupForm']");x(t),t.find("button[type='submit']").unblockButton(),$("#agentMarkupSumInfo").addClass("d-none").removeClass("d-block").html("")}),$("#showAgentMarkup").on("click",function(){if(!$("form[name='agentMarkupForm']").valid())return!1;let t=$(this).closest("form").data("agentbonus");if($("#agentMarkupSumInfo").addClass("d-none").removeClass("d-block").html(""),$("#markupAgent").val()!=""){let n=parseInt(t)+parseInt($("#markupAgent").val());$("#agentMarkupSumInfo").addClass("d-block").removeClass("d-none").html("Доход головной компании составит "+T(n)+" руб.")}}),$(".set-delivery-terms").on("click",function(){if(document.readyState=="complete")q();else return!1}),$("#cancelcalculatedates").on("click",function(){$.ajax({method:"POST",url:route("quotes.action_calculate_dates",{ordernumber:e.ordernumber}),data:{action:"CancelCalculateDates"},dataType:"json",beforeSend:()=>f(),success:function(t){t.status=="error"?Swal.fire(t.title,t.message,t.status):location.reload()}})}),$("#calculatedates, .calculate-dates").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;$.ajax({method:"POST",url:route("quotes.calculate_dates",{ordernumber:e.ordernumber}),data:{needChangeNextContactMp:1},beforeSend:()=>f(),success:function(t){if(b(),t.title||t.message||t.status)return Swal.fire(t.title,t.message,t.status).then(()=>{t.url&&location.replace(t.url)}),!1;let n=j(t.hasUnknownDeliveryDate),a={title:"Расчет сроков",text:"В счете есть позиции, по которым расчет сроков займет до 4 часов, в это время счет будет недоступен для редактирования. Продолжить расчет сроков?",icon:"warning",showCancelButton:!0,confirmButtonText:"Продолжить",cancelButtonText:"Отмена"},i={title:"Расчет сроков",text:"В счете есть товары, по которым расчет сроков невозможен. Удалите эти позиции и выберите товар из наличия",icon:"error"},p={title:"Расчет сроков",html:'В счете есть товары, дата поставки по которым актуальна до определенного времени утверждения заказа.<br>Обратите внимание на иконку <i class="far fa-question-circle text-info"></i>
37',footer:`<a class="text-center" href="${application.urls.wiki+"Инструкции_Smart-Shop:Расчет_сроков_поставки_товара#Товары,_срок_поставки_по_которым_зависит_от_времени"}" target="_blank">Инструкция по товарам, срок поставки по которым зависит от времени утверждения заказа</a>`,icon:"info"};(async()=>{let h=!0;["all","partial"].includes(t.hasUnknownDeliveryDate)&&(h=await new Promise((v,w)=>{Swal.fire(n).then(B=>{B.isConfirmed&&B.value.selected!="doNothing"?M(B.value.selected).then(L=>{v(L)}):v(!0)})})),h&&t.needWaitCalulate&&await new Promise((v,w)=>{t.customerStatusPending==1&&t.hasOpenProjectRequests!==1?Swal.fire(i).then(B=>{v(!0)}):t.isContactPersonExists?Swal.fire(a).then(B=>{B.isConfirmed?E().then(L=>{v(L)}):v(!0)}):Swal.fire({title:"Расчет сроков",text:"Заполните контактное лицо по заявке и нажмите “Рассчитать сроки” повторно",icon:"error"}).then(B=>{v(!0)})}),t.earlyDaysExist&&await new Promise((v,w)=>{Swal.fire(p).then(()=>{v(!0)})}),location.reload()})()}})}),$("#payByCardButton").on("click",function(){if($("#paybycard").hasClass("button_notactive"))return Swal.fire({title:"Ошибка",text:"Действие неприменимо для данного счета",icon:"error"}),!1;if(isEmployee)return Swal.fire({title:"Ошибка оплаты счета",text:"Вы, как сотрудник, не можете осуществить оплату картой за клиента",icon:"error"}),!1;if(!$(this).data("canpaybycard"))return P(),!1;if(e.typeForDeleveryterms=="-"||e.srokcalculated==0||e.needcalculate==1)return Swal.fire({title:"Ошибка оплаты счета",text:"Пожалуйста, выполните предыдущие действия, прежде чем оплачивать счет",icon:"error"}),!1;$.ajax({url:route("quotes.start_acquiring_payment",{ordernumber:$(this).attr("data-ordernumber")}),method:"POST",dataType:"json",beforeSend:()=>f(),success:function(t){t.title||t.message||t.status?Swal.fire({title:t.title,html:t.message,icon:t.status}).then(()=>{t.needReloadPage&&location.reload()}):window.location.href=t.url},complete:()=>b()})}),$("#convertquote").on("click",function(){if(!($(this).data("canconvertquote")||$(this).data("canconvertsample")&&["SAMPLE","GIFT"].includes(e.orderpurpose)))return P(),!1;if($(this).data("countlines")==0)return Swal.fire({title:"Невозможно конвертировать счет",text:"Ваш счет пуст. Пожалуйста, добавьте товары в существующий счет или создайте новый счет",icon:"error"}),!1;if(this.dataset.needSuggestChangeConsignee=="1"){document==null||document.getElementById("setConsigneeButton").classList.add("d-none"),document==null||document.getElementById("setConsigneeButtonAndConvertOrder").classList.remove("d-none");let t=bootstrap.Modal.getInstance("#setConsigneeModal");return t?(t.show(),!1):(new bootstrap.Modal("#setConsigneeModal").show(),!1)}Swal.fire({title:"Вы действительно хотите утвердить заказ?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(t=>{t.isConfirmed&&Z()})}),$("form[name='convertQuoteToOrderForm']").on("submit",function(t){t.preventDefault(),$.ajax({method:"POST",url:$(this).attr("action"),data:$(this).serializeArray(),dataType:"json",beforeSend:()=>f(),success:function(n){if($("#convertQuoteToOrderModal").modal("hide"),n.errorsConvertations)return Swal.fire({title:n.title,html:"<ol class='text-start'>"+n.errorsConvertations.map(function(a){return`<li>${a}</li>`}).join("")+"</ol>",icon:"error"}).then(()=>{location.reload()}),!1;Swal.fire({title:n.title,html:n.message,icon:n.status}).then(()=>{n.url&&location.replace(n.url)})},complete:()=>b()})}),$("form[name='changePaymentTermsForm']").validate({errorClass:"is-invalid",rules:{newPaymentTerms:{required:!0,number:!0}},messages:{newPaymentTerms:{required:"Пожалуйста, выберите отсрочку"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n){$(t).addClass(n)},unhighlight:function(t,n){$(t).removeClass(n)},submitHandler:function(t){t=$("form[name='changePaymentTermsForm']"),$.ajax({method:"POST",url:t.attr("action"),dataType:"json",data:t.serializeArray(),beforeSend:function(){t.find("button[type='submit']").blockButton()},success:function(n){Swal.fire(n.title,n.message,n.status).then(()=>{n.status=="success"&&location.reload()})},complete:function(){t.find("button[type='submit']").unblockButton()}})}}),$("#changePaymentTermsModal").on("hidden.bs.modal",function(){let t=$("form[name='changePaymentTermsForm']");t.find("select").val(-1).trigger("change"),t.find("input, select, textarea").removeClass("is-invalid is-valid"),t.find("button[type='submit']").unblockButton()}),$("#newPaymentTerms").on("change",function(){let t=$(this).find(":selected");if(t.attr("data-markupsum"))return $("#paymentTermsMarkupSum").text(T(t.attr("data-markupsum"))),!0;$.ajax({method:"POST",url:route("quotes.get_markup_payment_terms",{ordernumber:$(this).attr("data-ordernumber")}),data:{newPaymentTerms:t.val()},success:function(n){$("#paymentTermsMarkupSum").text(T(n.markupSum)),t.attr("data-markupsum",n.markupSum)}})}),$("form[name='changePaymentTermsForm'] input[name='isPayingByBonus']").on("change",function(){$(this).val()==1?$("#paymentTermsMarkupText").text("Сумма списываемых бонусов:"):$("#paymentTermsMarkupText").text("Сумма, на которую увеличится счет:")}),$("form[name='changeContractDataForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{IGK:{required:!1,NoSpecialChars:!0},supplyContract:{required:!1,NoSpecialChars:!0},contractSpecification:{required:!1,NoSpecialChars:!0},paymentOrderNumber:{required:function(){return $("input[name='paymentOrderDate']").val()!=""},NoSpecialChars:!0},paymentOrderDate:{required:function(){return $("input[name='paymentOrderNumber']").val().trim()!=""}},objectNameGK:{required:!1,NoSpecialChars:!0},paymentTermsGK:{required:!1,number:!0}},messages:{paymentOrderNumber:{required:"Номер платежного поручения должен быть заполнен"},paymentOrderDate:{required:"Дата платежного поручения должна быть заполнена"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='changeContractDataForm']"),n={};n.id=t.find("select[name='paymentTermsGK']").val()!=null?t.find("select[name='paymentTermsGK']").val():t.find("select[name='paymentTermsGK'] option[disabled]:selected").val(),t.find("button[type='submit']").blockButton();let a={};$.each(t.serializeArray(),function(){a[this.name]=this.value.trim()}),a.paymentTermsGK=n.id,$.ajax({method:"POST",url:t.attr("action"),dataType:"json",data:a,success:function(i){Swal.fire(i.title,i.message,i.status).then(()=>location.reload())}})}}),$("#changeContractDataModal").on("hidden.bs.modal",function(){let t=$("form[name='changeContractDataForm']");x(t)}),$("#printExampleInvoice").on("click",function(){window.open(route("quotes.print_example_invoice",{ordernumber:$(this).attr("data-ordernumber")})+"?"+$("form[name='changeContractDataForm']").serialize())}),(r=document.querySelectorAll("#getprojectdiscount, .get-project-discount"))==null||r.forEach(t=>{t.addEventListener("click",()=>{if(e.projectCard==null){Ge();return}ue()})}),$("#projectDiscountModal .vendor-contactperson-select").each(function(){$(this).on("change",()=>{$(this).attr("data-oldvalue",$(this).val())})}),$("#projectDiscountModal").on("show.bs.modal",function(){$("#projectDiscountReasonBrand").select2({placeholder:"Бренды",allowClear:!1,matcher:J,dropdownParent:$("#projectDiscountReasonBrand").parent("div")}),$("#projectDiscountReasonBrand").val("").trigger("change"),$(".vendor-contactperson-select").each(function(){var n;$(this).select2({placeholder:"Контактные лица",allowClear:!0,theme:"bootstrap4",multiple:!0,dropdownParent:$(this).parent("div"),sorter:ge,templateResult:function(a){if
37(a.element==null)return $(`<span>${a.text}</span>`);let i=a.element.getAttribute("data-vendornumber"),p=a.element.getAttribute("data-vendorname"),h="";return i.length!=0&&(h="(",i.length!=0&&(h+=i),p.length!=0&&(h+=" "+p),h+=")"),$(`<span class="fw-semibold">
38                                ${a.text}
39                            </span>
40                            <span class="text-sm">
41                                ${h}
42                            </span>`)},templateSelection:function(a){if(a.element==null)return $(`<span>${a.text}</span>`);let i=a.element.getAttribute("data-vendornumber"),p=a.element.getAttribute("data-vendorname"),h="";return i.length!=0&&(h="(",i.length!=0&&(h+=i),p.length!=0&&(h+=" "+p),h+=")"),$(`<span class="fw-semibold">
43                            ${a.text}
44                        </span>
45                        <span class="text-sm">
46                            ${h}
47                        </span>`)}}).on("select2:select",ve);const t=(n=$(this).attr("data-oldvalue"))==null?void 0:n.split(",");if(t!=null&&(t==null?void 0:t.length)!=0)$(this).val(t).trigger("change");else{const a=$(this).find("option").map(function(){return $(this).val()}).get();$(this).val(a).trigger("change")}}),$("#projectDiscountReasonBrandContainer, #projectDiscountReasonTextarea").addClass("d-none")}),$("#projectDiscountModal").on("shown.bs.modal",function(){if(e.lastProjectRequest!=null){let t=e.lastProjectRequest.projectremark.split("|"),n=document.getElementById(t[0]);if(n!=null&&(n.checked=!0,n.dispatchEvent(new Event("change",{bubbles:!0})),t.length==2))if(document.getElementById("projectDiscountReasonBrandContainer").classList.contains("d-none"))document.getElementById("projectDiscountReasonTextarea").value=t[1];else{let a=document.getElementById("projectDiscountReasonBrand");a.value=t[1],a.dispatchEvent(new Event("change",{bubbles:!0}))}}}),$("#projectsListModal").on("show.bs.modal",function(){isEmployee||O()}),$("#projectsListModal #filterProjectsListForm").on("keyup",function(t){t.key==="Enter"&&O()}),$("#projectsListModal #filterProjectsSubmitButton").on("click",function(){document.getElementById("projectsListModal").querySelector("input[name='inSearch']").value="yes",O()}),$("#projectsListModal #filterProjectsResetButton").on("click",function(){he()}),(s=document.getElementById("sendProjectRequest"))==null||s.addEventListener("click",ue),$("#projectDiscountReasonBrand").on("change",t=>$(t.target).removeClass("is-invalid")),$("#projectDiscountModal input[type='radio'][name='projectDiscountReason']").on("change",function(t){const n=t.target.dataset.type;$("#projectDiscountReasonBrandContainer, #projectDiscountReasonTextarea").addClass("d-none"),n=="brand"?$("#projectDiscountReasonBrandContainer").removeClass("d-none"):n=="text"&&$("#projectDiscountReasonTextarea").removeClass("d-none")}),$("#showcopy").on("click",function(){$.ajax({url:route("quotes.index"),data:{inSearch:"reset"},success:function(){window.location.href=route("quotes.index",{copyQuoteNumber:$("#showcopy").attr("data-ordernumber"),inSearch:"yes"})}})}),$("#setInactiveButton").on("click",function(){this.getAttribute("data-ask-for-reason")?(bootstrap.Modal.getOrCreateInstance(document.getElementById("setInactiveReasonModal")).show(),document.querySelector("input[name='reason']").checked=!0,document.getElementById("otherReasonBlock").classList.add("d-none")):Swal.fire({title:"Вы действительно хотите отметить счет как неактуальный?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(t=>{t.isConfirmed&&$.ajax({method:"POST",url:route("quotes.set_inactive",{ordernumber:$(this).attr("data-ordernumber")}),success:function(n){n.status=="success"?($("#inactiveAlert").removeClass("d-none").addClass("d-inline"),$("#setInactiveButton").addClass("disabled text-secondary").removeClass("text-danger")):Swal.fire(n.title,n.message,n.status)}})})}),$("#sendPdfButton").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;if(e.adressnnumberFromOrder.trim()==="")return Swal.fire({title:"Предупреждение",text:"Вы не выбрали адрес получения",icon:"info"}).then(()=>{q()}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;
47if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1;$(this).attr("data-ispaiddelivery")=="1"&&e.PaymentTermsNumber!=0?$("#payTypeForSendMail").removeClass("d-none"):$("#payTypeForSendMail").addClass("d-none"),$("#sendPdfModal").modal("show")}),$("#selectEmailPdf").on("change",function(){$(this).val()=="anotherEmail"?$("#inputEmailPdfBlock").removeClass("d-none").addClass("d-block"):$("#inputEmailPdfBlock").removeClass("d-block").addClass("d-none"),$("#inputSenderMessageTextBlock").hasClass("d-none")&&$("#inputSenderMessageTextBlock").removeClass("d-none").addClass("d-block")}),$("form[name='sendPdfForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{selectEmailPdf:{required:!0},inputEmailPdf:{required:{depends:function(){return $("#selectEmailPdf").val()=="anotherEmail"}},EmailRegex:{depends:function(){return $("#selectEmailPdf").val()=="anotherEmail"}}},inputSenderMessageText:{NoSpecialChars:!0}},messages:{selectEmailPdf:{required:"Пожалуйста, выберите адресата"},inputEmailPdf:{required:"Пожалуйста, введите E-mail"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='sendPdfForm']");t.find("button[type='submit']").blockButton();let n=$("#selectEmailPdf").val()=="anotherEmail"?$("#inputEmailPdf").val():$("#selectEmailPdf").val();$.ajax({method:"POST",url:t.attr("action"),data:{sendEmail:n,senderMessageText:$("#inputSenderMessageText").val(),selectedOption:t.find("input[name='selectedOption']:checked").val()},dataType:"json",beforeSend:()=>f(),success:function(a){route().current("quotes.*")&&(isCustomer&&($("#sendPdfButton").closest("td").find("i.far.fa-check").removeClass("d-none"),$("#sendPdfButton").find("i.fa-circle-check").removeClass("d-none")),z("sendQuotePdf")),Swal.fire(a.title,a.message,a.status),$("#sendPdfModal").modal("hide")},complete:()=>b()})}}),$("#sendPdfModal").on("hidden.bs.modal",function(){let t=$("form[name='sendPdfForm']");x(t),t.find("button[type='submit']").unblockButton(),$("#inputEmailPdfBlock").removeClass("d-block").addClass("d-none"),$("#inputSenderMessageTextBlock").removeClass("d-block").addClass("d-none")}).on("shown.bs.modal",function(){$("#selectEmailPdf").trigger("focus")}),$("#printschet").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;if(e.adressnnumberFromOrder.trim()==="")return Swal.fire({title:"Предупреждение",text:"Вы не выбрали адрес получения",icon:"info"}).then(()=>{q()}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1;$(this).data("ispaiddelivery")&&e.PaymentTermsNumber!=0?$("#allocateDeliveryForPrintModal").modal("show"):isEmployee?($("#payType").addClass("d-none"),$("#allocateDeliveryForPrintModal").modal("show")):(isCustomer&&($("#printschet").closest("td").find("i.far.fa-check").removeClass("d-none"),$("#printActions").find("i.fa-circle-check").removeClass("d-none")),z("sendQuotePdf"),window.open(route("quotes.print_schet",{ordernumber:$("#printschet").attr("data-ordernumber"),excel:1})))}),$("form[name='allocateDeliveryForPrintForm']").on("submit",function(){isCustomer&&($("#printschet").closest("td").find("i.far.fa-check").removeClass("d-none"),$("#printActions").find("i.fa-circle-check").removeClass("d-none")),z("sendQuotePdf"),$("#allocateDeliveryForPrintModal").modal("hide")}),$("#printschettocustomer").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;if(!isEmployee){if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;
47if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1}$("#printToCustomerModal").modal("show")}),$("#splitquote").on("click",function(){if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if($(this).attr("data-qtyforsplitquote")<=1)return u("Для разбития счета по датам необходимо наличие строк с разными сроками поставки"),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1;!isAgent||e.qtycustomers==0?ie(e.orderCustomerNumber,route("quotes.split_quote",{ordernumber:$(this).attr("data-ordernumber")})):$("#selectCustomerModal").modal("show")}),$("#splitAvailableAndToPurchase").on("click",async function(){var t;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(((t=e.lastProjectRequest)==null?void 0:t.canceleddate)==" "&&!await A(!1))return!1;if(e.checksrok==1)return u("Идет расчет сроков. Вы можете разбить счет после проставления сроков или отменить расчет сроков"),!1;if(e.isactual<0)return Swal.fire({title:messages.unavailable_action,text:"Обновите счет",icon:"error"}),!1;if(e.orderpurpose=="SAMPLE")return Swal.fire({title:"Ошибка",text:"Счета с образцами не подлежат разбитию",icon:"error"}),!1;if(e.orderpurpose=="GIFT")return Swal.fire({title:"Ошибка",text:"Счета с рекламной продукцией не подлежат разбитию",icon:"error"}),!1;$.ajax({url:route("quotes.split_avail_and_to_purchase",{ordernumber:$(this).attr("data-ordernumber"),log:1}),method:"POST",dataType:"json",beforeSend:()=>f(),success:function(n){n&&Swal.fire(n.title,n.message,n.status).then(()=>{n.transportCompanyDeleted?Swal.fire(C).then(()=>{n.reload&&location.reload()}):n.reload&&location.reload()})},complete:()=>b()})}),$(".getCustomerForSplitQuote").on("click",function(){ie($(this).data("customernumber"),route("quotes.split_quote",{ordernumber:$("#splitquote").attr("data-ordernumber")})),$("#selectCustomerModal").modal("hide")}),$("#printschetexcel").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;if(isCustomer){if(e.adressnnumberFromOrder.trim()==="")return Swal.fire({title:"Предупреждение",text:"Вы не выбрали адрес получения",icon:"info"}).then(()=>{q()}),!1;if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1}return!0}),$("#savePdf, #savePdfDropdown").on("click",function(){if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;if(e.adressnnumberFromOrder.trim()==="")return Swal.fire({title:"Предупреждение",text:"Вы не выбрали адрес получения",icon:"info"}).then(()=>{q()}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;
47if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1;isCustomer&&($("#savePdf").closest("td").find("i.far.fa-check").removeClass("d-none"),$("#printschetexcel").find("i.fa-circle-check").removeClass("d-none")),z("sendQuotePdf"),$(this).attr("data-ispaiddelivery")=="1"&&e.PaymentTermsNumber!=0?Swal.fire({title:"Как Вы хотите добавить услугу доставки в счет?",input:"radio",inputOptions:{1:"Включить в стоимость товаров",0:"Добавить отдельной строкой"},inputValidator:t=>{if(!t)return"Выберите способ добавления услуги доставки"}}).then(t=>{t.value&&U(route("quotes.save_pdf",{ordernumber:$(this).attr("data-ordernumber"),selectedOption:t.value}))}):U(route("quotes.save_pdf",{ordernumber:$(this).attr("data-ordernumber")}))}),$("#saveExcel").on("click",function(){U(route("quotes.print_excel",{ordernumber:$(this).attr("data-ordernumber")}))}),$(".show-pay-or-reserve-options").on("click",function(){if(e.adressnnumberFromOrder.trim()==="")return Swal.fire({title:"Предупреждение",text:"Вы не выбрали адрес получения",icon:"info"}).then(()=>{q()}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Дождитесь расчета сроков или отмените его",icon:"warning"}),!1;if(e.dateOfLastDateCalc==""||e.dateOfLastDateCalc<e.formated_date)return u('Вы не обновили даты. Нажмите кнопку "Рассчитайте сроки"'),!1;if(e.existLinesWOdate==1)return Swal.fire({title:"В счете есть позиции без даты поставки",html:"Рассчитайте сроки<br>Если срок неизвестен, удалите данные позиции<br>или/и <a href='https://wiki.smart-shop.pro/index.php/Инструкции_Smart-Shop:Показать_аналоги' target='_blank'>подберите аналоги</a>",icon:"warning"}),!1;this.classList.contains("show-pay-or-reserve-options")&&new bootstrap.Modal(document.getElementById("reserveOrPayModal")).show()}),$(".commitChangeDeliveryDate").on("click",function(){let t=$(this).closest(".itemLine"),n=moment(t.find('input[name="planDate"]').val(),"YYYY-MM-DD"),a=moment(t.find('input[name="planDate"]').data("lastvalue"),"YYYY-MM-DD");if(n.isSameOrBefore(a))return Swal.fire({title:"Ошибка редактирования даты",text:"Вы ввели дату меньше текущей даты доставки",icon:"error"}),!1;if(n.isAfter(a.add(2,"Y")))return Swal.fire({title:"Ошибка редактирования даты",text:"Максимальная дата доставки ограничена датой: "+a.format("DD.MM.YYYY"),icon:"error"}),!1;$.ajax({method:"POST",url:route("quotes.edit_date_line",{ordernumber:$(this).attr("data-ordernumber")}),dataType:"json",data:{planDate:n.format("DD.MM.YYYY"),lineNumber:t.data("linenumber")},beforeSend:()=>f(),success:function(i){i.status=="error"?(b(),Swal.fire(i.title,i.message,i.status).then(()=>location.reload())):i.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload()}})}),$(".changePrice").on("click",async function(){var t;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(((t=e.lastProjectRequest)==null?void 0:t.canceleddate)==" "&&!await A())return!1;re(this)}),$(".commitPrice").on("click",function(){let t=$(this).closest(".itemLine"),n=t.find('input[name="price"]');$.ajax({method:"POST",url:route("quotes.edit_price_line",{ordernumber:$(this).attr("data-ordernumber")}),data:{price:n.val(),lineNumber:t.data("linenumber")},beforeSend:()=>f(),success:function(a){a.status=="success"?a.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload():Swal.fire(a.title,a.message,a.status).then(()=>location.reload())}})}),$(".changeLineQuote").on("click",async function(){var t;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(((t=e.lastProjectRequest)==null?void 0:t.canceleddate)==" "&&!await A(!1))return!1;if(e.orderpurpose=="SAMPLE")return Swal.fire({title:"Ошибка редактирования количества",text:"Нельзя изменить количество товара по счету с образцами",icon:"error"}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Вы можете изменить количество в строке счета после проставления сроков или отменив расчет сроков",icon:"info"}),!1;if(e.orderpurpose=="GIFT")return Swal.fire({title:"Ошибка редактирования количества",text:"Счета с рекламной продукцией не подлежат корректировке по ассортименту и количеству",icon:"error"}),!1;re(this)}),$(".deleteLineQuote").on("click",async function(){var n;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(((n=e.lastProjectRequest)==null?void 0:n.canceleddate)==" "&&!await A(!1))return!1;if(e.orderpurpose=="SAMPLE")return Swal.fire({title:"Нельзя удалять позиции в счете с образцами",text:"",icon:"error"}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Вы можете удалить позицию в счете после проставления сроков или отменив расчет сроков",icon:"error"}),!1;let t=$(this).closest(".itemLine");if(e.orderpurpose=="GIFT")return Swal.fire({title:"Счета с рекламной продукцией не подлежат корректировке по ассортименту и количеству",text:"",icon:"error"}),!1;Swal.fire({title:"Вы действительно хотите удалить позицию?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(a=>{a.isConfirmed&&Swal.fire({title:"В счете были внесены изменения, все скидки отменены",text:"",icon:"info"}).then(()=>{$.ajax({method:"POST",url:route("quotes.delete_line",{ordernumber:$(this).attr("data-ordernumber")}),data:{linenumber:t.attr("data-linenumber")},beforeSend:()=>f(),success:function(i){i.title||i.message||i.status?Swal.fire(i.title,i.message,i.status).then(()=>location.reload()):i.transportCompanyDeleted?Swal.fire(C).then(()=>location.reload()):location.reload()},complete:()=>b()})})})}),$(".openUploadQuestionnaireModal").on("click",function(){if(e.customertype==7
47){Swal.fire({title:"Ошибка",text:messages.unavailable_action,icon:"error"});return}let t=$(this);$.ajax({method:"POST",url:route("quotes.get_questionnaire_info",{ordernumber:$(this).attr("data-ordernumber")}),data:{itemNumber:$(this).data("itemnumber"),questionnaire:$(this).data("questionnaire")},success:function(n){$("#productManagerContactInfo").text(n.pmMail+" "+n.pmFio),$("#downloadQuestionnaire").attr("href",n.link),$("#downloadQuestionnaire").html("<i class='far fa-file me-1'></i><span id='questionnaireName'>"+n.name+"</span>"),$('form[name="uploadQuestionnaireForm"] input[name="lineNumber"]').val(t.closest(".itemLine").data("linenumber")),$("#uploadQuestionnaireModal").modal("show")}})}),$("#downloadQuestionnaire").on("click",function(t){t.preventDefault(),$e($(this).attr("href"),$("questionnaireName").text()),b()}),$("#uploadQuestionnaireModal").on("hidden.bs.modal",function(){let t=$("form[name='uploadQuestionnaireForm']");x(t),t.find("button[type='submit']").unblockButton()}),$("form[name='uploadQuestionnaireForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{objectName:{required:!0,minlength:3},endCustomerName:{required:!0,NoSpecialChars:!0},fileField:{required:!0,extension:"txt|xls|xlsx|doc|docx",maxFileSize:{unit:"MB",size:"5"}}},messages:{objectName:{required:"Пожалуйста, введите название объекта",minlength:"Пожалуйста, введите корректное название объекта"},endCustomerName:{required:"Пожалуйста, введите название конечного клиента"},fileField:{required:"Пожалуйста, укажите файл"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(t){t=$("form[name='uploadQuestionnaireForm']"),t.find("button[type='submit']").blockButton();let n=xe(t.find("input[name='fileField']"),"Orders_Questionnaires",route("fileservice.upload_file"),t.data("ordernumber"),t.find("input[name='lineNumber']").val());if(!n.status)return Swal.fire("Не удалось загрузить файл",n.message,"error"),$("#uploadQuestionnaireModal").modal("hide"),!1;let a=new FormData;a.append("fileField",t.find("input[name='fileField']").prop("files")[0]),t.serializeArray().map(function(i){a.append(i.name,i.value)}),$.ajax({url:t.attr("action"),method:"POST",data:a,dataType:"json",cache:!1,processData:!1,contentType:!1,success:function(i){Swal.fire(i.title,i.message,i.status).then(()=>{i.status=="success"?location.reload():$("#uploadQuestionnaireModal").modal("hide")})}})}}),$("#changepaymentterms").on("click",async function(){if(!e.canChangePaymentTerms)return P(),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(e.needShowPaymentTerms<=0){Swal.fire({title:"Ошибка",text:"Невозможно увеличить отсрочку платежа",icon:"error"});return}if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;$("#changePaymentTermsModal").modal("show")}),$("#refreshquote").on("click",function(){le()}),$("#optimizedates").on("click",function(){if($(this).data("existplandates")==0)return Swal.fire({title:"Не удалось объединить даты доставки",text:"Нет плановой даты поставки ни по одной позиции",icon:"error"}),!1;let t=document.getElementById("planDateTh"),n=document.getElementById("itemsBlockHeading");n.style.width=(t.offsetLeft-5).toString()+"px",$(".checkforoptimizedates").removeClass("d-none").addClass("d-table-cell"),$(".checkforoptimizedatesblock").removeClass("d-none").addClass("d-block"),document.querySelectorAll(".plan-date-td").forEach(a=>{a.style.setProperty("background-color","var(--bs-gray-100)","important")}),$("#optimizedates").addClass("d-none"),$(".delivery-date-label").addClass("d-none")}),$("input[type='checkbox'].foroptimizedates").on("change",function(){$("input[type='checkbox'].foroptimizedates:visible").length==$("input[type='checkbox'].foroptimizedates:visible:checked").length?$(".selectAllforoptimizedates").prop("checked",!0):$(".selectAllforoptimizedates").prop("checked",!1)}),$(".selectAllforoptimizedates").on("change",function(){$(this).prop("checked")?$("input[type='checkbox'].foroptimizedates:visible:not(:checked)").prop("checked",!0).trigger("change"):$("input[type='checkbox'].foroptimizedates:visible").prop("checked",!1).trigger("change")}),$("#btnoptimizedates").on("click",function(){let t=$('input[type="checkbox"].foroptimizedates:visible:checked');if(t.length==0)return Swal.fire({title:"Не удалось объединить даты доставки",text:"Нет выбранных строк",icon:"error"}),!1;let n=[];t.each(function(){let a=$(this).closest(".itemLine").data("linenumber");n.push(a)}),$.ajax({method:"POST",url:route("quotes.optimize_date",{ordernumber:$(this).attr("data-ordernumber")}),dataType:"json",data:{lineNumberArr:n},beforeSend:()=>f(),success:function(a){Swal.fire(a.title,a.message,a.status).then(()=>{a.status=="success"&&(a.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload())})},complete:()=>b()})}),$("#openQuoteEditLines").on("click",async function(){var n;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(e.orderpurpose=="SAMPLE")return Swal.fire({title:"Ошибка редактирования количества",text:"Нельзя изменить количество товара по счету с образцами",icon:"error"}),!1;if(e.checksrok==1)return Swal.fire({title:"Идет расчет сроков",text:"Вы можете изменить количество в строке счета после проставления сроков или отменив расчет сроков",icon:"info"}),!1;if(e.orderpurpose=="GIFT")return Swal.fire({title:"Ошибка редактирования количества",text:"Счета с рекламной продукцией не подлежат корректировке по ассортименту и количеству",icon:"error"}),!1;if(((n=e.lastProjectRequest)==null?void 0:n.canceleddate)==" "&&!await A(!1))return!1;$("#editQuoteLines").removeClass("d-none"),$("#openQuoteEditLines").addClass("disabled");let t=document.querySelectorAll(".changeLineQuote");Se(t)}),$("#saveQuoteEditLines").on("click",function(){f();let t=new Object,n="",a="",i="",p="",h="",g=new Object,v=new Object,w="",B='<table class="table table-striped"><tbody>',L="</tbody></table>";if($(".table tbody tr.itemLine").each(function(){a=$(this).data("linenumber"),i=$(this).data("reserve"),p=$(this).data("itemnumber"),n=$(this).find('input[name="quantity"]').val().trim(),h=$(this).find('input[name="quantity"]').data("lastvalue"),n==""||isNaN(n)||n<0||n>1e5?(v[a]={quantity:h,reserve:i,itemNumber:p},t[a]={text:"Количество введено неверно"}):(v[a]={quantity:n,reserve:i,itemNumber:p},n!=h&&$(this).data("itemgroup")!=1&&(g[a]={quantity:n,reserve:i,itemNumber:p}))}),Object.keys(t).length!=0){b(),w="";for(let k in t)w+="<tr><td nowrap>Стр. "+k+"</td><td>"+t[k].text+"</td></tr>";
47$("#errorModalBody").html(B+w+L),$("#errorBulkChangeModal").modal("show")}else Object.keys(g).length!=0?$.ajax({method:"POST",url:route("common.edit_line",{ordernumber:$(this).attr("data-ordernumber")}),data:{jsonData:JSON.stringify(g),jsonDataDubl:JSON.stringify(v),linenumber:0,quantity:0},success:function(k){if(b(),k.status)if(k.status=="error"){if(w="",k.errorArray){for(var oe in k.errorArray)w+="<tr><td nowrap>Стр. "+oe+"</td><td>"+k.errorArray[oe]+"</td></tr>";$("#errorModalBody").html(B+w+L)}else $("#errorModalBody").html(k.message);$("#errorBulkChangeModal").modal("show")}else Swal.fire({title:k.title,html:k.message,icon:k.status,timer:k.timer}).then(()=>{k.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload()});else Swal.fire({title:"Ошибка изменения количества",text:messages.please_contact_support,icon:"error"})}}):(b(),ne())}),$(".quantity-mobile input[name='quantity']").on("change",function(){let n=$(this).closest(".itemLine").attr("data-linenumber"),a=document.querySelector("#quoteItemsTable tr.itemLine[data-linenumber='"+n+"'] input[name='quantity']");a.value=this.value}),isEmployee&&($("#refreshQuote").on("click",function(){Swal.fire({title:"Обновление счета",text:"Обновление счета приведет к отмене всех типов скидок и актуализации цен. Продолжить?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(t=>{t.isConfirmed&&$.ajax({method:"POST",url:route("quotes.refresh",{ordernumber:$(this).attr("data-ordernumber")}),dataType:"json",beforeSend:function(){f()},success:function(n){Swal.fire({title:n.title,html:n.message,icon:n.status,timer:5e3}).then(()=>{n.status=="success"&&(n.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload())})},complete:function(){b()}})})}),$("form[name='changeSalesPersonForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{salesPersonNumber:{required:!0,number:!0}},messages:{salesPersonNumber:{required:"Пожалуйста введите № менеджера",number:"Пожалуйста введите корректный № менеджера"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(t){t=$("form[name='changeSalesPersonForm']"),t.find("button[type='submit']").blockButton();let n=t.find("select[name='salesPersonNumber']").val().trim();$.ajax({method:"POST",url:t.attr("action"),data:{salesPersonNumber:n},success:function(a){if(a.salesPerson){Swal.fire(a.title,a.message,a.status),t.data("lastvalue",n),$("#salesPersonPlace").text(n+" "+a.salesPerson);const i=a.salesPersonPhone||"",p=document.getElementById("salesPersonPhoneBlock");if(p){const h=i.replace(/\D/g,""),g=h?"+"+h:"",v=p.querySelector(".d-pointer-coarse-none"),w=p.querySelector(".d-pointer-coarse-inline a"),B=p.querySelector("#salesPersonPhoneCopy a");v&&(v.textContent=i),w&&(w.textContent=i,w.setAttribute("href",g?"tel:"+g:"")),B&&(B.dataset.clipboardText=g),p.classList.toggle("d-none",i.trim()==="")}$("#changeSalesPersonModal").modal("hide")}else Swal.fire(a.title,a.message,a.status),t.find("button[type='submit']").unblockButton()}})}}),$("#changeSalesPersonModal").on("shown.bs.modal",function(){$("#changeSalesPersonModal").find("#salesPersonNumber").not(".employee-autocomplete").select2({theme:"bootstrap4",dropdownParent:$("#salesPersonNumber").closest("div"),allowClear:!0,placeholder:"Введите таб.номер или ФИО",minimumResultsForSearch:-1}).on("select2:unselecting",function(){$(this).data("unselecting",!0)}).on("select2:opening",function(t){$(this).data("unselecting")&&($(this).removeData("unselecting"),t.preventDefault())})}).on("hidden.bs.modal",function(){let t=$("form[name='changeSalesPersonForm']");t.find('input[type="text"]').val(t.data("lastvalue")),t.find("input, select, textarea").removeClass("is-invalid is-valid"),t.find("button[type='submit']").unblockButton()}),$("#applyManualFutureSmarts").on("click",function(){if(!e.canChangeManualFutureSmarts)return Swal.fire({title:messages.no_access,icon:"error"}),!1;if(e.existsMarkup)return Swal.fire({title:"Невозможно предоставить смарты",text:"В счете применена наценка. Обновите цены в счете для предоставления смартов",icon:"error"}),!1;if(e.appliedMainDiscountSum>0)return Swal.fire({title:"Невозможно предоставить смарты",text:"Бон
47ус по счету уже применен. Обновите цены в счете для предоставления смартов",icon:"error"}),!1;if(e.changedPaymentTerms)return Swal.fire({title:"Невозможно предоставить смарты",text:"В счете увеличена отсрочка платежа",icon:"error"}),!1;if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;$.ajax({method:"POST",url:route("quotes.apply_manual_future_smarts",{ordernumber:e.ordernumber}),beforeSend:()=>f(),success:function(t){Swal.fire({title:t.title,text:t.message,icon:t.status}).then(()=>{t.status=="success"&&location.reload()})},complete:()=>b()})}),$("#applyManualFutureBonus").on("click",function(){if(!e.canChangeManualFutureBonus)return Swal.fire({title:messages.no_access,icon:"error"}),!1;if(e.existsMarkup)return Swal.fire({title:"Невозможно применить бонус",text:"В счете применена наценка. Обновите цены в счете для получения бонуса",icon:"error"}),!1;if(e.appliedMainDiscountSum>0)return Swal.fire({title:"Невозможно применить бонус",text:"Бонус по счету уже применен",icon:"error"}),!1;if(e.changedPaymentTerms)return Swal.fire({title:"Невозможно применить бонус",text:"В счете увеличена отсрочка платежа",icon:"error"}),!1;if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;$("#applyManualFutureBonusModal").modal("show")}),$("form[name='applyManualFutureBonusForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{manualFutureBonus:{required:!0,digits:!0}},messages:{manualFutureBonus:{required:"Пожалуйста, введите сумму бонуса",digits:"Пожалуста, введите целое число"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='applyManualFutureBonusForm']");t.find("button[type='submit']").blockButton(),$.ajax({url:t.attr("action"),method:"POST",data:t.serialize(),beforeSend:()=>f(),success:function(n){Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>{n.status=="success"?location.reload():$("#applyManualFutureBonusModal").modal("hide")})},complete:()=>b()})}}),$("#applyManualFutureBonusModal").on("hide.bs.modal",function(){let t=$("form[name='applyManualFutureBonusForm']");x(t),t.find("button[type='submit']").unblockButton()}),(m=document.getElementById("applyManualDiscountOrMarkup"))==null||m.addEventListener("click",()=>{if(!e.canMakeManualDiscount)return Swal.fire({title:messages.no_access,icon:"error"}),!1;if(e.orderpurpose=="GIFT")return Swal.fire({title:"Невозможно применить скидку",text:"Действие неприменимо для данного счета",icon:"error"}),!1;if(e.hasopenpricerequests==1)return u(e.wrnopenpricerequests),!1;new bootstrap.Modal(document.getElementById("applyManualDiscountOrMarkupModal")).show()}),$("form[name='applyManualDiscountOrMarkupForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{manualDiscountSum:{number:!0,min:.01,requireOnlyOne:".require-only-one-manual-discount-markup"},manualDiscountPercent:{number:!0,min:.01,max:100,requireOnlyOne:".require-only-one-manual-discount-markup"},manualMarkupSum:{number:!0,min:.01,requireOnlyOne:".require-only-one-manual-discount-markup"},manualMarkupPercent:{number:!0,min:.01,max:100,requireOnlyOne:".require-only-one-manual-discount-markup"}},messages:{manualDiscountSum:{number:"Пожалуста, введите корректное число",min:"Число должно быть положительным"},manualDiscountPercent:{number:"Пожалуста, введите корректное число",min:"Число должно быть положительным",max:"Число должно быть меньше 100"},manualMarkupSum:{number:"Пожалуста, введите корректное число",min:"Число должно быть положительным"},manualMarkupPercent:{number:"Пожалуста, введите корректное число",min:"Число должно быть положительным",max:"Число должно быть меньше 100"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='applyManualDiscountOrMar
47kupForm']");t.find("button[type='submit']").blockButton(),$.ajax({url:t.attr("action"),method:"POST",data:t.serialize(),beforeSend:()=>f(),success:function(n){Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>{n.status=="success"?location.reload():$("#applyManualDiscountOrMarkupModal").modal("hide")})},complete:()=>{b(),t.find("button[type='submit']").unblockButton()}})}}),$("#applyManualDiscountOrMarkupModal").on("hide.bs.modal",function(){let t=$("form[name='applyManualDiscountOrMarkupForm']");x(t),t.find("button[type='submit']").unblockButton()}),(c=document.getElementById("editPaymentTermsInQuote"))==null||c.addEventListener("click",()=>{if(!e.canChangePaymentTermsInQuote)return Swal.fire({title:messages.no_access,icon:"error"}),!1;bootstrap.Modal.getOrCreateInstance("#editPaymentTermsModal").show()}),$("form[name='editPaymentTermsForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{paymentTerms:{required:!0}},messages:{paymentTerms:{required:"Пожалуйста, выберите отсрочку платежа"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(){let t=$("form[name='editPaymentTermsForm']");t.find("button[type='submit']").blockButton(),$.ajax({url:t.attr("action"),method:"POST",data:{paymentTerms:t.find("select").val()},beforeSend:()=>f(),success:function(n){Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>{n.status=="success"?location.reload():bootstrap.Modal.getOrCreateInstance("#editPaymentTermsModal").hide()})},complete:()=>{b(),t.find("button[type='submit']").unblockButton()}})}}),$("#editPaymentTermsModal").on("hide.bs.modal",function(){let t=$("form[name='editPaymentTermsForm']");x(t),t.find("button[type='submit']").unblockButton()}),(d=document.getElementById("addToBasketForAnalog"))==null||d.addEventListener("click",async function(){f();let t=await $.ajax({url:route("quotes.check_is_filled_basket"),method:"POST"});t=Number(t);let n=t;if(t){if(b(),n=await Swal.fire({title:"Подор аналогов по счету",icon:"info",html:"В корзине находятся товары.<br>Хотите ли Вы удалить товары из корзины?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}),n.isConfirmed==!1)return;n=1}$.ajax({url:route("quotes.add_basket_for_analog",{ordernumber:e.ordernumber}),method:"POST",data:{needClearBasket:n},beforeSend:()=>f(),success:function(){location.href=route("basket.index")},complete:()=>{b()}})})),$(".change-client-to-reserve").on("click",async function(t){if($(t.target).closest('[data-action="quote:stop-propagation"]').length)return;if(e.checksrok==1)return Swal.fire({title:messages.unavailable_action,text:"Идет расчет сроков",icon:"error"}),!1;if(e.isactual<0)return Swal.fire({title:messages.unavailable_action,text:"Обновите счет",icon:"error"}),!1;if(e.orderpurpose=="GIFT")return Swal.fire({title:messages.unavailable_action,text:"Счета с рекламной продукцией не подлежат резервации",icon:"error"}),!1;let n=route("quotes.split_avail_and_to_purchase",{ordernumber:$(this).attr("data-ordernumber")}),a=route("quotes.set_reserve",{ordernumber:$(this).attr("data-ordernumber")});if(!(await Swal.fire({title:"Вы действительно хотите зарезервировать товар в счете?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"})).isConfirmed)return;f();let p=await $.ajax({method:"POST",url:a,dataType:"json"});if(b(),!p.proposeToSplit){await Swal.fire({title:p.title,html:p.message,icon:p.status}),p.reload?location.reload():p.url&&(window.location.href=p.url);return}if(!(await Swal.fire({title:p.title,html:p.messagepropose,showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"})).isConfirmed){await Swal.fire({title:"",html:p.messagereject,icon:p.status}),p.reload?location.reload():p.url&&(window.location.href=p.url);return}f();let g=await $.ajax({method:"POST",url:n,dataType:"json"});if(b(),g.status!="success"){await Swal.fire(g.title,g.message,g.status),g.reload?location.reload():g.url&&(window.location.href=g.url);return}if(g.transportCompanyDeleted){await Swal.fire(C),await Swal.fire(g.title,g.message,g.status),g.reload&&location.reload();return}f();let v=await $.ajax({method:"POST",url:a,dataType:"json",data:{copyOrderNumber:g.copyOrderNumber}});b(),await Swal.fire(v.title,v.message,v.status),v.reload?location.reload():v.url&&(window.location.href=v.url)}),typeof e.orderpurpose<"u"&&e.orderpurpose!="GIFT"&&$("#setQuoteAsSampleButton").on("click",function(){Swal.fire({title:"Вы действительно хотите отметить счет как образец?",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(t=>{t.isConfirmed&&$.ajax({method:"POST",url:route("quotes.set_sample",{ordernumber:$(this).attr("data-ordernumber")}),dataType:"json",success:function(n){n.status=="error"?Swal.fire(n.title,n.message,n.status):location.reload()}})})}
47),$("form[name='changeContactPersonForm']").validate({errorClass:"is-invalid",rules:{changeContactPerson:{required:!0}},messages:{changeContactPerson:{required:"Пожалуйста, выберите контактное лицо"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n){$(t).addClass(n)},unhighlight:function(t,n){$(t).removeClass(n)},submitHandler:function(t){t=$("form[name='changeContactPersonForm']"),t.find("button[type='submit']").blockButton(),$.ajax({method:"POST",url:t.attr("action"),data:{contactPersonNumber:t.find("select").val()},success:function(n){n.status!="success"?(t.find("button[type='submit']").unblockButton(),Swal.fire({title:n.title,text:n.message,icon:n.status})):location.reload()}})}}),$("#changeContactPersonModal").on("shown.bs.modal",function(){$("form[name='changeContactPersonForm']").find("select[name='changeContactPerson']").trigger("focus")}).on("hidden.bs.modal",function(){let t=$("form[name='changeContactPersonForm']");x(t),t.find("button[type='submit']").unblockButton()}),$("#hideToastActions").on("click",function(){let t=N();typeof t.quote>"u"&&(t.quote={}),t.quote.needHideToastActions=!0,_(t),$("#quoteToast").toast("hide"),$("#showToastActionButton").removeClass("d-none")}),$("#showToastActionButton").on("click",function(){$("#quoteToast").toast("show"),H(),$("#showToastActionButton").addClass("d-none");let t=N();t.quote.needHideToastActions=!1,_(t)}),$("#nextToastAction").on("click",_e),$("#previousToastAction").on("click",Ne),$("#collapsePayment, #collapseProject, #collapseCustomer, #collapseFiles").on("hidden.bs.collapse",function(){ce({collapsableBlock:this,collapseValue:!1})}).on("shown.bs.collapse",function(){ce({collapsableBlock:this,collapseValue:!0})}),(l=document.getElementById("setConsigneeButtonAndConvertOrder"))==null||l.addEventListener("click",function(){let t=document.querySelector("#setConsigneeModal input[name='selectedConsignee']:checked").value;if(t.trim()==this.dataset.actualConsignee.trim()){Z();return}$.ajax({method:"POST",url:route("consignee.set",{ordernumber:this.dataset.ordernumber}),dataType:"json",data:{consigneeNumber:t},beforeSend:()=>f(),success:function(n){if(n.status=="success"){Z();return}Swal.fire({title:n.title,text:n.message,icon:n.status}),bootstrap.Modal.getInstance("#setConsigneeModal").hide()},complete:()=>b()})}),$("form[name='changeInitialOrderNumberForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{initialOrderNumber:{number:!0,minlength:8,maxlength:8}},messages:{initialOrderNumber:{number:"Пожалуйста, введите корректное число",minlength:"Код должен состоять из 8 символов",maxlength:"Код должен состоять из 8 символов"}},errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n,a){$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){$(t).addClass(a).removeClass(n)},submitHandler:function(t){t=$("form[name='changeInitialOrderNumberForm']"),$.ajax({method:"POST",url:route("quotes.change_initial_order_number",{ordernumber:t.attr("data-ordernumber")}),dataType:"json",data:t.serialize(),beforeSend:()=>f(),success:function(n){Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>{n.status=="success"&&location.reload()})},complete:()=>b()})}}),$("#changeInitialOrderNumberModal").on("hidden.bs.modal",function(){let t=$("form[name='changeInitialOrderNumberForm']");x(t)}),$("#openInitialOrderNumberModal").on("click",function(){if(!canChangeLinkingQuote){Swal.fire({title:messages.no_access,text:messages.please_contact_support,icon:"error"});return}$("#changeInitialOrderNumberModal").modal("show")}),(y=document.getElementById("backProjectInfoButton"))==null||y.addEventListener("click",function(){D(1)}),(F=document.getElementById("createNewProjectButton"))==null||F.addEventListener("click",()=>{if(e.projectBrandsIsFilled==0)return Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете проектная скидка не предусмотрена",icon:"info"}),!1;if(document.querySelector(".project-brand-checkbox")==null)return Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете не хватает суммы для запроса проектной скидки",icon:"info"}),!1;if(document.querySelector(".project-brand-checkbox:checked")==null)return Swal.fire({title:"Ошибка запроса проектной скидки",text:"Пожалуйста, выберите как минимум 1 бренд",icon:"error"}),!1;if(document.querySelector(".project-brand-checkbox:checked[data-hasprojectregistration='0']")!=null)return Swal.fire({title:"Запрос проектной скидки",text:"По поставщикам необходим запрос на регистрацию проекта в статусе «Защита» или «На общих основаниях» с заполненным номером проекта",icon:"info"}),!1;D(2),document.getElementById("objectNameForProject").removeAttribute("disabled"),document.getElementById("projectNameForProject").removeAttribute("disabled"),document.getElementById("projectAddressForProject").removeAttribute("disabled"),document.getElementById("projectRealisationDate").removeAttribute("disabled"),document.querySelector("#projectDiscountModal input[name='projectNumber']").value="create",D(2)}),(I=document.getElementById("selectExistProjectButton"))==null||I.addEventListener("click",()=>{if(e.projectBrandsIsFilled==0)return Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете проектная скидка не предусмотрена",icon:"info"}),!1;if(document.querySelector(".project-brand-checkbox")==null)return Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете не хватает суммы для запроса проектной скидки",icon:"info"}),!1;if(document.querySelector(".project-brand-checkbox:checked")==null)return Swal.fire({title:"Ошибка запроса проектной скидки",text:"Пожалуйста, выберите как минимум 1 бренд",icon:"error"}),!1;bootstrap.Modal.getOrCreateInstance("#projectDiscountModal").hide(),e.needGetProjectInfoFromLink=!0,bootstrap.Modal.getOrCreateInstance("#projectsListModal").show()}),(S=document.getElementById("linkExistProjectButton"))==null||S.addEventListener("click",()=>{e.needGetProjectInfoFromLink=!1,bootstrap.Modal.getOrCreateInstance("#projectsListModal").show()}),document.querySelectorAll("#setInactiveReasonModal input[name='reason']").forEach(t=>{t.addEventListener("change",()=>{document.querySelector("#setInactiveReasonModal input[name='reason']:checked").value=="Другая причина"?document.getElementById("otherReasonBlock").classList.remove("d-none"):document.getElementById("otherReasonBlock").classList.add("d-none")})}),$("form[name='setInactiveReasonForm']").validate({validClass:"is-valid",errorClass:"is-invalid",rules:{otherReason:{required:{depends:function(){return document.querySelector("#setInactiveReasonModal input[name='reason']:checked").value=="Другая причина"}}
47,NoSpecialChars:{depends:function(){return document.querySelector("#setInactiveReasonModal input[name='reason']:checked").value=="Другая причина"}}},"brandsForInactive[]":{required:!0}},messages:{otherReason:{required:"Пожалуйста, введите причину"},"brandsForInactive[]":{required:"Пожалуйста, введите бренд"}},errorElement:"div",errorPlacement:function(t,n){if(t.addClass("invalid-feedback"),n[0].classList.contains("select2-hidden-accessible")){$(t).insertAfter(n.closest("div").find(".select2"));return}t.insertAfter(n)},highlight:function(t,n,a){if(t.classList.contains("select2-hidden-accessible")){$(t).closest("div").find(".select2-selection").addClass(n).removeClass(a);return}$(t).addClass(n).removeClass(a)},unhighlight:function(t,n,a){if(t.classList.contains("select2-hidden-accessible")){$(t).closest("div").find(".select2-selection").addClass(a).removeClass(n);return}$(t).addClass(a).removeClass(n)},submitHandler:function(t){t=$("form[name='setInactiveReasonForm']"),$.ajax({method:"POST",url:route("quotes.set_inactive_with_reason",{ordernumber:e.ordernumber}),data:t.serializeArray(),dataType:"json",beforeSend:()=>f(),success:function(n){n.status=="error"?Swal.fire({title:n.title,text:n.message,icon:n.status}).then(()=>location.reload()):location.reload()},complete:()=>b()})}}),$("#brandsForInactive").on("select2:select",function(){$("#brandsForInactive").valid()}),$("#createFindAnalogEvent").on("click",async function(){$("#chooseBrandReplacementsModal").modal("show")}),$("#chooseBrandReplacementsModal").on("hidden.bs.modal",function(){let t=$("form[name='chooseBrandReplacementsForm']");x(t)}),$("form[name='chooseBrandReplacementsForm']").validate({errorClass:"is-invalid",errorElement:"div",errorPlacement:function(t,n){t.addClass("invalid-feedback"),t.insertAfter(n)},highlight:function(t,n){$(t).addClass(n)},unhighlight:function(t,n){$(t).removeClass(n)},submitHandler:function(t){t=$("form[name='chooseBrandReplacementsForm']");const n=[],a=document.querySelectorAll(".chooseReplacement");for(const i of a)if(i.checked){const p=i.getAttribute("data-brandfrom"),h=i.getAttribute("data-brandto"),g=i.getAttribute("data-etimgroup");n.push({brandFrom:p,brandTo:h,etimGroup:g})}if(n.length==0){Swal.fire({title:"Не выбраны строки для замены",text:"Вы не выбрали группы и бренды для замены",icon:"error"});return}$.ajax({method:"POST",url:route("quotes.create_find_analog_event",{ordernumber:e.ordernumber}),data:{initialOrderNumber:t.attr("data-initialordernumber"),checkboxArray:n},beforeSend:()=>f(),success:function(i){i.status=="error"?Swal.fire({title:i.title,text:i.message,icon:i.status}).then(()=>location.reload()):location.reload()},complete:()=>b()})}})}});function ie(o,r){$.ajax({url:r,method:"POST",dataType:"json",data:{customerNumber:o},beforeSend:()=>f(),success:function(s){s&&Swal.fire(s.title,s.message,s.status).then(()=>{s.url&&(window.location.href=s.url)}),$("#splitquote").html('<i class="far fa-copy me-1"></i>Разбить счет по датам')},complete:()=>b()})}function u(o,r=5e3){Swal.fire({title:"Ошибка",html:o,icon:"error",timer:r})}function q(){$("#chooseDeliveryTermsModal").modal("show")}function K(o){if(!e.canApplyDiscountOnQuote)return P(),!1;if(e.lastProjectRequest!=null)return u(e.wrnProjectRequests),!1;if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(o=="Smart"&&!e.cpfio)return u("Сначала необходимо выбрать контактное лицо по заявке"),!1;let r=R(o),s=r.maxBonusSum,m=r.errorReason,c=r.errorReasonText,d=$("form[name='applyBonusCommonForm']");if(d.find("#bonusName").html(o=="Peni"?"доп.отсрочки/скидки/доставки":"смартов"),d.find("#bonusSum").html(T(o=="Peni"?e.peniBonus:e.smartBonus)),d.find("#maxBonusOrder").html(T(s)),s<=0){if(["noItems","onlyMrcItems"].includes(m)){d.find("#resolveErrorBonusBlock").removeClass("d-none");let l=o=="Peni"?"скидки":"смартов";d.find("#resolveErrorBonusText").text("Добавьте товар в счет для применения "+l)}else d.find("#resolveErrorBonusBlock").addClass("d-none");return d.find("#errorBonusText").html(c),d.find("#applyBonusBlock").addClass("d-none"),d.find("button[type='submit']").attr("disabled",!0),d.find("#errorBonusBlock").removeClass("d-none").addClass("d-block"),$("#applyBonusCommonModal").modal("show"),!1}return o=="Peni"&&De(s),d.find("#applyBonusBlock").removeClass("d-none"),d.find("#errorBonusBlock").removeClass("d-block").addClass("d-none"),d.find("button[type='submit']").attr("disabled",!1),d.find(":input[name='discountSum']").val(s.toFixed(2)),d.find("input[name='bonusType']").val(o),$("#applyBonusCommonModal").modal("show"),!0}async function De(o){let r=!1;(await $.ajax({url:route("quotes.allocate_bonus_check",{ordernumber:e.ordernumber}),method:"POST",data:{sum:o}}
47)).forEach(m=>{m.unitpricecurrency==0&&(r=!0)}),r&&($("#askNotZeroPriceBlock").removeClass("d-none").addClass("d-block"),$("#notZeroPrice").prop("checked",!0))}function R(o){let r=e.itemSumNds*(o=="Peni"?.1:1),s;switch(o){case"Smart":s=e.smartBonus;break;case"Peni":s=e.peniBonus;break;case"ReplaceDefect":s=Number(e.replaceDefectBonus)<Number(e.minLineSum)?0:e.minLineSum;break}let m;o=="ReplaceDefect"?m=Math.min(r,s):m=Math.min(r,s,e.itemSumWithoutMrc),m=m<0?0:Math.floor(m*100)/100;let c="",d="";if(m==0)if(r==0)c="noItems",d="В счете нет товаров, на которые можно применить скидку";else if(s<=0){c="noAvailableBonus";let l="";o=="Smart"?l="смартов":o=="Peni"?l="доп.отсрочки/скидки/доставки":o=="ReplaceDefect"&&(l="замены брака/недостачи"),d="На счету "+l+" недостаточно средств для применения бонуса"}else e.itemSumWithoutMrc==0&&(c="onlyMrcItems",d="В счете товары только с МРЦ, поэтому нельзя применить скидку");return{maxBonusSum:m,errorReason:c,errorReasonText:d}}function Me(){let o=R("Peni").maxBonusSum,r=R("Smart").maxBonusSum,s=[];if(o<=0&&(e.quoteToastActions.peniBonus.status=!1),r<=0&&(e.quoteToastActions.smartBonus.status=!1),e.quoteToastActions.peniBonus.status!=!1&&s.push(o),e.quoteToastActions.smartBonus.status!=!1&&s.push(r),s.length==0)return!1;let m=Math.max.apply(null,s);if(m==o)return e.quoteToastActions.smartBonus.status=!1,!0;if(m==r)return e.quoteToastActions.peniBonus.status=!1,!0}function Le(o){let r=me();e.ordernumber in r||(r[e.ordernumber]={usedActions:{}}),r[e.ordernumber].usedActions[o]=!0,Fe(r),e.quoteToastActions[o].status=!1}function me(){let o=window.sessionStorage.getItem("quoteStorage")?window.sessionStorage.getItem("quoteStorage"):window.sessionStorage.setItem("quoteStorage","");return o?JSON.parse(o):{}}function Fe(o){window.sessionStorage.setItem("quoteStorage",JSON.stringify(o))}function Ie(){let o=me();if(!(e.ordernumber in o))return!0;for(const r in o[e.ordernumber].usedActions)e.quoteToastActions[r].status=!1}function fe(){let o=N();return typeof o.quote>"u"?!1:o.quote.needHideToastActions}function Ee(){Ie(),Me();let o=0;for(const r in e.quoteToastActions)e.quoteToastActions[r].priority=o,o++;fe()?ee()&&$("#showToastActionButton").removeClass("d-none"):setTimeout(W,e.toastNotificationInterval*1e3)}function Oe(){for(let[o,r]of Object.entries(e.quoteToastActions))if(r.status!=!1)return{actionName:o,info:r};return""}function ee(){let o=Oe();return o==""?!1:($("#quoteToastActionText").text(o.info.messageText),$("#quoteToastActionButton").text(o.info.buttonText),$("#quoteToastActionButton").attr("data-actionname",o.actionName),$("#quoteToastActionButton").prop("onclick",null).off("click"),$("#quoteToastActionButton").on("click",function(){o.info.onclick(),te(),setTimeout(W,e.toastNotificationInterval*1e3)}),!0)}function W(){return ee()?(H(),$("#quoteToast").toast("show"),!0):!1}function te(){$("#quoteToast").toast("hide");let o=$("#quoteToastActionButton").attr("data-actionname");o&&(Le(o),$("#quoteToastActionButton").attr("data-actionname",""))}function z(o){o==$("#quoteToastActionButton").attr("data-actionname")?(V().length>1?$("#showToastActionButton").removeClass("d-none"):$("#showToastActionButton").addClass("d-none"),te()):e.quoteToastActions[o].status=!1}function Y(){let o=$("#quoteToastActionButton").attr("data-actionname");if(typeof o>"u"||o=="")return!1;for(let[r,s]of Object.entries(e.quoteToastActions))if(o==r)return{actionName:r,info:s};return!1}function Ne(){let o=Y().info.priority,r=V();for(let s=r.length-1;s>=0;s--)if(r[s].info.priority<o)return Q(r[s].actionName);for(let s=r.length-1;s>=0;s--)if(r[s].info.priority!=o)return Q(r[s].actionName);return!1}function _e(){let o=Y().info.priority,r=V();for(let s=0;s<r.length;s++)if(r[s].info.priority>o)return Q(r[s].actionName);for(let s=0;s<r.length;s++)if(r[s].info.priority!=o)return Q(r[s].actionName);return!1}function Q(o){for(let[r,s]of Object.entries(e.quoteToastActions))if(o==r)return $("#quoteToastActionText").text(s.messageText),$("#quoteToastActionButton").text(s.buttonText),$("#quoteToastActionButton").attr("data-actionname",r),$("#quoteToastActionButton").prop("onclick",null).off("
47click"),$("#quoteToastActionButton").on("click",function(){s.onclick(),te(),setTimeout(W,e.toastNotificationInterval*1e3)}),H(),!0;return!1}function H(){let o=V();if(o.length<=1)return $("#quoteToastActionsSlider, #previousToastAction, #nextToastAction").addClass("d-none"),!1;let r=Y(),s="";for(const m of o)r.actionName==m.actionName?s+='<div data-actionname="'+m.actionName+'" class="bg-primary" role="button"></div>':s+=' <div data-actionname="'+m.actionName+'" role="button"></div>';$("#quoteToastActionsSlider").html(s),$("#quoteToastActionsSlider div").prop("onclick",null).off("click"),$("#quoteToastActionsSlider div").on("click",function(){Q($(this).attr("data-actionname"))})}function V(){let o=[];for(let[r,s]of Object.entries(e.quoteToastActions))s.status!=!1&&o.push({actionName:r,info:s});return o}function le(o=null){if(e.haspricerequests==1)return u(e.wrnpricerequests),!1;if(o!=null&&o.currentTarget.id=="changepaymentterms"&&e.appliedMainDiscountSum!=0){Swal.fire({title:"Невозможно увеличить отсрочку",text:"В данном счете уже применены скидки и бонусы, отмените их, чтобы увеличить отсрочку платежа",icon:"error"});return}Swal.fire({title:"Истекла дата актуальности счета",text:"Обновление счета приведет к отмене всех типов скидок и актуализации цен. Продолжить?",icon:"warning",showCancelButton:!0,confirmButtonText:"Да",cancelButtonText:"Нет"}).then(r=>{r.isConfirmed&&$.ajax({method:"POST",url:route("quotes.refresh",{ordernumber:e.ordernumber}),beforeSend:()=>f(),success:function(s){s.transportCompanyDeleted?Swal.fire(C).then(()=>location.reload()):location.reload()},complete:()=>b()})})}function ce({collapsableBlock:o,collapseValue:r}){let s=N();typeof s.quote.collapseBlock>"u"&&(s.quote.collapseBlock={}),s.quote.collapseBlock[o.id]=r,_(s)}function Z(){let o=$("form[name='convertQuoteToOrderForm']");if($("#convertquote").data("ispaiddelivery")==0||e.PaymentTermsNumber==0)return o.find('input[name="includedDelivery"]').val(0),$("form[name='convertQuoteToOrderForm']").trigger("submit"),!1;$("#convertQuoteToOrderModal").modal("show")}function Re(){var F,I;if(e.haspricerequests!=0||e.lastProjectRequest!=null&&e.lastProjectRequest.canceleddate==" "&&e.lastProjectRequest.decision==-1)return;let o=document.getElementById("navBonusApplying");if(o==null)return;let r=document.getElementById("bonusSelectModal"),s=[];[{selector:".apply-smart-bonus",name:"Smart"},{selector:".apply-peni-bonus",name:"Peni"},{selector:".replace-defect-bonus",name:"ReplaceDefect"}].forEach(S=>{let j=o.querySelector(S.selector);if(j&&!j.classList.contains("disabled")){let M=R(S.name),E=M.maxBonusSum,t=M.errorReasonText,n={bonusType:S.name,availableSum:parseFloat(E.toFixed(2)),availableSumText:(S.name=="ReplaceDefect"&&E<e.itemSumNds?"от ":"")+T(E).replace(".00",""),errorReason:t};if(n.availableSum>0)j.querySelector(".available-bonus-sum").textContent=n.availableSumText,r.querySelector(S.selector).querySelector(".available-bonus-sum").textContent=n.availableSumText;else{let a=j.querySelector(".bonus-not-available");a.classList.remove("d-none"),a.title=n.errorReason,a=r.querySelector(S.selector).querySelector(".bonus-not-available"),a.classList.remove("d-none"),a.title=n.errorReason}e.lastProjectRequest==null&&s.push(n)}}),e.bonusVolumeAvail>0&&e.canApplyVolumeBonus&&s.push({bonusType:"bonusVolumeAvail",availableSum:e.bonusVolumeAvail});let c=0,d=null;
47s.forEach(S=>{S.availableSum>c&&(c=S.availableSum,d=S.bonusType)});let l=document.getElementById("applyDiscountsAndBonuses");if(l==null)return;let y=!1;if(c>0){let S=d=="ReplaceDefect"&&c<e.itemSumNds?"от ":"до ",j=c*100/e.itemSumNds,M=document.getElementById("maxQuoteDiscount");M.textContent=j<25?S+T(c).replace(".00","")+" руб.":S+Math.ceil(j)+"%",e.deliverySum>0&&e.typeForDeleveryterms=="Доставка"&&document.getElementById("discountTermMessage").classList.remove("d-none"),y=!0}if(e.futureBonusAvail>0&&(((F=e.lastProjectRequest)==null?void 0:F.canceleddate)!=" "||((I=e.lastProjectRequest)==null?void 0:I.decision)==0)&&e.haspricerequests==0){let S=document.getElementById("quoteFutureBonus");S.textContent=T(e.futureBonusAvail).replace(".00","")+" руб.",y=!0}y&&l.classList.remove("d-none")}function Qe(){let o=document.getElementById("editQuoteLines");o&&(o.classList.contains("d-none")||ne());let r=document.querySelector(".checkforoptimizedatesblock");r&&(r.classList.contains("d-none")||pe())}function ne(){$("#editQuoteLines").addClass("d-none"),$("#openQuoteEditLines").removeClass("disabled");let o=document.querySelectorAll(".changeLineQuote");Ce(o)}function pe(){let o=document.getElementById("itemsBlockHeading");o.style.width="",document.querySelectorAll(".plan-date-td").forEach(r=>{r.style.removeProperty("background-color")}),$(".checkforoptimizedates").removeClass("d-table-cell").addClass("d-none"),$(".checkforoptimizedatesblock").removeClass("d-block").addClass("d-none"),$(".foroptimizedates").prop("checked",!1),$("#btnoptimizedates").popover("hide"),$(".selectAllforoptimizedates").prop("checked",!1),$("#optimizedates").removeClass("d-none"),$(".delivery-date-label").removeClass("d-none"),$("input[type='checkbox'].foroptimizedates").prop("checked",!1)}async function A(o=!0){var c,d;const r=((c=e.lastProjectRequest)==null?void 0:c.decision)==1?"По счету предоставлена проектная скидка":"По счету запрошены проектные скидки",s=((d=e.lastProjectRequest)==null?void 0:d.decision)==1?"Вы уверены, что хотите отменить проектную скидку?":"Обновление счета приведет к отмене запроса проектной скидки и актуализации цен. Продолжить?",m=await Swal.fire({title:r,text:s,icon:"warning",confirmButtonText:"Да",showCancelButton:!0,cancelButtonText:"Нет"}).then(l=>l.isConfirmed);if(!o)return m;if(!m)return!1;$.ajax({method:"POST",url:route("quotes.cancel_project_request",{ordernumber:e.ordernumber}),beforeSend:()=>f(),success:async function(l){await Swal.fire({title:"Отмена проектного запроса",text:"Проектный запрос успешно отменён. Счёт актуализирован",icon:"success"}),l.transportCompanyDeleted?Swal.fire(C).then(()=>{location.reload()}):location.reload()},complete:()=>b()})}function ze(o){if(!e.needGetProjectInfoFromLink){$.ajax({method:"POST",url:route("quotes.link_project",{ordernumber:e.ordernumber}),data:{projectNumber:o},beforeSend:()=>f(),success:function(r){Swal.fire({title:r.title,text:r.message,icon:r.status}).then(function(){r.status=="success"&&location.reload()})},complete:()=>b()});return}$.ajax({method:"POST",url:route("quotes.get_project_card"),data:{projectNumber:o},beforeSend:()=>f(),success:function(r){if(r.status=="error"){Swal.fire({icon:"error",text:r.message});return}if(r.availableCustomersForProject!="all"){let l=!1;if(r.availableCustomersForProject.forEach(y=>{y.customernumber==e.orderCustomerNumber&&(l=!0)}),!l){Swal.fire({icon:"error",text:"Проект принадлежит другому клиенту"});return}}e.projectCard=r.projectCard,e.projectCard.vendor_registrations!=null&&document.querySelectorAll(".project-brand-checkbox:checked[data-hasprojectregistration='0']").forEach(l=>{l.dataset.vendorlist.split("|").forEach(y=>{e.projectCard.vendor_registrations.includes(y)&&(l.dataset.hasprojectregistration="1",document.querySelector(".warning-projectregistration-"+l.value).classList.add("d-none"))})});let s=document.getElementById("objectNameForProject");s.value=e.projectCard.objectname,s.setAttribute("disabled",!0);let m=document.getElementById("projectNameForProject");m.value=e.projectCard.projectname,m.setAttribute("disabled",!0);let c=document.getElementById("projectAddressForProject");c.value=e.projectCard.projectaddress,c.setAttribute("disabled",!0);let d=document.getElementById("projectRealisationDate");e.projectCard.realisationdate!=" "&&(d.value=e.projectCard.realisationdate.replaceAll(".","-")),d.setAttribute("disabled",!0),document.querySelector("#projectDiscountModal input[name='projectNumber']").value=e.projectCard.projectnumber,D(2),bootstrap.Modal.getOrCreateInstance("#projectsListModal").hide(),bootstrap.Modal.getOrCreateInstance("#projectDiscountModal").show()},complete:()=>b()})}function O(){$.ajax({url:route("project.filter_projects"),data:$("#filterProjectsListForm").serialize(),beforeSend:function(){document.getElementById("filterResultProjectsList").innerHTML=`<tr>
48                    <td class='text-center' colspan='100%'>
49                        <div class='spinner-grow spinner-grow-sm text-primary' role='status'><span class='visually-hidden'>
49Загрузка...</span></div>
50                        <span class='text-primary'>Загрузка...</span>
51                    </td>
52                </tr>`},success:function(o){o.needCloseFilter?bootstrap.Collapse.getOrCreateInstance(document.getElementById("collapseFilterProjectsList")).hide():bootstrap.Collapse.getOrCreateInstance(document.getElementById("collapseFilterProjectsList")).show();let r="";if(o.filterArray&&o.filterArray.length?o.filterArray.forEach(function(c){let d="";c.customernumber!=null&&(isEmployee&&(d=`
53                                <a href="${route("cabinet.show",{customernumber:c.customernumber})}" target="_blank">
54                                    ${c.customernumber}
55                                </a>`),isAgent&&(customer.number==c.customernumber?d=`
56                                <a href="${route("cabinet.index")}" target="_blank">
57                                    ${c.customernumber}
58                                </a>`:d=`
59                                <a href="${route("customers.show",{customernumber:c.customernumber})}" target="_blank">
60                                    ${c.customernumber}
61                                </a>`));let l=isEmployee||isAgent?` <td>
62                                    ${d}
63                                </td>`:"";r+=`<tr>
64                        <td>
65                            <a href="javascript:void(0)" data-action="quote:select-project-to-link"
66                                data-project-number="${c.projectnumber}">
67                                Выбрать
68                            </a>
69                        </td>
70                        <td class="text-start">
71                            <a href="${route("project.show",{projectNumber:c.projectnumber})}" target="__blank">
72                                ${c.projectnumber}
73                            </a>
74                        </td>
75                        <td class="text-start">
76                            ${c.status??" "}
77                        </td>
78                        <td class="text-start">
79                            ${c.createddate}
80                        </td>
81                        ${l}
82                        <td class="text-start">
83                            ${c.objectname}
84                        </td>
85                        <td class="text-start">
86                            ${c.projectname}
87                        </td>
88                        <td class="text-start">
89                            ${c.projectaddress}
90                        </td>
91                    </tr>`}):(r+='<tr><td class="text-center" colspan="100%">',o.inSearch=="yes"?r+=`По указанным параметрам фильтра проектов нет.
92                            <a href="javascript:void(0)" data-action="quote:reset-projects-list-filter">
93                                Сбросить фильтр
94                                <i class="far fa-chevron-right ms-1"></i>
95                            </a>`:r+="Задайте параметры фильтра, чтобы увидеть результат",r+="</td></tr>"),document.getElementById("filterResultProjectsList").innerHTML=r,o.countRows<=10){document.getElementById("upPaginatorProjectsList").classList.add("d-none");return}let s="",m=Math.ceil(o.countRows/10);m=m>30?30:m;for(let c=1;c<=m;c++)c==o.currentPage?s+=`
96                            <li class="page-item active" aria-current="page">
97                                <span class="page-link">
98                                    ${c}
99                                    <span class="visually-hidden">(current)</span>
100                                </span>
101                            </li>`:s+=`
102                            <li class="page-item">
103                                <a class="page-link" data-action="quote:set-page-projects-list-filter" data-page="${c}" href="javascript:void(0)">
104                                    ${c}
105                                </a>
106                            </li>`;$("#upPaginatorContentProjectsList").nextAll("li").remove(),$("#upPaginatorContentProjectsList").after(s),document.getElementById("upPaginatorProjectsList").classList.remove("d-none")}}),ke()}function he(){let o=document.getElementById("projectsListModal");o&&(o.querySelectorAll("input:not([type='hidden']):not([type='checkbox']):not([type='radio'])").forEach(r=>{r.value=""}),o.querySelectorAll("input[type='checkbox']").forEach(r=>{r.checked=!1}
106),o.querySelector("input[name='inSearch']").value="reset",O())}function He(o){document.querySelector("#filterProjectsListForm input[name='currentPage']").value=o,O()}function D(o){if(o==1){document.getElementById("createNewProjectButton").closest("div").classList.remove("d-none"),document.getElementById("selectExistProjectButton").closest("div").classList.remove("d-none"),document.querySelectorAll(".step-project-info").forEach(r=>{r.classList.add("d-none")}),document.querySelector("#projectDiscountModal .modal-title").innerHTML="Отправка запроса на проектную скидку",x($("form[name='projectDiscountForm']")),$("#projectDiscountModal .vendor-contactperson-select").each(function(){var s;const r=(s=$(this).attr("data-oldvalue"))==null?void 0:s.split(",");r!=null&&(r==null?void 0:r.length)!=0&&$(this).val(r).trigger("change")}),document.querySelectorAll(".project-brand-checkbox:checked[data-hasprojectregistration='1'][data-hasprojectregistration-previous='0']").forEach(r=>{r.dataset.hasprojectregistration="0",document.querySelector(".warning-projectregistration-"+r.value).classList.remove("d-none")});return}if(o==2){document.getElementById("createNewProjectButton").closest("div").classList.add("d-none"),document.getElementById("selectExistProjectButton").closest("div").classList.add("d-none"),document.querySelectorAll(".step-project-info").forEach(r=>{r.classList.remove("d-none")});return}}function Ge(){if(!be())return!1;$("#projectDiscountModal .vendor-contactperson-select").each(function(){$(this).attr("data-oldvalue",null)}),bootstrap.Modal.getOrCreateInstance(document.getElementById("projectDiscountModal")).show()}function ue(){if(!be())return!1;let o=document.getElementById("objectNameForProject");o.value=e.projectCard.objectname,o.setAttribute("disabled",!0);let r=document.getElementById("projectNameForProject");r.value=e.projectCard.projectname,r.setAttribute("disabled",!0);let s=document.getElementById("projectAddressForProject");s.value=e.projectCard.projectaddress,s.setAttribute("disabled",!0);let m=document.getElementById("projectRealisationDate");e.projectCard.realisationdate!=" "&&(m.value=e.projectCard.realisationdate.replaceAll(".","-")),m.setAttribute("disabled",!0),document.querySelector("#projectDiscountModal input[name='projectNumber']").value=e.projectCard.projectnumber,D(2),document.querySelector("#projectDiscountModal .modal-footer").classList.remove("d-none"),document.getElementById("setProjectDiscountReasonContainer").classList.remove("d-none"),document.getElementById("showProjectDiscountReasonContainer").classList.add("d-none"),document.getElementById("backProjectInfoButton").closest("div").classList.add("d-none"),document.querySelector(".brand-table-block").classList.remove("d-none");let c=document.querySelector("#projectDiscountModal button[type='submit']");c.closest("div").classList.remove("d-lg-4");let d=c.closest("div.row");d.classList.remove("justify-content-evenly"),d.classList.add("justify-content-end"),bootstrap.Modal.getOrCreateInstance(document.getElementById("projectDiscountModal")).show()}function be(){return e.canApplyProjectDiscount?e.haspricerequests==1?(u(e.wrnpricerequests),!1):e.preliminaryDiscountSum!=0?(Swal.fire({title:"Запрос проектной скидки",text:"Отмените предварительную проектную скидку",icon:"error"}),!1):e.segmentName.trim().length==0||e.customertype==7?(u(messages.unavailable_action),!1):e.projectBrandsIsFilled==0?(Swal.fire({title:"Запрос проектной скидки",text:"По брендам в счете проектная скидка не предусмотрена",icon:"info"}),!1):e.cpfio?!0:(u("Необходимо выбрать контактное лицо по заявке"),!1):(P(),!1)}function We(){$(document).on("click",'[data-action="quote:cancel-edit-lines"]',function(o){o.preventDefault(),ne()}),$(document).on("click",'[data-action="quote:cancel-optimize-dates"]',function(o){o.preventDefault(),pe()}),$(document).on("click",'[data-action="quote:cancel-project-request"]',function(o){o.preventDefault(),A()}),$(document).on("click",'[data-action="quote:select-project-to-link"]',function(o){o.preventDefault(),ze(String(this.dataset.projectNumber??""))}),$(document).on("click",'[data-action="quote:reset-projects-list-filter"]',function(o){o.preventDefault(),he()}),$(document).on("click",'[data-action="quote:set-page-projects-list-filter"]',function(o){o.preventDefault(),He(Number(this.dataset.page))}),$(document).on("click",'[data-action="quote:scroll-to-optimize-dates"]',function(o){o.preventDefault(),$("#optimizedates").trigger("click"),X("btnoptimizedates",150)}
106),$(document).on("click",'[data-action="quote:trigger-competitor-invoice-upload"]',function(o){var r;o.preventDefault(),document.getElementById("uploadButtonCompetitorInvoice")?document.getElementById("uploadButtonCompetitorInvoice").click():(r=document.getElementById("uploadButtonOrders_CompetitorInvoice"))==null||r.click()}),$(document).on("click",'[data-action="quote:stop-propagation"]',function(o){o.stopPropagation()})}Be(Qe);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.