From 8b2aba4273885da4d1b38cd425fb3e8488416bc0 Mon Sep 17 00:00:00 2001 From: babak alizadeh Date: Sat, 30 Dec 2023 22:12:57 +0000 Subject: [PATCH] add import persons from excel --- .../src/Controller/PersonsController.php | 69 ++++++++++++++++++ public_html/imports/persons-import.xlsx | Bin 0 -> 9891 bytes 2 files changed, 69 insertions(+) create mode 100644 public_html/imports/persons-import.xlsx diff --git a/hesabixCore/src/Controller/PersonsController.php b/hesabixCore/src/Controller/PersonsController.php index 84456cd..9e4af4e 100644 --- a/hesabixCore/src/Controller/PersonsController.php +++ b/hesabixCore/src/Controller/PersonsController.php @@ -391,4 +391,73 @@ class PersonsController extends AbstractController return new BinaryFileResponse($provider->createExcell($items,['type','dateSubmit'])); } + #[Route('/api/person/import/excel', name: 'app_persons_import_excel')] + public function app_persons_import_excel(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager,$code = 0): JsonResponse + { + $acc = $access->hasRole('person'); + 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){ + $person = $entityManager->getRepository(Person::class)->findOneBy([ + 'nikename'=>$item[0], + 'bid' =>$acc['bid'] + ]); + //check exist before + if(!$person){ + $person = new Person(); + $person->setCode($provider->getAccountingCode($request->headers->get('activeBid'),'person')); + $person->setNikename($item[0]); + $person->setBid($acc['bid']); + + if(array_key_exists(1,$item)) + $person->setName($item[1]); + if(array_key_exists(4,$item)) + $person->setBirthday($item[4]); + if(array_key_exists(10,$item)) + $person->setTel($item[10]); + if(array_key_exists(2,$item)) + $person->setSpeedAccess($item[2]); + if(array_key_exists(18,$item)) + $person->setAddress($item[18]); + if(array_key_exists(5,$item)) + $person->setDes($item[5]); + if(array_key_exists(9,$item)) + $person->setMobile($item[9]); + if(array_key_exists(11,$item)) + $person->setFax($item[11]); + if(array_key_exists(13,$item)) + $person->setWebsite($item[13]); + if(array_key_exists(12,$item)) + $person->setEmail($item[12]); + if(array_key_exists(17,$item)) + $person->setPostalcode($item[17]); + if(array_key_exists(16,$item)) + $person->setShahr($item[16]); + if(array_key_exists(15,$item)) + $person->setOstan($item[15]); + if(array_key_exists(14,$item)) + $person->setKeshvar($item[14]); + if(array_key_exists(7,$item)) + $person->setSabt($item[7]); + if(array_key_exists(8,$item)) + $person->setCodeeghtesadi($item[8]); + if(array_key_exists(6,$item)) + $person->setShenasemeli($item[6]); + if(array_key_exists(3,$item)) + $person->setCompany($item[3]); + $entityManager->persist($person); + } + $entityManager->flush(); + } + $log->insert('اشخاص','تعداد '. count($data) . ' شخص به صورت گروهی وارد شد.',$this->getUser(),$request->headers->get('activeBid')); + return $this->json(['result' => 1]); + } + } diff --git a/public_html/imports/persons-import.xlsx b/public_html/imports/persons-import.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..458989c1f416010f308f052e0daf604f9e8a7cbf GIT binary patch literal 9891 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 literal 0 HcmV?d00001