Question

Si les factures peuvent être annulées, devraient-ils être utilisés comme des citations?

J'ai une table de Invoices créé à partir des stocks associés à un Job ou Order. Je pourrais avoir une table de Quotes comme à mi-chemin entre l'inventaire maison et les factures, mais il se sent comme j'avoir des structures de données en double et la logique juste pour gérer une « Est-ce une citation? » bit.

Du point de vue des entreprises, des citations sont différent de factures: un devis est envoyé avant une entreprise et une facture est envoyée une fois qu'il est terminé et le paiement est dû, mais comment représenter dans mon référentiel et le modèle.

  • Quelle est une façon élégante de stocker et de gérer les devis et factures dans une base de données?

Edit:. Job indiqué === Order pour ce cas particulier

Était-ce utile?

La solution

Il y a 3 approches:

  1. factures magasin et citations dans des tableaux distincts.

    Ceci est une bonne conception si les factures et les devis ont peu de champs en double (sinon, utilisez l'option # 3 avec 3 tables), et s'il y a un 1-plusieurs ou plusieurs-plusieurs entre eux (pour 1-1, utilisation Option 2).

    Ceci est également un bon choix s'il est courant que « partage » d'informations entre les deux peut effectivement muter quand la citation devient la facture (même si certaines de ces mutations doivent être correctement traitées avec des champs séparés / tables, comme les remises appliquées, etc ...).

    Une légère variation de cette option est évidemment nécessaire être fait lorsque plusieurs citations sont transformées en une facture unique (ou plusieurs). Cela ajoute une 3ème table qui est une correspondance entre un ensemble de citations et une facture (ou un ensemble de factures si elle est si compliqué que ça) pour eux.

  2. les stocker dans la même table, avec le drapeau supplémentaire « facture ou un devis » et des champs supplémentaires à la fois stockés. Cela peut se faire soit avec des factures et des guillemets dans des lignes distinctes, ou les partager lignes (avec le drapeau ayant trop « à la fois » valeur).

    Ce dernier (même ligne peut être à la fois la facture et devis) est un bon choix si elles sont mises en correspondance 1 à 1 , et il y a peu de champs qui distinguent les deux.

    Les anciens (lignes séparées pour les factures et les guillemets) ne sont pas une bonne conception varient en général et mieux fait avec le n ° 3 ou n ° 1 des options.

  3. Have 3 tables, une pour les champs communs entre les deux, et deux pour seule facture et devis uniquement.

    Ceci est un bon choix si les factures et les citations sont mises en correspondance 1-1, ou si elles sont 1 beaucoup, mais chacune des nombreuses factures a exactement les mêmes valeurs de champ pour les champs selon communs. Dans le cas contraire, utilisez # 1.

    Une légère variation de cette option peut être fait lorsque plusieurs citations sont transformées en une seule facture. Cela ajoute une 4ème table qui est une correspondance entre un ensemble de citations et un incoice (ou un ensemble de factures si elle devient si compliqué que ça) pour eux. Encore une fois, l'hypothèse est ici qu'il ya une part non négligeable d'information commun entre toutes les citations et les factures liées ensemble / combinés, sinon juste aller avec # 1.

Autres conseils

Les citations sont plus analogues aux ordres. Je l'ai vu plusieurs systèmes de distribution / vente au détail avec une table de commande qui a un drapeau booléen nommé quelque chose comme IsQuote. Cela peut sembler simple comme il est trivial de transformer un devis en commande. Je ne ai jamais aimé parce que les ordres qui sortent des citations ne sont pas toujours exactement comme entre guillemets. En conséquence, les systèmes d'information comme ceux qui peuvent lose être utile (à savoir un rapport qui compare les citations aux commandes). Par conséquent, je préfère les systèmes dans lesquels les devis et les tables commande sont sur les mêmes mais séparés. Dans les systèmes de distribution ce qui conduit souvent à des tables comme OrderHeader, OrderLine (concerne l'article / tableau d'inventaire), QuoteHeader et QuoteLine. Vous pouvez également avoir une table pour modéliser une relation où une citation peut mapper plusieurs commandes.

Les factures résultent généralement de commandes. Parfois, plus d'une commande sera facturée sur une seule facture. Par exemple, il y a des cas où je l'ai vu facture des entreprises mensuelles à leurs bons clients. Je l'ai vu aussi fonctionner dans l'autre sens où une commande importante avec plusieurs envois est facturé sur plusieurs factures (un pour chaque envoi).

Enfin, les paiements ont généralement une relation plusieurs à plusieurs avec la facture. Parfois, un paiement couvre plusieurs factures. Parfois, une facture est payé en deux versements.

[produit unique et des services ignorés, par souci de simplicité.]

vente citation est une proposition pour vendre un bon pour un prix dans une fenêtre de temps (plage de dates) à une autre partie. Cet actif ne doit pas encore exister. Vous pouvez citer la spécification de l'actif (le bien).

Une citation doit expirer à un moment donné, et peut ou ne peut pas être acceptée avant l'expiration.

Commande est un engagement de vendre un bon pour un prix à une date à une autre partie. Il peut être créé à partir d'une citation acceptée.

Un ordre ou une citation peut avoir des conditions de paiement, tels que « vous pouvez nous payer 30 jours après l'accouchement ».

Un ordre peut être un bon qui n'existe pas encore (vous vendez le bien, pas l'actif). Peut-être vous construire. Peut-être que vous allez acheter de quelqu'un d'autre.

A commande client conduit à la Marchés (prendre de l'inventaire, faire ou faire faire) d'un actif physique, puis l'expédition de l'actif physique, qui peut ou ne peut pas se terminer par une livraison. Parfois, le client « appellera » le vendeur de pick-up de l'actif.

D'une manière générale, un atout doit être transférés avant de pouvoir compter la ligne de commande revenus (cela dépend de vos conditions d'expédition, pourrait être à l'expédition ou la livraison ou entre les deux).

Un ordre de vente peut être annulé (par exemple, certaines industries ont de réflexion périodes).

facture de vente est demande de paiement pour les produits commandés. Il peut arriver avant la livraison du tout (comme si ligne chez McDonald), à la livraison ou après l'accouchement, ou pas vraiment se produire. Un ordre peut avoir une ou plusieurs factures, et une facture peut être pour plusieurs ordres.

Une facture si tout va bien conduit à un ou plusieurs paiements , qui sont appliqués compte . Un paiement souvent conduit à un ou plusieurs reçus de paiement . Un paiement ne sont pas nécessairement les mêmes que les revenus, en cas d'utilisation la comptabilité d'exercice.

Je recommande d'être aussi flexible que possible. Utilisez les tableaux ci-dessous

Tableau d'emploi, facture tableau, citation Tableau

Dans votre facture tableau et citation Table, stocker les données d'emploi, lui donner un index et créer une contrainte de clé étrangère. Laissez l'index ordonné en clusters sur l'ID du devis et l'identifiant de la facture.

Le dernier système que je travaillais sur la seule différence entre les prix et les factures (en termes de db) était un drapeau sur la table qui indique si la citation avait été acceptée par le client (à quel point une autre déclaration a été générée avec tous les mêmes informations, sauf qu'il était une facture au lieu d'une citation)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top