2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{j as r,ao as K,an as D,B as P,b as Y,I as Z,b3 as v,aq as uu,ar as ru,at as G,b8 as eu,b7 as tu,as as su,T as W,aD as U}from"./mui-vendor-D_SVL-Dx.js";import{r as o}from"./react-vendor-CmFgShSM.js";import{u as M}from"./redux-vendor-CfkcHgWN.js";import{p as au,G as _,S as k,a0 as R,A as q,L as J,j as z,h as V,W as H,O as nu,C as ou}from"./index-D80MdVQn.js";import{R as lu}from"./index.esm-C1-dCPnj.js";import{R as cu}from"./ResponsiveTable-bUYl0qDM.js";import{d as iu}from"./Tune-BBzxV8DK.js";import{d as Cu}from"./PersonAddAlt1Rounded--1IUMwiN.js";import{d as pu,a as hu}from"./AddRounded-_nD2OARX.js";import{B as Au}from"./BackButton-Dr-K0JXJ.js";import"./FilterAlt-DZsHj-WQ.js";import"./styled-components.browser.esm-gS9mh05b.js";const Iu=()=>{const[u,x]=o.useState([]),[T,i]=o.useState(0),[g,m]=o.useState(10),[C,w]=o.useState(""),[h,S]=o.useState(1),[y,I]=o.useState([]),[B,p]=o.useState([]),[l,f]=o.useState(""),c=M(),b=async()=>{try{c(J());const e=await z.get(`/get_all_pos_company/?role=${R()}`);p(e.data),c(V())}catch(e){console.error("Error fetching companies:",e),c(V())}},A=async e=>{var t,j;try{c(J());let a=`/user-pos-machine/?search=filter&value=${C}&role=${R()}&page=${e}&page_size=${g}`;l&&(a+=`&company=${l}`);const E=await z.get(a);x(((t=E.data)==null?void 0:t.results)||[]),i(((j=E.data)==null?void 0:j.count)||0)}catch(a){console.error("Error fetching devices:",a)}finally{c(V())}},O=e=>{A(e),S(e)},L=e=>{m(e),S(1)},N=e=>{w(e.target.value)};o.useEffect(()=>{const e=u==null?void 0:u.map((t,j)=>{const a=(t==null?void 0:t.owner)||{},E=(t==null?void 0:t.pos_company)||{},$=!!(t!=null&&t.owner);return[h===1?j+1:j+g*(h-1)+1,(E==null?void 0:E.name)||"-",(t==null?void 0:t.serial)??"-",(t==null?void 0:t.receiverNumber)??"-",(t==null?void 0:t.terminalNumber)??"-",(t==null?void 0:t.password)??"-",(t==null?void 0:t.posUniqueId)||(t==null?void 0:t.posId)||"-",a!=null&&a.fullname?`${a==null?void 0:a.fullname} (${(a==null?void 0:a.mobile)??"-"})`:"-",(a==null?void 0:a.nationalId)||(a==null?void 0:a.nationalCode)||"-",t!=null&&t.createDate?au(t==null?void 0:t.createDate):"-",t!=null&&t.active?"فعال":"غیرفعال",r.jsx(mu,{device:t,hasOwner:$,onOwnerAssigned:()=>{A(h)}},(t==null?void 0:t.id)||(t==null?void 0:t.key)||`device-${j}`)]});I(e)},[u,h,g]),o.useEffect(()=>{b()},[c]),o.useEffect(()=>{A(h)},[l,g]);const s=async e=>{e.preventDefault(),A(1)},n=()=>{S(1),A(1)},F=()=>{const e=window.innerWidth<=600;c(H({title:"ایجاد دستگاه",right:!e,bottom:e,content:r.jsx(fu,{onSuccess:n})}))},d=r.jsx(_,{container:!0,alignItems:"center",justifyContent:"space-between",gap:2,mb:1,padding:2,width:"100%",children:r.jsxs(_,{container:!0,width:"100%",alignItems:"center",justifyContent:"space-between",gap:k.SMALL,children:[r.jsxs(_,{container:!0,alignItems:"center",gap:k.SMALL,xs:12,md:"auto",children:[R()!=="PosCompany"&&r.jsx(K,{size:"small",style:{minWidth:210},disablePortal:!0,id:"session",options:Array.isArray(B)?B.map(e=>({data:e,label:`${(e==null?void 0:e.name)||""}`})):[],onChange:(e,t)=>{var j;f((j=t==null?void 0:t.data)==null?void 0:j.key)},renderInput:e=>r.jsx(D,{fullWidth:!0,...e,label:"انتخاب شرکت psp"})}),r.jsxs(_,{container:!0,alignItems:"center",gap:k.SMALL,children:[r.jsx(D,{size:"small",autoComplete:"off",label:"جستجو",variant:"outlined",style:{width:250},value:C,onChange:N}),r.jsx(P,{type:"submit",onClick:s,endIcon:r.jsx(lu,{}),children:"جستجو"})]})]}),r.jsx(_,{container:!0,justifyContent:"flex-end",xs:12,md:"auto",children:r.jsx(P,{variant:"contained",startIcon:r.jsx(pu,{}),onClick:F,children:"ایجاد دستگاه"})})]})});return r.jsx(Y,{display:"flex",justifyContent:"center",children:r.jsxs(_,{container:!0,xs:12,lg:10,children:[r.jsx(Au,{}),d,r.jsx(cu,{data:y,columns:["ردیف","شرکت پرداختی","شماره سریال","شماره پذیرنده","شماره ترمینال","کلمه عبور امنیتی","کلید پوز","مالک","کدملی","تاریخ ایجاد","فعال / غیرفعال","عملیات"],handlePageChange:O,totalRows:T,page:h,perPage:g,handlePerRowsChange:L,title:"مدیریت دستگاه ها"})]})})},mu=({device:u,hasOwner:x,onOwnerAssigned:T})=>{const[i,g]=o.useState(null),[m]=o.useState(!1),[C,w]=o.useState(!!(u!=null&&u.active)),h=M(),[S]=o.useContext(q);o.useEffect(()=>{w(!!(u!=null&&u.active))},[u==null?void 0:u.active]);const y=L=>{g(L.currentTarget)},I=()=>{g(null)},B=()=>{I(),h(nu({title:x?"تغییر مالک":"افزودن مالک",width:"auto",content:r.jsx(du,{device:u,onSuccess:T})}))},p=!!i,l=p?"device-operations-popover":void 0,f=x?"تغییر مالک":"افزودن مالک",c=x?hu:Cu,b=x?"warning.main":"success.main",A=(u==null?void 0:u.key)||(u==null?void 0:u.id),O=async L=>{if(L.stopPropagation(),L.preventDefault(),!A){S({vertical:"top",horizontal:"center",severity:"error",msg:"شناسه دستگاه یافت نشد."});return}};return r.jsxs(r.Fragment,{children:[r.jsx(Z,{"aria-describedby":l,color:"primary",onClick:y,size:"small",children:r.jsx(iu,{fontSize:"small"})}),r.jsx(v,{id:l,open:p,anchorEl:i,onClose:I,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"left"},children:r.jsxs(uu,{sx:{minWidth:160,p:0},children:[r.jsxs(ru,{sx:{px:2,py:1,display:"flex",alignItems:"center",gap:1},children:[r.jsx(G,{primary:"وضعیت دستگاه",secondary:C?"فعال":"غیرفعال"}),r.jsx(eu,{edge:"end",color:"success",checked:C,onChange:O,disabled:m||!A})]}),r.jsxs(tu,{onClick:B,children:[r.jsx(su,{sx:{minWidth:36,color:b},children:r.jsx(c,{fontSize:"small"})}),r.jsx(G,{primary:f,primaryTypographyProps:{sx:{color:b}}})]})]})})]})},du=({device:u,onSuccess:x})=>{const T=M(),[i]=o.useContext(q),[g,m]=o.useState([]),[C,w]=o.useState(null),[h,S]=o.useState(!1),[y,I]=o.useState(!1),[B,p]=o.useState(""),[l,f]=o.useState({receiver_number:u==null?void 0:u.receiverNumber,terminal_number:u==null?void 0:u.terminalNumber,password:u==null?void 0:u.password}),[c,b]=o.useState({}),A=()=>{var n,F,d;const s={};return(n=l.receiver_number)!=null&&n.trim()||(s.receiver_number="وارد کردن شماره پذیرنده الزامی است."),(F=l.terminal_number)!=null&&F.trim()||(s.terminal_number="وارد کردن شماره ترمینال الزامی است."),(d=l.password)!=null&&d.trim()?/^\d{4}$/.test(l.password)||(s.password="رمز عبور باید دقیقاً ۴ رقم عددی باشد."):s.password="وارد کردن رمز عبور الزامی است.",b(s),Object.keys(s).length===0};o.useEffect(()=>{let s=!0;return(async()=>{var F,d;S(!0),p(""),w(null);try{const e=await z.get("/users_for_pos/");if(s){const j=(Array.isArray((F=e==null?void 0:e.data)==null?void 0:F.results)?(d=e==null?void 0:e.data)==null?void 0:d.results:Array.isArray(e==null?void 0:e.data)?e==null?void 0:e.data:[]).map(a=>{const E=(a==null?void 0:a.fullname)||"-",$=(a==null?void 0:a.mobile)||"",Q=$?` (${$})`:"",X=`${E}${Q}`;return{...a,label:X||"-"}});m(j),w(j.find(a=>{var E;return(a==null?void 0:a.mobile)===((E=u==null?void 0:u.owner)==null?void 0:E.mobile)}))}}catch(e){s&&(p("دریافت لیست کاربران با خطا مواجه شد."),console.error("Error fetching users:",e))}finally{s&&S(!1)}})(),()=>{s=!1}},[u]);const O=()=>{T(ou())},L=s=>{const{name:n,value:F}=s.target;f(d=>({...d,[n]:F})),c[n]&&b(d=>({...d,[n]:""}))},N=async()=>{var s,n,F,d;if(C&&A()){if(!(u!=null&&u.key)&&!(u!=null&&u.id)){i({vertical:"top",horizontal:"center",severity:"error",msg:"شناسه دستگاه یافت نشد. لطفاً دوباره تلاش کنید."});return}I(!0);try{const e={key:(u==null?void 0:u.key)||(u==null?void 0:u.id),recipient_type:"owner",recipient_key:(C==null?void 0:C.key)||(C==null?void 0:C.id),receiver_number:l.receiver_number.trim(),terminal_number:l.terminal_number.trim(),password:l.password.replace(/\D/g,"").slice(0,4)};await z.put("/user-pos-machine/0/",e),i({vertical:"top",horizontal:"center",severity:"success",msg:"مالک با موفقیت ثبت شد."}),x==null||x(),O()}catch(e){i({vertical:"top",horizontal:"center",severity:"error",msg:((n=(s=e==null?void 0:e.response)==null?void 0:s.data)==null?void 0:n.result)||((d=(F=e==null?void 0:e.response)==null?void 0:F.data)==null?void 0:d.detail)||"ثبت مالک با خطا مواجه شد."})}finally{I(!1)}}};return r.jsxs(_,{container:!0,direction:"column",gap:k.SMALL,width:"100%",alignItems:"stretch",children:[r.jsxs(W,{variant:"body2",children:["دستگاه انتخاب شده:"," ",(u==null?void 0:u.serial)||(u==null?void 0:u.posUniqueId)||(u==null?void 0:u.posId)||(u==null?void 0:u.pos_unique_id)||(u==null?void 0:u.pos_id)||"-"]}),h?r.jsx(_,{container:!0,justifyContent:"center",children:r.jsx(U,{size:24})}):r.jsx(K,{disablePortal:!0,fullWidth:!0,size:"small",options:g,value:C,groupBy:s=>(s==null?void 0:s.group)||"",loading:h,loadingText:"در حال دریافت...",noOptionsText:"موردی یافت نشد.",onChange:(s,n)=>w(n),isOptionEqualToValue:(s,n)=>(s==null?void 0:s.key)===(n==null?void 0:n.key),getOptionLabel:s=>(s==null?void 0:s.label)||"",renderOption:(s,n)=>n?o.createElement("li",{...s,key:n==null?void 0:n.key},r.jsxs(_,{container:!0,direction:"column",children:[r.jsx(W,{variant:"body2",fontWeight:600,children:(n==null?void 0:n.label)||"-"}),(n==null?void 0:n.city)&&r.jsx(W,{variant:"caption",color:"text.secondary",children:n.city})]})):null,renderInput:s=>r.jsx(D,{...s,label:"انتخاب مالک",placeholder:"نام یا شماره تماس",InputProps:{...s.InputProps,endAdornment:r.jsxs(r.Fragment,{children:[h?r.jsx(U,{color:"inherit",size:16}):null,s.InputProps.endAdornment]})}})}),r.jsx(D,{label:"شماره پذیرنده",name:"receiver_number",value:l.receiver_number,onChange:L,fullWidth:!0,error:!!c.receiver_number,helperText:c.receiver_number}),r.jsx(D,{label:"شماره ترمینال",name:"terminal_number",value:l.terminal_number,onChange:L,fullWidth:!0,error:!!c.terminal_number,helperText:c.terminal_number}),r.jsx(D,{label:"رمز عبور",name:"password",type:"password",value:l.password,onChange:L,fullWidth:!0,error:!!c.password,helperText:c.password,inputProps:{inputMode:"numeric",pattern:"[0-9]{4}",maxLength:4}}),B&&r.jsx(W,{variant:"caption",color:"error",children:B}),r.jsxs(_,{container:!0,justifyContent:"flex-end",gap:k.SMALL,children:[r.jsx(P,{variant:"outlined",color:"primary",onClick:O,disabled:!C||y||h,children:"انصراف"}),r.jsx(P,{variant:"contained",onClick:N,disabled:!C||y||h,children:y?"در حال ثبت...":"ثبت"})]})]})},fu=({onSuccess:u})=>{const x=M(),[T]=o.useContext(q),[i,g]=o.useState({receiver_number:"",terminal_number:"",password:"",serial:""}),[m,C]=o.useState({}),[w,h]=o.useState(!1),S=()=>{x(H({right:!1,bottom:!1,content:null}))},y=p=>{const{name:l,value:f}=p.target;g(c=>({...c,[l]:f})),m[l]&&C(c=>({...c,[l]:""}))},I=()=>{var l,f,c,b;const p={};return(l=i.receiver_number)!=null&&l.trim()||(p.receiver_number="وارد کردن شماره پذیرنده الزامی است."),(f=i.terminal_number)!=null&&f.trim()||(p.terminal_number="وارد کردن شماره ترمینال الزامی است."),(c=i.password)!=null&&c.trim()||(p.password="وارد کردن رمز عبور الزامی است."),(b=i.serial)!=null&&b.trim()||(p.serial="وارد کردن سریال دستگاه الزامی است."),C(p),Object.keys(p).length===0},B=async p=>{var l,f,c,b;if(p.preventDefault(),!!I()){h(!0);try{await z.post("/new-pos-machine/",{receiver_number:i.receiver_number.trim(),terminal_number:i.terminal_number.trim(),password:i.password.trim(),serial:i.serial.trim()}),T({vertical:"top",horizontal:"center",severity:"success",msg:"دستگاه با موفقیت ایجاد شد."}),u&&u(),S()}catch(A){T({vertical:"top",horizontal:"center",severity:"error",msg:((f=(l=A==null?void 0:A.response)==null?void 0:l.data)==null?void 0:f.result)||((b=(c=A==null?void 0:A.response)==null?void 0:c.data)==null?void 0:b.detail)||"ایجاد دستگاه با خطا مواجه شد."})}finally{h(!1)}}};return r.jsxs(_,{component:"form",onSubmit:B,container:!0,direction:"column",gap:k.SMALL,width:"100%",autoComplete:"off",xs:12,children:[r.jsx(D,{label:"سریال دستگاه",name:"serial",value:i.serial,onChange:y,fullWidth:!0,error:!!m.serial,helperText:m.serial}),r.jsx(D,{label:"شماره پذیرنده",name:"receiver_number",value:i.receiver_number,onChange:y,fullWidth:!0,error:!!m.receiver_number,helperText:m.receiver_number}),r.jsx(D,{label:"شماره ترمینال",name:"terminal_number",value:i.terminal_number,onChange:y,fullWidth:!0,error:!!m.terminal_number,helperText:m.terminal_number}),r.jsx(D,{label:"رمز عبور",name:"password",value:i.password,onChange:y,fullWidth:!0,error:!!m.password,helperText:m.password}),r.jsxs(_,{container:!0,justifyContent:"justify-between",gap:k.SMALL,mt:k.SMALL,xs:12,children:[r.jsx(P,{variant:"outlined",color:"primary",style:{width:"46%"},onClick:S,disabled:w,children:"انصراف"}),r.jsx(P,{style:{width:"46%"},variant:"contained",type:"submit",disabled:w,children:w?"در حال ثبت...":"ثبت"})]})]})};export{Iu as default};
|