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

MS SQL Server Discussion :

Créer une facture mensuelle


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut Créer une facture mensuelle
    Bonjour,
    je dois créer une procédure stockée qui facture les clients pro en fin de mois. Les particuliers quand à eux réglant au comptant.

    Je dois donc pour chaque client pro :
    • créer une facture mensuelle à laquelle j'attribue un numéro spécial
    • Créer les lignes de détails factures correspondant à la somme des détails factures du mois et les rattacher à la facture nouvellement créée
    • changer le statut des factures déjà traitées


    Je donne un exemple plus précis :
    un client pro achète deux fois 100 kg de maïs et 150kg de betterave dans le mois.A chaque opération, on lui délivre un bon de livraison, mais il règle en fin de mois.
    Sur sa facture mensuelle apparaitra 200kg de mais + 150 kg de betterave.

    Voici le sql que j'utilise pour visualiser les factures mensuelles. Par contre je ne vois pas comment traiter les informations de manière séparée pour faire une nouvelle facture pour chaque client avec les détails factures associés.
    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
    SELECT   DISTINCT dbo.client.code_client              AS [Code client],
                      dbo.client.nom_client               AS [Nom client],
                      Sum(dbo.detail_facture.montant_ht)  AS [Montant HT],
                      Sum(dbo.detail_facture.montant_ttc) AS [Montant TTC],
                      Sum(dbo.detail_facture.montant_tva) AS [Montant TVA],
                      dbo.prestation.libelle              AS prestation
    FROM     dbo.facture
             INNER JOIN dbo.detail_facture
               ON dbo.facture.id_facture = dbo.detail_facture.id_facture
             INNER JOIN dbo.client
               ON dbo.facture.id_client = dbo.client.id_client
             INNER JOIN dbo.prestation
               ON dbo.detail_facture.code_prestation = dbo.prestation.id_prestation
    WHERE    (dbo.facture.date_document BETWEEN @date_deb AND @date_fin)
             AND client.id_client <> 0
             AND id_situ_facture <> 0
             --factures
             AND id_document = 2
    GROUP BY client.id_client,
             dbo.client.code_client,
             dbo.client.nom_client,
             dbo.prestation.libelle
    Avez vous une idée ?

  2. #2
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    J'ai eu une idée : utiliser un curseur, et pour chaque client executer une procédure stockée qui va générer une facture + les détails factures associés.
    Suis-je sur la bonne voie ?

  3. #3
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonsoir bilou972,

    Je ne sais pas. Un curseur n'est peut être pas nécessaire ici. Je ne comprend pas le problème de base. Les lignes de détails ne sont elles pas enregistrées au fur et a mesure, même dans le cas d'un client pro, et déjà rattachées à une facture qu'il suffirait de mettre à jour en fin de mois ?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Pour chaque livraison, une facture est générée. Elle tient lieu de bon de livraison pour les clients pro. En fin de mois, une facture supplémentaire est créée, récapitulant l'ensemble des opérations effectuées pendant le mois.

  5. #5
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Sur le principe (juste pour le montant de la facture, pas pour les lignes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    INSERT INTO FACTURE (...Montant, FlagMensuelPro)
    SELECT ..., SUM(F.Montant), 1 
    FROM FACTURE F
    INNER JOIN CLIENT C ON C.Client = F.Client
    GROUP BY F.Client
    WHERE F.[date] BETWEEN ... 
    AND F.FlagLivraisonPro = 1
    -- Normalement pas nécessaire
    --AND C.ClientPro = 1
    AND NOT EXISTS 
      (SELECT * FROM FACTURE 
       WHERE FACTURE.FlagMensuelPro = 1
       AND FACTURE.Client = F.Client)
    Pour les lignes, vous pouvez par exemple ajouter une colonne IDFacturePro dans votre table facture et les mettre à jour après création de la facture.
    Rq: Je ne suis pas persuadé que de mettre les livraisons dans la table des factures soit une bonne idée.

    @+

Discussions similaires

  1. [FPDF] Créer une facture multipages
    Par lacfab dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/06/2015, 21h19
  2. Créer une facture
    Par 6116d dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2014, 15h18
  3. Créer une facture avec Gras, Couleur, etc
    Par michelraymond dans le forum VBA Word
    Réponses: 3
    Dernier message: 01/03/2012, 13h12
  4. [Débutant] Comment créer une facture et un dévis avec asp.net
    Par Moutombi dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/09/2011, 18h56
  5. [WD12] Créer une facture
    Par tchauman dans le forum WinDev
    Réponses: 11
    Dernier message: 28/07/2010, 21h34

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