/**
  * 
  * @param TipoCajaMarcacionData $TipoCajaMarcacionData
  * @return \Dispo\Data\TipoCajaMarcacionData|NULL
  */
 public function consultarKeyAlterno($TipoCajaMarcacionData)
 {
     $TipoCajaMarcacionData2 = new TipoCajaMarcacionData();
     $sql = ' SELECT tipo_caja_marcacion.* ' . ' FROM tipo_caja_marcacion ' . ' WHERE tipo_caja_marcacion.marcacion_sec 	= :marcacion_sec ' . '   and tipo_caja_marcacion.tipo_caja_id 	= :tipo_caja_id ' . '   and tipo_caja_marcacion.inventario_id 	= :inventario_id ' . '   and tipo_caja_marcacion.variedad_id 	= :variedad_id ' . '   and tipo_caja_marcacion.grado_id 		= :grado_id ' . '   and tipo_caja_marcacion.id				<> :id';
     $stmt = $this->getEntityManager()->getConnection()->prepare($sql);
     $stmt->bindValue(':marcacion_sec', $TipoCajaMarcacionData->getMarcacionSec());
     $stmt->bindValue(':tipo_caja_id', $TipoCajaMarcacionData->getTipoCajaId());
     $stmt->bindValue(':inventario_id', $TipoCajaMarcacionData->getInventarioId());
     $stmt->bindValue(':variedad_id', $TipoCajaMarcacionData->getVariedadId());
     $stmt->bindValue(':grado_id', $TipoCajaMarcacionData->getGradoId());
     $stmt->bindValue(':id', $TipoCajaMarcacionData->getId());
     $stmt->execute();
     $row = $stmt->fetch();
     //Se utiliza el fecth por que es un registro
     if ($row) {
         $TipoCajaMarcacionData2->setId($row['id']);
         $TipoCajaMarcacionData2->setMarcacionSec($row['marcacion_sec']);
         $TipoCajaMarcacionData2->setTipoCajaId($row['tipo_caja_id']);
         $TipoCajaMarcacionData2->setInventarioId($row['inventario_id']);
         $TipoCajaMarcacionData2->setVariedadId($row['variedad_id']);
         $TipoCajaMarcacionData2->setGradoId($row['grado_id']);
         $TipoCajaMarcacionData2->setUndsBunch($row['unds_bunch']);
         $TipoCajaMarcacionData2->setFecIngreso($row['fec_ingreso']);
         $TipoCajaMarcacionData2->setFecModifica($row['fec_modifica']);
         $TipoCajaMarcacionData2->setUsuarioIngId($row['usuario_ing_id']);
         $TipoCajaMarcacionData2->setUsuarioModId($row['usuario_mod_id']);
         return $TipoCajaMarcacionData2;
     } else {
         return null;
     }
     //end if
 }
 public function grabarAction()
 {
     try {
         $SesionUsuarioPlugin = $this->SesionUsuarioPlugin();
         $usuario_id = $SesionUsuarioPlugin->getUsuarioId();
         $EntityManagerPlugin = $this->EntityManagerPlugin();
         $respuesta = $SesionUsuarioPlugin->isLoginAdmin();
         if ($respuesta == false) {
             return false;
         }
         $TipoCajaMarcacionBO = new TipoCajaMarcacionBO();
         $TipoCajaMarcacionBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $request = $this->getRequest();
         $body = $this->getRequest()->getContent();
         $json = json_decode($body, true);
         $gridTipoCaja_ingresar = $json['gridTipoCaja_ingresar'];
         $gridTipoCaja_modificar = $json['gridTipoCaja_modificar'];
         $gridTipoCaja_eliminar = $json['gridTipoCaja_eliminar'];
         //Detalle de la Caja Marcacion (ELIMINAR)
         $ArrTipoCaja = array();
         foreach ($gridTipoCaja_eliminar as $reg) {
             $TipoCajaMarcacionData = new TipoCajaMarcacionData();
             $TipoCajaMarcacionData->setAccion('E');
             $TipoCajaMarcacionData->setId($reg['id']);
             $ArrTipoCaja[] = $TipoCajaMarcacionData;
             unset($TipoCajaMarcacionData);
         }
         //end foreach
         //Detalle de la Caja Marcacion (INGRESAR)
         foreach ($gridTipoCaja_ingresar as $reg) {
             $TipoCajaMarcacionData = new TipoCajaMarcacionData();
             $TipoCajaMarcacionData->setAccion('I');
             $TipoCajaMarcacionData->setId($reg['id']);
             $TipoCajaMarcacionData->setMarcacionSec($reg['marcacion_sec']);
             $TipoCajaMarcacionData->setTipoCajaId($reg['tipo_caja_id']);
             $TipoCajaMarcacionData->setInventarioId($reg['inventario_id']);
             $TipoCajaMarcacionData->setVariedadId($reg['variedad_id']);
             $TipoCajaMarcacionData->setGradoId($reg['grado_id']);
             $TipoCajaMarcacionData->setUndsBunch($reg['unds_bunch']);
             $TipoCajaMarcacionData->setUsuarioIngId($usuario_id);
             $TipoCajaMarcacionData->setUsuarioModId($usuario_id);
             $ArrTipoCaja[] = $TipoCajaMarcacionData;
             unset($TipoCajaMarcacionData);
         }
         //end foreach
         //Detalle de la Caja Marcacion (MODIFICAR)
         foreach ($gridTipoCaja_modificar as $reg) {
             $TipoCajaMarcacionData = new TipoCajaMarcacionData();
             $TipoCajaMarcacionData->setAccion('M');
             $TipoCajaMarcacionData->setId($reg['id']);
             $TipoCajaMarcacionData->setMarcacionSec($reg['marcacion_sec']);
             $TipoCajaMarcacionData->setTipoCajaId($reg['tipo_caja_id']);
             $TipoCajaMarcacionData->setInventarioId($reg['inventario_id']);
             $TipoCajaMarcacionData->setVariedadId($reg['variedad_id']);
             $TipoCajaMarcacionData->setGradoId($reg['grado_id']);
             $TipoCajaMarcacionData->setUndsBunch($reg['unds_bunch']);
             $TipoCajaMarcacionData->setUsuarioIngId($usuario_id);
             $TipoCajaMarcacionData->setUsuarioModId($usuario_id);
             $ArrTipoCaja[] = $TipoCajaMarcacionData;
             unset($TipoCajaMarcacionData);
         }
         //end foreach
         $respuesta = $TipoCajaMarcacionBO->grabar($ArrTipoCaja);
         $response = new \stdClass();
         $response->respuesta_code = 'OK';
         $json = new JsonModel(get_object_vars($response));
         return $json;
         //false
     } catch (\Exception $e) {
         $excepcion_msg = utf8_encode($this->ExcepcionPlugin()->getMessageFormat($e));
         $response = $this->getResponse();
         $response->setStatusCode(500);
         $response->setContent($excepcion_msg);
         return $response;
     }
 }