Example #1
0
 public function valores()
 {
     $valor0 = new atributo_valor();
     return $valor0->all_from_atributo($this->codatributo);
 }
 private function modificar()
 {
     if (isset($_POST['nombre'])) {
         $this->atributo->nombre = $_POST['nombre'];
         if ($this->atributo->save()) {
             $this->new_message('Datos guardados correctamente.');
         } else {
             $this->new_error_msg('Error al guardar los datos.');
         }
     } else {
         if (isset($_POST['nuevo_valor'])) {
             $valor = new atributo_valor();
             $valor->codatributo = $this->atributo->codatributo;
             $valor->valor = $_POST['nuevo_valor'];
             if ($valor->save()) {
                 $this->new_message('Datos guardados correctamente.');
             } else {
                 $this->new_error_msg('Error al guardar los datos.');
             }
         } else {
             if (isset($_POST['id'])) {
                 $val0 = new atributo_valor();
                 $valor = $val0->get($_POST['id']);
                 if ($valor) {
                     $valor->valor = $_POST['valor'];
                     if ($valor->save()) {
                         $this->new_message('Datos guardados correctamente.');
                     } else {
                         $this->new_error_msg('Error al guardar los datos.');
                     }
                 }
             } else {
                 if (isset($_GET['delete_val'])) {
                     $val0 = new atributo_valor();
                     $valor = $val0->get($_GET['delete_val']);
                     if ($valor) {
                         if ($valor->delete()) {
                             $this->new_message('Valor eliminado correctamente.');
                         } else {
                             $this->new_error_msg('Error al eliminar el valor.');
                         }
                     }
                 }
             }
         }
     }
 }
 private function modificar()
 {
     if (isset($_POST['pvpiva'])) {
         $continuar = TRUE;
         $this->articulo->set_impuesto($_POST['codimpuesto']);
         $this->articulo->set_pvp_iva(floatval($_POST['pvpiva']));
         if (isset($_POST['preciocoste'])) {
             $this->articulo->costemedio = $this->articulo->preciocoste = floatval($_POST['preciocoste']);
         }
         if ($this->articulo->save()) {
             $this->new_message("Precio modificado correctamente.");
         } else {
             $this->new_error_msg("Error al modificar el precio.");
         }
     } else {
         if (isset($_POST['almacen'])) {
             if ($_POST['cantidadini'] == $_POST['cantidad']) {
                 /// sin cambios de stock, pero aún así guardamos la ubicación
                 foreach ($this->articulo->get_stock() as $stock) {
                     if ($stock->codalmacen == $_POST['almacen']) {
                         /// forzamos que se asigne el nombre del almacén
                         $stock->nombre();
                         $stock->ubicacion = $_POST['ubicacion'];
                         if ($stock->save()) {
                             $this->new_message('Cambios guardados correctamente.');
                         }
                     }
                 }
             } else {
                 if ($this->articulo->set_stock($_POST['almacen'], $_POST['cantidad'])) {
                     $this->new_message("Stock guardado correctamente.");
                     /// añadimos la regularización
                     foreach ($this->articulo->get_stock() as $stock) {
                         if ($stock->codalmacen == $_POST['almacen']) {
                             /// forzamos que se asigne el nombre del almacén
                             $stock->nombre();
                             $stock->ubicacion = $_POST['ubicacion'];
                             $stock->save();
                             $regularizacion = new regularizacion_stock();
                             $regularizacion->idstock = $stock->idstock;
                             $regularizacion->cantidadini = floatval($_POST['cantidadini']);
                             $regularizacion->cantidadfin = floatval($_POST['cantidad']);
                             $regularizacion->codalmacendest = $_POST['almacen'];
                             $regularizacion->motivo = $_POST['motivo'];
                             $regularizacion->nick = $this->user->nick;
                             if ($regularizacion->save()) {
                                 $this->new_message('Cambios guardados correctamente.');
                             }
                             break;
                         }
                     }
                 } else {
                     $this->new_error_msg("Error al guardar el stock.");
                 }
             }
         } else {
             if (isset($_GET['deletereg'])) {
                 $reg = new regularizacion_stock();
                 $regularizacion = $reg->get($_GET['deletereg']);
                 if ($regularizacion) {
                     if ($regularizacion->delete()) {
                         $this->new_message('Regularización eliminada correctamente.');
                     } else {
                         $this->new_error_msg('Error al eliminar la regularización.');
                     }
                 } else {
                     $this->new_error_msg('Regularización no encontrada.');
                 }
             } else {
                 if (isset($_POST['imagen'])) {
                     if (is_uploaded_file($_FILES['fimagen']['tmp_name'])) {
                         $png = substr(strtolower($_FILES['fimagen']['name']), -3) == 'png';
                         $this->articulo->set_imagen(file_get_contents($_FILES['fimagen']['tmp_name']), $png);
                         if ($this->articulo->save()) {
                             $this->new_message("Imagen del articulo modificada correctamente");
                         } else {
                             $this->new_error_msg("¡Error al guardar la imagen del articulo!");
                         }
                     }
                 } else {
                     if (isset($_GET['delete_img'])) {
                         $this->articulo->set_imagen(NULL);
                         if ($this->articulo->save()) {
                             $this->new_message("Imagen del articulo eliminada correctamente");
                         } else {
                             $this->new_error_msg("¡Error al eliminar la imagen del articulo!");
                         }
                     } else {
                         if (isset($_POST['referencia'])) {
                             $this->articulo->descripcion = $_POST['descripcion'];
                             $this->articulo->tipo = NULL;
                             if ($_POST['tipo'] != '') {
                                 $this->articulo->tipo = $_POST['tipo'];
                             }
                             $this->articulo->codfamilia = NULL;
                             if ($_POST['codfamilia'] != '') {
                                 $this->articulo->codfamilia = $_POST['codfamilia'];
                             }
                             $this->articulo->codfabricante = NULL;
                             if ($_POST['codfabricante'] != '') {
                                 $this->articulo->codfabricante = $_POST['codfabricante'];
                             }
                             /// ¿Existe ya ese código de barras?
                             if ($_POST['codbarras'] != '') {
                                 $arts = $this->articulo->search_by_codbar($_POST['codbarras']);
                                 if ($arts) {
                                     foreach ($arts as $art2) {
                                         if ($art2->referencia != $this->articulo->referencia) {
                                             $this->new_advice('Ya hay un artículo con este mismo código de barras. ' . 'En concreto, el artículo <a href="' . $art2->url() . '">' . $art2->referencia . '</a>.');
                                             break;
                                         }
                                     }
                                 }
                             }
                             $this->articulo->codbarras = $_POST['codbarras'];
                             $this->articulo->partnumber = $_POST['partnumber'];
                             $this->articulo->equivalencia = $_POST['equivalencia'];
                             $this->articulo->bloqueado = isset($_POST['bloqueado']);
                             $this->articulo->controlstock = isset($_POST['controlstock']);
                             $this->articulo->nostock = isset($_POST['nostock']);
                             $this->articulo->secompra = isset($_POST['secompra']);
                             $this->articulo->sevende = isset($_POST['sevende']);
                             $this->articulo->publico = isset($_POST['publico']);
                             $this->articulo->observaciones = $_POST['observaciones'];
                             $this->articulo->stockmin = floatval($_POST['stockmin']);
                             $this->articulo->stockmax = floatval($_POST['stockmax']);
                             $this->articulo->trazabilidad = isset($_POST['trazabilidad']);
                             if ($this->articulo->save()) {
                                 $this->new_message("Datos del articulo modificados correctamente");
                                 $img = $this->articulo->imagen_url();
                                 $this->articulo->set_referencia($_POST['nreferencia']);
                                 /// ¿Renombramos la imagen?
                                 if ($img) {
                                     @rename($img, $this->articulo->imagen_url());
                                 }
                                 /**
                                  * Renombramos la referencia en el resto de tablas: lineasalbaranes, lineasfacturas...
                                  */
                                 if ($this->db->table_exists('lineasalbaranescli')) {
                                     $this->db->exec("UPDATE lineasalbaranescli SET referencia = " . $this->empresa->var2str($_POST['nreferencia']) . " WHERE referencia = " . $this->empresa->var2str($_POST['referencia']) . ";");
                                 }
                                 if ($this->db->table_exists('lineasalbaranesprov')) {
                                     $this->db->exec("UPDATE lineasalbaranesprov SET referencia = " . $this->empresa->var2str($_POST['nreferencia']) . " WHERE referencia = " . $this->empresa->var2str($_POST['referencia']) . ";");
                                 }
                                 if ($this->db->table_exists('lineasfacturascli')) {
                                     $this->db->exec("UPDATE lineasfacturascli SET referencia = " . $this->empresa->var2str($_POST['nreferencia']) . " WHERE referencia = " . $this->empresa->var2str($_POST['referencia']) . ";");
                                 }
                                 if ($this->db->table_exists('lineasfacturasprov')) {
                                     $this->db->exec("UPDATE lineasfacturasprov SET referencia = " . $this->empresa->var2str($_POST['nreferencia']) . " WHERE referencia = " . $this->empresa->var2str($_POST['referencia']) . ";");
                                 }
                                 /// esto es una personalización del plugin producción, será eliminado este código en futuras versiones.
                                 if ($this->db->table_exists('lineasfabricados')) {
                                     $this->db->exec("UPDATE lineasfabricados SET referencia = " . $this->empresa->var2str($_POST['nreferencia']) . " WHERE referencia = " . $this->empresa->var2str($_POST['referencia']) . ";");
                                 }
                             } else {
                                 $this->new_error_msg("¡Error al guardar el articulo!");
                             }
                         } else {
                             if (isset($_GET['recalcular_stock'])) {
                                 $this->calcular_stock_real();
                             } else {
                                 if (isset($_POST['nueva_combi'])) {
                                     $comb1 = new articulo_combinacion();
                                     $comb1->referencia = $this->articulo->referencia;
                                     $comb1->impactoprecio = floatval($_POST['impactoprecio']);
                                     $error = TRUE;
                                     $valor0 = new atributo_valor();
                                     for ($i = 0; $i < 10; $i++) {
                                         if (isset($_POST['idvalor_' . $i])) {
                                             if ($i == 0) {
                                                 $error = FALSE;
                                             }
                                             $valor = $valor0->get($_POST['idvalor_' . $i]);
                                             if ($valor) {
                                                 $comb1->id = NULL;
                                                 $comb1->idvalor = $valor->id;
                                                 $comb1->nombreatributo = $valor->nombre();
                                                 $comb1->valor = $valor->valor;
                                                 if (!$comb1->save()) {
                                                     $error = TRUE;
                                                 }
                                             }
                                         } else {
                                             break;
                                         }
                                     }
                                     if ($error) {
                                         $this->new_error_msg('Error al guardar la combinación.');
                                     } else {
                                         $this->new_message('Combinación guardada correctamente.');
                                     }
                                 } else {
                                     if (isset($_POST['editar_combi'])) {
                                         $comb1 = new articulo_combinacion();
                                         foreach ($comb1->all_from_codigo($_POST['editar_combi']) as $com) {
                                             $com->impactoprecio = floatval($_POST['impactoprecio']);
                                             $com->save();
                                         }
                                         $this->new_message('Combinación modificada.');
                                     } else {
                                         if (isset($_GET['delete_combi'])) {
                                             $comb1 = new articulo_combinacion();
                                             foreach ($comb1->all_from_codigo($_GET['delete_combi']) as $com) {
                                                 $com->delete();
                                             }
                                             $this->new_message('Combinación eliminada.');
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }