From 83d6fe0df1dd33dacc2139550ddaf1352aafabfc Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Sun, 2 Feb 2025 16:42:58 +0330 Subject: [PATCH] update: remove tomanPrice and renewalProfit from device and exel file --- pages/admin/gps/device/index.vue | 4 ++-- server/controllers/GPS.Device.js | 40 +++++++++++++++---------------- server/models/GPS.Device.js | 18 +++++++------- static/example.xlsx | Bin 18140 -> 17284 bytes 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/pages/admin/gps/device/index.vue b/pages/admin/gps/device/index.vue index 19ccc05..45d1dbc 100644 --- a/pages/admin/gps/device/index.vue +++ b/pages/admin/gps/device/index.vue @@ -80,10 +80,10 @@ - + - + diff --git a/server/controllers/GPS.Device.js b/server/controllers/GPS.Device.js index 72cb078..b15f770 100644 --- a/server/controllers/GPS.Device.js +++ b/server/controllers/GPS.Device.js @@ -20,11 +20,11 @@ module.exports.addCode = [ return true } }), - body('tomanPrice').notEmpty().isInt({ min: 0 }).withMessage('قیمت دستگاه را به تومتن وارد کنید'), + // body('tomanPrice').notEmpty().isInt({ min: 0 }).withMessage('قیمت دستگاه را به تومتن وارد کنید'), // body('dollarProfit').notEmpty().isInt({ min: 0 }).withMessage('سود نصاب را به دلار وارد کنید'), body('profit').notEmpty().isInt({ min: 0 }).withMessage('سود نصاب را به تومان وارد کنید'), - body('score').notEmpty().isInt({ min: 0 }).withMessage('امتیاز دریافتی نصاب را وارد کنید'), - body('renewalProfit').notEmpty().isInt({ min: 0 }).withMessage('سود دریافتی نصاب را از تمدید اشتراک وارد کنید') + body('score').notEmpty().isInt({ min: 0 }).withMessage('امتیاز دریافتی نصاب را وارد کنید') + // body('renewalProfit').notEmpty().isInt({ min: 0 }).withMessage('سود دریافتی نصاب را از تمدید اشتراک وارد کنید') ], checkValidations(validationResult), async (req, res) => { @@ -67,11 +67,11 @@ module.exports.downloadAll = [ columns: [ { label: 'IMEI', value: 'IMEI' }, { label: 'مدل', value: 'model' }, - { label: 'قیمت به تومان', value: 'tomanPrice' }, + // { label: 'قیمت به تومان', value: 'tomanPrice' }, // { label: 'سود به دلار', value: 'dollarProfit' }, { label: 'سود به تومان', value: 'profit' }, { label: 'امتیاز', value: 'score' }, - { label: 'سود از تمدید', value: 'renewalProfit' }, + // { label: 'سود از تمدید', value: 'renewalProfit' }, { label: 'وضعیت نصب', value: 'status' } ], content: device @@ -137,24 +137,24 @@ module.exports.updateDevice = [ } }), body('model').notEmpty().isString().withMessage(_sr.fa.required.name), - body('tomanPrice').notEmpty().isInt({ min: 0 }).withMessage('قیمت دستگاه را به تومتن وارد کنید'), + // body('tomanPrice').notEmpty().isInt({ min: 0 }).withMessage('قیمت دستگاه را به تومتن وارد کنید'), // body('dollarProfit').notEmpty().isInt({ min: 0 }).withMessage('سود نصاب را به دلار وارد کنید'), body('profit').notEmpty().isInt({ min: 0 }).withMessage('سود نصاب را به تومان وارد کنید'), - body('score').notEmpty().isInt({ min: 0 }).withMessage('امتیاز دریافتی نصاب را وارد کنید'), - body('renewalProfit').notEmpty().isInt({ min: 0 }).withMessage('سود دریافتی نصاب را از تمدید اشتراک وارد کنید') + body('score').notEmpty().isInt({ min: 0 }).withMessage('امتیاز دریافتی نصاب را وارد کنید') + // body('renewalProfit').notEmpty().isInt({ min: 0 }).withMessage('سود دریافتی نصاب را از تمدید اشتراک وارد کنید') ], checkValidations(validationResult), async (req, res) => { - const { model, tomanPrice, profit, score, renewalProfit } = req.body + const { model, profit, score } = req.body const data = await Device.findByIdAndUpdate( req.params.id, { model, - tomanPrice, + // tomanPrice, // dollarProfit, profit, - score, - renewalProfit + score + // renewalProfit }, { new: true } ) @@ -175,21 +175,21 @@ const creator = exel => { console.info('Repeated IMEI ', row[0]) device.model = row[1] - device.tomanPrice = row[2] + // device.tomanPrice = row[2] // device.dollarProfit = row[3] || 1 - device.profit = row[3] || 1 - device.score = row[4] || 1 - device.renewalProfit = row[5] || 1 + device.profit = row[2] || 1 + device.score = row[3] || 1 + // device.renewalProfit = row[5] || 1 device.save() } else { await Device.create({ IMEI: row[0].toString().trim(), model: row[1], - tomanPrice: row[2], + // tomanPrice: row[2], // dollarProfit: row[3] || 1, - profit: row[3] || 1, - score: row[4] || 1, - renewalProfit: row[5] || 1 + profit: row[2] || 1, + score: row[3] || 1 + // renewalProfit: row[5] || 1 }) } } else { diff --git a/server/models/GPS.Device.js b/server/models/GPS.Device.js index 920d91e..f886b3d 100644 --- a/server/models/GPS.Device.js +++ b/server/models/GPS.Device.js @@ -6,11 +6,11 @@ const deviceSchema = mongoose.Schema({ type: String, unique: [true, 'این ایدی در سامانه موجود است'] }, - tomanPrice: { - type: Number, - min: 0, - default: 0 - }, + // tomanPrice: { + // type: Number, + // min: 0, + // default: 0 + // }, // dollarProfit: { // type: Number, // min: 0, @@ -25,10 +25,10 @@ const deviceSchema = mongoose.Schema({ type: Number, min: 0 }, - renewalProfit: { - type: Number, - min: 0 - }, + // renewalProfit: { + // type: Number, + // min: 0 + // }, status: { type: Number, enum: [ diff --git a/static/example.xlsx b/static/example.xlsx index e5a6ba0266572155dc85f1d9dec2bfd08d0bb076..c85d03fa2fead9e934ad944e236660d90140eadf 100644 GIT binary patch literal 17284 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 W0SyqhDJb>;KMw#`*n4d2(|-UlwWP=Z literal 18140 zcmeHv2{e@L`#(vk5f#~@K@w`LAz3CWYat0yMD}eYHP)Gup+we{lqFl*?E4rmlRd^( zc0+cuj%65Teh>Qo-oE{R-}fEwIqx~|`To0|V`iTFdamcXKlkUl?)$#ZxgK3Dy6vnq z3=9l3j@+?VXntrMz;|~?F-uo-xSg}jt$%%y5OsHQeA#%-xm=ua=M2j?rpvu{#vCkX zSWO$X#hLn!I3ElPsbxy+Ml@;4*m=<&a;k$aPuDxU>1=u2|ty# zt3l(ALBreeb91K|o_l>Ph!gxeUPkwvZh%0((B_vXy?aUdCHKlnK0h{#75XLXzISOm zKU`GQU8Su=`bq_E3y_HtDVPxMP*+(~*maW3wa`nL zM?<6gXHddnt`4_st*qQ`iEVsrLfO-mHL!SlbmD0HbYJsY)`^&r$jQs{AH!%KNS!vd z@6db|Xq7A=SK~>76R8hJ%--29id1^)`l8~g~;&kNd!V+b+J`O>yE%l~g z;bxS10-ijR4hVpu-h>6P5@xg*idgP{oBr4gv9yqnT=|-ANK6Iuw-L!^(z zY4(WNwX(8QdUdS0-3k$1jW-yCmoB^4OaU8Nb%<_cJGJ&2vQ(x-6HUcHPt&u|} z@{zYn@BE2$axbNs@_t7xhE56p_DtB6ptQY=BK)#YYXXS6!fQnIDB`i z;c6XeWkL&zNgSMr!;pJm2qFNYCeouG$G%#}OvcBVtqoK;tgf<dQ7vCA2harf@Y z5O8mAbAEjgc^Roq@lma+|FF97aVp(w{WkCi_ zgz|Kq`}0utpar()kna3O=Y%emQj|GpfGq{`$;2ox!?`~bH8SCk`|3C@(@)vBd_! z1>vh!u2qwRc`iLFStvJ92iqKk)kG-YrAs9jS~KccJrHmHWJ8DeQtov-Vd&|U5X`ph;CIbl)&OXyL_ zMeGoPX)?_o(ksVv@ObEjir(+6VnOOM9pPlA^zoQ3?m z!udJF57X=M%OU-r6>b^u=2$~W`#G#{puj|83O**YP=&!FHe4?7i zE{tg`jFvNOS9BQtm9U+2-d^d`=rzR|^hNj3W8u8Q;e2v>yhmKmh$N|U4L;6M516mM z8&vK0soM8lHJt~h#1PR-jz#p^LaPsGgtFFzatnv0T8 z#$z(a<_Xh@d3dgcI<(z+Dn?wxeo!An_M>8|uwH9pSWy{RCo2_$V4luRV-D*=S4uv;fe`pMI4EMR>sNCqtD^I=Fu9s;(7Fi=@LxdqlH`^pFLDWgQ=|ur_P<4 zHZtpKYNNtmr+OzGivJnHB*2Uos%*wjIQ)ZzNs-6F5kt4Kymg~=YUeIqQ94!^V6~ic z9Q<^MkmY?nO6SvD*cBzIx&Z6t*5lxqpSuSb4^#2D2IF z-*kj$!oh2WiwZYf^YU>5|09Ga_f9zMq{?Qjm(PEB zfEh_t*^Fsx`>z&W-E=`Us^~lb(3xYx;h!MPI^l4XDw|sXoBykYzq{Zos^|E~CY%XnU`>z)M?t(T{(U}0ynR~+FpCG({!hxMCo9h6Z|Eq<+yI=w}bVdWK zpeVroe}Hf=CXhZaWW@BS=(Xgtn#t#DlT}2LWArt0Th-xdPfn#h-C-9gXcxt1_vBDB z0VNZ&R|^KlImzB53LeoDvCUUwMgrIt47HQ^~4hz**WTO=R;$~aytBs zB1!Jf#k(x!gv0cNBV5x$HOB-m>p`TOuh}PSk0&d0C2KrSK4+X9Fz=mEFZj{5r|MSM z1>Sazhmo4mkye>j@6& z@jYq2@FvOFKB>4>^JS~n{S%rIC$t{rXfls2tHfM*P*EB(k{5HD9I;>ciKOt;-D#1| zdPhF%9qvgs7*8_gO1k(w>56gEWlwb+d#9tyaS%cwzh`@Se586>q(-5>da_%DNLm!v zm}suv(S>H-;AVmPX8!lhXFM^D)+`ofGXsT_f}xC5LjG_A@@GPS4*7i1E?8M5(fWqp z2dak2AX6!O@UYtxss@=Mf$88#cuUm~eS>G~D;cQdlw%M~Ms-x=&xZ#v>iP}uYzY-Z zs`#}1;6P09z9LPk*woH}cMNL0Ocj^@9*8}A{FnjFWm~`vycLswDc+0(e-Fl^w^{C# zRTgZ8oDEx;Y56U<>C_fj@ylRfT{D$62RzAZD-b(TA1ey-w-B&;x4?;C1}mBYZpTzs z>7KC#h_@04cW!|bhqmB$zYN}RyM7MGAhoSPyal&&&)EVenzrC}zYN}RJ8i)2vbF$m z%@!a&x&=8N9yQ^>aH0*=z;kt+-v@7C6zd1y1}jc*E^P0k_NC0>l+tfS7#? zoG{&r+x;>aa66fPtYKy)akhIxP@TF1>_@JF^@K>g1a(K)FC5VIgh=p3st&Omrrcq% z4WcSj@Ibn9BO!7llB!(6JBf{i2v;Ii*#e8;+4Y1-BL{T}5r?3Sgh(Y736b?2)Q#2k z9MlO_s&WQffxN`I+~ikMVw1TKqYbL=uyhe`z!N< zP-oV-*wree{~GX}EY*;DlrlSg530Bvf()4-t3j?(64v`E2T3(GJy5dEOiM&R=VZB5 zC(0%VgtKLjZ4y;TyymW2JQH*W=)g*K2H4~<<7~mPO-c%hKJKcdnV`jgb+|F$M)$@x z@hK#paaRqP31aH!mZY(aA5jQFom%TbxvvJ}5_X`AK zO%2YQsW0^?R%+$b$O9iwNrgnpc`#LOs_>cL>{#jt?l_g$V>2~CnzwXQEyi{4 z1V9=Mx)WCz($^Bv#5t)%@TrcA4QjAmik`l)x}j!S>GkFVrxS^r7nU+M^-&IuY&l9u*o&B0TQBmj*7 zd8|@5=OTaxGu;1I*Iz;7q@O&NubY#pzrlq8?ti90io5(}|K2Ia02iBIU4IFU8^B%I zm;D@5j8y=J{_$0EWBZ{#pf6R{@IdpJIIK zV)Lu(FQJj2t_0@7tO9jD%fqSPt4_!>*fz?-WE^?H5W3m|)Ur&nLnD#IiHDRGasZOz zJ`SgV*GsKjrpc5e(lj*EC%64Usny}lstw9?A+>(ffmQgQ)w5T))+(ha*DQpfy9zCui6jltHPTKO8VO1;Mhdu) zJ4>+PHf(3FJxmW=U|GlD{p*Pf*}w=zfReNSTyDm)iGiD~m6Mg&#{Z2UO-pxv$yVVyK@Ny@at3EteF{+OjB@0F9ye+>}GDS!po5xDwM1} z)?^d=Xm2UI=J_@}*+Xk>erR9RyT0_eVw@C%-`V3TCv4p5<1+5HP3UOlgbFu^>yDp4 z-nctOj}26}KVkpjn@`xErRAO+;S9I0WjXeB^kQ`V>!HrY*4n-18DB=yn{Wfq{M=&# zsu-oNaP~jrPka3+l6BiQf60oQaTdqvug0nOUc74mKyR-ehFO|$NTvv03oeVm`n%5D z9o^lzLic{5`4rvjZv%H$E)Ce9cALgn;@*E-xXI(ib+=sCqY2+t`V#NF#^rGLjX8d? zN2c9V8w6`#@+2NCUCo;@y&uQufmSfG!voG=PU?8uh$DOo$WBG1sm!cVAx=|P9o+w4!xE+}QmBS0))&3x&vt#hmy&J3|-8(M2_9b=G zK*YIBc2&#-ewK*axA?(JdKl7T$K(5s=ic;+`#8f#zvdF}SH!oCAJ1xQi71&cH(({V-XS}k~Z+7Aztrv zR#+GL%7<;j$Hq?B1};0A;`W>GpUG`%ix8J_h?v=-z8$EhIJuZ?^l7KjrxzneMydv_ z3AC@j@sg7)wx4|<^te{x@=EGAQ-zirWsb#@Oa-!WSC6+q_Nx}=YH(ORd&K~+U~gFP zR(fF%4^VFuzQ`pa?q9?HcFT*`G$xtHZ1Gq7W^>WFMU)O7HjbNEf}0o}*y&(n)mg~& zN3O=Y>1wxZ&0Vc5FS)s{SIVvz$fCl^H0dPv`p5kSXOQc%?!p=iXfS_OVWt<}?HN>T zS6m=}Mau4Ch)Qk%MlJcNFXns{Cg{rBogjWjIy{uJdW)kMDFl*iW4lG?d#7{X5iY%m zA@P0lTi)9Ky);(-F9OA>`(lLp;awDMeo{d~qIXBd?|ViQDgILmc$(!iydpe`WWO zR&Dsr-V^z|o#$WrHc2Scx2rf2B&@{q)f`}iPd+~T8`!@~DE3|~bg zYEOG2>k(#_{hV`~agDZN?idi$YX2~z%vA84fL_?)$NBC{Vrj024#oH8+jA!`wAmiSIx3ylM>}EgC)| zuUf=!=oiHjuHY}HtfogmJBiWcB|m1r>e9yi&LyhVSniQ#$z{%uf&@phMn$5c7^s+&d0MTSzk&zi8HLbj5g*u zrS#gLbISTL)`Ipf=;pISLRs6#`<`8tb8Hk!C$Vt|7m#SAUXZYMWwOB}ds`&t(Pv-7 z*s5XY*vmwZXJ6qvB(dG+4zg8eH>UXZ#!3dyCh+H^S8O)o-2We)} zu;>>u$>S^!iEfXpC|NBoxaK2x?|4GQzGV%+wy(v^(kHtrT^7(^Xq@RFfs<%bvbm1UOSa=aSIvzoKA6irZ2AcXz#+w1bSp1-{-@+sXpL5_)B z+qUlR0WET;)V9&kwD0&McW2&Y;QH>u0tR!~D1{Hd;Cx?vuc}U?JnuBinMi|OyDcwW zu1$H;Sp1VyX9g|d;GOECv>+P7qKkm z(p@C(=8YeIdlJzv6lpH2GCnNsctvDax`FB5^99P>w)?7k4c{yt-qW>{TV(8AzLk;Y zBf5u-0s#gpVmXB@Dsoi}D0#DSdOnA&lOpfSbC;frU#JvqNTRzTVdo|-yr6Tibzn&5 z3XXtq{{+GJcI4L(DC!!YA_kf5A&2l5n5a;eT_ffxU{3yUotq>V1^j|HH0atXI{NI3 zraaOa)eK2PHt@Vx-|h?~#M@?9CkF~n>AvH34o0G7)ulsQ-HgK(}$FbRZ636_8OPx>^)(4*|FDw`?q_tIF6XmPX|0D9o-w9 zlV8Mq=s?gja}&IiX=d9;sgBzcAg0+X_YMc*^sEP58VecrDdJD??RjpLVxa2uxaeG= zNS#{rFsH7WWnjtW(8auMH#rWIkIJ98VB^C6$?mj{p@_ijao2clNVu<=hs;}F>}gXQ zBS=lC-M8gEM;~NkE|;3-^p5#02JaVh*OthKl_?zGMc{0fkUzUZ7yS;buar_z{RnJ` zq+6$L6ld9`aR84(fV%&ALkI#SHsSid`Bi4}72iwW2yA|>7xi4sgAy_%1ReJriqAX4 zcRJPXZTaM+UNGos#4-Vq^6sgJ1@pW)@3Hu5*Xy%*8+ZNG^G@y&dkfT{b*DGjl z=L(CRta;|F0xkG$zs3E#N~-Wdh1Z8{I3-z=8?3L@+ycPxwImbyz1>iRr; z*R;($5p;cWd<+J5`4hyp@0@le7BJxSpeGmpz?UaZ*Rkq3PvTs&~`E; z!4i10fPo18;To~N_cb{Kb9S?Gb~DrWaIv~|ZQV;l0;tiq5N&mzu~;CA`e8*ufIrcT7UK>ecCVUm3)e zhanY&QEk@9GKY+^8%Gw^EtHC%i!Sa<>$B8(V(a>NNiW>Kk@gASE1M*y8s%Xt<5~uL zdaX#=f!X)^Wj6C3ktR$MF-jJD9AX{?AWD-zZ2xE*?E48L5b^MXwdt3{K$_gEGBn3DC~4YT&Db}#_OhRaF`9$ogU=qN&|>&lBO# z3V+=Ht&{5aRwTQj@aN;z&kElEu%}tyCjQ=z$Zsh4e>ROjYxr?ZTHpKp-oh0&HT>^R z=;vF1jHK&}*6)oK`oD1eYYF@L<{yK~da(VyMW5cd`9Fl-pY{CcvFjn|_g1I;ZvpA& j8-FC-zhj@L@_)Lwt`