From f28c96ad8b5b61b999439b9e847fc7216d0dcb6b Mon Sep 17 00:00:00 2001 From: babak alizadeh Date: Sun, 31 Dec 2023 20:26:35 +0000 Subject: [PATCH] add import from excel to commodity part --- .../src/Controller/CommodityController.php | 61 ++++++++++++++++++ .../src/Controller/PersonsController.php | 2 +- public_html/imports/commodities-import.xlsx | Bin 0 -> 9848 bytes 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 public_html/imports/commodities-import.xlsx diff --git a/hesabixCore/src/Controller/CommodityController.php b/hesabixCore/src/Controller/CommodityController.php index 7778768..86d70d4 100644 --- a/hesabixCore/src/Controller/CommodityController.php +++ b/hesabixCore/src/Controller/CommodityController.php @@ -426,5 +426,66 @@ class CommodityController extends AbstractController $en->flush(); return [$item,$child]; } + + #[Route('/api/commodity/import/excel', name: 'app_commodity_import_excel')] + public function app_commodity_import_excel(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager,$code = 0): JsonResponse + { + $acc = $access->hasRole('commodity'); + if(!$acc) + throw $this->createAccessDeniedException(); + $file = $request->files->get('file'); + $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); + $reader->setReadDataOnly(true); + $spreadsheet = $reader->load($file); + $sheet = $spreadsheet->getSheet($spreadsheet->getFirstSheetIndex()); + $data = $sheet->toArray(); + unset($data[0]); + foreach($data as $item){ + //load cat + $unit = $entityManager->getRepository(commodity::class)->findOneBy([ + 'name'=>$item[7], + ]); + if(!$unit){ + $unit = $entityManager->getRepository(CommodityUnit::class)->findAll()[0]; + } + + $commodity = $entityManager->getRepository(commodity::class)->findOneBy([ + 'name'=>$item[2], + 'bid' =>$acc['bid'] + ]); + //check exist before + if(!$commodity){ + $commodity = new commodity(); + $commodity->setCode($provider->getAccountingCode($request->headers->get('activeBid'),'commodity')); + $commodity->setName($item[2]); + $commodity->setBid($acc['bid']); + $commodity->setUnit($unit); + $commodity->setOrderPoint(0); + $commodity->setDayLoading(0); + if(array_key_exists(1,$item)) + $commodity->setName($item[1]); + if(array_key_exists(3,$item)) + $commodity->setPriceSell($item[3]); + if(array_key_exists(4,$item)) + $commodity->setPriceBuy($item[4]); + if(array_key_exists(1,$item)) + $commodity->setSpeedAccess($item[1]); + if(array_key_exists(5,$item)) + $commodity->setMinOrderCount($item[5]); + if(array_key_exists(6,$item)) + $commodity->setDes($item[6]); + if(array_key_exists(0,$item)){ + $commodity->setKhadamat(true); + if($item[0] == '1'){ + $commodity->setKhadamat(false); + } + } + $entityManager->persist($commodity); + } + $entityManager->flush(); + } + $log->insert('کالا/خدمات','تعداد '. count($data) . ' کالا یا خدمات به صورت گروهی وارد شد.',$this->getUser(),$request->headers->get('activeBid')); + return $this->json(['result' => 1]); + } } diff --git a/hesabixCore/src/Controller/PersonsController.php b/hesabixCore/src/Controller/PersonsController.php index 9e4af4e..209e29c 100644 --- a/hesabixCore/src/Controller/PersonsController.php +++ b/hesabixCore/src/Controller/PersonsController.php @@ -411,7 +411,7 @@ class PersonsController extends AbstractController ]); //check exist before if(!$person){ - $person = new Person(); + $person = new Person(); $person->setCode($provider->getAccountingCode($request->headers->get('activeBid'),'person')); $person->setNikename($item[0]); $person->setBid($acc['bid']); diff --git a/public_html/imports/commodities-import.xlsx b/public_html/imports/commodities-import.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3ac56d7055c093ae767382a179d9bbd5bf082ca0 GIT binary patch literal 9848 zcmeHN1zS{W*B)tP=#p-v8)@lAN?HLar3Yas=|)1jLApb_B&EA^C=sNk8JchOocHn^ z&iQ`9`|i1BKQpuUy06)5ulsrKwboWugh#*wAOTPS000$0oX>Z}_5lEZfCvEK0#M*y zNP=v^X0~8M4Ocre2Yogd8*9oe1UQBa037W6|84)p9w^c1v;D$>)vUcOD%GO(J~ODO z2!*tf^abrEa-vJL4sGo^5yQ2|AwjE;|t`Ca_fS&0>vw40jLxVW`wKczU3X|lya!x`}^R2!-< zDde~N$MG`sE6j-mB`L%#N*)y0a8Urc15vRmIPs1s-*_Xj(=0aj*KCZ6>3i0GJ+ob9DC(`tBQy6?5KGQ6 zq0h)B|^h}3yNg0m4} zRGHu@5WxqyD`{^&dlp7|Q4GOYOv@6dScyNxAi0I{?CuU8p!zqO)@X9joWNpF33e0> zMpHw3GiwKSwx9d|(euBUlYhDNlIUkD9UQ>GeYxwPUg*?fB$kAtv$))6Dh*F>`320H z@N8O=#n#89SQ^BB@UmXbp4a`5Md9%6UaGTIo{~@;JRzD|=hDE0%eRimO!W5gGH*-1 zc49kColc!4$tt)qI5kHw71tMJD)ueY$V?ncRbY*z^ct}PG8ZWePFrQ^qWA}pBf39<b+r>I{k6k5BtnZaJs?qf^6L_F=`*PiK!yf+pz}dB4%}@%)0IM{p8}+(N8qL zpiO0%jlEgnVwy2ClBH$_7`Hz!Gh|XVHB;lzUzZq{epp$TV`D>i?S766^n(baN<5C} zccBfyQS?9>Rep9UCEAWbCCfPb@%xH{+(()@Za&_Hs_0un-3vFCJAlkV-582a@sR?c z?}}Q_ZDdIL=9o@pPSQp{l%NZgoTQN3t57%|lW0W{Q~N+kEuRns?1CB{-xiP(`2hv@k6&*6pjkVj@#ImTrSRS5|qd?#E9U`*BXzt z7$>m8eJ`5f0*-x{rrZZ7^+Jtrhh0x5zu&Eh5EE@-^p-MCZBXRGa})90CR!%@#%-8-jLu@>5191`FoHvN5-hI%rJHMv|;yJV%*^eG3 z36Ao_Le<+g)mDNhqsC-%#%auh&`a2<9-WJQ!{5h%3{nKrpS?y%sXc9*lOgN3jh{Y? z+NhZI@1RP1Nx#8d$R|cw*v{io#paT=|4%wG0{c zhhDK^oCF6UlPw%u3tQCKe1bUamCe}iMe#X3-WxU*CaQhrq2z~oE1Oa*OwMD7(ZQ9e zzAR5%`qj;$BVMwoO|^z{1v z>r5-M!-E1{_lJ6%pu8BX@VKY#%mpDh2=8#M_k|EaL&rn#D8_rGlw z7|9N}4Ns$cSw7xa#o1J!HZm;TRpOMR>B z>L`;LU$5UaNJ7q#(tTYi#*T?l<%Q8*0b`q!RLtk?(q||~P1moVxei;kXI}!>NsAT9 zi+Dxc1HqI*y|NTujL{D3SxKKY_rHQAuKF2UAxA6&C;PA0`g*38VR!nUAv2ldsK^Nq z0HDA!f=943{+u=)%+1We4(z`M&Y$yVYOFpeg##~e|M8xvP77u?0*W}*R8EoJexA)< z8JUSMepr-Eved-w6^5aFt`d=@lzZ6FRVpUMtZ=GEz>)T&t+BRpsYKR~HlC3x?X`CHN8i=U>-@%j8ijn(#t&Rrs<3(? zIZhF8V9SP}9NKLwdv>EQm9MUmt|cIM>WK%C^hHAK$=i zRC{K=*>k|NTI#5GLp&pUn&C$c6)f)wWdmkuO5A1phn)2v6oob8pUwzx$)^AS55#4`Abt0&e~=V&SZ^1 zzVi(?Dj*+bY4J-f^@F1ejD8>k!go3}6BWj)1kCVUh5hB1B)OqXes*m*STA{97B+#@ zD7$U5dT8D9to&+eiPgTR2##Hogi*})hO}jg7t~H&3xtx|EbiEi##^CL%vz-xVvQT0 z-p;O+cNqnBkO#qI$dW4ar@pOUvFrLejn>H)bTfHZd;RM#|Jw0{w?BksE>d1}yU04y zQjvMim>;iwVY|97LLoAEp6n;0D9u7G@|De&%EKJ?g;WJKo~9Zk4R4Df$)gDt`xU7B>tpE8hF zO=qQ(Gv++(?l3&YN2uQfX3rbORu(Xlhm;x=)MF@jTT4XiLYjF=W0T7|5EbZyD-r4z z>AwHSU5pTI40e+8H`(>}_~NVz3HMLjj~#Fa4h0*&a!75fVpKGtU3rog_n1)-sg;v; zhAA$ClqR}f+1J?4%|npRWEYsL=7VjwaO*$lu9tUZ@Ur{6?tQ?`}rB6u-mn{jLZdEu44&U25vs^PS`c>$EhftHU=l;!UN6xh(c6ePJPsW9y%(u%`#W#7QE}KWYlRj1Mds)4x(q3FF{!!G;>F8jquftG< zTtv|I++nHC-fUK1yicjl?V>~5%LCeQyurTQ>VEAweQF^*bI9&_x!MJ4ZS5Bct4HZN z27PRDxm>%bGrT?gW)ccj4v`UbmopwrvpSz`=rewl5gMh^c;NJq$pqfOV1c)uTxv@KOL0UydlvA6Tjn!M4bn={u43qcUDV)iT0RFa#)}L!`E`1Ch*ZhO1weR0ff9x!oGKQ*ebD*cpX$wNa&;@tZYMs!-<^ zwJ~~MWLTI4Q&?H#qoc}dY<~@sin-Q3Fi}l-V^D+=Z4*JTUN0sm?-v&$R)i26wjhSQ zcWuzfU~5{;_${5D(*|#)5e_qDFJFPWxtA(NO?u;>e80?2w5TLhyjMaLsJ>W`4BP4@ z7Xs4Yjg+R!<7~~UoKwXz*xPa#`R#Kbqenp_kz=i&L2Z1)!Rf3Bbz(0a6{LN7ABRpx z4-6zG?SG3_#@1qjp9jgkQ;Oz3y@{>7x(lm>@LrPgEdDsxpKOZ3*%5MFj|~KM+#tt& z4kGA72eJ=*A3PPW7e%SNY9;((vww6k;Fvi|xzwenU%K$E6b;Ilc_PNbxb)3(Z`jBn z8JMAF!!$W;-yD@9YnKGV1un2i_jk)DoreW)Qc5`JtY}X?0e3shaQ_%23UX|<)FLr< z@2{H|VOjNf(sx!oRkV=udbK@@VV?Q6k?f3^S`s8P7BSNZ)bQ}Jrafh&Wz2*_Qp=zLMD{Fh zeqoYO9=ET{GP>Ux2}L@ySymLlT)e^W+X^M+7o64)W~Rh&bE!gJ)FAmDe4?9y)4iyR z^28u2ska|@^UM$Hbs+zit`9K$$+Dlq*RSPvzg%esYpL~ z73uOkMi}Ovk@@M zQbHlF$>R1)Hf>_;P_H`HikTN+L#dWSc(Gdhk)|Zd1(HOutE^p`N~yJ@pn1OC5p)ZS zz8}6WCo6a^;)vRX{_L2HzS4$HA5!~}ny8^tEi(ShZ=#}W-C9?jo65fjWvD3-8$Lfw zDiWXq0O)_LVGdwdYcq$R`fyDPVhiEN@?anJqC79##ObR+mzO4!74va&_A&MG$fZ-D z?++ClD_qFBTOyLL#XqUE33)ojP94F?@@gj=x~kI@_xUFcFAWh)|qm3lHx?a zLYwQdnp90PTlMh>-&bFm>3PVor;Dz!vAT9YOYX$U)C|5)i~K@{%%Y&t;JIjSGN%kT z^)yUZ{?g8fW*jm><#!tD5X(@yrLFjB7p8brpwO%clx>PazdyyuXJV zWxRZZ?6aQjszeAGs(BeA_)5xodq%+={s4!944QYc=p1%*i62X%>gTZ=?l+D$MP~ z*-4!^X--P;-mDF=&Mw7w#S}(R-Z5lN1}O1n`;~W>2)fS<59why>gvdt%r22NFxHDa z{^XSC?!{-x6{w^7#-e{ssqm_YSZ+j>wmOgA;aF@w<@sBMv+fYgl@PvMe@6^VRN(~W zSZ=g#$jmZ^h0H^?b>ZjBbODw(ehfI)7^BX&GLGMl9bxpNQyo#tia>Z5Pu$MOob6>a z5Or|*%%1AAU!?Npr(j%;;#+FyR|P?9iVkW1bhx5VE<+gOi|K^i?}%F0ap-K*wo zLp8Aw`O;rM+a=VS9d!^dHEQ}n%Ofa+C=}KDd6r8sCF~@q2(Tvr)vQJ_pfg&*pAp~e zLaRNA58dfxj^>zWTOG1dr{(_9hx zY&f};X$(0+x)=pzjuo!l6VA`rB6@ml$-3|90hw)`% z=K-YyS#G~sK5meYhPYtpHL|ZwwVe5X z5H=Dn*<2HJL^vQ`^mM#rTWb}oQ z+O^(#C{xQ;JYW;lKjpWO4VPj&%%2i4zta5S*PkVkKeOCFY9zmN-Cq?F|A_XG zFC2K%Q21L(7q^({0HEY^KI(eS4S3_rc_c_eBoyz)t%}sFZGGKtWc^9Xm2e@+Ym6wC z$ws(iQf{_O=kR94|gqY1W_WO!v|h4(#?I{0W60cx~2k2*X%=PEv+ z7Dhh(J}3X)m80(>lw`D|$kOJ>5V@LNxn`eb%|qKyP()q#cK3q^g|KaQ>#*F>h`+o* z{J;ycb~AFVtv5b|sW2aeBR)AK()FtQ?B{RMXQEcgJx<3BuL2MZ~% znf-G!F!*O|vETd7$!2U}yQ?vzu%P-#gu7yIGY_MXwRTr{d_C_A}Y3l1}o-kcB)p%3J4H~UW z;vHkE1eu;FEtj)^zcHY5<2T%>C0>q+qYMDyCj4S#j8dV;4DY`R8m!oW;arU3fzF}C zl5cXdkmmb1_%EL!4kZUu@oTy1?Zzo4UPH7DL{T+=uS6}ej5p6ki2nm)vw zE;%G;a(?-+_$aPI`$DiZ|491a7WHb7&1n{1Ej{PGx zgudsg%o_B&oJ=7No3Z5g@FmILWm8k5SoHa zRP8}_4(ui%d$T|Lz5go=!d&MbZK&eMf!DSC>>49yf0Uq7faKMo%GnwYE+_GF!~T-$CA1(=^4)q3K7PM|V#A#@ZP@z9%nfrwRF)L1P^zwPF@>o1KrJrz>#@ znw$g%tYxFyRV>TwBCj)cw{~(IS!~MkprN8Y4qNyT{6=hkz2%xpd(K zv0*bd)?Y)>$jY5|Me{1=K zenO~oK;W>K<4~C&;sX+N80IrbQn`HWM)ukCOH{z~(~f{Q?sA`9tWXSQT%T${rcDbj z5S4eHqECu|xUQ&77n93_E~k!LIfQS&ophWYy;JjKyU>5bO}BhodHbsd`ZF7P0LKcG zW&i&4%ztjzf5v}#mgYXd-~0OiG5k5^!#MGmF8_VQ`@PQJrh~8=k4Zue53*dK- zdf)WE+Wu`CMf8X1eeHc8;l8f?jj#nP^#0uk|Ee