public function resultDRBAction(Request $request)
 {
     $session = $this->getRequest()->getSession();
     $em = $this->getDoctrine()->getEntityManager();
     if ($session->get('type') != 4) {
         return $this->redirect($this->generateUrl('user_home'));
     }
     if ($request->getMethod() == 'POST') {
         $code = $request->get('hidCode');
         $ref = $request->get('ref');
         $serialNumber = $request->get('serialNumber');
         $grantorName = $request->get('grantorName');
         $grantorNIN = $request->get('grantorNIN');
         $granteeName = $request->get('granteeName');
         //echo $granteeName ;die;
         $granteeNIN = $request->get('granteeNIN');
         $orNumber = $request->get('orNumber');
         $searchHistory = new SearchHistory();
         $searchHistory->setReferenceNumber($ref);
         $searchHistory->setSerialNumber($serialNumber);
         $searchHistory->setGrantorName($grantorName);
         $searchHistory->setGranteeNin($granteeNIN);
         $searchHistory->setUserId($session->get('userId'));
         $searchHistory->setGranteeName($granteeName);
         $searchHistory->setGrantorNin($grantorNIN);
         $searchHistory->setOrNumber($orNumber);
         $searchHistory->setType($code);
         $em->persist($searchHistory);
         $em->flush();
         $type = 'GR';
         $nType = 'GE';
         $searchProperties = $em->createQueryBuilder()->select('rType.type,properties.id,properties.reference_number,properties.execution_date 	receipt_date,properties.execution_date,properties.lomp,properties.serial_number,properties.land_situation,properties.or_number,grantee.first_name as granteeName,grantor.first_name as grantorName,grantee.nin as granteeNIN,grantor.nin as grantorNIN,pr.first_name as prName,rp.first_name as rpName')->from('DRPAdminBundle:Book', 'properties')->leftJoin('DRPAdminBundle:GlobalInstrument', 'rType', "WITH", "rType.id=properties.instrument_type")->leftJoin('DRPAdminBundle:Company', 'grantor', "WITH", "grantor.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'grantee', "WITH", "grantee.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'pr', "WITH", "pr.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'rp', "WITH", "rp.book_id=properties.id")->where('properties.registration_type=:type')->setParameter('type', $code)->andwhere('properties.serial_number like :serialNumber')->setParameter('serialNumber', '%' . $serialNumber . '%')->andwhere('properties.or_number like :orNumber')->setParameter('orNumber', '%' . $orNumber . '%')->andwhere('grantor.first_name like :name')->setParameter('name', '%' . $grantorName . '%')->andwhere('grantor.nin like :lessnin')->setParameter('lessnin', '%' . $grantorNIN . '%')->andwhere('grantee.first_name like :fname')->setParameter('fname', '%' . $granteeName . '%')->andwhere('grantee.nin like :lnin')->setParameter('lnin', '%' . $granteeNIN . '%')->andwhere('grantee.type = :ltype')->setParameter('ltype', $nType)->andwhere('pr.type = :prtype')->setParameter('prtype', 'RP')->andwhere('rp.type = :rptype')->setParameter('rptype', 'PR')->andwhere('grantor.type = :lesType')->setParameter('lesType', $type)->getQuery()->getArrayResult();
         //echo"<pre>";print_r($searchProperties);die;
         $getType = $em->createQueryBuilder()->select('properties')->from('DRPAdminBundle:RegistrationType', 'properties')->where('properties.code=:code')->setParameter('code', $code)->setMaxResults(1)->getQuery()->getArrayResult();
         $type = $getType[0]['type'];
         //echo"<pre>";print_r($searchProperties);die;
         $instrumentType = $em->createQueryBuilder()->select('instrument')->from('DRPAdminBundle:GlobalInstrument', 'instrument')->getQuery()->getArrayResult();
         //echo"<pre>";print_r($searchProperties);die;
         //echo"<pre>";print_r($code);die;
         $arrProperty = array();
         $arrAllProperties = array();
         if (is_array($searchProperties) && count($searchProperties) > 0) {
             $grantorFN = '';
             $grantorLN = '';
             $grantortel1 = '';
             $granteeFN = '';
             $granteeLN = '';
             $granteetel1 = '';
             $partyRegistringFN = '';
             $partyRegistringLN = '';
             $recipientFN = '';
             $recipientLN = '';
             foreach ($searchProperties as $property) {
                 $arrProperty = $property;
                 $propertyDetail = $em->createQueryBuilder()->select('propertyDetail')->from('DRPAdminBundle:Company', 'propertyDetail')->where('propertyDetail.book_id=:bookId')->setParameter('bookId', $property['id'])->getQuery()->getArrayResult();
                 foreach ($propertyDetail as $propertyObject) {
                     if ($propertyObject['type'] == 'GR') {
                         $grantorFN = $propertyObject['first_name'];
                         $grantorLN = $propertyObject['last_name'];
                         $grantortel1 = $propertyObject['telephone1'];
                     }
                     //echo $lessorFN;die;
                     if ($propertyObject['type'] == 'GE') {
                         $granteeFN = $propertyObject['first_name'];
                         $granteeLN = $propertyObject['last_name'];
                         $granteetel1 = $propertyObject['telephone1'];
                     }
                     if ($propertyObject['type'] == 'PR') {
                         $partyRegistringFN = $propertyObject['first_name'];
                         $partyRegistringLN = $propertyObject['last_name'];
                     }
                     if ($propertyObject['type'] == 'RP') {
                         $recipientFN = $propertyObject['first_name'];
                         $recipientLN = $propertyObject['last_name'];
                     }
                 }
             }
             $arrProperty['grantorFN'] = $grantorFN;
             $arrProperty['grantorLN'] = $grantorLN;
             $arrProperty['grantortel1'] = $grantortel1;
             $arrProperty['granteeFN'] = $granteeFN;
             $arrProperty['granteeLN'] = $granteeLN;
             $arrProperty['granteetel1'] = $granteetel1;
             $arrProperty['partyRegistringFN'] = $partyRegistringFN;
             $arrProperty['partyRegistringLN'] = $partyRegistringLN;
             $arrProperty['recipientFN'] = $recipientFN;
             $arrProperty['recipientLN'] = $recipientLN;
             //echo"<pre>";print_r($arrProperty);die;
             array_push($arrAllProperties, $arrProperty);
             $session = $this->getRequest()->getSession();
             $currentSearches = $em->createQueryBuilder()->select('User')->from('DRPAdminBundle:User', 'User')->where('User.id=:Id')->setParameter('Id', $session->get('userId'))->getQuery()->getArrayResult();
             $balanceSearch = $currentSearches[0]['search_count_balance'] - 1;
             $usedSearch = $currentSearches[0]['search_count_used'] + 1;
             $updateBalanceSearch = $em->createQueryBuilder()->select('userPlan')->update('DRPAdminBundle:User', 'userPlan')->set('userPlan.search_count_balance', ':balance')->where('userPlan.id = :id')->setParameter('balance', $balanceSearch)->setParameter('id', $session->get('userId'))->getQuery()->getResult();
             $updateUsedSearch = $em->createQueryBuilder()->select('userPlan')->update('DRPAdminBundle:User', 'userPlan')->set('userPlan.search_count_used', ':Used')->where('userPlan.id = :id')->setParameter('Used', $usedSearch)->setParameter('id', $session->get('userId'))->getQuery()->getResult();
             $ipAddress = $_SERVER['REMOTE_ADDR'];
             $params['event'] = $this->getLogEventTitleAction('SEARCH');
             $params['description'] = $this->getLogEventDescriptionAction('SEARCH');
             $params['userId'] = $session->get('userId');
             $params['ipAddress'] = $ipAddress;
             $params['creatorId'] = $session->get('userId');
             $this->setLogAction($params);
         } else {
             $arrAllProperties = '';
         }
     }
     return $this->render('DRPUserBundle:Pages:searchDrb.html.twig', array('properties' => $searchProperties, 'type' => $code, 'searchProperties' => $arrAllProperties, 'code' => $type, 'instrumentType' => $instrumentType));
 }
 public function resultGlobalDRBAction(Request $request)
 {
     $session = $this->getRequest()->getSession();
     $em = $this->getDoctrine()->getEntityManager();
     if ($session->get('type') != 4) {
         return $this->redirect($this->generateUrl('user_home'));
     }
     if ($request->getMethod() == 'POST') {
         $ref = ltrim($request->get('ref'));
         $serialNumber = ltrim($request->get('serialNumber'));
         $grantorName = ltrim($request->get('grantorName'));
         $grantorNIN = ltrim($request->get('grantorNIN'));
         $granteeName = ltrim($request->get('granteeName'));
         $granteeNIN = $request->get('granteeNIN');
         $orNumber = $request->get('orNumber');
         $searchHistory = new SearchHistory();
         $searchHistory->setReferenceNumber($ref);
         $searchHistory->setSerialNumber($serialNumber);
         $searchHistory->setGrantorName($grantorName);
         $searchHistory->setGranteeNin($granteeNIN);
         $searchHistory->setUserId($session->get('userId'));
         $searchHistory->setGranteeName($granteeName);
         $searchHistory->setGrantorNin($grantorNIN);
         $searchHistory->setOrNumber($orNumber);
         $em->persist($searchHistory);
         $em->flush();
         $type = 'GR';
         $nType = 'GE';
         $searchProperties = $em->createQueryBuilder()->select('rType.type,properties.id,properties.reference_number,properties.execution_date 	receipt_date,properties.execution_date,properties.lomp,properties.serial_number,properties.land_situation,properties.or_number,grantee.first_name as granteeName,grantee.last_name as granteeLast,grantor.first_name as grantorName,grantor.last_name as grantorLast,grantee.nin as granteeNIN,grantor.nin as grantorNIN,pr.first_name as prName,pr.last_name as prLast,pr.nin as prNIN,rp.first_name as rpName,rp.last_name as rpLast,rp.nin as rpNIN')->from('DRPAdminBundle:Book', 'properties')->leftJoin('DRPAdminBundle:GlobalInstrument', 'rType', "WITH", "rType.id=properties.instrument_type")->leftJoin('DRPAdminBundle:Company', 'grantor', "WITH", "grantor.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'grantee', "WITH", "grantee.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'pr', "WITH", "pr.book_id=properties.id")->leftJoin('DRPAdminBundle:Company', 'rp', "WITH", "rp.book_id=properties.id")->andwhere('properties.serial_number like :serialNumber')->setParameter('serialNumber', '%' . $serialNumber . '%')->andwhere('properties.reference_number like :reference')->setParameter('reference', '%' . $ref . '%')->andwhere('properties.or_number like :orNumber')->setParameter('orNumber', '%' . $orNumber . '%')->andwhere('grantor.first_name like :name')->setParameter('name', '%' . $grantorName . '%')->andwhere('grantor.nin like :lessnin')->setParameter('lessnin', '%' . $grantorNIN . '%')->andwhere('grantee.first_name like :fname')->setParameter('fname', '%' . $granteeName . '%')->andwhere('grantee.nin like :lnin')->setParameter('lnin', '%' . $granteeNIN . '%')->andwhere('grantee.type = :ltype')->setParameter('ltype', $nType)->andwhere('pr.type = :prtype')->setParameter('prtype', 'PR')->andwhere('rp.type = :rptype')->setParameter('rptype', 'RP')->andwhere('grantor.type = :lesType')->setParameter('lesType', $type)->getQuery()->getArrayResult();
         if (is_array($searchProperties) && count($searchProperties) > 0) {
             $session = $this->getRequest()->getSession();
             $currentSearches = $em->createQueryBuilder()->select('User')->from('DRPAdminBundle:User', 'User')->where('User.id=:Id')->setParameter('Id', $session->get('userId'))->getQuery()->getArrayResult();
             $balanceSearch = $currentSearches[0]['search_count_balance'] - 1;
             $usedSearch = $currentSearches[0]['search_count_used'] + 1;
             $updateBalanceSearch = $em->createQueryBuilder()->select('userPlan')->update('DRPAdminBundle:User', 'userPlan')->set('userPlan.search_count_balance', ':balance')->where('userPlan.id = :id')->setParameter('balance', $balanceSearch)->setParameter('id', $session->get('userId'))->getQuery()->getResult();
             $updateUsedSearch = $em->createQueryBuilder()->select('userPlan')->update('DRPAdminBundle:User', 'userPlan')->set('userPlan.search_count_used', ':Used')->where('userPlan.id = :id')->setParameter('Used', $usedSearch)->setParameter('id', $session->get('userId'))->getQuery()->getResult();
         } else {
             $searchProperties = '';
         }
         $ipAddress = $_SERVER['REMOTE_ADDR'];
         $params['event'] = $this->getLogEventTitleAction('SEARCH');
         $params['description'] = $this->getLogEventDescriptionAction('SEARCH');
         $params['userId'] = $session->get('userId');
         $params['ipAddress'] = $ipAddress;
         $params['creatorId'] = $session->get('userId');
         $this->setLogAction($params);
         return $this->render('DRPUserBundle:Pages:resultGlobalDRB.html.twig', array('searchProperties' => $searchProperties));
     }
     $searchProperties = '';
     return $this->render('DRPUserBundle:Pages:resultGlobalDRB.html.twig', array('searchProperties' => $searchProperties));
 }