IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Affichage pdf avec Dompdf


Sujet :

Laravel PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Affichage pdf avec Dompdf
    Bonjour à tous,

    J'ai un petit problème avec dompdf,
    J'ai une fonction de mon application qui me permet d'afficher des factures sous forme d'un seul pdf. Je permet donc d'entrer une date et d'avoir toutes les factures après cette date, Lorsque j'affiche quelques factures ca fonctionne très bien mais si je veux afficher toute mes factures le serveur me renvois une HTTP ERROR 500.
    J'imagine qui c'est un paramètre de fichier de configuration à changer sur mon serveur ?!


    merci d'avance pour vos aides

    Benoit

  2. #2
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Est-il possible de voir le code de ta fonction qui génère le PDF.
    Il est possible que si par exemple tu génère 100 PDF le site plante et renvoi une erreur serveur 500, car il n'est pas capable de générer tous les PDF dans un temps x donné (il ne faut pas oublier le temps de maximum de réponse de PHP).

    Ce que tu pourrai faire, c'est d'exécuter cette tâche en arrière plan (en la mettant dans une "queue"). On fait ce type d'opération quand on n'a pas envie que le site soit paralysé par une tâche qui pourrai prendre "un certain temps" (exemple: envoi d'un "email de confirmation" après une inscription).

    J'espère que cette piste pourra t'aider, toutefois n'hésite pas à poster ton code, on pourra toujours jeté un coup d’œil, au cas où tu serai passé à côté d'une erreur.

    Bien à toi,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Merci d'avoir pris le temps de me répondre

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    $Facts = Factures::where('DateFacture','>=',$request->Datef)->get();
     
     
                if(count($Facts) > 0){
     
     
                    foreach($Facts as $F){
     
                        $FacturerHTVA=0;
                        $Facture = DB::table('Elements')
                            ->rightjoin('Factures', 'Elements.IdFactureRef', '=', 'Factures.NumFacture')
                            ->where('Factures.NumFacture','=',$F->NumFacture)
                            ->select('Elements.*','Factures.*')
                            ->get();
     
                        $cpt=0;
                        $Factures = array();
                        foreach($Facture as $element){
                            $FacturerHTVA += ($element->PrixElement * $element->Quantite);
                            $elem = array('NomElement' => $element->NomElement,'Description' => $element->Description,'Quantite'=> $element->Quantite , 'PrixElement'=> $element->PrixElement, 'cpt' => $cpt);
                            array_push($Factures,$elem);
                            $cpt++;
                        }
     
                        switch (strtoupper($Facture[0]->Pays)) {
                            case 'LUXEMBOURG':
                                $FacturerTVAC = round((floatval($FacturerHTVA) * 1.17), 2);
                                $Tva = round($FacturerHTVA * 0.17, 2);
     
                                break;
                            default :
                                if (trim($Facture[0]->NumTVAClient) == "" || trim($Facture[0]->NumTVAClient) == "NA" || trim($Facture[0]->NumTVAClient) == "na") {
     
                                    $FacturerTVAC = round((floatval($FacturerHTVA) * 1.17), 2);
                                    $Tva = round($FacturerHTVA * 0.17, 2);
     
                                } else {
     
                                    $FacturerTVAC = $FacturerHTVA;
                                    $Tva = 0;
                                }
                        }
     
                        $UneFacture = array (
                            "Facture" =>$Facture,
                            "FacturerHTVA" => $FacturerHTVA,
                            "FacturerTVAC" => $FacturerTVAC,
                            "Tva" => $Tva,
                            "Factures" => $Factures
     
     
                        );
     
                        array_push($ArrayFactures,$UneFacture);
     
     
     
     
                    }
                    $pdf = App::make('dompdf.wrapper');
                    $data =compact('ArrayFactures');
                    $pdf->loadView('pages/Allfacturepdf',$data);
                    return $pdf->stream('AllFacturesAfter'.$request->Datef.'pdf');
    puis dans la vue je vais une boucle @foreach($ArrayFactures as $f)
    dans laquel j'ai le code html d'une facture.

    Pourrais-je avoir plus de précision quant à la façon de faire une tâche en arrière plan en php ?
    Car j'ai justement un autre problème quand je souhaite envoyer toutes les factures d'un seul coup par email, il en envoi quelque une puis ca crash ... donc j'imagine que le problème est le même ?!

    Merci d'avance pour la réponse

  4. #4
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Je n'ai pas encore eu le temps de regarder ton code, mais voici les informations que m'a demandé:

    https://laravel.com/docs/5.1/queues
    https://scotch.io/tutorials/why-lara...es-are-awesome

    Bien à toi,

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2015
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Ah cool, je ne savais pas qu'il y avait un API qui permettait cela !

    merci, je vais essayer

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/01/2012, 17h09
  2. [Joomla!] Problème de pdf avec IE7
    Par bustaja dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/05/2008, 09h59
  3. Problème affichage subreport avec paramètre
    Par gamma dans le forum iReport
    Réponses: 6
    Dernier message: 12/04/2007, 14h54
  4. [MySQL] problème affichage image avec sql
    Par igaurillac dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/02/2007, 18h04
  5. Problème affichage form avec Internet Explorer dans un menu
    Par dupard2006 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/03/2006, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo