public function execute()
 {
     try {
         $where = null;
         if (request::getInstance()->hasRequest('filter')) {
             $report = request::getInstance()->getPost('filter');
             if (isset($report['numero']) and $report['numero'] !== null and $report['numero'] !== '') {
                 $where[gestacionTableClass::getNameTable() . '.' . gestacionTableClass::ANIMAL] = $report['numero'];
             }
             //close if
         }
         //close if
         $fields = array(gestacionTableClass::ID, gestacionTableClass::FECHA, gestacionTableClass::FECHA_MONTA);
         $fields2 = array(animalTableClass::NUMERO);
         $fields3 = array(empleadoTableClass::NOMBRE);
         $fJoin1 = gestacionTableClass::ANIMAL;
         $fJoin2 = animalTableClass::ID;
         $fJoin3 = gestacionTableClass::EMPLEADO;
         $fJoin4 = empleadoTableClass::ID;
         $orderBy = array(gestacionTableClass::ID);
         //            $this->objEmpleado = empleadoTableClass::getAll($fields2, false);
         $this->objGestacion = gestacionTableClass::getAllJoin($fields, $fields2, $fields3, null, $fJoin1, $fJoin2, $fJoin3, $fJoin4, null, null, false, $orderBy, 'ASC', null, null, $where);
         $this->mensaje = 'Registro de Gestacion de la Cerda';
         $this->defineView('index', 'gestacion', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST')) {
             // DATOS DE ANIMAL
             $id = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::ID, true));
             $fecha = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::FECHA, true));
             $empleado = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::EMPLEADO, true));
             $animal = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::ANIMAL, true));
             $fecha_monta = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::FECHA_MONTA, true));
             //                $fecha_parto = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::FECHA_PROBABLE_PARTO, true));
             $fecundador = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::ANIMAL_FECUNDADOR, true));
             gestacionTableClass::validate($fecha, $fecha_monta);
             //Insertar la informacion del usuario
             $ids = array(gestacionTableClass::ID => $id);
             $data = array(gestacionTableClass::FECHA => $fecha, gestacionTableClass::EMPLEADO => $empleado, gestacionTableClass::ANIMAL => $animal, gestacionTableClass::FECHA_MONTA => $fecha_monta, gestacionTableClass::ANIMAL_FECUNDADOR => $fecundador);
             gestacionTableClass::update($ids, $data);
             session::getInstance()->setSuccess(i18n::__('succesUpdate', null, 'gestacion'));
             log::register(i18n::__('update'), gestacionTableClass::getNameTable());
             routing::getInstance()->redirect('animal', 'indexGestacion');
         } else {
             log::register(i18n::__('update'), gestacionTableClass::getNameTable(), i18n::__('errorUpdateBitacora'));
             session::getInstance()->setError(i18n::__('errorUpdate', null, 'animal'));
             routing::getInstance()->redirect('animal', 'indexGestacion');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public static function validate($fecha, $fecha_monta)
 {
     $flag = false;
     $pattern = "/^((19|20)?[0-9]{2})[\\/|-](0?[1-9]|[1][012])[\\/|-](0?[1-9]|[12][0-9]|3[01])\$/";
     $dateNow = date("Y-m-d", strtotime("now"));
     $patternC = "^[a-zA-Z0-9]{3,20}\$";
     if ($fecha > $dateNow) {
         session::getInstance()->setError(i18n::__(10073, null, 'errors'));
         $flag = true;
         session::getInstance()->setFlash(gestacionTableClass::getNameField(gestacionTableClass::FECHA, true), true);
     }
     //        if ($fecha_parto < $dateNow) {
     //            session::getInstance()->setError(i18n::__(10071, null, 'errors'));
     //            $flag = true;
     //            session::getInstance()->setFlash(gestacionTableClass::getNameField(gestacionTableClass::FECHA_PROBABLE_PARTO, true), true);
     //        }
     if ($fecha_monta > $dateNow) {
         session::getInstance()->setError(i18n::__(10072, null, 'errors'));
         $flag = true;
         session::getInstance()->setFlash(gestacionTableClass::getNameField(gestacionTableClass::FECHA_MONTA, true), true);
         if ($flag == true) {
             request::getInstance()->setMethod('GET');
             request::getInstance()->addParamGet(array('id' => $id));
             routing::getInstance()->forward('animal', 'editRegistroParto');
         }
     }
 }
 public function execute()
 {
     try {
         $fieldsGestacion = array(gestacionTableClass::ID, gestacionTableClass::FECHA, gestacionBaseTableClass::FECHA_MONTA, gestacionTableClass::EMPLEADO, gestacionTableClass::ANIMAL, gestacionTableClass::ANIMAL_FECUNDADOR);
         $fieldsAnimal = array(animalTableClass::ID, animalTableClass::NUMERO);
         $fieldsEmpleado = array(empleadoTableClass::ID, empleadoTableClass::NOMBRE);
         $where = array(gestacionTableClass::ID => request::getInstance()->getRequest(gestacionTableClass::ID, true));
         $this->objAnimal = animalTableClass::getAll($fieldsAnimal, true);
         $this->objEmpleado = empleadoTableClass::getAll($fieldsEmpleado, true);
         $this->objGestacion = gestacionTableClass::getAll($fieldsGestacion, false, null, null, null, null, $where);
         $this->defineView('edit', 'gestacion', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         //            $fieldsAnimal= array (
         //            animalTableClass::ID,
         //            animalTableClass::NUMERO
         //            );
         //  $this->objAnimal = animalTableClass::getAll($fieldsAnimal);
         $idAnimalSeleccionado = request::getInstance()->getGet(hojaVidaTableClass::getNameField(hojaVidaTableClass::ANIMAL, true));
         $fieldsGestacion = array(gestacionTableClass::FECHA, gestacionTableClass::ID);
         $whereGestacion = array(gestacionTableClass::ANIMAL => $idAnimalSeleccionado);
         $objGestacion = gestacionTableClass::getAll($fieldsGestacion, false, null, null, null, null, $whereGestacion);
         //            print_r($objGestacion);
         //             echo   strtotime($objGestacion[0]->fecha);
         //                echo time();
         $segundos = strtotime($objGestacion[0]->fecha) - strtotime('now');
         $diferencia_dias = intval($segundos / 60 / 60 / 24);
         $diferencia_dias = $diferencia_dias * -1;
         $flag = false;
         if ($objGestacion[0] == false) {
             session::getInstance()->setError("No existe ningun registro de gestacion para este cerdo");
             $flag = true;
             session::getInstance()->setFlash(gestacionTableClass::getNameField(gestacionTableClass::FECHA_MONTA, true), true);
         }
         if ($diferencia_dias >= 116) {
             session::getInstance()->setError("El cerdo se ha excedido de la gestacion");
             $flag = true;
             session::getInstance()->setFlash(gestacionTableClass::getNameField(gestacionTableClass::FECHA_MONTA, true), true);
         }
         if ($flag == true) {
             request::getInstance()->setMethod('GET');
             routing::getInstance()->forward('animal', 'indexRegistroParto');
         }
         //            exit();
         $this->idAnimalSeleccionado = $idAnimalSeleccionado;
         $this->defineView('insert', 'registroParto', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         if (request::getInstance()->isMethod('POST') and request::getInstance()->isAjaxRequest()) {
             $id = request::getInstance()->getPost(gestacionTableClass::getNameField(gestacionTableClass::ID, true));
             //$observacion = request::getInstance()->getPost(usuarioTableClass::getNameField(usuarioTableClass::OBSERVACION, true));
             $ids = array(gestacionTableClass::ID => $id);
             gestacionTableClass::delete($ids, true);
             $this->arrayAjax = array('code' => 11, 'msg' => 'La eliminacion ha sido exitosa');
             $this->defineView('delete', 'gestacion', session::getInstance()->getFormatOutput());
             log::register(i18n::__('delete'), gestacionTableClass::getNameTable());
             session::getInstance()->setSuccess(i18n::__('succesDelete', null, 'animal'));
         } else {
             log::register(i18n::__('delete'), gestacionTableClass::getNameTable(), i18n::__('errorDeleteBitacora'));
             session::getInstance()->setError(i18n::__('errorDelete', null, 'animal'));
             routing::getInstance()->redirect('animal', 'indexGestacion');
         }
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
                                <div class="modal-body">
                                    ¿<?php 
    echo i18n::__('confirmDelete');
    ?>
?
                                </div>
                                <div class="modal-footer">
                                    <a href="#close2" title="Close" class="close2 btn btn-default fa fa-times-circle-o close2"><?php 
    echo i18n::__('cancel');
    ?>
</a>
                                    <button type="button" class="btn btn-primary fa fa-eraser" onclick="eliminar(<?php 
    echo $key->{$id};
    ?>
, '<?php 
    echo gestacionTableClass::getNameField(gestacionTableClass::ID, true);
    ?>
', '<?php 
    echo routing::getInstance()->getUrlWeb('animal', 'deleteGestacion');
    ?>
')"><?php 
    echo i18n::__('delete');
    ?>
</button>
                                </div>
                            </div>
                        </div>

                        <?php 
    $countDetale++;
    ?>
 public function execute()
 {
     try {
         $where = null;
         if (request::getInstance()->hasPost('filter')) {
             $filter = request::getInstance()->getPost('filter');
             if (isset($filter['numero']) and $filter['numero'] !== null and $filter['numero'] !== '') {
                 $where[animalTableClass::NUMERO] = $filter['numero'];
             }
             if (isset($filter['lote']) and $filter['lote'] !== null and $filter['lote'] !== '') {
                 $where[animalTableClass::LOTE_ID] = $filter['lote'];
             }
             session::getInstance()->setAttribute('animalFiltersAnimal', $where);
         } elseif (session::getInstance()->hasAttribute('animalFiltersAnimal')) {
             $where = session::getInstance()->getAttribute('animalFiltersAnimal');
         }
         $fieldsGestacion = array(gestacionTableClass::ID, gestacionTableClass::ANIMAL, gestacionTableClass::FECHA);
         $objGestacion = gestacionTableClass::getAll($fieldsGestacion, false);
         foreach ($objGestacion as $key) {
             $segundos = strtotime($key->fecha) - strtotime('now');
             $diferencia_dias = intval($segundos / 60 / 60 / 24);
             $diferencia_dias = $diferencia_dias * -1;
             if ($diferencia_dias > 116) {
                 session::getInstance()->setWarning("A la cerda " . $key->animal . " no se le ha realizado el registro de parto");
             }
         }
         //            print_r($objGestacion);
         //            exit();
         $fields = array(animalTableClass::ID, animalTableClass::NUMERO, animalTableClass::LOTE_ID);
         $fieldsLote = array(loteTableClass::ID, loteTableClass::NOMBRE);
         $fields3 = array(loteTableClass::NOMBRE);
         $fieldsHojaVida = array(hojaVidaTableClass::ID, hojaVidaTableClass::ANIMAL, hojaVidaTableClass::FECHA_NACIMIENTO, hojaVidaTableClass::PARTO, hojaVidaTableClass::GENERO_ID, hojaVidaTableClass::RAZA, hojaVidaTableClass::PESO);
         $fieldsGenero = array(generoTableClass::ID, generoTableClass::NOMBRE);
         $fieldsRaza = array(razaTableClass::ID, razaTableClass::NOMBRE_RAZA);
         $fJoin1 = animalTableClass::LOTE_ID;
         $fJoin2 = loteTableClass::ID;
         $fJoin3 = animalTableClass::NUMERO;
         $fJoin4 = hojaVidaTableClass::NUMERO;
         $orderBy = array(animalTableClass::NUMERO);
         $page = 0;
         if (request::getInstance()->hasGet('page')) {
             $page = request::getInstance()->getGet('page') - 1;
             $page = $page * config::getRowGrid();
         }
         $f = array(animalTableClass::ID);
         if (request::getInstance()->hasGet('page')) {
             $this->page = request::getInstance()->getGet('page');
         } else {
             $this->page = $page;
         }
         $objAnimal = animalTableClass::getAllJoin($fields, $fields3, $fieldsHojaVida, null, $fJoin1, $fJoin2, $fJoin3, $fJoin4, null, null, true, $orderBy, 'ASC', config::getRowGrid(), $page, $where);
         //metodo cambio de lote
         foreach ($objAnimal as $key) {
             $p = $key->peso_animal;
             $i = $key->numero_identificacion;
             $segundos = strtotime($key->fecha_nacimiento) - strtotime('now');
             $diferencia_dias = intval($segundos / 60 / 60 / 24);
             $diferencia_dias = $diferencia_dias * -1;
             $ids = array(animalTableClass::NUMERO => $i);
             if ($diferencia_dias >= 42) {
                 if ($p >= 25 and $p < 55) {
                     $dataLote = array(animalTableClass::LOTE_ID => 4);
                     animalTableClass::update($ids, $dataLote);
                 }
                 if ($p >= 55) {
                     $dataLote = array(animalTableClass::LOTE_ID => 5);
                     animalTableClass::update($ids, $dataLote);
                 }
                 if ($p >= 100) {
                     session::getInstance()->setInformation("El cerdo " . $key->numero_identificacion . " esta disponible para la venta");
                 }
             } else {
                 if ($diferencia_dias >= 21 and $diferencia_dias < 42) {
                     $dataLote = array(animalTableClass::LOTE_ID => 3);
                     animalTableClass::update($ids, $dataLote);
                 }
             }
         }
         $lines = config::getRowGrid();
         $this->cntPages = animalTableClass::getAllCount($f, true, $lines, $where);
         $this->objGenero = generoTableClass::getAll($fieldsGenero, false);
         $this->objRaza = razaTableClass::getAll($fieldsRaza, true);
         $this->objLote = loteTableClass::getAll($fieldsLote, true);
         $this->objFilterAnimal = animalTableClass::getAll($fields, true);
         $this->objAnimal = animalTableClass::getAllJoin($fields, $fields3, null, null, $fJoin1, $fJoin2, null, null, null, null, true, $orderBy, 'ASC', config::getRowGrid(), $page, $where);
         $this->objHojaVida = hojaVidaTableClass::getAll($fieldsHojaVida, true);
         $this->defineView('index', 'animal', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
 public function execute()
 {
     try {
         $idHojaVida = request::getInstance()->getGet(hojaVidaBaseTableClass::getNameField(hojaVidaTableClass::ANIMAL, TRUE));
         if (isset($idHojaVida)) {
             $where[gestacionTableClass::ANIMAL] = $idHojaVida;
         }
         if (request::getInstance()->hasPost('filter')) {
             $filter = request::getInstance()->getPost('filter');
             if (isset($filter['fecha']) and $filter['fecha'] !== null and $filter['fecha'] !== '') {
                 $where[gestacionTableClass::getNameTable() . '.' . gestacionTableClass::FECHA] = $filter['fecha'];
             }
             //close if
             if (isset($filter['numero']) and $filter['numero'] !== null and $filter['numero'] !== '') {
                 $where[gestacionTableClass::ANIMAL] = $filter['numero'];
             }
             //close if
             if (isset($filter['fechaMonta']) and $filter['fechaMonta'] !== null and $filter['fechaMonta'] !== '') {
                 $where[gestacionTableClass::getNameTable() . '.' . gestacionTableClass::FECHA_MONTA] = $filter['fechaMonta'];
             }
             //close if
             //                if (isset($filter['fechaParto']) and $filter['fechaParto'] !== null and $filter['fechaParto'] !== '') {
             //                    $where[gestacionTableClass::getNameTable() . '.' . gestacionTableClass::FECHA_PROBABLE_PARTO] = $filter['fechaParto'];
             //                }//close if
             if (isset($filter['macho']) and $filter['macho'] !== null and $filter['macho'] !== '') {
                 $where[gestacionTableClass::ANIMAL_FECUNDADOR] = $filter['macho'];
             }
             //close if
             if (isset($filter['empleado']) and $filter['empleado'] !== null and $filter['empleado'] !== '') {
                 $where[gestacionTableClass::getNameTable() . '.' . gestacionTableClass::EMPLEADO] = $filter['empleado'];
             }
             //close if
             session::getInstance()->setAttribute('animalFiltersGestacion', $where);
         } elseif (session::getInstance()->hasAttribute('animalFiltersGestacion')) {
             $where = session::getInstance()->getAttribute('animalFiltersGestacion');
         }
         $idAnimalHojaVida = request::getInstance()->getGet(hojaVidaTableClass::getNameField(hojaVidaTableClass::ANIMAL, true));
         $where = array(gestacionTableClass::ANIMAL => $idAnimalHojaVida);
         $fieldsEmpleado = array(empleadoTableClass::ID, empleadoTableClass::NOMBRE);
         $fieldsAnimal = array(animalTableClass::ID, animalTableClass::NUMERO);
         $fields = array(gestacionTableClass::ID, gestacionTableClass::FECHA, gestacionTableClass::FECHA_MONTA, gestacionTableClass::ANIMAL_FECUNDADOR);
         $fields2 = array(animalTableClass::NUMERO);
         $fields3 = array(empleadoTableClass::NOMBRE);
         $fJoin1 = gestacionTableClass::ANIMAL;
         $fJoin2 = animalTableClass::ID;
         $fJoin3 = gestacionTableClass::EMPLEADO;
         $fJoin4 = empleadoTableClass::ID;
         $orderBy = array(gestacionTableClass::ID);
         $page = 0;
         if (request::getInstance()->hasGet('page')) {
             $page = request::getInstance()->getGet('page') - 1;
             $page = $page * config::getRowGrid();
         }
         $f = array(gestacionTableClass::ID);
         $lines = config::getRowGrid();
         $this->cntPages = gestacionTableClass::getAllCount($f, false, $lines);
         if (request::getInstance()->hasGet('page')) {
             $this->page = request::getInstance()->getGet('page');
         } else {
             $this->page = $page;
         }
         $this->idHojaVida = $idHojaVida;
         //            $this->idAnimalSeleccionado = request::getInstance()->getGet(hojaVidaTableClass::getNameField(hojaVidaTableClass::ANIMAL,true));
         $this->objGestacion = gestacionTableClass::getAllJoin($fields, $fields2, $fields3, null, $fJoin1, $fJoin2, $fJoin3, $fJoin4, null, null, false, $orderBy, 'ASC', config::getRowGrid(), $page, $where);
         $this->objAnimal = animalTableClass::getAll($fieldsAnimal, true);
         //$this->page = request::getInstance()->getGet('page');
         $this->idAnimalHojaVida = $idAnimalHojaVida;
         $this->objEmpleado = empleadoTableClass::getAll($fieldsEmpleado, false);
         $this->defineView('index', 'gestacion', session::getInstance()->getFormatOutput());
     } catch (PDOException $exc) {
         session::getInstance()->setFlash('exc', $exc);
         routing::getInstance()->forward('shfSecurity', 'exception');
     }
 }
echo gestacionTableClass::getNameField(gestacionTableClass::FECHA_MONTA, true);
?>
" >
                        </th>
                    </tr>

                    <tr>
                        <th>
                            <?php 
echo i18n::__('fecundador', null, 'gestacion');
?>
:
                        </th>
                        <th>
                            <select name="<?php 
echo gestacionTableClass::getNameField(gestacionTableClass::ANIMAL_FECUNDADOR, false);
?>
">
                                 <option>...</option>                               
                             <?php 
foreach ($objAnimal as $key) {
    ?>
                                    <option value="<?php 
    echo $key->{$id};
    ?>
">
                                        <?php 
    echo $key->{$animal};
    ?>
                                    </option>
                                <?php