Avisos
Vaciar todo

Presentación de las facturas en PDF.  

Página 1 / 2
 
Javier
 Javier
Estimable Member

Cuando VM (2.0.14) genera una factura en pdf introduce un espacio muy extraño después de los datos del comercio (Cap. 86). Esto hace que el aspecto final de la factura sea muy poco profesional.

¿Hay alguna manera de suprimir ese espacio sin usar extensiones de pago?

Muchas gracias.

PD: En formato de "Imprime vista" se genera correctamente (Cap. 87)

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 07/12/2012 10:23 am
David Noguera
 David Noguera
Miembro Moderator

Hola Javier, el PDF se genera en el fichero:

/components/com_virtuemart/views/invoice/tmpl/invoice.php

Tendrás que hacer pruebas en ese fichero para ver como solucionar lo del espacio que deja..

Saludos!

ResponderCitar
Respondido : 07/12/2012 10:59 am

Cursos Gratuitos WordPress

Javier
 Javier
Estimable Member

Hola David.

Lo siento pero mis conocimientos al respecto son muy limitados.
Llevo más de una hora haciendo modificaciones y no consigo lo que me propongo.

¿Podrías ser un poco más concreto con qué línea he de cambiar para elimiar los espacios indeseados?

Muchas gracias.

=====================================================

defined('_JEXEC') or die('Restricted access');
JHTML::stylesheet('vmpanels.css', JURI::root() . 'components/com_virtuemart/assets/css/');
if ($this->_layout == "invoice") {
    $document = JFactory::getDocument();
    $document->setTitle(JText::_('COM_VIRTUEMART_ORDER_PRINT_PO_NUMBER') . ' ' . $this->orderDetails['details']['BT']->order_number . ' ' . $this->vendor->vendor_store_name);
//$document->setName( JText::_('COM_VIRTUEMART_ACC_ORDER_INFO').' '.$this->orderDetails['details']['BT']->order_number);
//$document->setDescription( JText::_('COM_VIRTUEMART_ORDER_PRINT_PO_NUMBER').' '.$this->orderDetails['details']['BT']->order_number);
}

if ($this->headFooter) {
    ?>

vendor->vendor_store_name; if (!empty($this->vendor->images[0])) { ?>
vendor->images[0]->displayMediaThumb('', false); ?>

vendorAddress; echo shopFunctions::renderVendorAddress($this->vendor->virtuemart_vendor_id, '
'); ?>
vendor->vendor_store_desc.'
'; /* foreach($this->vendorAddress as $userfields){ foreach($userfields['fields'] as $item){ if(!empty($item['value'])){ if($item['name']==='agreed'){ $item['value'] = ($item['value']===0) ? JText::_('COM_VIRTUEMART_USER_FORM_BILLTO_TOS_NO'):JText::_('COM_VIRTUEMART_USER_FORM_BILLTO_TOS_YES'); } ?> <span class="values vm2" >escape($item['value']) ?>
print) { ?>
loadTemplate('order'); ?>
loadTemplate('items'); ?>
vendor->vendor_legal_info; ?> loadTemplate('order'); ?>
<?php $tabarray = array(); $tabarray['items'] = 'COM_VIRTUEMART_ORDER_ITEM'; $tabarray['history'] = 'COM_VIRTUEMART_ORDER_HISTORY'; shopFunctionsF::buildTabs( $this, $tabarray); echo '


'; } if ($this->headFooter) { echo $this->vendor->vendor_legal_info; } ?>
ResponderCitar
Respondido : 07/12/2012 12:29 pm
David Noguera
 David Noguera
Miembro Moderator

Te recomiendo que revises algunos posts del foro de VirtueMart:

http://forum.virtuemart.net/index.php?topic=101821.0

Sin embargo, este es un tema de programación, es una modificación del código de VirtueMart.

No atendemos consultas de CSS ni Programación en el foro, después de nuestra experiencia de varios años atendiendo consultas sobre Joomla nos encontramos que la mayoría de usuarios que quieren modificar CSS acaban "estropeando" sus webs o bien por hacer modificaciones que luego no funcionan en los diferentes navegadores o bien por hacer modificaciones que acaban empeorando el diseño original de la plantilla.

Creemos que los clientes que no tienen conocimientos de CSS es mejor que usen joomla, para sacarle más partido a los contenidos y funcionalidades que permite joomla o sus extensiones y no creemos que sea recomendable realizar cambios CSS, para ello recomendamos usar plantillas profesionales de los diferentes clubes que desarrollan plantillas para joomla y partiendo de una buena plantilla rara vez es necesario tener que cambiar CSS.

Los clubes que actualmente más recomendamos para plantillas profesionales Joomla son http://www.gavick.com y http://www.joomlart.com

En todo caso, si prefieres cambiar CSS te recomendamos que aprendas a usar Firebug con el que podrás aprender a modificar CSS, aquí tienes un vídeo de ejemplo que le ayudará a utilizarlo:

También te recomendamos estos libros gratuitos sobre CSS que te permitirán iniciarte en CSS, tienes el libro de introducción y el avanzado:
http://www.librosweb.es/

Podemos recomendarle que consulte disponibilidad, condiciones y coste con nuestras empresas colaboradoras, especializadas en personalizaciones para Joomla.
Envíe un mensaje a comercial@webempresa.com y le enviaremos los contactos de dichas empresas colaboradoras.

ResponderCitar
Respondido : 07/12/2012 1:32 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Javier
 Javier
Estimable Member

Muchas gracias David.

La página con los manuales online que me has mandado es muy interesante, llevaba tiempo buscando algo como eso 🙂

Me estoy leyendo el de css pero no parece que vaya a solucionar mi problema, pero sí que me está enseñando mucho. 😉

Después de mirar largo y tendido en virtuemart.net y siempre dentro de mi ignorancia, creo que el problema no es de los espacios (cap. 86). Creo que es un problema de integración más profundo que no me atrevo a tocar.

Al parecer la factura tendría que tener un aspecto como este montaje que he realizado con Photoshop (cap. 88) y no como este (cap. 89) que es el que me genera por defecto.

En otras palabras, que todo lo que está por encima de la palabra "Factura" ha de estar incluido en la cabecera, lo cual sería fantástico. Pero por algún motivo no se genera así.

Todo esto me hace pensar en que es un fallo de integración de VM y mi tienda, no sé si Joomla! 2.5.8 o mi plantilla "gk_yourshop" o lo que sea.

No quisiera comprar una extensión (www.artio.net/virtuemart-tools/vm-invoice-generator) si ya VM me lo hiciera bien.

PD: No sé si a los demás clientes de webempresa les genera las facturas como a mí, con el formato raro, o solo es algo que me pasa a mí.

ResponderCitar
Respondido : 09/12/2012 9:36 am
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola Javier

Los CSS sirven para dar formato a todos las páginas de tu sitio web.

El archivo de php de factura, el cual se utiliza para generar el pdf, tiene unas clases CSS las cuales debes usar, por ejemplo : class="vendedor-details-view" , luego puedes darle el formato que deseas.

Puedes probar como va quedando visualizando en formato html o PHP desde el backend de virtuemart la opción de pedidos. Para lograr el aspecto que quieres tienes que tener conocimiento de CSS.

Una alternativa más práctica es usar una extensión para facturas , aqui tienes un listado con extensiones con esta funcionalidad :
http://extensions.joomla.org/extensions/extension-specific/virtuemart-extensions/virtuemart-orders/

Saludos.

ResponderCitar
Respondido : 09/12/2012 4:17 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Javier Gómez
 Javier Gómez
Estimable Member

Hola Javier,

Fijándome en las dos vistas, veo que en la vista previa no te sale el número de factura ni fecha de factura, que en la factura PDF sí sale.

Parece que donde se meten los espacios y esta el fallo es en las lineas donde se pone el número de factura, no en los datos de dirección...

A mi me ocurrió que por acentos y etiquetas html no me formateaba bien las facturas.

Mira de quitar cualquier formato en las descripciones de formas de pago y envió si tienes alguna, no digo que sea la solución, pero si a unos les pasa y a otros no, con la mismas versiones y plantillas, la experiencia me dice que es algo ajeno a programación de estas en principio, algo que los usuarios ponen añadido es lo que crea el problema y puede ser la pista para encontrar la solución.

¿has modificado algo en el archivo default_order.php?, es donde está ese código.

Saludos

ResponderCitar
Respondido : 10/12/2012 8:17 pm
Javier
 Javier
Estimable Member

Hola Javier,

He intentado lo de los caracteres extraños. He creado un método de envío sin tildes, he renombrado la tienda sin eñe quitando las tildes de sus datos y he elegido un método de pago sin ese tipo de caracteres. Y nada (Cap. 90).

En cuanto a los que les funcionaba, me refería a personas del foro de VM (Cap. 91 y 92) que como ves les coloca el logo y al lado los detalles del vendedor.

Lo del "default_order.php" supongo que es el que marco en la captura 93. Esta tarde le dedicaré un ratito. (Att. 1: invoice_order.php )

invoiceNumber) { ?>

invoiceNumber; ?>

invoiceNumber) { ?> orderDetails['details']['BT']->customer_note) { ?>
invoiceDate, 'LC4', true); ?>
orderDetails['details']['BT']->order_number; ?>
orderDetails['details']['BT']->created_on, 'LC4', true); ?>
orderstatuses[$this->orderDetails['details']['BT']->order_status]; ?>
orderDetails['shipmentName']; ?>
orderDetails['paymentName']; ?>
orderDetails['details']['BT']->customer_note; ?>
currency->priceDisplay($this->orderDetails['details']['BT']->order_total); ?>

userfields['fields'] as $field) { if (!empty($field['value'])) { echo '' . ''; } } ?>
' . $field['title'] . '' . $field['value'] . '

shipmentfields['fields'] as $field) { if (!empty($field['value'])) { echo '' . ''; } } ?>
' . $field['title'] . '' . $field['value'] . '

De todas formas, repito: Ya he tirado la toalla. Puedo permitirme perder tres días y un fín de semana por esto, pero no todo un mes.

Gracias de nuevo.

ResponderCitar
Respondido : 11/12/2012 8:03 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

Puedes reducir un poco el espacio que se muestra en las facturas editando el archivo components/com_virtuemart/views/invoice/tmpl/invoice.php y eliminando el siguiente código:

También puedes borrar el código

y el

que se muestra unas líneas más abajo (línea 71).

De hecho, lo mejor sería que te descargaras este archivo, lo modificaras, y lo subieras en la ruta templates/NOMBRE_PLANTILLA/html/com_virtuemart/invoice en donde NOMBRE_PLANTILLA es el nombre de la plantilla que estás usando. De esta forma, no se perderán los cambios tras actualizar Virtuemart a una nueva versión.

ResponderCitar
Respondido : 11/12/2012 3:59 pm
Javier Gómez
 Javier Gómez
Estimable Member

Hola Javier,

Si lo que necesitas es algo como la factura adjunta puedes contactar conmigo en soft.sugo.es y miramos la manera de solucionarlo.

Saludos.

ResponderCitar
Respondido : 11/12/2012 4:23 pm

Javier
 Javier
Estimable Member

Hola Pablo, hola Javier.

😆 😆 😆 Puff, puff, puff!
No veáis el peso que me habéis quitado de encima.

Javier, muchas gracias por la oferta, la verdad es que es muy mona, mejor que las mías, pero ya le he dado muchas vueltas y con esta última mejora me conformo. :laugh:

Pablo...
¡Qué fácil me ha parecido todo! :whistle: y encima según me dices con haber hecho los cambios en esa carpeta, ahora no desaparecerán cuando actualice VM. Si es que no hay nada como saber dónde tocar 😉

Voy a explicarlo todo por si a alguien (Lola) le interesa.

Eliminando el contenedor que me dijiste gané dos renglones, quitando el

y el

gané tres renglones más. Cambiando

vendor->vendor_store_name; if (!empty($this->vendor->images[0])) { ?>
vendor->images[0]->displayMediaThumb('', false); ?>

vendorAddress; echo shopFunctions::renderVendorAddress($this->vendor->virtuemart_vendor_id, '
'); ?>

por:

vendor->vendor_store_; if (!empty($this->vendor->images[0])) { ?>
vendor->images[0]->displayMediaThumb('', false); ?>

Me quité unas diez líneas más.

Luego solo tuve que hacer un poco de trampa para que el logo resized de la tienda tuviera el ancho de la página (20 cm) y le incluí los datos de la tienda quedándome la cosa como podéis ver en la captura 94. No es perfecta, pero ya es presentable 😀

No sabéis lo agradecido que estoy, mil gracias. Ahora me parece que mi página es mucho mejor 🙂

Ajunto el invoice.php resultado del proceso.

ResponderCitar
Respondido : 11/12/2012 8:30 pm
lola
 lola
Reputable Member

Hola Javier,

Veo que lo has conseguido. Enhorabuena.

He intentando hacer lo mismo que tú, pero no me sale. Copio exactamente el código por si me puedes echar una mano:

_layout == "invoice") {
$document = JFactory::getDocument();
$document->setTitle(JText::_('COM_VIRTUEMART_ORDER_PRINT_PO_NUMBER') . ' ' . $this->orderDetails['details']['BT']->order_number . ' ' . $this->vendor->vendor_store_name);
//$document->setName( JText::_('COM_VIRTUEMART_ACC_ORDER_INFO').' '.$this->orderDetails['details']['BT']->order_number);
//$document->setDescription( JText::_('COM_VIRTUEMART_ORDER_PRINT_PO_NUMBER').' '.$this->orderDetails['details']['BT']->order_number);
}

if ($this->headFooter) {
?>

vendor->vendor_store_;
if (!empty($this->vendor->images[0])) {
?>

vendor->images[0]->displayMediaThumb('', false); ?>

vendor->vendor_store_desc.'
';

/* foreach($this->vendorAddress as $userfields){

foreach($userfields['fields'] as $item){
if(!empty($item['value'])){
if($item['name']==='agreed'){
$item['value'] = ($item['value']===0) ? JText::_('COM_VIRTUEMART_USER_FORM_BILLTO_TOS_NO'):JText::_('COM_VIRTUEMART_USER_FORM_BILLTO_TOS_YES');
}
?>
<span class="values vm2" >escape($item['value']) ?>

print) {
?>

loadTemplate('order');
?>
loadTemplate('items');
?>

vendor->vendor_legal_info; ?>

loadTemplate('order');

?>

<?php

$tabarray = array();

$tabarray['items'] = 'COM_VIRTUEMART_ORDER_ITEM';
$tabarray['history'] = 'COM_VIRTUEMART_ORDER_HISTORY';

shopFunctionsF::buildTabs( $this, $tabarray);
echo '

';
}

if ($this->headFooter) {
echo $this->vendor->vendor_legal_info;
}

?>

El archivo lo he colocado en la ruta: templates/gk_boutique/html/com_virtuemart/invoice (he tenido que crear el directorio invoice ya que no no tenía creado).

Adjunto la factura como me sale ahora, en la que no aprecio que se hayan eliminado las líneas en blanco.

Por otra parte, he creado un logo con 20cm de ancho y 2,5cm de alto, para incluir los datos exactamente como tú, pero me lo muestra en pequeño en la factura.

Te agradecería que me echases una mano ya que este tema me tiene loca.

Un saludo.

ResponderCitar
Respondido : 13/12/2012 5:23 pm

Cursos Gratuitos WordPress

Javier
 Javier
Estimable Member

Hola Lola,

¡Ánimo que casi lo tienes!

Solo olvidaste hacer lo que pongo en el primer renglón de mi explicación.
1) Falta hacer lo que me propuso Pablo:
Quitar:

Con esto se ganan dos renglones debajo del logo.

2) Quitando el "

" y el "

" que veo está 25 líneas más abajo se ganan otros tres renglones debajo del logo.

Con estas dos cositas se obtiene lo que yo he logrado.

Por último la trampa que comento es tan fácil como ir a VM=>Tienda=>Tienda=>Vendedor->Subir Archivo
y con la opción "remplazar imagen miniatura" seleccionada pulsar "Examinar..." y subir la imagen de 20x2,5 cm.
Adjunto captura para facilitar. (Cap. 95)

He adjuntado el archivo modificado en mi mensaje anterior.

Espero que con esto se solucione, en parte, el problema.

Saludos,
Javier.

ResponderCitar
Respondido : 14/12/2012 11:53 am
lola
 lola
Reputable Member

Javier,

No entiendo que es lo que me está fallando. Estoy realmente deseseperada. ¿Me podrías adjuntar exactamente todo el código que tienes en el archivo invoice.php?. Intento realizar los cambios que me indicas y no lo logro.

En relación al truco del logo, a pesar de que subo de nuevo el logo en la carpeta resized con un tamaño de 20cm x 2,5cm, a la hora de consultar la factura me sigue apareciendo en un tamaño muy pequeño. Sigo sin saber qué pasa.

Gracias de antemano

ResponderCitar
Respondido : 14/12/2012 11:32 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Javier
 Javier
Estimable Member

Buenos días Lola.
El código entero está en la carpeta invoice.zip que tienes en mi post #86648 de este tema. En el que explico la solución justo tres pos por encima del último tuyo:

https://www.webempresa.com/foro/30-VirtueMart-20/85924-Presentaci%C3%B3n-de-las-facturas-en-PDF.html#86648

En cuanto a lo del logo. Prueba a cambiarle el nombre al archivo que subes con la opción "remplazar imagen miniatura" para que no se llame igual que el que ya estas usando y por supuesto dale a aplicar (arriba a la derecha) y espera a que se suba la imagen, que al ser grande tarda unos segundos.

Buena suerte.

ResponderCitar
Respondido : 15/12/2012 8:43 am
Página 1 / 2