Files
Rasadyar_FrontEnd/build/assets/PspDevicesV2-JtFhnKym.js

2 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};