hesabixCore/public_html/webui/assets/card-904872a5.js

2 lines
14 KiB
JavaScript
Raw Normal View History

2025-03-21 14:20:43 +03:30
import{_ as K,a as v,S as T}from"./main-9b36f05f.js";import{r as Q,a as c,o as m,s as k,b as e,w as s,F as B,d as r,t as n,_ as L,c as N,C as W,e as i,af as X,ag as Y,v as z,A as I}from"./vendor-adef9cb4.js";const Z={name:"card",data(){return{searchValue:"",listPersons:[],itemsSelected:[],selectedPerson:{accounts:[],balance:0,bs:0,bd:0},items:[],loading:Q(!1),dialog:!1,debounceTimeout:null,headers:[{title:this.$t("dialog.operation"),key:"operation",align:"center",sortable:!1},{title:this.$t("dialog.type"),key:"type",align:"center",sortable:!0},{title:this.$t("dialog.invoice_num"),key:"code",align:"center",sortable:!0},{title:this.$t("dialog.date"),key:"date",align:"center",sortable:!0},{title:this.$t("app.body"),key:"des",align:"center"},{title:this.$t("pages.person_card.detail"),key:"ref",align:"center",sortable:!0},{title:this.$t("pages.person_card.debit"),key:"bd",align:"center",sortable:!0},{title:this.$t("pages.person_card.credit"),key:"bs",align:"center",sortable:!0}]}},mounted(){this.loadData()},methods:{debouncedSearchPerson(t){this.debounceTimeout&&clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout(()=>{this.searchPerson(t)},1e3)},async searchPerson(t){if(!t||t.length<1){this.listPersons=[];return}this.loading=!0;try{const o=await v.post("/api/person/list/search",{search:t});this.listPersons=o.data}catch(o){console.error("Search error:",o),this.listPersons=[]}finally{this.loading=!1}},updateRoute(){this.selectedPerson&&this.selectedPerson.code&&(this.$router.push(this.selectedPerson.code),this.loadPerson(this.selectedPerson.code))},async loadData(){this.loading=!0;try{const t=await v.post("/api/person/list/search");this.listPersons=t.data;const o=this.$route.params.id;o?await this.loadPerson(o):t.data.length>0&&(this.selectedPerson=t.data[0],await this.loadPerson(this.selectedPerson.code))}catch(t){console.error("Load data error:",t)}finally{this.loading=!1}},async loadPerson(t){this.loading=!0;try{const o=await v.post("/api/person/info/"+t);this.selectedPerson=o.data;const h=await v.post("/api/accounting/rows/search",{type:"person",id:t});this.items=h.data}catch(o){console.error("Load person error:",o),this.selectedPerson={accounts:[],balance:0,bs:0,bd:0},this.items=[]}finally{this.loading=!1}},async excellOutput(t=!0){if(!t&&this.itemsSelected.length===0){T.fire({text:this.$t("pages.person_card.no_items_selected"),icon:"info",confirmButtonText:this.$t("dialog.confirm")});return}try{const o=await v({method:"post",url:"/api/person/card/list/excel",data:t?{code:this.selectedPerson.code}:{code:this.selectedPerson.code,items:this.itemsSelected},responseType:"arraybuffer"}),h=window.URL.createObjectURL(new Blob([o.data])),f=document.createElement("a");f.href=h,f.setAttribute("download","person-card-view.xlsx"),document.body.appendChild(f),f.click(),document.body.removeChild(f)}catch(o){console.error("Excel output error:",o)}},async print(t=!0){if(!this.selectedPerson){T.fire({text:this.$t("pages.person_card.no_items_selected"),icon:"info",confirmButtonText:this.$t("dialog.confirm")});return}if(!t&&this.itemsSelected.length===0){T.fire({text:this.$t("pages.person_card.no_items_selected"),icon:"info",confirmButtonText:this.$t("dialog.confirm")});return}try{const o=await v.post("/api/person/card/list/print",t?{code:this.selectedPerson.code}:{code:this.selectedPerson.code,items:this.itemsSelected});window.open(this.$API_URL+"/front/print/"+o.data.id,"_blank","noreferrer")}catch(o){console.error("Print error:",o)}},getTypeRoute(t,o){return{sell:"/acc/sell/view/",buy:"/acc/buy/view/",rfbuy:"/acc/rfbuy/view/",rfsell:"/acc/rfsell/view/",person_send:"/acc/accounting/view/",person_receive:"/acc/accounting/view/",cost:"/acc/accounting/view/",income:"/acc/accounting/view/",sell_receive:"/acc/accounting/view/",buy_send:"/acc/accounting/view/"}[t]+o},getTypeLabel(t){return{sell:this.$t("pages.person_card.sell_invoice"),buy:this.$t("pages.person_card.buy_invoice"),rfbuy:this.$t("pages.person_card.return_buy"),rfsell:this.$t("pages.person_card.return_sell"),person_send:this.$t("pages.person_card.payment"),person_re