private function actualizar_precio_proveedor($codproveedor, $linea) { if (!is_null($linea->referencia)) { $artp = $this->articulo_prov->get_by($linea->referencia, $codproveedor); if (!$artp) { $artp = new articulo_proveedor(); $artp->codproveedor = $codproveedor; $artp->referencia = $linea->referencia; $artp->refproveedor = $linea->referencia; $artp->codimpuesto = $linea->codimpuesto; $artp->descripcion = $linea->descripcion; } $artp->precio = $linea->pvpunitario; $artp->dto = $linea->dtopor; $artp->save(); } }
protected function private_core() { $this->share_extensions(); $this->documento = FALSE; $this->lineas = array(); $this->tipodoc = 'Documento'; if (isset($_REQUEST['doc']) and isset($_REQUEST['id'])) { if ($_REQUEST['doc'] == 'pedido') { $pedido0 = new pedido_proveedor(); $this->documento = $pedido0->get($_REQUEST['id']); $this->tipodoc = FS_PEDIDO; } else { $albaran0 = new albaran_proveedor(); $this->documento = $albaran0->get($_REQUEST['id']); $this->tipodoc = FS_ALBARAN; } if ($this->documento) { $this->lineas = $this->documento->get_lineas(); $art0 = new articulo(); $ap0 = new articulo_proveedor(); $cambios = 0; foreach ($this->lineas as $i => $value) { $this->lineas[$i]->refproveedor = $value->referencia; $this->lineas[$i]->codbarras = ''; $this->lineas[$i]->precio_compra = 0; $this->lineas[$i]->dto_compra = 0; $this->lineas[$i]->precio_venta = 0; $ap = $ap0->get_by($value->referencia, $this->documento->codproveedor); if ($ap) { $this->lineas[$i]->refproveedor = $ap->refproveedor; $this->lineas[$i]->precio_compra = $ap->precio; $this->lineas[$i]->dto_compra = $ap->dto; } $articulo = $art0->get($value->referencia); if ($articulo) { $this->lineas[$i]->codbarras = $articulo->codbarras; $this->lineas[$i]->precio_venta = $articulo->pvp; } /// ¿Tenemos los datos del form? if (isset($_POST['update_' . $value->idlinea])) { /** * Volvemos a buscar el artículos del proveedor, pero esta vez * buscamos también con la referencia del proveedor. */ $ap = $ap0->get_by($value->referencia, $this->documento->codproveedor, $_POST['refproveedor_' . $value->idlinea]); if (!$ap) { $ap = new articulo_proveedor(); $ap->codproveedor = $this->documento->codproveedor; } $ap->referencia = $value->referencia; $ap->refproveedor = $_POST['refproveedor_' . $value->idlinea]; $this->lineas[$i]->refproveedor = $ap->refproveedor; $ap->precio = floatval($_POST['coste_' . $value->idlinea]); $ap->dto = floatval($_POST['dto_' . $value->idlinea]); $ap->save(); if ($articulo) { if (isset($_POST['descripciones'])) { $articulo->descripcion = $_POST['descripcion_' . $value->idlinea]; } if (isset($_POST['codbarras'])) { $articulo->codbarras = $_POST['codbarras_' . $value->idlinea]; $this->lineas[$i]->codbarras = $articulo->codbarras; } if (isset($_POST['pvps'])) { $articulo->set_pvp(floatval($_POST['pvp_' . $value->idlinea])); } /// ¿usamos la referencia de proveedor como equivalencia? if ($_POST['refproveedor_' . $value->idlinea] != '' and $_POST['refproveedor_' . $value->idlinea] != $articulo->referencia) { if (is_null($articulo->equivalencia)) { $articulo->equivalencia = $_POST['refproveedor_' . $value->idlinea]; } } $articulo->save(); } $cambios++; } } if ($cambios > 0) { $this->new_message($cambios . ' cambios realizados.'); } } else { $this->new_error_msg('Documento no encontrado.'); } } else { $this->new_error_msg('Faltan datos.'); } }