src/Controller/ServicesDogovirElZbutController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Session\Session;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use App\Entity\LepDiiaRequest;
  9. use App\Entity\LepServiceOnlineRecord;
  10. use App\Entity\LepDiiaSignature;
  11. use App\Entity\LepDiiaOperRozp;
  12. use App\Entity\LepDiiaPidrozdil;
  13. use App\Entity\LepDiiaKomPro;
  14. use App\Plugins\Library;
  15. class ServicesDogovirElZbutController extends AbstractController
  16. {
  17.     #[Route('/services/ukladannia_dogovoru_electropostachannia_zbut'name'app_services_dogovir_el_zbut')]
  18.     public function DogovirElZbut(EntityManagerInterface $entityManager): Response
  19.     {
  20.         $session = new Session();
  21.         $data = array();
  22.         $data['controller_name'] = 'ServicesDogovirElZbutController';
  23.         $data['version'] = rand(101000);
  24.         if ($session->has('shering')){
  25.             $shering $session->get('shering');
  26.         }
  27.         if (!empty($_COOKIE["sign_res"]) && $_COOKIE["sign_res"] != '' ){
  28.             if ($session->has('shering')){
  29.                 $shering $session->remove('shering');
  30.             }
  31.             if ($_COOKIE["sign_res"] == 'error'){
  32.                 return $this->render('services_dogovir_el_zbut/step4_error.html.twig'$data);
  33.             }
  34.             else {
  35.                 return $this->render('services_dogovir_el_zbut/step4_ok.html.twig'$data);
  36.             }
  37.         }
  38.         elseif (!empty($shering["type_action"]) && $shering["type_action"] == 'shering' && !empty($shering["request"]) && $shering["request"] != ''){
  39.             $data['request_id'] =  $shering["request"];
  40.            
  41.             $repository_hash $entityManager->getRepository(LepDiiaSignature::class);
  42.             $hash =  $repository_hash->findOneBy(['request_id' => $data['request_id']]);
  43.             if (!$hash){
  44.                 $shering $session->remove('shering');
  45.                 return $this->StartPage($entityManager$data);
  46.                 die;
  47.             }
  48.             $file_s explode('*|*'$hash->getFileName());
  49.             $data['file_name_lez'] = $file_s[0];
  50.             $data['file_name_d1'] = $file_s[1];
  51.             $data['file_name_d2'] = $file_s[2];
  52.                  
  53.             //$data['file_name_zaiava'] = 'Zaiava-Pryiednannia-Lvivenergozbut_New_Testovyi_Test1703071527.pdf';       
  54.             $repository_record $entityManager->getRepository(LepServiceOnlineRecord::class);
  55.             $online_record =  $repository_record->findOneBy(['request_id' => $data['request_id']]);
  56.             $user json_decode($online_record->getDataUser(), true);
  57.             $data['type_zajava'] = $user['type_zajava'];
  58.             if ($user['type_zajava'] == 'doruchennia'){
  59.                 $data['list_doc'] = "Паспорт громадянина України особи, від імені якої Ви подаєте заяву (усі заповнені сторінки).";
  60.             }
  61.             else {
  62.                 $data['list_doc'] = '';
  63.             }
  64.             $repository_request $entityManager->getRepository(LepDiiaRequest::class);
  65.             $request =  $repository_request->findOneBy(['requestId' => $data['request_id']]);
  66.             $type_doc $request->getFile();
  67.            
  68.             if ($type_doc != 'РНОКПП' && $type_doc != ''){
  69.                 $data['pass_copy'] = 'Витяг, або довідку, або копію виписки з ЄДР (для юридичних осіб) споживача.';
  70.             }
  71.             else {
  72.                 $data['pass_copy'] = 'Копію паспорта (для фізичних осіб) або витяг, або довідку, або копію виписки з ЄДР (для юридичних осіб) споживача.';
  73.             }
  74.             $data['script_error_upload'] = array(
  75.                 "msg" => '',
  76.                 "type" => ''
  77.             );
  78.             $data['end_script_mobile'] = '';
  79.             $data['end_script_pc'] = '';
  80.             if (!empty($_COOKIE["request"]) && !empty($_COOKIE["action"]) && $_COOKIE["action"] == 'sign'){
  81.                 $data['service'] = $online_record->getServiceName();
  82.                 return $this->render('services_dogovir_el_zbut/step3_temp.html.twig'$data); 
  83.             }
  84.             elseif (!empty($_POST["signature"]) && $_POST["signature"] == 'file_signature' && !empty($_POST["request"]) && $_POST["request"] != ''){
  85.                 $lib = new Library();
  86.                 if (!empty($_POST["count_files"]) && $_POST["count_files"] > 0){
  87.                     $count_file $_POST["count_files"];
  88.                     $file_name_str '';
  89.                     $blacklist = array('.phtml''.php''.php3''.php4''.php5''.php6''.php7''.phps''.cgi''.pl''.asp',
  90.                     '.aspx''.shtml''.shtm''.htaccess''.htpasswd''.ini''.log''.sh''.js''.html',
  91.                     '.htm''.css''.sql''.spl''.scgi''.fcgi''.exe''.doc''.docx''.xls''.xlsx');
  92.         
  93.                     for ($i 1$i <= $count_file$i++){
  94.                         $input_name 'files_img_files'.$i;
  95.                        
  96.                         if (is_uploaded_file($_FILES[$input_name]['tmp_name'])){
  97.                             $fileinfo pathinfo($_FILES[$input_name]['name'], PATHINFO_EXTENSION);
  98.                             foreach ($blacklist as $item){
  99.                                 if(preg_match("/$item\$/i"$_FILES[$input_name]['name'])){
  100.                                     $data['script_error_upload']['msg'] = 'Некоректне розширення файлу '.$_FILES[$input_name]['name'].'. Ви можете завантажити графічні файли та файли з розширенням .pdf.';
  101.                                     $data['script_error_upload']['type'] = 'error';
  102.                                     return $this->render('services_dogovir_el_zbut/step3.html.twig'$data);     
  103.                                 }
  104.                             }
  105.                                 $maxsize 10 1024 1024;
  106.                                 if ($_FILES[$input_name]['size'] > $maxsize) {
  107.                                     $data['script_error_upload']['msg'] = 'Розмір файлу '.$_FILES[$input_name]['name'].' перевищує 10 Mb. Ви можете завантажити файли розміром до 10 Mb.';
  108.                                     $data['script_error_upload']['type'] = 'error';
  109.                                     return $this->render('services_dogovir_el_zbut/step3.html.twig'$data);    
  110.                                 }
  111.                                 $type_file explode('/'$_FILES[$input_name]['type']);
  112.                                 if ($type_file[0] != 'image' && $_FILES[$input_name]['type'] != 'application/pdf'){
  113.                                     $data['script_error_upload']['msg'] = 'Некоректний тип файлу '.$_FILES[$input_name]['name'].'. Ви можете завантажити графічні файли та файли з розширенням .pdf.';
  114.                                     $data['script_error_upload']['type'] = 'error';
  115.                                     return $this->render('services_dogovir_el_zbut/step3.html.twig'$data);               
  116.                                 }
  117.                                 
  118.                                 $file_name str_replace(' ''_'$request->getUserName());
  119.                                 $file_name mb_strtoupper($lib->TranslitString($file_name));
  120.                                 $file_name $file_name.'_'.$request->getService().'_'.$i.'.'.$fileinfo;
  121.                                
  122.                                 if (move_uploaded_file($_FILES[$input_name]['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/uploads/file/tmp/' $file_name)){
  123.                                     $file_name_str .= $file_name.'*|*';
  124.                                 }
  125.                                 else {
  126.                                     $data['script_error_upload']['msg'] = 'Не вдалось завантажити файл '.$_FILES[$input_name]['name'];
  127.                                     $data['script_error_upload']['type'] = 'error';
  128.                                     return $this->render('services_dogovir_el_zbut/step3.html.twig'$data); 
  129.                                 }
  130.                             
  131.                         }
  132.                         else {
  133.                             $data['script_error_upload']['msg'] = 'Не вдалось завантажити файл '.$_FILES[$input_name]['name'];
  134.                             $data['script_error_upload']['type'] = 'error';
  135.                             return $this->render('services_dogovir_el_zbut/step3.html.twig'$data); 
  136.                         }
  137.                     }
  138.                 }
  139.                 if ('' != $file_name_str){
  140.                         $file_name_str substr($file_name_str0, -3);
  141.                 }
  142.                 else {
  143.                         $file_name_str 'no_file';
  144.                 }
  145.                 $online_record->setFiles($file_name_str);
  146.                 $entityManager->flush();  
  147.                 $sign_deeplink $lib->getSignatureDeeplink($entityManager$_POST["request"]);
  148.                 
  149.                 $data['dynamic_deeplink'] = $sign_deeplink['action'];
  150.                 $data['service'] = $sign_deeplink['service'];
  151.                 
  152.                 if ($sign_deeplink['device_type'] == 'computer'){
  153.                     $data['end_script_pc'] = 'computer';
  154.                 }
  155.                 else {
  156.                     $data['end_script_mobile'] = 'mobile';
  157.                 }
  158.             }
  159.            
  160.             return $this->render('services_dogovir_el_zbut/step3.html.twig'$data);
  161.         }
  162.         else {
  163.             return $this->StartPage($entityManager$data);
  164.         }
  165.     }
  166.     private function StartPage(EntityManagerInterface $entityManager$data){
  167.         $repository_osr $entityManager->getRepository(LepDiiaOperRozp::class);
  168.         $osr =  $repository_osr->findBy(['active' => '1']);
  169.         $i 0;
  170.         foreach($osr as $item){
  171.             $data['rows'][$i]['id'] = $item->getId();
  172.             $data['rows'][$i]['name'] = $item->getName();
  173.             $data['rows'][$i]['selected'] = '';
  174.             if ($i == 0){
  175.                 $data['rows'][$i]['selected'] = 'selected';
  176.             }
  177.             $i ++;
  178.         }
  179.         $repository_cok $entityManager->getRepository(LepDiiaPidrozdil::class);
  180.         $cok =  $repository_cok->findAll();
  181.         $i 0;
  182.         foreach($cok as $item){
  183.             $data['cok_rows'][$i]['cok_id'] = $item->getId();
  184.             $data['cok_rows'][$i]['cok_name'] = $item->getName();
  185.             $i ++;
  186.         }
  187.         $repository_kom $entityManager->getRepository(LepDiiaKomPro::class);
  188.         $kom =  $repository_kom->findBy(['type_pr' => 'zbut']);
  189.         $i 0;
  190.         foreach($kom as $item){
  191.             $data['kom_rows'][$i]['kom_id'] = $item->getId();
  192.             $data['kom_rows'][$i]['kom_name'] = $item->getNamePr();
  193.             $data['kom_rows'][$i]['kom_url'] = $item->getUrlPr();
  194.             $i ++;
  195.         }
  196.         return $this->render('services_dogovir_el_zbut/index.html.twig'$data);
  197.     }
  198. }