コード例 #1
0
 /**
  * @param ErrorElement $errorElement
  * @param mixed|\Application\Sonata\ClientBundle\Entity\Client $object
  */
 public function validate(ErrorElement $errorElement, $object)
 {
     /* @var $object \Application\Sonata\ClientBundle\Entity\Client */
     parent::validate($errorElement, $object);
     //EU validate NotBlank
     if (!$object->getNTVACEE() && $object->getPaysPostal() && $object->getPaysPostal()->getCode() && in_array($object->getPaysPostal()->getCode(), ListCountries::getCountryEUCode())) {
         $errorElement->with('N_TVA_CEE')->addViolation('This value should not be blank.')->end();
     }
     if (!$object->getNTVACEEFacture() && $object->getPaysFacturation() && $object->getPaysFacturation()->getCode() && in_array($object->getPaysFacturation()->getCode(), ListCountries::getCountryEUCode())) {
         $errorElement->with('N_TVA_CEE_facture')->addViolation('This value should not be blank.')->end();
     }
     /*  if ($object->getNTVACEEFacture() && !preg_match('/^FR \d{2} \d{3} \d{3} \d{3}$/', $object->getNTVACEEFacture())) {
         	$errorElement->with('N_TVA_CEE_facture')->addViolation('Le format du N° TVA CEE facturé est incorrect.   Respecter : FR XX XXX XXX XXX')->end();
         } */
     $this->validateNTVACEEFacture($errorElement, $object);
     if ($object->getAutreDestinataireDeFacturation()) {
         //validate NotBlank
         foreach (array('raison_sociale_2') as $field) {
             $method = 'get' . str_replace(' ', '', ucwords(str_replace('_', ' ', $field)));
             if (method_exists($object, $method) && !$object->{$method}()) {
                 $errorElement->with($field)->addViolation('This value should not be blank.')->end();
             }
         }
     }
     $value = $object->getSiret();
     if (!preg_match('/^\\d{3} \\d{3} \\d{3} \\d{3} \\d{2}$/', $value)) {
         $errorElement->with('siret')->addViolation('Le format du N° SIRET est incorrect.   Respecter : xxx xxx xxx xxx xx')->end();
     } else {
         $value = $object->getNTVAFR();
         $siret = substr($object->getSiret(), 0, 11);
         if ($value) {
             if (!preg_match('/^FR (\\d{2}|ZW) ' . $siret . '$/', $value)) {
                 $errorElement->with('N_TVA_FR')->addViolation('Non concordance entre le SIRET et le N° TVA FR.   Respecter FR xx (+SIREN xxx xxx xxx)')->end();
             }
         }
     }
     $value = $object->getNumDossierFiscal();
     if ($value) {
         if (!preg_match('/^\\d{6}\\/\\d{2}$/', $value)) {
             $errorElement->with('num_dossier_fiscal')->addViolation('"Num dossier fiscal" non valide, devrait avoir le format xxxxxx/xx')->end();
         }
     }
     $value = $object->getDateDeDepot();
     if ($value && $object->getNatureDuClient()) {
         if (in_array($object->getNatureDuClient()->getId(), array(ListNatureDuClients::DEB, ListNatureDuClients::DES)) && $value != 31) {
             $errorElement->with('date_de_depot_id')->addViolation('"Date de dépôt" non cohérente')->end();
         }
     }
     /**
              * If CENTRE DES IMPOTS = DRESG/6 and date <> 19 : No validation possible - Message on DATE : "CDI = DRESG, date = 19"
     
     If CENTRE DES IMPOTS = CDI-94/7 and date <> 15 or 24 : No validation possible - Message on DATE : "CDI = CDI-94, date = 15 or 24"
     
     If CENTRE DES IMPOTS = CISD/9 and date <> 31 : No validation possible - Message on DATE : "CDI = CISD, date = 31"
     */
     $centerDesImpotsID = $object->getCenterDesImpots() ? $object->getCenterDesImpots()->getId() : 0;
     $dateDepot = $object->getDateDeDepot();
     if ($centerDesImpotsID && $dateDepot) {
         if ($centerDesImpotsID == 6 && $dateDepot != 19) {
             $errorElement->with('date_de_depot_id')->addViolation('CDI = DRESG, date = 19')->end();
         }
         if ($centerDesImpotsID == 7 && ($dateDepot != 15 && $dateDepot != 24)) {
             $errorElement->with('date_de_depot_id')->addViolation('CDI = CDI-94, date = 15 or 24')->end();
         }
         if ($centerDesImpotsID == 9 && $dateDepot != 31) {
             $errorElement->with('date_de_depot_id')->addViolation('CDI = CISD, date = 31')->end();
         }
     }
 }
コード例 #2
0
 /**
  * @param ErrorElement $errorElement
  * @param mixed $object
  */
 public function validate(ErrorElement $errorElement, $object)
 {
     $this->_autofixeuroformat($object);
     /* @var $object \Application\Sonata\ClientOperationsBundle\Entity\AbstractBaseEntity */
     parent::validate($errorElement, $object);
     $value = $object->getDatePiece();
     if ($value) {
         $this->month = $value->format('m');
         $this->year = $value->format('Y');
         if ($this->getLocking() && $object instanceof AbstractBaseEntity) {
             if ($object->getStatus() && $object->getStatus()->getId() == 1) {
                 $errorElement->with('date_piece')->addViolation('Sorry with month is locked')->end();
             }
         }
     }
 }