Exemple #1
0
 /**
  * Siempre viene la entidad por parametro.
  * si viene un $options['remito_id'] es un editar y buscamos el contenido en la bd
  * @param null $entity
  * @param array $options
  */
 public function initialize($entity = null, $options = array())
 {
     /*=========================== COLUMNA EXTRA =====================================*/
     if ($entity != null) {
         $columnas = $entity;
         foreach ($columnas as $col) {
             $elemento = new Text($col->getColumnaClave(), array('placeholder' => 'Ingrese ' . $col->getColumnaNombre(), 'class' => 'form-control', 'maxlength' => 60));
             $elemento->setLabel($col->getColumnaNombre());
             //Buscamos el contenido para el edit.
             if (isset($options['remito_id'])) {
                 $remito_id = $options['remito_id'];
                 $contenidoExtra = Contenidoextra::findFirst(array('contenidoExtra_remitoId = :remito_id: AND
                 contenidoExtra_columnaId=:columna_id:', 'bind' => array('remito_id' => $remito_id, 'columna_id' => $col->getColumnaId())));
                 if ($contenidoExtra) {
                     $elemento->setDefault($contenidoExtra->getContenidoExtraDescripcion());
                 }
             }
             $this->add($elemento);
         }
     }
 }
Exemple #2
0
 /**
  * Saves a remito edited
  *
  */
 public function saveAction()
 {
     if (!$this->request->isPost()) {
         return $this->dispatcher->forward(array("controller" => "remito", "action" => "index"));
     }
     $remito_id = $this->request->getPost("remito_id", 'int');
     $remito = Remito::findFirst(array('remito_id=:remito_id:', 'bind' => array('remito_id' => $remito_id)));
     if (!$remito) {
         $this->flash->error("El Remito no existe ");
         return $this->dispatcher->forward(array("controller" => "remito", "action" => "index"));
     }
     $remitoForm = new RemitoEditForm($remito, array('edit' => true, 'required' => ''));
     $this->view->remitoForm = $remitoForm;
     $data = $this->request->getPost();
     if (!$remitoForm->isValid($data, $remito)) {
         foreach ($remitoForm->getMessages() as $message) {
             $this->flash->error($message);
         }
         return $this->forward('remito/edit/' . $remito_id);
     }
     $remito->setRemitoPeriodo(date('m', date(strtotime(date($this->request->getPost("remito_fecha"))))));
     $planilla = Planilla::findFirst(array('planilla_id=:planilla_id:', 'bind' => array('planilla_id' => $remito->getRemitoPlanillaid())));
     $this->view->planilla = $planilla;
     if ($this->request->hasFiles() && $this->request->getUploadedFiles()[0] != NULL) {
         $upload = $this->guardarPDF($this->request->getUploadedFiles(), $remito->getRemitoClienteId(), $planilla->getPlanillaFecha());
         if (!$upload['success']) {
             $this->flash->error($upload['mensaje']);
             $this->db->rollback();
             return $this->dispatcher->forward(array("controller" => "remito", "action" => "edit", "params" => array($remito->getRemitoId())));
         }
         $remito->setRemitoPdf($upload['path']);
     }
     //cliente
     $cliente = Cliente::findFirst(array('cliente_id=:cliente_id:', 'bind' => array('cliente_id' => $remito->getRemitoClienteId())));
     $this->view->clienteForm = new ClienteForm($cliente, array('required' => ''));
     //columnas
     $columnas = Columna::find(array("columna_cabeceraId=:cabecera_id: AND columna_habilitado = 1 AND columna_extra = 1", 'bind' => array('cabecera_id' => $planilla->getPlanillaCabeceraid())));
     if (count($columnas) != 0) {
         $this->view->columnaExtraForm = new ColumnaExtraForm($columnas, array('remito_id' => $remito_id));
         foreach ($columnas as $col) {
             $contenidoExtra = Contenidoextra::findFirst(array('contenidoExtra_remitoId = :remito_id: AND
                 contenidoExtra_columnaId=:columna_id:', 'bind' => array('remito_id' => $remito_id, 'columna_id' => $col->getColumnaId())));
             if ($contenidoExtra) {
                 $contenidoExtra->setContenidoExtraDescripcion($this->request->getPost($col->getColumnaClave()));
                 //FIXME: Controlar que sea el nombre o la clave
                 if (!$contenidoExtra->update()) {
                     foreach ($contenidoExtra->getMessages() as $mensaje) {
                         $this->flash->error($mensaje);
                     }
                 }
             } else {
                 $contenidoExtra = new Contenidoextra();
                 $contenidoExtra->setContenidoExtraDescripcion($this->request->getPost($col->getColumnaClave()));
                 $contenidoExtra->setContenidoExtraHabilitado(1);
                 $contenidoExtra->setContenidoExtraRemitoId($remito_id);
                 $contenidoExtra->setContenidoExtraColumnaId($col->getColumnaId());
                 if (!$contenidoExtra->save()) {
                     foreach ($contenidoExtra->getMessages() as $mensaje) {
                         $this->flash->error($mensaje);
                     }
                 }
             }
         }
     }
     if (!$remito->update()) {
         foreach ($remito->getMessages() as $message) {
             $this->flash->error($message);
         }
         return $this->dispatcher->forward(array("controller" => "remito", "action" => "edit", "params" => array($remito->getRemitoId())));
     }
     $this->flash->success("EL REMITO HA SIDO ACTUALIZADO CORRECTAMENTE");
     return $this->dispatcher->forward(array("controller" => "remito", "action" => "edit", "params" => array($remito->getRemitoId())));
 }