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