public static function getById($id)
 {
     $sql = 'select * from entidad_receptora where id = :id';
     $query = self::nuevaDb()->prepare($sql);
     $query->execute(array(":id" => $id));
     $arreglo = $query->fetchAll(PDO::FETCH_ASSOC);
     $result = EntidadReceptora::inicializar($arreglo[0]);
     return $result;
 }
 public function detalle($id)
 {
     Session::tienePermiso('detalle');
     $entidad = EntidadReceptora::getById($id);
     $n = NecesidadEntidad::getById($entidad->getNecesidad_entidad_id());
     $e = EstadoEntidad::getById($entidad->getEstado_entidad_id());
     $s = ServicioPrestado::getById($entidad->getServicio_prestado_id());
     $elementos['necesidad'] = $n->getDescripcion();
     $elementos['estado'] = $e->getDescripcion();
     $elementos['servicio'] = $s->getDescripcion();
     if ($entidad->getId() != null) {
         $this->view->renderizar("detalle", array("entidad" => $entidad, "elementos" => $elementos));
     } else {
         $this->redireccionar('entidad/listado');
     }
 }
 public function alta()
 {
     Session::tienePermiso('alta');
     $this->view->setEncabezado("Nueva entrega directa");
     $this->view->setTitulo("Entrega directa");
     if (isset($_POST['params'])) {
         $this->check_csrf('post');
         $this->actualizar_csrf();
         $datosEntregaDirecta = $_POST["params"];
         $datosEntregaDirecta['fecha'] = date('Y-m-d');
         $entregaDirecta = Entregadirecta::nuevo($datosEntregaDirecta);
         $this->validar($entregaDirecta);
         $datos = $this->organizarDatos($_POST["detalles"], $_POST["params"]);
         $this->validarDatos($datos, $entregaDirecta);
         if (count($entregaDirecta->getErrores()) != 0) {
             //creo las clases necesarias para el primer acceso al formulario
             $detalle = new Detalle();
             $entidad = new EntidadReceptora();
             $config = new Configuracion();
             //obtengo todas las entidades, el limite de vencimiento y los detalles disponibles
             $entidades = $entidad->obtenerTodos();
             $dias = $config->buscarPor("clave", "vencimiento_stock");
             $entrega = $detalle->obtenerPorVencer($dias[0]['valor']);
             // $alimentosListado = Alimento::getStockOfall();
             $this->view->setError("Modifique los campos indicados.");
             $this->view->renderizar("formulario", array("accion" => "alta", "entrega_directa" => $entregaDirecta, "pedidos" => $entrega, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
             exit;
         }
         $entregaDirecta->guardar();
         $paramsAlimentoEntregaDirecta['entrega_directa_id'] = $entregaDirecta->getId();
         $alimento_pedido = array();
         foreach ($datos["pedidos"] as $key => $val) {
             $alimento_pedido['entrega_directa_id'] = $paramsAlimentoEntregaDirecta['entrega_directa_id'];
             $alimento_pedido['detalle_alimento_id'] = $key;
             $alimento_pedido['cantidad'] = $val;
             $alimento_pedido['baja'] = 0;
             $alimentoPedido = Alimentoentregadirecta::inicializar($alimento_pedido);
             $alimentoPedido->guardar();
             $detalleAlimento = new Detalle();
             $detalleAli = $detalleAlimento->obtenerDetalleAlimento($key);
             $detalleAlimento = $detalleAlimento->inicializar($detalleAli[0]);
             $stockActual = $detalleAlimento->getStock();
             $auxiliar = $stockActual - $val;
             $detalleAlimento->setStock($auxiliar);
             $detalleAlimento->actualizar();
         }
         $detalle = new Detalle();
         $entidad = new EntidadReceptora();
         $config = new Configuracion();
         //obtengo todas las entidades, el limite de vencimiento y los detalles disponibles
         $entidades = $entidad->obtenerTodos();
         $dias = $config->buscarPor("clave", "vencimiento_stock");
         $entrega = $detalle->obtenerPorVencer($dias[0]['valor']);
         // $alimentosListado = Alimento::getStockOfall();
         $this->view->renderizar("formulario", array("accion" => "alta", "pedidos" => $entrega, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
     } else {
         //creo las clases necesarias para el primer acceso al formulario
         $detalle = new Detalle();
         $entidad = new EntidadReceptora();
         $config = new Configuracion();
         //obtengo todas las entidades, el limite de vencimiento y los detalles disponibles
         $entidades = $entidad->obtenerTodos();
         $dias = $config->buscarPor("clave", "vencimiento_stock");
         $entrega = $detalle->obtenerPorVencer($dias[0]['valor']);
         // $alimentosListado = Alimento::getStockOfall();
         $this->view->renderizar("formulario", array("accion" => "alta", "pedidos" => $entrega, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
     }
 }
 public function alta()
 {
     Session::tienePermiso('alta');
     $this->view->setEncabezado("Nuevo pedido");
     $this->view->setTitulo("Pedido");
     if (isset($_POST['params'])) {
         $this->check_csrf('post');
         $this->actualizar_csrf();
         $datos = $this->organizarDatos($_POST["detalles"], $_POST["params"]);
         $errores = $this->validar($datos);
         if (count($errores) != 0) {
             $detalle = new Detalle();
             $entidad = new EntidadReceptora();
             $entidades = $entidad->obtenerTodos();
             $config = new Configuracion();
             $dias = $config->buscarPor("clave", "vencimiento_stock");
             $pedidos = $detalle->obtenerDisponibles($dias[0]['valor']);
             $this->view->setError("Modifique los campos indicados.");
             $this->view->renderizar("formulario", array("accion" => "alta", "errores" => $errores, "pedidos" => $pedidos, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
             exit;
         }
         $turnoEntrega = Turnoentrega::nuevo($datos);
         $turnoEntrega->guardar();
         $paramsPedidoModelo['turno_entrega_id'] = $turnoEntrega->getId();
         $estadoPedido = Estadopedido::nuevo($datos);
         $estadoPedido->guardar();
         $paramsPedidoModelo['estado_pedido_id'] = $estadoPedido->getId();
         $paramsPedidoModelo['entidad_receptora_id'] = $datos['entidad'];
         if (isset($datos['con_envio'])) {
             $paramsPedidoModelo['con_envio'] = 1;
         } else {
             $paramsPedidoModelo['con_envio'] = 0;
         }
         $paramsPedidoModelo['fecha_ingreso'] = date("Y-m-d");
         $pedidoModelo = Pedidomodelo::nuevo($paramsPedidoModelo);
         $pedidoModelo->guardar();
         $paramsAlimentoPedido['pedido_numero'] = $pedidoModelo->getNumero();
         $alimento_pedido = array();
         foreach ($datos["pedidos"] as $key => $val) {
             $alimento_pedido["pedido_numero"] = $paramsAlimentoPedido['pedido_numero'];
             $alimento_pedido["detalle_alimento_id"] = $key;
             $alimento_pedido["cantidad"] = $val;
             $alimentoPedido = Alimentopedido::inicializar($alimento_pedido);
             $alimentoPedido->guardar();
             $detalleAlimento = new Detalle();
             $detalleAli = $detalleAlimento->obtenerDetalleAlimento($key);
             $detalleAlimento = $detalleAlimento->inicializar($detalleAli[0]);
             $stockActual = $detalleAlimento->getStock();
             $auxiliar = $stockActual - $val;
             $detalleAlimento->setStock($auxiliar);
             $aux = $detalleAlimento->GetReservado();
             $detalleAlimento->setReservado($val + $aux);
             $detalleAlimento->actualizar();
         }
         $detalle = new Detalle();
         $entidad = new EntidadReceptora();
         $entidades = $entidad->obtenerTodos();
         $config = new Configuracion();
         $dias = $config->buscarPor("clave", "vencimiento_stock");
         $pedidos = $detalle->obtenerDisponibles($dias[0]['valor']);
         $this->view->renderizar("formulario", array("accion" => "alta", "pedidos" => $pedidos, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
     } else {
         $detalle = new Detalle();
         $entidad = new EntidadReceptora();
         $entidades = $entidad->obtenerTodos();
         $config = new Configuracion();
         $dias = $config->buscarPor("clave", "vencimiento_stock");
         $pedidos = $detalle->obtenerDisponibles($dias[0]['valor']);
         $this->view->renderizar("formulario", array("accion" => "alta", "pedidos" => $pedidos, "entidades" => $entidades, "token" => $this->token, "token_id" => $this->token_id));
     }
 }