PageSourceSearch

http://t6bet.info/POS/assets/ListPage-n2_nZ6m0.js

js t6bet.info collected 2026-10-05 04:44:08 UTC 9,504 bytes, 1 lines download raw bytes

1import{r as l,j as e,a1 as C,H as v,B as x,F as I,D as E,a7 as P}from"./index-C9N68Nml.js";import{M as U}from"./MainLayout-B60CkJbH.js";import{L as F}from"./ListLayout-CncD7z50.js";import{F as L}from"./FilterPanel-C4sC-hqw.js";import{c as O}from"./commons-Bl9Yh9zS.js";import{C as T,M as _}from"./column-C2tdsdd-.js";import{E as w}from"./index-BLanXYEo.js";import{u as B}from"./useCategory-9eNhUJ43.js";import{r as S}from"./imageUrl-TRvhNehc.js";import{T as y}from"./index-Dkx48qS1.js";import{p as A}from"./paginationItemRender-CvFUO6oz.js";/* empty css                   *//* empty css                 */import{E as R}from"./index-D13lVgfJ.js";import{P as z}from"./Pagination-C3ja0tn0.js";import{u as D}from"./useItemPrice-D-uNx2oq.js";import{a as M}from"./useOutlet-L6Lg7IqX.js";import{F as $}from"./index-Copc27gM.js";import{d as K}from"./debounce-B0g0CvV_.js";import"./SafetyCertificateOutlined-BrhJgF_k.js";import"./TagOutlined-BZv95324.js";import"./UserOutlined-DPm7hUaz.js";import"./FileTextOutlined-C7Dz5D7_.js";/* empty css              */import"./index-B51QZpOR.js";import"./PlusOutlined-BOnAhGQ2.js";import"./colors-BDW1OHtY.js";import"./Overflow-DARdm6du.js";import"./ShopOutlined-D63pnsRC.js";import"./KeyOutlined-KpzDmH8Y.js";import"./LeftOutlined-Cj3-vAE0.js";import"./LogoutOutlined-BXJOrqYG.js";import"./Sider-lJTWjAnI.js";import"./collapse-BbEVqHco.js";import"./DownOutlined-ChUDGHGa.js";import"./logistar-logo-D8VIqHsM.js";import"./chevron-right-BX2gP1b_.js";import"./Button-CB43iL1U.js";import"./ArrowLeftOutlined-DDIW5aGe.js";import"./index-DKB8-pkv.js";import"./TextArea-DYg_XV3I.js";import"./SearchOutlined-DOcgMXnS.js";import"./Collapse-Cxt9XPCq.js";import"./index-Dp0J6enr.js";import"./index-C83VwHDS.js";import"./CalendarOutlined-D2bjJflu.js";import"./ClockCircleOutlined-Dzu0UR7L.js";import"./isEmpty-nevjrhQI.js";import"./isObject-BqFFb_eK.js";import"./StatusTag-BLZyD1PO.js";import"./index-C7WNLRAX.js";import"./buildQueryParamToString-BUv1GWgX.js";import"./CheckOutlined-ymxd_ulb.js";import"./useBreakpoint-PNsCGxbz.js";import"./useForceUpdate-BPMxGy4i.js";import"./responsiveObserver-B2KaMrz_.js";import"./outletApi-BZSN9vPK.js";import"./row-BMGOuI37.js";const H=i=>{if(!i)return{emoji:"🍚",iconUrl:"https://img.icons8.com/emoji/96/cooked-rice-emoji.png"};const t=i.toLowerCase();return t.includes("kopi")||t.includes("coffee")?{emoji:"☕",iconUrl:"https://img.icons8.com/emoji/96/hot-beverage-emoji.png"}:t.includes("minuman")||t.includes("drink")?{emoji:"🥤",iconUrl:"https://img.icons8.com/emoji/96/cup-with-straw-emoji.png"}:t.includes("snack")||t.includes("cemilan")||t.includes("makanan ringan")?{emoji:"🍪",iconUrl:"https://img.icons8.com/emoji/96/cookie-emoji.png"}:t.includes("dessert")||t.includes("kue")||t.includes("cake")?{emoji:"🍰",iconUrl:"https://img.icons8.com/emoji/96/shortcake-emoji.png"}:t.includes("daging")||t.includes("seafood")||t.includes("ayam")?{emoji:"🍗",iconUrl:"https://img.icons8.com/emoji/96/cut-of-meat-emoji.png"}:t.includes("sayur")||t.includes("salad")?{emoji:"🥗",iconUrl:"https://img.icons8.com/emoji/96/green-salad-emoji.png"}:t.includes("paket")||t.includes("combo")?{emoji:"🍱",iconUrl:"https://img.icons8.com/emoji/96/bento-box-emoji.png"}:{emoji:"🍚",iconUrl:"https://img.icons8.com/emoji/96/cooked-rice-emoji.png"}},q=({product:i})=>{const t=i.itemTypeName==="COMPOSITE_GOOD"||i.itemTypeName==="COMPOSITE"||i.isComposite===!0||i.hasRecipe===!0||!!i.itemName&&i.itemName.toLowerCase().includes("candu segala keadaan"),[m,d]=l.useState(!1),[r,c]=l.useState(!1),{data:o}=B(),a=(Array.isArray(o?.data)?o.data:Array.isArray(o)?o:[]).find(s=>i.categoryName&&s.categoryName&&s.categoryName.trim().toLowerCase()===i.categoryName.trim().toLowerCase()),g=H(i.categoryName),u=a?.iconUrl||a?.icon_url||g.iconUrl,k=a?.iconEmoji||a?.icon_emoji||g.emoji||"🍚",h=i.imageUrl?.trim()||i.itemImageUrl?.trim()||i.item_image_url?.trim()||"",j=S(h),f=S(u),p=!!(j&&!m),N=!!(f&&!r);return e.jsxs("div",{className:"op-card",children:[e.jsx("div",{className:"op-card__thumb",children:p?e.jsx("img",{src:j,alt:i.itemName,onError:()=>d(!0)}):N?e.jsx("img",{src:f,alt:i.categoryName||"Kategori",style:{width:28,height:28,objectFit:"contain"},onError:()=>c(!0)}):e.jsx("span",{style:{fontSize:22},children:k})}),e.jsx("div",{className:"op-card__name",title:i.itemName,children:i.itemName}),e.jsx("div",{className:"op-card__cat",title:i.categoryName||"-",children:i.categoryName||"—"}),e.jsx("div",{className:"op-card__stock",children:t?e.jsx(y,{title:"Stok logis otomatis dihitung dari batas ketersediaan bahan baku resep",children:e.jsxs("span",{style:{color:"#1677FF",fontWeight:700},children:[i.quantity??0," ",e.jsx("span",{style:{fontSize:12,color:"#1677FF",fontWeight:500},children:i.shortName||"Pcs"})]})}):i.isStockable?e.jsxs("span",{children:[i.quantity??0," ",i.shortName||"Pcs"]}):e.jsx("span",{className:"op-card__stock--unmanaged",children:"Tanpa Stok"})}),e.jsx("div",{className:"op-card__price",children:i.price&&i.price>0?O(i.price):e.jsx("span",{className:"op-card__price--unset",children:"Belum diatur"})}),e.jsx("div",{className:"op-card__status",children:e.jsx("span",{className:`entity-pill entity-pill--${i.isActive?"active":"inactive"}`,children:i.isActive?"Aktif":"Tidak Aktif"})}),e.jsxs("div",{className:"op-card__actions",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8},onClick:stop,onKeyDown:stop,children:[e.jsx(y,{title:"Atur Harga Jual",children:e.jsx(C,{to:`${v.BUSINESS_OUTLET_URL}/${i.id}/product-price`,state:i,onClick:stop,children:e.jsx(x,{className:"icon-only-btn",type:"default",icon:e.jsx(T,{}
1),style:{width:34,height:34,padding:0,borderRadius:8,border:"1px solid #b7eb8f",backgroundColor:"#f6ffed",color:"#389e0d",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"}})})}),e.jsx(y,{title:t?"Produk olahan resep (COMPOSITE_GOOD) tidak dapat dimutasi stok langsung. Stok dihitung otomatis dari bahan baku resep.":"Mutasi Stok",children:t?e.jsx(x,{disabled:!0,className:"icon-only-btn",type:"default",icon:e.jsx(_,{}),style:{width:34,height:34,padding:0,borderRadius:8,border:"1px solid #E5E5E5",backgroundColor:"#F5F5F5",color:"#BFBFBF",display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"not-allowed",opacity:.5}}):e.jsx(C,{to:`${v.BUSINESS_OUTLET_URL}/${i.id}/inventory`,state:i,onClick:stop,children:e.jsx(x,{className:"icon-only-btn",type:"default",icon:e.jsx(_,{}),style:{width:34,height:34,padding:0,borderRadius:8,border:"1px solid #adc6ff",backgroundColor:"#f0f5ff",color:"#1d39c4",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"}})})}),e.jsx(y,{title:"Ubah Pengaturan Produk",children:e.jsx(C,{to:`${v.BUSINESS_OUTLET_URL}/product-item/${i.id}/edit`,state:i,onClick:stop,children:e.jsx(x,{className:"icon-only-btn",type:"default",icon:e.jsx(w,{size:16}),style:{width:34,height:34,padding:0,borderRadius:8,border:"1px solid #D9D9D9",backgroundColor:"#FFFFFF",color:"#595959",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"}})})})]})]})},G=({data:i,loading:t,page:m,pageSize:d,total:r,outletId:c,onChange:o})=>t?e.jsx("div",{className:"card-list__loading",children:e.jsx(I,{size:"large"})}):!i||i.length===0?e.jsx("div",{style:{background:"var(--color-bg-container, #ffffff)",border:"1px solid var(--color-border, #f0f0f0)",borderRadius:12,padding:"48px 24px",textAlign:"center"},children:e.jsx(R,{description:"Belum ada produk yang dialokasikan ke toko ini."})}):e.jsxs("div",{className:"card-list",children:[e.jsxs("div",{className:"op-header op-grid",style:{userSelect:"none"},children:[e.jsx("div",{className:"op-header-cell"}),e.jsx("div",{className:"op-header-cell",children:"Nama Produk"}),e.jsx("div",{className:"op-header-cell",children:"Kategori"}),e.jsx("div",{className:"op-header-cell",children:"Stok Toko"}),e.jsx("div",{className:"op-header-cell",children:"Harga Jual"}),e.jsx("div",{className:"op-header-cell",children:"Status"}),e.jsx("div",{className:"op-header-cell",style:{textAlign:"right",paddingRight:12},children:"Aksi"})]}),e.jsx("div",{className:"card-list__rows",style:{display:"flex",flexDirection:"column",gap:8},children:(Array.isArray(i)?i:[]).map(n=>e.jsx(q,{product:n,outletId:c},n.id))}),e.jsx("div",{className:"card-list__foot styled-pagination",children:e.jsx(z,{current:m,pageSize:d,total:r,onChange:o,showSizeChanger:!0,pageSizeOptions:["10","30","50","100"],itemRender:A})})]}),Xe=()=>{const{outletId:i}=E(),m=P().state,[d]=$.useForm(),[r,c]=l.useState(""),[o,n]=l.useState({page:1,size:10}),a=i??"",{data:g}=M(a),u=g?.outletName||m?.outletName||"Toko",k=l.useMemo(()=>({searchstr:r,page:o.page,size:o.size}),[r,o.page,o.size]),{data:h,isLoading:j,isFetching:f}=D(a,k),p=l.useCallback(K(s=>{c(s),n(b=>({...b,page:1}))},500),[]);l.useEffect(()=>()=>{p.cancel()},[p]);const N=(s,b)=>{n({page:s,size:b})};return e.jsx(U,{children:e.jsx(F,{title:`Produk Toko: ${u}`,subtitle:`Kelola daftar harga jual, inventori, dan ketersediaan produk untuk toko ${u}`,showButtonBack:!0,showButtonAdd:!1,children:e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[e.jsx(L,{form:d,onSearch:p,searchPlaceholder:"Cari nama produk di toko...",searchDefaultValue:r,onReset:()=>{c(""),n(s=>({...s,page:1}))}}),e.jsx(G,{data:h?.data||[],loading:j||f,page:o.page,pageSize:o.size,total:h?.pagination?.totalRecord||0,outletId:a,onChange:N})]})})})};export{Xe 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.