示例#1
0
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->share_extensions();
     $familia = new familia();
     $this->tarifa = new tarifa();
     $this->tarifa_s = FALSE;
     if (isset($_GET['importar'])) {
         $this->importar_tarifas();
     } else {
         if (isset($_POST['codtarifa'])) {
             if ($_POST['codtarifa'] == '') {
                 /// Nueva tarifa de familia
                 $tar0 = new tarifa();
                 $tar0->codtarifa = $tar0->get_new_codigo();
             } else {
                 $tar0 = $this->tarifa->get($_POST['codtarifa']);
                 if (!$tar0) {
                     $tar0 = new tarifa();
                     $tar0->codtarifa = $_POST['codtarifa'];
                 }
             }
             if (isset($_POST['madre'])) {
                 $tar0->madre = $_POST['madre'];
                 $tar0->codfamilia = $_POST['codfamilia'];
                 $tar0->nombre = 'Familia ?';
                 $fam = $familia->get($_POST['codfamilia']);
                 if ($fam) {
                     $tar0->nombre = $fam->descripcion;
                 }
             } else {
                 if (isset($_POST['nombre'])) {
                     $tar0->nombre = $_POST['nombre'];
                 }
             }
             $tar0->margen = $_POST['aplicar_a'] == 'coste';
             $tar0->set_x(floatval($_POST['dtopor']));
             $tar0->set_y(floatval($_POST['inclineal']));
             $tar0->mincoste = isset($_POST['mincoste']);
             $tar0->maxpvp = isset($_POST['maxpvp']);
             if ($tar0->save()) {
                 $this->new_message("Tarifa guardada correctamente.");
             } else {
                 $this->new_error_msg("¡Imposible guardar la tarifa!");
             }
         } else {
             if (isset($_GET['delete_tarifa'])) {
                 $tar0 = $this->tarifa->get($_GET['delete_tarifa']);
                 if ($tar0) {
                     if ($tar0->delete()) {
                         $this->new_message("Tarifa borrada correctamente.");
                     } else {
                         $this->new_error_msg("¡Imposible borrar la tarifa!");
                     }
                 } else {
                     $this->new_error_msg("¡La tarifa no existe!");
                 }
             }
         }
     }
     if (isset($_REQUEST['cod'])) {
         $this->tarifa_s = $this->tarifa->get($_REQUEST['cod']);
     }
     if ($this->tarifa_s) {
         $this->template = 'ventas_tarifa';
         $this->tarifas_familias = $this->tarifa->all_from_tarifa($this->tarifa_s->codtarifa);
         $this->familias_no = array();
         foreach ($familia->all() as $fam) {
             $encontrada = FALSE;
             foreach ($this->tarifas_familias as $tar) {
                 if ($tar->codfamilia == $fam->codfamilia) {
                     $encontrada = TRUE;
                     break;
                 }
             }
             if (!$encontrada) {
                 $this->familias_no[] = $fam;
             }
         }
     }
 }