Jump to content

Nombre grupo cliente en factura


rjtrabajo

Recommended Posts

Buenas,

 

Tengo un tienda con bastantes grupos (tarifas)...Alguien sabría como poner el nombre del grupo al que pertenece el cliente (grupo por defecto) en la factura? He probado un monton de cosas pero ninguna me lo muestra.

 

adjunto la imagen donde se podria poner.

 

Muchas gracias

Tengo prestashop 1.6.0.14

post-828858-0-04089600-1436954654_thumb.jpg

Link to comment
Share on other sites

Hola

 

Gracias por la contestacion, podrias decirme exactamente que debo poner y donde si no te es molestia. 

es esto? {Group::getCurrent()->name[$cookie->id_lang]}

 

y en invoice-b2b.tpl no debo poner nada?

 

Gracias

Roberto

Link to comment
Share on other sites

Ese codigo que indicas te sirve para mostrar el grupo en el front-office. Para poder mostrarlo en las facturas tienes que hacer lo siguiente:

 

Sobrescribe el archivo HTMLTemplateInvoice.php subiendo a este ruta un archivo con el mismo nombre 

override\classes\pdf\HTMLTemplateInvoice.php

el archivo tiene este codigo

<?php

class HTMLTemplateInvoice extends HTMLTemplateInvoiceCore
{
    /**
     * Returns the template's Groups name
     * @return string HTML groups name
     */
  public function getContent()
	{
		$invoice_address = new Address((int)$this->order->id_address_invoice);
		$country = new Country((int)$invoice_address->id_country);

		$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array(), '<br />', ' ');
		$formatted_delivery_address = '';

		if ($this->order->id_address_delivery != $this->order->id_address_invoice)
		{
			$delivery_address = new Address((int)$this->order->id_address_delivery);
			$formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
		}

		
		$customer = new Customer((int)$this->order->id_customer);
		
		$id_lang = Context::getContext()->language->id;
		$group = new Group($customer->id_default_group, $id_lang );

		$order_details = $this->order_invoice->getProducts();
		if (Configuration::get('PS_PDF_IMG_INVOICE'))
			foreach ($order_details as &$order_detail)
			{
				if ($order_detail['image'] != null)
				{
					$name = 'product_mini_'.(int)$order_detail['product_id'].(isset($order_detail['product_attribute_id']) ? '_'.(int)$order_detail['product_attribute_id'] : '').'.jpg';
					$order_detail['image_tag'] = ImageManager::thumbnail(_PS_IMG_DIR_.'p/'.$order_detail['image']->getExistingImgPath().'.jpg', $name, 45, 'jpg', false);
					if (file_exists(_PS_TMP_IMG_DIR_.$name))
						$order_detail['image_size'] = getimagesize(_PS_TMP_IMG_DIR_.$name);
					else
						$order_detail['image_size'] = false;
				}
			}

		$data = array(
			'order' => $this->order,
			'order_details' => $order_details,
			'cart_rules' => $this->order->getCartRules($this->order_invoice->id),
			'delivery_address' => $formatted_delivery_address,
			'invoice_address' => $formatted_invoice_address,
			'tax_excluded_display' => Group::getPriceDisplayMethod($customer->id_default_group),
			'tax_tab' => $this->getTaxTabContent(),
			'customer' => $customer,
			'customer_group_name' => $group->name,
			'customer_group_id' => $group->id
		);

		if (Tools::getValue('debug'))
			die(json_encode($data));

		$this->smarty->assign($data);

		return $this->smarty->fetch($this->getTemplateByCountry($country->iso_code));
	}
}

Para que funcione correctamente el override, elimina este archivo para que se regenere de nuevo y lo incluya

cache/class_index.php

Luego en el archivo 

pdf\invoice.tpl

debajo de esta parte

<b>{l s='Order Date:' pdf='true'}</b><br />
{dateFormat date=$order->date_add full=0}<br />
<br />

añade este codigo

<b>{l s='Customer group:' pdf='true'}</b><br />
{$customer_group_name}<br />
<br />

El resultado es de la imagen adjunta

post-107989-0-52411900-1437030801_thumb.png

Edited by ventura (see edit history)
Link to comment
Share on other sites

Solo una cosa, si es posible.

 

Mi tienda es para representantes y pueden cambiar de grupo para hacer los pedidos del cliente. Si hacen un pedido con el grupo A, en la factura aparace GRUPO A, hasta ahi es correcto, pero si cambian al GRUPO B y hacen otro pedido, en todas las facturar anteriores tambien ha cambiado el grupo.

 

Es posible que se quede en la factura el nombre del grupo en el momento del pedido? para que no cambie luego si le vuelvo a dar a generar la factura.

Edited by rjtrabajo (see edit history)
Link to comment
Share on other sites

Para hacer lo que quieres habria que crear un campo en la tabla de los pedidos en el que se registrara el id del grupo del cliente en el momento de realizar el pedido y de ahí tomar ya ese registro en vez del grupo de cliente por defecto. Para ello haria falta modificar varios archivos del core

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...