1import{_ as U,c as a,o as r,a as s,m as w,p as u,t as n,F as h,L as c,R as m,M as g,d as p,S as F,q as v,U as _,J as T,b,r as $}from"./DNWdprDe.js";import{D as S,i as d,E as C,F as V,G as M,H as E,h as L,I as D}from"./DwAi6hxV.js";import{g as I,s as q}from"./Bqwaw_VW.js";const N={name:"StockSettingsPanel",data(){return{form:{base_currency:"USD",costing_method:"FIFO",landed_allocation:"VALUE",cost_decimals:4,allow_negative_stock:!1},units:[],showUnitForm:!1,unitForm:{code:"",name:"",dimension:"WEIGHT",factor:""},convertForm:{qty:"1",from:"",to:""},convertResult:null,selectedUnit:null,showConfirmMessage:!1,message:"",loading:!0,busy:!1,errorText:"",okText:""}},computed:{sortedUnits(){return q(this.units,this.$t,this.$i18n.locale)},baseUnitHint(){return this.sortedUnits.filter(e=>e.is_base).map(e=>`${this.dimensionLabel(e.dimension)} â ${e.code}`).join(" · ")}},async mounted(){await this.load()},methods:{fmt(t,e=4){const k=Number(t);return Number.isFinite(k)?k.toLocaleString(this.$i18n.locale,{maximumFractionDigits:e}):"0"},dimensionLabel(t){return I(t,this.$t)},async load(){this.loading=!0;const t=await D();d(t)||(this.form={base_currency:t.base_currency??"USD",costing_method:t.costing_method??"FIFO",landed_allocation:t.landed_allocation??"VALUE",cost_decimals:t.cost_decimals??4,allow_negative_stock:t.allow_negative_stock??!1}),await this.loadUnits(),this.loading=!1},async loadUnits(){const t=await L({});this.units=d(t)?[]:t},async save(){this.busy=!0,this.errorText="",this.okText="";const t=await E({base_currency:this.form.base_currency,landed_allocation:this.form.landed_allocation,cost_decimals:Number(this.form.cost_decimals),allow_negative_stock:this.form.allow_negative_stock});if(this.busy=!1,d(t)){this.errorText=await _(t?.code,t?.message,this.$te,this.$t);return}this.okText=this.$t("stock.setting.saved")},async seedUnits(){this.busy=!0,this.errorText="",this.okText="";const t=await M();if(this.busy=!1,d(t)){this.errorText=await _(t?.code,t?.message,this.$te,this.$t);return}this.okText=`${this.$t("stock.setting.seed_done")} (${t.created_count??0})`,await this.loadUnits()},async addUnit(){if(!this.unitForm.code||!this.unitForm.name||!this.unitForm.factor){this.errorText=this.$t("stock.common.required_fields");return}this.errorText="";const t=await V({code:this.unitForm.code,name:this.unitForm.name,dimension:this.unitForm.dimension,factor:Number(this.unitForm.factor)});if(d(t)){this.errorText=await _(t?.code,t?.message,this.$te,this.$t);return}this.unitForm={code:"",name:"",dimension:"WEIGHT",factor:""},await this.loadUnits()},askDeleteUnit(t){this.selectedUnit=t,this.message=this.$t("stock.setting.unit_delete_confirm"),this.showConfirmMessage=!0},async handleDeleteConfirmed(t){if(this.showConfirmMessage=!1,!t||!this.selectedUnit)return;const e=await C(this.selectedUnit.id);if(d(e)){this.errorText=await _(e?.code,e?.message,this.$te,this.$t);return}await this.loadUnits()},async convert(){if(this.convertResult=null,this.errorText="",!this.convertForm.from||!this.convertForm.to){this.errorText=this.$t("stock.common.required_fields");return}const t=await S(this.convertForm.from,this.convertForm.to,this.convertForm.qty);if(d(t)){this.errorText=await _(t?.code,t?.message,this.$te,this.$t);return}this.convertResult=`${this.fmt(t.result,6)} ${t.to?.code??""}`}}},R={class:"page-table"},H={class:"table-section"},B={class:"row",style:{padding:"20px"}},G={key:0,class:"muted"},A={class:"form-grid"},W={class:"field"},O={class:"field"},P=["value"],j={class:"field"},J={value:"VALUE"},Q={value:"QTY"},Y={value:"WEIGHT"},z={class:"field"},K={class:"field wide"},X={class:"mini-check"},Z={class:"hint"},x={class:"actions"},tt=["disabled"],st=["disabled"],et={class:"inline-form"},ot=["placeholder"],nt=["value"],it=["value"],lt={key:0,class:"convert-result"},rt={class:"block-head"},at={key:0,class:"inline-form"},ct=["placeholder"],dt=["placeholder"],mt={value:"WEIGHT"},ut={value:"PIECE"},ht={value:"LENGTH"},_t={value:"VOLUME"},kt={value:"AREA"},gt={value:"TIME"},ft=["placeholder"],vt={class:"hint"},pt={class:"mini-table"},bt={class:"num"},Ut={class:"num"},yt={class:"num"},wt=["onClick"],Ft={key:1,class:"muted sys"},Tt={key:1,class:"error-text"},$t={key:2,class:"ok-text"};function St(t,e,k,y,i,l){const f=T;return r(),a(h,null,[s("div",R,[s("div",H,[s("div",B,[i.loading?(r(),a("div",G,n(t.$t("stock.common.loading")),1)):(r(),a(h,{key:1},[s("h5",null,n(t.$t("stock.setting.title")),1),s("div",A,[s("div",W,[s("label",null,n(t.$t("stock.setting.base_currency")),1),c(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>i.form.base_currency=o),class:"mini-input"},null,512),[[m,i.form.base_currency]])]),s("div",O,[s("label",null,n(t.$t("stock.setting.costing_method")),1),s("input",{value:i.form.costing_method,class:"mini-input",disabled:""},null,8,P)]),s("div",j,[s("label",null,n(t.$t("stock.setting.landed_allocation")),1),c(s("select",{"onUpdate:modelValue":e[1]||(e[1]=o=>i.form.landed_allocation=o),class:"mini-select"},[s("option",J,n(t.$t("stock.shipment.alloc_value")),1),s("option",Q,n(t.$t("stock.shipment.alloc_qty")),1),s("option",Y,n(t.$t("stock.shipment.alloc_weight")),1)],512),[[g,i.form.landed_allocation]])]),s("div",z,[s("label",null,n(t.$t("stock.setting.cost_decimals")),1),c(s("input",{"onUpdate:modelValue":e[2]||(e[2]=o=>i.form.cost_decimals=o),class:"mini-input"},null,512),[[m,i.form.cost_decimals]])]),s("div",K,[s("label",X,[c(s("input",{"onUpdate:modelValue":e[3]||(e[3]=o=>i.form.allow_negative_stock=o),type:"checkbox"},null,512),[[F,i.form.allow_negative_stock]]),p(" "+n(t.$t("stock.setting.allow_negative_stock")),1)]),s("p",Z,n(t.$t("stock.setting.negative_hint")),1)])]),s("div",x,[s("button",{class:"btn btn-primary",disabled:i.busy,onClick:e[4]||(e[4]=(...o)=>l.save&&l.save(...o))},n(t.$t("stock.common.save")),9,tt),s("button",{class:"btn btn-light",disabled:i.busy,onClick:e[5]||(e[5]=(...o)=>l.seedUnits&&l.seedUnits(...o))},n(t.$t("stock.setting.seed_units")),9,st)]),s("h5",null,n(t.$t("stock.setting.convert")),1),s("div",et,[c(s("input",{"onUpdate:modelValue":e[6]||(e[6]=o=>i.convertForm.qty=o),class:"mini-input narrow",placeholder:t.$t("stock.common.quantity")},null,8,ot),[[m,i.convertForm.qty]]),c(s("select",{"onUpdate:modelValue":e[7]||
1(e[7]=o=>i.convertForm.from=o),class:"mini-select"},[e[16]||(e[16]=s("option",{value:""},"â",-1)),(r(!0),a(h,null,v(l.sortedUnits,o=>(r(),a("option",{key:o.id,value:o.id},n(o.code),9,nt))),128))],512),[[g,i.convertForm.from]]),e[18]||(e[18]=s("span",{class:"arrow"},"â",-1)),c(s("select",{"onUpdate:modelValue":e[8]||(e[8]=o=>i.convertForm.to=o),class:"mini-select"},[e[17]||(e[17]=s("option",{value:""},"â",-1)),(r(!0),a(h,null,v(l.sortedUnits,o=>(r(),a("option",{key:o.id,value:o.id},n(o.code),9,it))),128))],512),[[g,i.convertForm.to]]),s("button",{class:"btn btn-light sm",onClick:e[9]||(e[9]=(...o)=>l.convert&&l.convert(...o))},n(t.$t("stock.setting.convert")),1),i.convertResult!==null?(r(),a("span",lt,[p(n(t.$t("stock.setting.convert_result"))+": ",1),s("strong",null,n(i.convertResult),1)])):u("",!0)]),s("div",rt,[s("h5",null,n(t.$t("stock.setting.units")),1),s("button",{class:"btn btn-light sm",onClick:e[10]||(e[10]=o=>i.showUnitForm=!i.showUnitForm)},n(t.$t("stock.setting.new_unit")),1)]),i.showUnitForm?(r(),a("div",at,[c(s("input",{"onUpdate:modelValue":e[11]||(e[11]=o=>i.unitForm.code=o),class:"mini-input narrow",placeholder:t.$t("stock.common.code")},null,8,ct),[[m,i.unitForm.code]]),c(s("input",{"onUpdate:modelValue":e[12]||(e[12]=o=>i.unitForm.name=o),class:"mini-input",placeholder:t.$t("stock.common.name")},null,8,dt),[[m,i.unitForm.name]]),c(s("select",{"onUpdate:modelValue":e[13]||(e[13]=o=>i.unitForm.dimension=o),class:"mini-select"},[s("option",mt,n(t.$t("stock.setting.dim_weight")),1),s("option",ut,n(t.$t("stock.setting.dim_piece")),1),s("option",ht,n(t.$t("stock.setting.dim_length")),1),s("option",_t,n(t.$t("stock.setting.dim_volume")),1),s("option",kt,n(t.$t("stock.setting.dim_area")),1),s("option",gt,n(t.$t("stock.setting.dim_time")),1)],512),[[g,i.unitForm.dimension]]),c(s("input",{"onUpdate:modelValue":e[14]||(e[14]=o=>i.unitForm.factor=o),class:"mini-input narrow",placeholder:t.$t("stock.setting.factor")},null,8,ft),[[m,i.unitForm.factor]]),s("button",{class:"btn btn-primary sm",onClick:e[15]||(e[15]=(...o)=>l.addUnit&&l.addUnit(...o))},n(t.$t("stock.common.add")),1)])):u("",!0),s("p",vt,n(t.$t("stock.setting.factor"))+": "+n(l.baseUnitHint),1),s("table",pt,[s("thead",null,[s("tr",null,[s("th",null,n(t.$t("stock.common.code")),1),s("th",null,n(t.$t("stock.common.name")),1),s("th",null,n(t.$t("stock.setting.dimension")),1),s("th",bt,n(t.$t("stock.setting.factor")),1),s("th",null,n(t.$t("stock.setting.is_base")),1),s("th",null,n(t.$t("stock.common.status")),1),e[19]||(e[19]=s("th",{class:"num"},null,-1))])]),s("tbody",null,[(r(!0),a(h,null,v(l.sortedUnits,o=>(r(),a("tr",{key:o.id},[s("td",null,[s("strong",null,n(o.code),1)]),s("td",null,n(o.name),1),s("td",null,n(l.dimensionLabel(o.dimension)),1),s("td",Ut,n(l.fmt(o.factor,8)),1),s("td",null,n(o.is_base?"â":""),1),s("td",null,n(o.is_active?t.$t("stock.common.active"):t.$t("stock.common.passive")),1),s("td",yt,[o.is_system?(r(),a("span",Ft,n(t.$t("stock.setting.is_system")),1)):(r(),a("button",{key:0,class:"link-danger",onClick:qt=>l.askDeleteUnit(o)},"â",8,wt))])]))),128))])]),i.errorText?(r(),a("p",Tt,n(i.errorText),1)):u("",!0),i.okText?(r(),a("p",$t,n(i.okText),1)):u("",!0)],64))])])]),i.showConfirmMessage?(r(),w(f,{key:0,message:i.message,showConfirmMessage:i.showConfirmMessage,onResponseMessage:l.handleDeleteConfirmed},null,8,["message","showConfirmMessage","onResponseMessage"])):u("",!0)],64)}const Ct=U(N,[["render",St],["__scopeId","data-v-76883818"]]),Vt={name:"StockSettings",created(){}},Mt={class:"blok-section"},Et={class:"draft-section"},Lt={class:"blok blok-md-12",id:"drag_div"},Dt={class:"sub-header"};function It(t,e,k,y,i,l){const f=$("font-awesome-icon"),o=Ct;return r(),a("div",Mt,[s("div",Et,[s("div",Lt,[s("div",Dt,[s("div",null,[b(f,{class:"icon",icon:["fas","sliders"]}),s("span",null,n(t.$t("left_menu.stock_settings")),1)])]),b(o)])])])}const Bt=U(Vt,[["render",It],["__scopeId","data-v-486bf8fd"]]);export{Bt as default};
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.