Domanda

Se le fatture possono essere annullate, dovrebbero essere usati come citazioni?

Ho un tabelle Invoices che si crea da inventario associato ad un Job o Order. Potrei avere un tavolo Quotes come a metà strada tra la casa-inventario e le fatture, ma ci si sente come avrei strutture di dati duplicati e la logica solo per gestire un "E 'questo un preventivo?" bit.

Dal punto di vista aziendale, citazioni sono diverso da fatture: una citazione viene inviato prima di un impegno e di una fattura viene inviata una volta che è completa e il pagamento è dovuto, ma come rappresentare questo nel mio repository e modello.

  • Che cosa è un modo elegante per archiviare e gestire preventivi e fatture in un database?

Modifica:. Job indicato === Order per questo caso particolare

È stato utile?

Soluzione

Ci sono 3 approcci:

  1. fatture Conservare e citazioni in tabelle separate.

    Questo è un buon progetto, se le fatture e preventivi hanno pochi campi in duplicato (in caso contrario, utilizzare l'opzione # 3 con 3 tavoli), e se c'è un 1-molti o molti-molti tra di loro (per 1-1, l'uso opzione 2).

    Questa è anche una buona scelta se è comune che "condiviso" informazioni tra i due può effettivamente mutare quando la citazione diventa fattura (anche se alcune di queste mutazioni dovrebbero essere adeguatamente trattati con campi separati / tavoli, come ad esempio sconti applicati, ecc ...).

    Una leggera variazione di questa opzione è ovviamente necessario essere fatto quando le quotazioni multiple sono trasformate in un unico (o multipli) fatture. Questo aggiunge un terzo tavolo, che è un mapping tra un insieme di citazioni e una fattura (o serie di fatture che se viene complicato) per loro.

  2. memorizzarli nella stessa tabella, con bandiera extra "Fattura o citazione" e tutti i campi extra da entrambi memorizzato. Questo può essere fatto sia con fatture e preventivi in ??righe distinte, o con la loro condivisione file (con bandiera aver "sia" un valore troppo).

    Quest'ultimo (stessa riga può essere sia fattura e preventivo) è una buona scelta se sono mappati 1 a 1 , e ci sono alcuni campi che contraddistinguono i due.

    Gli ex (righe separate per fatture e preventivi) non è una buona variano design in generale e una migliore fatto con il # 3 o # 1 opzioni.

  3. Hai 3 tabelle, una per i campi comuni tra i due, e due per fattura-solo e soltanto le citazioni.

    Questa è una buona scelta se fatture e preventivi vengono mappati 1-1, o se sono 1-molti, ma ciascuna delle molte fatture ha esattamente gli stessi valori di campo per qualsiasi campi sono comuni. In caso contrario, utilizzare 1 #.

    Una leggera variazione di questa opzione può essere fatto quando più citazioni si trasformano in un'unica fattura. Questo aggiunge un quarto tavolo, che è un mapping tra un insieme di citazioni e di un incoice (o serie di fatture se ottiene che complicato) per loro. Anche in questo caso, l'ipotesi è che c'è una fetta consistente di informazioni comuni tra tutti i preventivi e fatture collegate / combinate insieme, altrimenti basta andare con # 1.

Altri suggerimenti

Le citazioni sono più simile agli ordini. Ho visto diversi sistemi di distribuzione / vendita al dettaglio con una tabella di ordine che ha un flag booleano nome simile IsQuote. Questo può sembrare semplice in quanto rende banale per trasformare un preventivo in un ordine. Mi è mai piaciuto, perché gli ordini che vengono fuori citazioni non sono sempre esattamente come citato. Di conseguenza, i sistemi come quelli perdere le informazioni che possono essere di qualche utilità (vale a dire un rapporto che mette a confronto preventivi in ??ordini). Pertanto, preferisco sistemi in cui i tavoli Preventivo e ordine sono circa lo stesso, ma separata. Nei sistemi di distribuzione questo porta spesso a tavoli come OrderHeader, OrderLine (si riferisce alla voce tavola / inventario), QuoteHeader e QuoteLine. Si potrebbe anche avere un tavolo per modellare un rapporto in cui una citazione può mappare a più ordini.

Fatture di solito il risultato di ordini. A volte più di un ordine sarà fatturata su un'unica fattura. Per esempio, ci sono casi in cui ho visto le aziende fattura mensile ai loro clienti buoni. Ho visto anche il lavoro l'altro modo in cui un grosso ordine con spedizioni multiple viene fatturato su più fatture (uno per ogni spedizione).

Infine, i pagamenti di solito hanno una relazione molti a molti rapporti con la fattura. A volte un pagamento copre più fatture. A volte una fattura viene pagato in un paio di pagamenti.

[singolo prodotto e servizi ignorati, per semplicità.]

le vendite citazione è una proposta per vendere un buono per un prezzo in un intervallo di tempo (intervallo di date) per un altro partito. Tale attività non deve esistere ancora. Si potrebbe citare sulla specifica del bene (il bene).

Una citazione dovrebbe scadere a un certo punto, e può o non può essere accettata prima della scadenza.

Un ordine di vendita è una impegno per vendere un buono per un prezzo a una data ad un altro partito. Esso può essere creato da un preventivo accettato.

Un ordine o preventivo può avere termini di pagamento, come ad esempio "che ci può pagare 30 giorni dopo la consegna".

Un ordine può essere per un bene che ancora non esiste (si vende il bene, non il bene). Forse si sta costruendo. Forse hai intenzione di acquistare da qualcun altro.

Un ordine di vendita porta alla appalti (prendere dall'inventario, make or buy) di un'attività fisica, e poi il spedizione del bene fisico, che può o non possono finire in una consegna. A volte, il cliente "chiamerà" per il venditore di pick-up del bene.

In linea generale, una risorsa deve essere trasferiti prima di poter contare la linea di ordine come entrate (questo dipende dalle vostre condizioni di trasporto, potrebbe essere al momento della spedizione o consegna o in-between).

ordinare una vendita può essere annullato (ad esempio, alcune industrie hanno ripensamento periodi).

fattura di vendita è una richiesta di pagamento per i prodotti ordinati. Può accadere prima della consegna, al momento del parto, o dopo il parto, o non realmente accadere a tutti (come se in fila al McDonald). Un ordine può avere una o più fatture, e una fattura può essere per diversi ordini.

Una fattura, auspicabilmente, porta a uno o più Pagamenti , che sono applicare per un account . Un pagamento spesso porta a una o più ricevute di pagamento . Un pagamento non è necessariamente la stessa di entrate, se si utilizza contabilità per competenza.

mi sento di raccomandare di essere il più flessibile possibile. Utilizzare le seguenti tabelle

Tavolo di lavoro, fattura Tavolo, Tavolo Citazione

nella tabella Fattura e Quote tabella, memorizzare l'ID del processo, dare un indice e creare un vincolo di chiave esterna. Lasciare l'indice cluster sulla id preventivo e la fattura id.

L'ultimo sistema ho lavorato l'unica differenza tra preventivi e fatture (in termini di db) è stato una bandiera sul tavolo che indica se la citazione era stato accettato dal cliente (a questo punto un'altra dichiarazione è stata generata con tutte le stesse informazioni, tranne che si trattava di una fattura, invece di un preventivo)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top