Jump to content

Problème lors de la génération du bon de livraison en PDF


Recommended Posts

Bonsoir à tous,

 

J'ai un petit problème lors de la génération du bon de livraison en PDF mais uniquement sur le statut "PRÉPARATION EN COURS" car sur le statut "LIVRÉ" aucun problème le PDF est nickel.

 

J'ai donc activé dans ./config/defines.inc.php "define('_PS_MODE_DEV_', true);" pour voir ce qui ce passe mais malheureusement aucun message et rien dans le source de la page. J'ai comparé les lignes de statuts dans la table "xx_order_state" de la base mais elle sont identiques. Là je sèche, un coup de main, une info ou une piste?

 

Je suis en version 1.5.6.1 avec thème et modules de bases.

 

Merci d'avance

 

Alain

Link to comment
Share on other sites

  • 11 months later...

Bonjour.

 

Juste une page blanche. Pas de message d'erreur, même avec le mode debugg activé.

 

En ayant cherché de plus près, il s'avère que dans le fichier classes/pdf/PDF.php à la ligne 58 (dans la fonction render()) :

foreach ($this->objects as $object)
		{
			$template = $this->getTemplateObject($object);
			if (!$template)
				continue;
		
			if (empty($this->filename))
			{
				$this->filename = $template->getFilename();
				if (count($this->objects) > 1)
					$this->filename = $template->getBulkFilename();
			}

			$template->assignHookData($object);

			$this->pdf_renderer->createHeader($template->getHeader());
			$this->pdf_renderer->createFooter($template->getFooter());
			$this->pdf_renderer->createContent($template->getContent());
			$this->pdf_renderer->writePage();
			$render = true;

			unset($template);
		}

le foreach ne renvoit strictement rien.

 

En effet, sur une commande qui fonctionne et une qui ne fonctionne pas, la variable $this->objects contient exactement les mêmes éléments sauf l'id de la commande.

Cela m'a amené à vérifier la suite des fonctions qui sont utilisés. 

 

Verdict : Pour générer un bon de livraison, la fonction va tout le temps chercher voir si la facture existe. Si celle ci existe, cela fonctionne, sinon page blanche.


Enfin, le seul moyen de passer outre cette page blanche, c'est de montrer (dans le statut associé) la facture généré, au client. Problème, mon client veut juste générer le bon de livraison AVANT de générer la facture.

 

Bref, c'est le serpent qui se mort la queue....


Si quelqu'un a une idée... je suis preneur.
 

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

Alors j'ai trouvé une solution qui peut surement vous aider !
 
1- Dans le statut que vous avez choisi, décochez Autoriser les clients à télécharger et lire la version PDF de la facture 
2- Créez un template de mail où il n'est pas marqué que le client peut télécharger sa facture pdf.
3- Dans votre override/controllers/AdminOrdersController  modifier cette ligne (ligne 355 du fichier original):

// Save all changes
if ($history->addWithemail(true, $templateVars))

par (n'oubliez pas de modifier XX par l'ID du statut que vous souhaitez utiliser)

if($history->id_order_state == XX){
  $order->setInvoice();
}
						
// Save all changes
if ($history->addWithemail(true, $templateVars))
{

Quel résultat ?

 

Cela générera la facture, mais elle ne sera pas visible par le client.

Par contre, vous aurez enfin votre bon de livraison !!!

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

  • 11 months later...

Bonsoir a tous! j'ai aussi un problème...les factures pdf ne s génère  pas((

 

voici l’erreur  Parse error: syntax error, unexpected ''img_update_time'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in /home/*********/www/override/classes/pdf/HTMLTemplate.php on line 47

		$width = 0;

		$height = 0;

		if (!empty($path_logo))

			list($width, $height) = getimagesize($path_logo);



		$this->smarty->assign(array(

			'logo_path' => $path_logo,

			'img_ps_dir' => 'http:
		    'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'),

			'title' => $this->title,

			'date' => $this->date,

			'shop_name' => $shop_name,

			'shop_details' => $shop_details,

			'shop_addr1' => $shop_addr1,

			'shop_addr2' => $shop_addr2,

			'shop_code' => $shop_code,

			'shop_city' => $shop_city,

			'width_logo' => $width,

			'height_logo' => $height

prestashop v 1.6.0.14

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

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...