PageSourceSearch

https://quanlybanhangaseller.com/_next/static/chunks/pages/dashboard/warehouse/stat-92fea45131cc5135.js

js quanlybanhangaseller.com collected 2026-10-02 01:43:31 UTC 17,713 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7304],{42287:function(t,e,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/dashboard/warehouse/stat",function(){return a(90951)}])},90951:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return stat}});var n=a(85893),i=a(25079),o=a(80822),r=a(23972),s=a(98456),l=a(40017),d=a(22703),p=a(66630),c=a(39040),h=a(796),g=a(5466),u=a(72877),x=a(76547),m=a(25675),f=a.n(m);a(67294);var b=a(61121),y=a(78633),v=a(52091),Z=a(71054),w=a(93524),C=a(67486),j=a(71141),S=a(94290),P=a(85357),k=a(23773),D=a(10828),T=a(57716),z=a(58650),N=a(63107),I=a(14901),R=a(88507);let StatisticalStockScreen=class StatisticalStockScreen extends w.Z{async componentDidMount(){super.componentDidMount(),j.Z.updateBreadCrumbs([{text:i.Z.statitical.stock}]),await this.getData()}constructor(t){var e;super(t),e=this,this.getData=async()=>{var t,e,a,n,o,r,s,l,d,p,g;if(await this.authenticate(),!S.default.productSettings.inventoryActive)return;if((null===(t=S.default.user)||void 0===t?void 0:t.isStaff)&&(null===(e=S.default.user)||void 0===e?void 0:e.role)!=="manager"){let t=(null===(r=S.default.user)||void 0===r?void 0:r.permission)?h.Z.jsonParse(null===(s=S.default.user)||void 0===s?void 0:s.permission):{};if(!(null==t?void 0:t.canViewWarehouseStats))return this.props.router.replace("/404")}let u=0,m=[],f=[],b=[],y=[];f=200===(f=await c.Z.get(x.Z.PRODUCT.GET,{},!0)).status&&(null==f?void 0:null===(a=f.data)||void 0===a?void 0:a.data),b=200===(b=await c.Z.get(x.Z.UNIT.GET,{},!0)).status&&(null==b?void 0:null===(n=b.data)||void 0===n?void 0:n.data),y=200===(y=await c.Z.get(x.Z.CATEGORY.GET,{},!0)).status&&(null==y?void 0:null===(o=y.data)||void 0===o?void 0:o.data),b=null==b?void 0:b.map(t=>({name:t.name,id:t.id,total:0,capital:0,sold:0})),y=null==y?void 0:y.map(t=>({name:t.name,id:t.id,total:0,capital:0,sold:0})),b.unshift({id:-1,name:i.Z.none,total:0,capital:0,sold:0}),y.unshift({id:-1,name:i.Z.none,total:0,capital:0,sold:0});for(let t=0;t<f.length;t+=1){let e=f[t];if((null===(l=e.types)||void 0===l?void 0:l.length)>0){e.quantity=0;for(let t=0;t<(null===(g=e.types)||void 0===g?void 0:g.length);t+=1)e.quantity+=e.types[t].quantity,e.sold+=e.types[t].sold}e.capital=0;let a=(null===(d=e.unit)||void 0===d?void 0:d.id)||e.unitId||-1,n=b.find(t=>t.id===a);n||(n=b[0]);let i=(null===(p=e.category)||void 0===p?void 0:p.id)||e.categoryId||-1,o=y.find(t=>t.id===i);if(o||(o=y[0]),e.sold>0&&(o.sold+=e.sold,n.sold+=e.sold),e.quantity>=0){n.total+=e.quantity,o.total+=e.quantity;let t=e.quantity*e.buyPrice;e.capital=t,o.capital+=t,n.capital+=t,u+=t}m.push(e)}m=m.sort((t,e)=>e.quantity-t.quantity),y=(y=y.filter(t=>t.total>0)).sort((t,e)=>e.total-t.total),b=b.sort((t,e)=>e.total-t.total),this.products=m,this.categories=y,this.units=b,this.setState({inventoryCapital:u}),this.searchProducts=this.products,this.searchUnits=this.units,this.searchCategories=this.categories,this.onChangeType(0,u)},this.onChangeType=async function(t){let a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a||d.Z.show(),await h.Z.delay(50);let n=[];0===t&&(n=e.searchProducts),1===t&&(n=e.searchCategories),2===t&&(n=e.searchUnits);let{sortField:i,sortOrder:o}=e.state;e.allData=[...n].sort((t,e)=>{let a=t[i],n=e[i];return o*(null==a&&null!=n?-1:null!=a&&null==n?1:null==a&&null==n?0:"string"==typeof a&&"string"==typeof n?a.localeCompare(n):a<n?-1:a>n?1:0)});let{itemPerPage:r}=e.state,s=[...e.allData];s.length>=r&&(s=s.slice(0,r)),e.setState({listTableData:s,isLoading:!1,type:t,page:1}),d.Z.hide()},this.resetSearch=()=>{var t;null===(t=this.inputSearch)||void 0===t||t.setText(""),this.searchProducts=this.products,this.searchUnits=this.units,this.searchCategories=this.categories},this.onChangeTextSearch=async t=>{this.currentTextSearch!==t&&(this.currentTextSearch=t,this.setState({searching:!0}),clearTimeout(this.timeOut),this.timeOut=setTimeout(async()=>{var e,a,n;let i=g.Z.replaceUnicode(t.toLowerCase());this.searchProducts=null===(e=this.products)||void 0===e?void 0:e.filter(t=>g.Z.replaceUnicode(t.name.toLowerCase()).indexOf(i)>=0),this.searchCategories=null===(a=this.categories)||void 0===a?void 0:a.filter(t=>g.Z.replaceUnicode(t.name.toLowerCase()).indexOf(i)>=0),this.searchUnits=null===(n=this.units)||void 0===n?void 0:n.filter(t=>g.Z.replaceUnicode(t.name.toLowerCase()).indexOf(i)>=0),this.onChangeType(this.state.type,!0),this.setState({searching:!1})},50))},this.onChangeCategory=t=>{var e,a,n;(null===(e=t.target.value)||void 0===e?void 0:e.onPress)&&(null===(n=t.target.value)||void 0===n||n.onPress()),this.setState({type:(null===(a=t.target.value)||void 0===a?void 0:a.key)-1})},this.onChangePage=(t,e)=>{let{itemPerPage:a}=this.state,n=[...this.allData],i=n.slice((e-1)*a,(e-1)*a+a);this.setState({listTableData:i,page:e})},this.onRowsPerPageChange=t=>{let e=Number(t)||20,a=[...this.allData].slice(0,e);this.setState({itemPerPage:e,page:1,listTableData:a})},this.onClickDetail=t=>{let{type:e=0}=this.state,a="/dashboard/product/";1===e&&(a="/dashboard/category/detail?id="),2!==e&&this.props.router.push(a+(null==t?void 0:t.id))},this.onSort=t=>{let{sortField:e,sortOrder:a}=t;this.allData.sort((t,n)=>{let i=t[e],o=n[e];return a*(null==i&&null!=o?-1:null!=i&&null==o?1:null==i&&null==o?0:"string"==typeof i&&"string"==typeof o?i.localeCompare(o):i<o?-1:i>o?1:0)}),this.setState({sortField:e,sortOrder:a,page:1},()=>{this.onChangePage({},1)})},this.renderHeader=()=>(0,n.jsx)(D.Z,{testId:"statistical-stock-title",title:i.Z.statitical.stock,description:i.Z.statitical.inventoryCapitalDetail}),this.renderSummaryCard=()=>{let{inventoryCapital:t}=this.state;return(0,n.jsxs)(o.Z,{sx:{display:"flex",gap:2,mb:3,flexWrap:"wrap"},children:[(0,n.jsxs)(o.Z,{sx:{flex:1,minWidth:"280px",bgcolor:"white",p:2,borderRadius:"12px",borderLeft:"4px solid #339966",boxShadow:"0 1px 2px rgba(0,0,0,0.05)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsxs)(o.Z,{children:[(0,n.jsx)(r.Z,{sx:{fontSize:"12px",color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600,mb:.5},children:i.Z.statStock.inventoryCapital}),(0,n.jsx)(r.Z,{sx:{fontSize:"20px",fontWeight:700,color:"#0f172a"},children:h.Z.formatCurency(t)})]}),(0,n.jsx)(o.Z,{sx:{bgcolor:"#f0fdf4",p:1,borderRadius:"8px"},children:(0,n.jsx)(v.$m5,{size:20,color:"#339966"})})]}),(0,n.jsxs)(o.Z,{sx:{flex:1,minWidth:"280px",bgcolor:"white",p:2,borderRadius:"12px",borderLeft:"4px solid #6366f1",boxShadow:"0 1px 2px rgba(0,0,0,0.05)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsxs)(o.Z,{children:[(0,n.jsx)(r.Z,{sx:{fontSize:"12px",color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600,mb:.5},children:i.Z.product.title}),(0,n.jsx)(r.Z,{sx:{fontSize:"20px",fontWeight:700,color:"#0f172a"},children:h.Z.formatNumber(this.products.length)})]}),(0,n.jsx)(o.Z,{sx:{bgcolor:"#eef2ff",p:1,borderRadius:"8px"},children:(0,n.jsx)(v.ZUW,{size:20,color:"#6366f1"})})]})]})},this.renderSearchAndFilter=()=>{let{type:t,searching:e}=this.state;return(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",bgcolor:"white",p:2,borderRadius:"12px",boxShadow:"0 1px 3px rgba(0,0,0,0.1)"},children:[(0,n.jsxs)(o.Z,{sx:{display:"flex",flex:1,maxWidth:"400px",alignItems:"center",border:"1px solid #e2e8f0",borderRadius:"8px",px:2,bgcolor:"#f8fafc"},children:[e?(0,n.jsx)(s.Z,{size:18,thickness:5,sx:{color:"#339966",mr:1.5}}
1):(0,n.jsx)(b.wTD,{size:20,color:"#64748b",style:{marginRight:"12px"}}),(0,n.jsx)(I.Z,{"data-testid":"statistical-stock-search-input",ref:t=>this.inputSearch=t,placeholder:i.Z.product.search,onChange:this.onChangeTextSearch,sx:{input:{fontSize:"14px",height:"40px","&::placeholder":{color:"#94a3b8",opacity:1}}},disableUnderline:!0,fullWidth:!0})]}),(0,n.jsx)(o.Z,{sx:{width:"200px"},children:(0,n.jsx)(R.Z,{value:this.menuCategory[t],options:this.menuCategory,optionLabel:"name",onChange:this.onChangeCategory,style:{width:"100%",height:"42px",border:"1px solid #e2e8f0",bgcolor:"#f8fafc"},itemTemplate:t=>(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.icon,(0,n.jsx)(r.Z,{sx:{fontSize:"13px"},children:t.name})]}),valueTemplate:e=>{let a=e||this.menuCategory[t];return a?(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[a.icon,(0,n.jsx)(r.Z,{sx:{fontSize:"13px",fontWeight:500},children:a.name})]}):(0,n.jsx)("span",{children:i.Z.category.title})}})})]})},this.renderColumns=()=>{let{type:t}=this.state;return[(0,n.jsx)(z.s,{header:0===t?i.Z.product.name:1===t?i.Z.category.name:i.Z.unit.name,body:e=>(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[(0,n.jsx)(o.Z,{sx:{width:36,height:36,borderRadius:"8px",overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"#f1f5f9",border:"1px solid #e2e8f0"},children:0===t?P.Z.getIcon(e)?(0,n.jsx)(f(),{alt:e.name,src:k.Z.getImagePath(e.userId)+P.Z.getIcon(e),width:36,height:36,style:{objectFit:"cover"}}):(0,n.jsx)(C.Z,{size:20}):1===t?(0,n.jsx)(y.ra4,{size:18,color:l.Z.colorApp}):(0,n.jsx)(Z.mXW,{size:18,color:l.Z.colorApp})}),(0,n.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,color:"#1e293b"},children:e.name})]}),style:{width:"40%"}},"name"),(0,n.jsx)(z.s,{sortable:!0,field:0===t?"quantity":"total",header:i.Z.product.inStock,body:t=>(0,n.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:600,color:0>=(t.quantity||t.total)?"#ef4444":"#0f172a"},children:h.Z.formatNumber(t.quantity||t.total)}),style:{textAlign:"center",width:"15%"},headerClassName:"col-center-header"},"inStock"),(0,n.jsx)(z.s,{sortable:!0,field:"sold",header:i.Z.product.sold,body:t=>(0,n.jsx)(r.Z,{sx:{fontSize:"14px",color:"#64748b"},children:h.Z.formatNumber(t.sold)}),style:{textAlign:"center",width:"15%"},headerClassName:"col-center-header"},"sold"),(0,n.jsx)(z.s,{sortable:!0,field:"capital",header:i.Z.statStock.inventoryCapital,body:t=>(0,n.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,color:"#059669"},children:h.Z.formatCurency(t.capital)}),style:{textAlign:"center",width:"15%"},headerClassName:"col-center-header"},"capital"),...0===t?[(0,n.jsx)(z.s,{sortable:!0,field:"expirationDate",header:i.Z.expired,body:t=>(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:.5},children:[(0,n.jsx)(v.IiJ,{size:12,color:"#94a3b8"}),(0,n.jsx)(r.Z,{sx:{fontSize:"13px",color:"#64748b"},children:t.expirationDate?u.Z.format(t.expirationDate,"DD/MM/YY"):"--"})]}),style:{textAlign:"center",width:"15%"},headerClassName:"col-center-header"},"expirationDate")]:[]]},this.renderTableData=()=>{let{listTableData:t,sortField:e,sortOrder:a}=this.state;return(0,n.jsx)(T.Z,{"data-testid":"statistical-stock-table",data:t,excelPathName:i.Z.statitical.stock,onRowClick:t=>this.onClickDetail(t.data),style:{border:"none",borderRadius:"0"},onSort:this.onSort,sortField:e,sortOrder:a,children:this.renderColumns()})},this.renderPage=()=>{var t,e;let{page:a,itemPerPage:i}=this.state,r=Math.ceil((null===(t=this.allData)||void 0===t?void 0:t.length)/i);return r<=1?null:(0,n.jsx)(o.Z,{sx:{p:2,borderTop:"1px solid #f1f5f9"},children:(0,n.jsx)(N.Z,{first:(a-1)*i,rows:i,totalRecords:null===(e=this.allData)||void 0===e?void 0:e.length,totalPage:r,onPageChange:this.onChangePage,onRowsPerPageChange:this.onRowsPerPageChange})})},this.renderContent=()=>S.default.productSettings.inventoryActive?(0,n.jsx)(o.Z,{sx:{bgcolor:"#f8fafc",minHeight:"100vh",pb:5},children:(0,n.jsxs)(o.Z,{sx:{px:3},children:[this.renderSummaryCard(),this.renderSearchAndFilter(),(0,n.jsxs)(o.Z,{sx:{mt:3,bgcolor:"white",borderRadius:"16px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06)",overflow:"hidden"},children:[this.renderTableData(),this.renderPage()]})]})}):(0,n.jsxs)(o.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"60vh",p:3},children:[(0,n.jsx)(v.gJy,{size:48,color:"#f59e0b"}),(0,n.jsx)(r.Z,{sx:{mt:2,color:"#4b5563",textAlign:"center"},children:i.Z.setting.inventoryInactiveDetail})]}),this.state={listTableData:[],type:0,page:1,itemPerPage:20,searching:!1,sortField:"quantity",sortOrder:-1},this.products=[],this.allData=[],this.menuCategory=[{key:1,name:i.Z.product.title,icon:(0,n.jsx)(v.AFA,{size:18,color:l.Z.colorApp}),onPress:()=>{this.resetSearch(),this.onChangeType(0)}},{key:2,name:i.Z.category.title,icon:(0,n.jsx)(y.ra4,{size:20,color:l.Z.colorApp}),onPress:()=>{this.resetSearch(),this.onChangeType(1)}}
1,{key:3,name:i.Z.unit.title,icon:(0,n.jsx)(Z.mXW,{size:18,color:l.Z.colorApp}),onPress:()=>{this.resetSearch(),this.onChangeType(2)}}]}};var A=(0,p.Z)(StatisticalStockScreen),stat=()=>(0,n.jsx)(A,{title:i.Z.statitical.stock})},88507:function(t,e,a){"use strict";a.d(e,{Z:function(){return BaseDropdown}});var n=a(85893),i=a(84908),o=a(67294);let BaseDropdown=class BaseDropdown extends o.Component{componentDidMount(){this.setState({mounted:!0})}render(){if(!this.state.mounted)return null;let{icon:t,value:e="",options:a=[],optionLabel:o,placeholder:s,style:l,...d}=this.props;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{children:r}),(0,n.jsx)(i.L,{value:e,onChange:this.onChangeCategory,options:a,optionLabel:o,placeholder:s,style:{display:"flex",alignItems:"center",height:"35px",borderRadius:"5px",...l},className:"gd-dropdown",panelClassName:"gd-dropdown-panel",...d,valueTemplate:this.props.valueTemplate||(a=>a?a[o]||a:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[t||null,(0,n.jsx)("span",{style:{color:"#94a3b8"},children:(null==e?void 0:e.name)||e||s})]}))})]})}constructor(t){super(t),this.onChangeCategory=t=>{let{onChange:e=()=>{}}=this.props;e&&e({target:{value:t.value}})},this.state={mounted:!1}}};let r='\n  .gd-dropdown {\n    border: 1px solid #339966 !important;\n    border-radius: 6px !important;\n    font-size: 13px !important;\n  }\n  .gd-dropdown .p-dropdown-label {\n    font-size: 13px !important;\n    color: #334155 !important;\n    padding: 0 12px !important;\n    display: flex !important;\n    align-items: center !important;\n    height: 35px !important;\n  }\n  .gd-dropdown .p-dropdown-label.p-placeholder {\n    color: #94a3b8 !important;\n  }\n  .gd-dropdown .p-dropdown-trigger {\n    width: 32px !important;\n    height: 35px !important;\n    color: #64748b !important;\n  }\n  .gd-dropdown:hover {\n    border: 1px solid #339966 !important;\n    color: #64748b !important;\n  }\n  .gd-dropdown[data-p-focus="true"] {\n    border-color: #339966 !important;\n    box-shadow: 0 0 0 3px rgba(51, 153, 102, 0.1) !important;\n  }\n  .gd-dropdown-panel .p-dropdown-item {\n    font-size: 13px !important;\n    color: #334155 !important;\n    padding: 8px 12px !important;\n  }\n  .gd-dropdown-panel .p-dropdown-item:hover {\n    background: #f0fdf4 !important;\n  }\n\n  .gd-dropdown-panel .p-dropdown-item[data-p-highlight="true"] {\n    background: #f0fdf4 !important;\n    color: #339966 !important;\n  }\n  .gd-dropdown .p-dropdown-trigger svg {\n    width: 14px !important;\n    height: 14px !important;\n    color: #64748b\n  }\n'},63107:function(t,e,a){"use strict";a.d(e,{Z:function(){return BasePaginator}});var n=a(85893),i=a(41518),o=a(13643),r=a(67294);let BasePaginator=class BasePaginator extends r.PureComponent{render(){let{first:t,rows:e,totalRecords:a,onRowsPerPageChange:r,onPageChange:l,totalPage:d,...p}=this.props;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{children:s}),(0,n.jsx)(i.D,{first:t,rows:e,rowsPerPageOptions:[20,50,100],totalRecords:a,pageLinkSize:10,onPageChange:t=>{if(t.rows!==e&&r){r(t.rows);return}l({},t.page+1)},className:"gd-paginator",...p,currentPageReportTemplate:"{currentPage} of {totalPages}",template:{layout:"PrevPageLink PageLinks NextPageLink RowsPerPageDropdown CurrentPageReport",PageLinks:t=>{if(t.view.startPage===t.page&&0!==t.view.startPage||t.view.endPage===t.page&&t.page+1!==t.totalPages){let e=(0,o.AK)(t.className,{"p-disabled":!0});return(0,n.jsx)("span",{className:e,style:{userSelect:"none"},children:"..."})}return(0,n.jsx)("button",{type:"button",className:t.className,onClick:t.onClick,children:t.page+1})}}})]})}constructor(...t){super(...t),this.onChangeCategory=t=>{let{onChange:e=()=>{}}=this.props;e&&e(t)}}};let s='\n  .gd-paginator {\n    background: #fff !important;\n    border: none !important;\n    border-top: none !important;\n    padding: 10px !important;\n    justify-content: center !important;\n    border-radius: 0 0 10px 10px !important;\n  }\n\n  .gd-paginator .p-paginator-page,\n  .gd-paginator .p-paginator-first,\n  .gd-paginator .p-paginator-prev,\n  .gd-paginator .p-paginator-next,\n  .gd-paginator .p-paginator-last {\n    min-width: 32px !important;\n    height: 34px !important;\n    border-radius: 6px !important;\n    font-size: 14px !important;\n    color: #64748b !important;\n    border: none !important;\n    margin: 0 2px !important;\n  }\n\n  .gd-paginator .p-paginator-page[data-p-highlight="true"] {\n    background: #339966 !important;\n    color: white !important;\n    font-weight: 600 !important;\n  }\n\n  .gd-paginator .p-paginator-page:hover,\n  .gd-paginator .p-paginator-prev:hover,\n  .gd-paginator .p-paginator-next:hover,\n  .gd-paginator .p-paginator-first:hover,\n  .gd-paginator .p-paginator-last:hover {\n    background: #f0fdf4 !important;\n    color: #339966 !important;\n  }\n\n  .gd-paginator .p-paginator-prev svg,\n  .gd-paginator .p-paginator-next svg,\n  .gd-paginator .p-paginator-first svg,\n  .gd-paginator .p-paginator-last svg {\n    width: 14px !important;\n    height: 14px !important;\n  }\n'}},function(t){t.O(0,[9774,2888,179],function(){return t(t.s=42287)}),_N_E=t.O()}]);

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.