예제 #1
0
 /**
  * PASO 1_
  * Permite guardar una nueva planilla utilizando ajax. [PLANILLA TIPO CLIENTE FECHA]
  * Devuelve un json con los mensajes, y con el id de la planilla creada.
  * Carga el combobox con las cabeceras predefinidas
  */
 public function crearAction()
 {
     $this->view->disable();
     $errors = array();
     // array to hold validation errors
     $data = array();
     // array to pass back data
     if (empty($_POST['fechaActual'])) {
         $errors['fechaActual'] = 'La fecha actual es requerida';
     }
     if (empty($_POST['tipo_planilla'])) {
         $errors['tipo_planilla'] = 'El tipo de planilla es requerido';
     }
     if (empty($_POST['cliente_nombre'])) {
         $errors['cliente_nombre'] = 'El nombre del cliente es requerido';
     }
     if (!empty($errors)) {
         $data['success'] = false;
         $data['mensaje'] = $errors;
     } else {
         $this->db->begin();
         $planilla = new Planilla();
         date_default_timezone_set('America/Argentina/Mendoza');
         $tipo = $this->request->getPost('tipo_planilla')[0];
         $planilla->setPlanillaTipo($tipo);
         if ($tipo == 0) {
             $tipoPlanilla = "REGISTRO";
         } else {
             if ($tipo == 1) {
                 $tipoPlanilla = "1ERA QUINCENA ON CALL";
             } else {
                 $tipoPlanilla = "2DA QUINCENA ON CALL";
             }
         }
         $planilla->setPlanillaNombrecliente("PLANILLA " . $tipoPlanilla . " " . strtoupper($this->request->getPost("cliente_nombre", 'string')) . " " . $this->request->getPost('fechaActual'));
         $planilla->setPlanillaFecha(Date('Y-m-d'));
         //fecha de creacion de la planilla, current time
         $planilla->setPlanillaArmada(0);
         $planilla->setPlanillaHabilitado(1);
         $planilla->setPlanillaFinalizada(0);
         $planilla->setPlanillaClienteId($this->request->getPost('cliente_id', 'int'));
         if (!$planilla->save()) {
             foreach ($planilla->getMessages() as $message) {
                 $errors[] = $message . " <br>";
             }
             $data['success'] = false;
             $data['mensaje'] = $errors;
             $this->db->rollback();
         } else {
             $data['planilla_id'] = $planilla->getPlanillaId();
             $data['success'] = true;
             $this->db->commit();
         }
     }
     // return all our data to an AJAX call
     echo json_encode($data);
 }