Alfredao

FeriadoModel.php

Feb 7th, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.19 KB | None | 0 0
  1. <?php
  2. namespace Cadastro\Model;
  3.  
  4. use Zend\InputFilter\InputFilter;
  5. use Zend\InputFilter\Factory;
  6. use Zend\Mvc\Service\InputFilterManagerFactory;
  7. use Zend\Validator\Explode;
  8.  
  9. /**
  10.  * Model feriado
  11.  *
  12.  * @author Alfredo Costa
  13.  * @category Model
  14.  * @package Cadastro/Model
  15.  * @copyright 2014 P21 Sistemas
  16.  * @version 1.0.0
  17.  */
  18. class FeriadoModel extends \Application\Model\Model
  19. {
  20.  
  21.     const ENTITY = 'Cadastro\Entity\Feriado';
  22.  
  23.     /**
  24.      *
  25.      * @param \Cadastro\Entity\Feriado $data            
  26.      */
  27.     public function save($data)
  28.     {
  29.         $this->getRepository()->save($data);
  30.     }
  31.  
  32.     /**
  33.      *
  34.      * @return void
  35.      */
  36.     public function remove($feriado)
  37.     {
  38.         $entityManager = $this->getEntityManager();
  39.         $entityManager->remove($feriado);
  40.         $entityManager->flush();
  41.     }
  42.  
  43.     /**
  44.      */
  45.     public function getInputFilter()
  46.     {
  47.         if (! $this->inputFilter) {
  48.             $inputFilter = new InputFilter();
  49.             $factory = new Factory();
  50.            
  51.             $inputFilter->add($factory->createInput(array(
  52.                 'name' => 'nome',
  53.                 'required' => true,
  54.                 'filters' => array(
  55.                     array(
  56.                         'name' => 'StripTags'
  57.                     ),
  58.                     array(
  59.                         'name' => 'StringTrim'
  60.                     )
  61.                 ),
  62.                 'validators' => array(
  63.                     array(
  64.                         'name' => 'NotEmpty',
  65.                         'options' => array(
  66.                             'messages' => array(
  67.                                 \Zend\Validator\NotEmpty::IS_EMPTY => 'O nome do feriado deve ser preenchido.'
  68.                             )
  69.                         )
  70.                     ),
  71.                     array(
  72.                         'name' => 'StringLength',
  73.                         'options' => array(
  74.                             'encoding' => 'UTF-8',
  75.                             'min' => 4,
  76.                             'max' => 50,
  77.                             'messages' => array(
  78.                                 \Zend\Validator\StringLength::TOO_SHORT => 'O nome do feriado deve ter no mínimo 4 caractéres.',
  79.                                 \Zend\Validator\StringLength::TOO_LONG => 'O nome do feriado deve ter no máximo 50 caractéres.'
  80.                             )
  81.                         )
  82.                     )
  83.                 )
  84.             )));
  85.            
  86.             $inputFilter->add($factory->createInput(array(
  87.                 'name' => 'dataInicial',
  88.                 'required' => true,
  89.                 'validators' => array(
  90.                     array(
  91.                         'name' => 'NotEmpty',
  92.                         'options' => array(
  93.                             'messages' => array(
  94.                                 \Zend\Validator\NotEmpty::IS_EMPTY => 'A data do feriado deve ser preenchida.'
  95.                             )
  96.                         )
  97.                     ),
  98.                     array(
  99.                         'name' => 'callback',
  100.                         'options' => array(
  101.                             'messages' => array(
  102.                                 \Zend\Validator\Callback::INVALID_CALLBACK => 'Data no formato inválido.'
  103.                             ),
  104.                             'callback' => function ($value, $context = array())
  105.                             {
  106.                                 $dataInicial = \DateTime::createFromFormat('d/m/Y', $value);
  107.                                 return $dataInicial->format('d/m/Y');
  108.                             }
  109.                         )
  110.                     )
  111.                 )
  112.             )));
  113.            
  114.             $inputFilter->add($factory->createInput(array(
  115.                 'name' => 'dataFinal',
  116.                 'required' => false,
  117.                 'validators' => array(
  118.                     array(
  119.                         'name' => 'callback',
  120.                         'options' => array(
  121.                             'messages' => array(
  122.                                 \Zend\Validator\Callback::INVALID_VALUE => 'A data final do feriado deve ser maior que a data inicial.',
  123.                                 \Zend\Validator\Callback::INVALID_CALLBACK => 'Data no formato inválido.'
  124.                             ),
  125.                             'callback' => function ($value, $context = array())
  126.                             {
  127.                                 if ($context['extendido']) {
  128.                                     $dataFinal = \DateTime::createFromFormat('d/m/Y', $value);
  129.                                     $dataInicial = \DateTime::createFromFormat('d/m/Y', $context['dataInicial']);
  130.                                    
  131.                                     return $dataFinal > $dataInicial;
  132.                                 } else {
  133.                                     return true;
  134.                                 }
  135.                             }
  136.                         )
  137.                     )
  138.                 )
  139.             )));
  140.            
  141.             $this->inputFilter = $inputFilter;
  142.         }
  143.        
  144.         return $this->inputFilter;
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment