Jump to content

Recommended Posts

Buenas Tardes,

 

Ante todo agradecer a la persona que lea esta duda por su tiempo, intentare ser breve tengo un problema al intentar modificar la estructura y datos del PDF que genera para factura, en especifico quiero quitar los datos de:

 

Entrega:

 

xxxx Nombre

xxx Empresa

xx etc

xx etc

 

Cambiar esos datos por los de mi empresa, nombre de mi empresa, CIF, etc.. Gracias por su tiempo.

  • Like 1
Link to comment
Share on other sites

4webs ante todo gracias por su respuesta, pero es que necesito "quitar" los datos que dicen entrega ya que eso ira en un albarán aparte, necesito modificar el PDF.php pero no encuentro la parte donde carga esas variables, si alguien me puede decir en que linea es creo que con eso ya me arreglaría. Saludos

 

4webs: MUY buena página tienes ademas que no se como haces para tener tanto ranking, un saludo y que sigas con mucha suerte!

Link to comment
Share on other sites

Nadie conoce que lineas deben ser cambiadas ? he probado comentando lineas de funciones que puedo ver parecidas, busque por la red en varios idiomas y nada no encuentro nada. Si alguien tiene idea se lo agradecería.

Link to comment
Share on other sites

  • 3 months later...

Me he encontrado con esta misma situacion, y afortunadamente no es tan costosa ni tan compleja la solucion, almenos con la 'chapuza' que he hecho, salen los datos como queremos, que es lo importante (Tipo de factura estandar en españa con los datos de facturacion del emisor y el receptor en la cabezera).

 

Al lio, hay que modificar el archivo classes/PDF.php

 

En la funcion generateHeaderAddresses() se definen unas variables, nosotros declaramos 2 mas. Una con un contador y la otra con los datos legales de nuestra tienda.

 

$maxY = 0;
$pdf->setY($pdf->GetY() + 5);

Sustituimos por:

$i = 0;
$miempresa = "\nNombre Sociedad S.L\nDireccion Empresa\nCodigo Postal y Localidad\nTelefono Fax y Lo Que Queramos";
$maxY = 0;
$pdf->setY($pdf->GetY() + 5);

 

Fijaros en los retorno de carro, ya que la cadena se escribe toda junta en la variable, y al generar el pdf se transforman los "\n" en retorno de carro (otra linea).

 

Una vez declarado esto, venimos unas 38 lineas mas abajo y nos encontramos con:

 

$pdf->MultiCell($width, 6.0, $addressType[$type]['displayed'], 0, 'L', 0);

 

Y lo sustituimos por:

if ($i == 0)
$pdf->MultiCell($width, 6.0, $miempresa, 0, 'L', 0);
else
$pdf->MultiCell($width, 6.0, $addressType[$type]['displayed'], 0, 'L', 0);

$i++;

 

Con lo que estamos definiendo que la primera direccion que encuentra al pasar por el array de direcciones (la de entrega) la sustituya por la direccion de nuestra tienda, y la siguiente (la de facturacion) la deje tal cual estaba.

 

Y ya esta !!!

 

Eso si, id al apartado traducciones de PDF, y cambiar la traduccion a "Entrega" por "NombreDeLaTienda.Com", para que no aparezca esa palabra que no tiene nada que ver ya con la direccion que hemos puesto de nuestra tienda, y de paso aparece nuestro nombre ai bien en grande debajo del logo :D

 

Espero que os sirva tanto como a mi :)

  • Like 2
Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

He probado el método que indicas pero haciendo override en lugar de modificar directamente el archivo original. Así cuando actualice no tendré que preocuparme de mantener esos cambios.

 

El archivo que he creado es: override/classes/PDF.php

 

Pero algo falla porque no hace nada :(

 

El código que he hecho es este:

class PDF extends PDFCore {
/*
 * Generate the header addresses for pdf File
 */
public static function generateHeaderAddresses(&$pdf, $order, $addressType, $patternRules, $width)
{
 $override_address = 1;
 $miempresa = "\nnombre SL\nNIF\nDireccion\nCP\nProvincia (Spain)";
 $maxY = 0;
 $pdf->setY($pdf->GetY() + 5);

...

   //$pdf->MultiCell($width, 6.0, $addressType[$type]['displayed'], 0, 'L', 0);
   if ($override_address == 1 && $type == 'invoice') {
 $pdf->MultiCell($width, 6.0, $miempresa, 0, 'L', 0);
 $override_address = 0;
   }
   else
 $pdf->MultiCell($width, 6.0, $addressType[$type]['displayed'], 0, 'L', 0);

   if ($pdf->GetY() > $maxY)
 $maxY = $pdf->GetY();

...

}
}

 

El código compila y no da errores pero las facturas siguen saliendo igual. He desactivado la cache y he forzado recompilar pero nada.

 

 

Alguien sabe porqué con override no me funciona?

 

Hay alguna forma de hacer facturas de prueba para probar estas cosas?

Link to comment
Share on other sites

Me he equivocado en una cosa. Esta linia

if ($override_address == 1 && $type == 'invoice') {

 

es mejor cambiarla por

if ($override_address == 1 && $type == 'delivery') {

 

para que se sobreescriba en el recuadro de "entrega" y no en el de facturación.

 

Modificando el archivo classes/pdf.php funciona bien. Si alguien sabe porque el override no va por favor que lo diga.

 

un saludo

Link to comment
Share on other sites

Hola, Arakiss, el cambio que indicas en el código lo he realizado y cuanto intento abrir cualquier PDF me aparece un error (FPDF error: Some data has already been output, can't send PDF file) uso la ver.1.4.6.2. Gracias por la ayuda.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...