Esta consulta es de hace 9 años. No tome esta información como actualizada. Si tiene problemas con FacturaScripts, consulte la sección ayuda o la sección contacto
emailforos.es_f74d39

Sigo con los problemas que hay entre las actualizaciones...

emailforos.es_f74d39   España   29-09-2015 18:17:55   29-09-2015 22:13:39   213   [NeoRazorX]
Sigo con los problemas que hay entre las actualizaciones de los plugins generales y mis plugins.

Me explico. Incluyo en mi plugin impresión del pedido de compra, la dirección fiscal del proveedor (va bien por si hay cambios no comunicados). Para obtenerla, usaba la función get() de direccion_proveedor.php Y todo iba muy bien. Ahora me doy cuenta, que no funciona.

Veo que en imprimir_presu_pedido() uso el get($this->pedido->codproveedor) pero claro, ahora el get() ahora busca todos los campos de la tabla dirproveedores donde el campo id es = a un valor. La cuestión es que ese campo id no se usa en la tabla pedidosprov ni en lineaspedidoprov (al menos en mi base de datos no está), como el codproveedor es diferente de id. Ahora siempre devuelve datos vacíos (no encuentra la dirección del proveedor).

Supongo que el cambio en la forma de buscar en el get() responde a una necesidad en alguna otra parte del programa o a una futura nueva funcionalidad del mismo. Y he aquí viene mi pregunta, ¿cómo puedo obtener la dirección del proveedor desde el pedido de proveedor ya que no veo la manera de vincular el campo id con el campo codproveedor?

De todas maneras, a título personal y desde el desconocimiento, al campo id no le veo utilidad co-existiendo con el campo codproveedor (ambos entiendo únicos y directamente vinculados).

Agradezco vuestros comentarios y ayuda, un cordial saludo.

Javier.
El modelo direccion_proveedor no ha sufrido ningún cambio sustancial en todo el año.
El ID es la clave primaria de esa dirección, un proveedor puede tener varias direcciones. El codproveedor es el del proveedor.

Puedes usar la función all_from_proveedor($codproveedor) para obtener las direcciones del proveedor. También puedes usar la función get_direcciones() del proveedor. Si te ha funcionado la función direccion_proveedor::get() habrá sido por casualidad.

Intenta compartir los cambios que hagas y creas interesantes para más gente. Todo lo que se añada a facturacion_base te ahorras de mantener.
A ver si lo entendí correctamente, porque evidentemente (aunque de chiripa me salía) lo estoy haciendo mal.

Ahora entiendo el porqué del campo id. Corresponde a un numerador de todas las direcciones de proveedores. Es decir tienes 4 proveedores con 2 direcciones cada uno, el valor del id = 8 (siempre y cuando no hayas borrado alguna que entonces tendrás un número mayor. En mi caso son 14 proveedores, 16 direcciones e id indica 17).

Entiendo que la funcionalidad de ese get() en direccion_proveedor.php filtrado por un valor de id tal y como está ahora, por lo que encontré, es sobretodo cuando añades/modificas/borras direcciones. Es decir, con la solución de arriba, arreglo una cosa para cag... en otra.

Creo que me funcionó mientras tuvimos un número de proveedor idéntico al id. En el momento en que hubo un proveedor con dos direcciones se me escacharró el tema.

Trasteando con las direcciones de proveedor veo que puedo definir dos direcciones como dirección principal (direccionppal = 1), ¿es un error?

Respecto a lo de compartir los cambios, no tengo inconveniente incluso de compartir mis plugins (cuanta más gente los vea y los trastee, seguro que vamos añadiendo mejoras o funcionalidades). Sólo me tenéis que indicar cómo debo hacerlo. Mis plugins son muy sencillitos.

Un saludo.

Javier.
Hola.

Antes que nada, mis formatos de impresión se basan en el plugin factura detallada. Por lo que sé, el modo en el que se imprime ahora es diferente, por lo que es probable que el código que ahora comparto no os funcione, pero...

Aquí, como lo he resuelto modificando imprimir_presu_pedi.php dentro de la función generar_pdf_pedido_proveedor($archivo) con las líneas siguientes:

// Coger datos proveedor
foreach($this->proveedor->get_direcciones() as $dir)
{
if($dir->direccionppal)
{
$pdf_doc->fdf_direccion = $dir->direccion;
$pdf_doc->fdf_codpostal = $dir->codpostal;
$pdf_doc->fdf_ciudad = $dir->ciudad;
$pdf_doc->fdf_provincia = $dir->provincia;
break;
}
}
$pais= new pais();
$epais = $pais->get($dir->codpais);
if ($epais) {
$pdf_doc->fdf_pais = $epais->nombre;
}
else
{
$pdf_doc->fdf_pais = '';
}
$prov = new proveedor();
$eprov = $prov->get($this->pedido->codproveedor);
if ($eprov) {
$pdf_doc->fdf_telefono1 = $eprov->telefono1;
$pdf_doc->fdf_telefono2 = $eprov->telefono2;
$pdf_doc->fdf_email = $eprov->email;
$pdf_doc->fdf_web = $eprov->web;
}

Espero que a alguien le sirva.

Un saludo.

Javier.
¿Problemas con FacturaScripts?
Si tiene problemas con FacturaScripts consulte la sección ayuda o la sección contacto



Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2024 FacturaScripts
0.10467s

Soporte