WorkFerret/tables/invoice

From Woozle Writes Code
< WorkFerret‎ | tables
Revision as of 20:09, 16 June 2013 by Woozle (talk | contribs) (note about InvcSeq sortability)
Jump to navigation Jump to search

About

  • History:
    • 2010-01-28 Adapted from MS Access version
    • 2010-02-05 Added fields: InvcNum, Notes
    • 2010-02-09 Added field: ID_Debit
    • 2010-02-11 Added field: WhenEdited
  • Fields:
    • InvcSeq is used to generate the invoice number. I'm thinking [invc ID [zero-padded]]-[invc pfx]-[InvcSeq] would be sortable and would provide a validity check (i.e. nobody could just make one up because of the ID).
      • Perhaps this field should be changed to INTEGER. It was VARCHAR because I thought I might use some alpha characters at some point, like "12A". It's not clear if this is even sortable in SQL. If the ability to insert between integers is needed, then maybe it should be a FLOAT and we could do things like "12.1" rather than "12A". For now, we have to use "ORDER BY (InvcSeq+0)" to make sure it sorts properly.

SQL

<mysql>DROP TABLE IF EXISTS `invoice`; CREATE TABLE `invoice` (

 `ID`          INT(4)       NOT NULL AUTO_INCREMENT,
 `ID_Proj`     INT(4)       NOT NULL COMMENT "Project to which this invoice applies",
 `InvcSeq`     VARCHAR(7)   NOT NULL COMMENT "Invoice sequence number",
 `InvcNum`     VARCHAR(31)  NOT NULL COMMENT "Complete invoice number",
 `TotalAmt`    DECIMAL(9,2) NOT NULL COMMENT "total amount billed",
 `ID_Debit`    INT(4)   DEFAULT NULL COMMENT "ID of session in which invoice total is deducted",
 `WhenCreated` DATETIME     NOT NULL COMMENT "when the invoice was created",
 `WhenEdited`  DATETIME DEFAULT NULL COMMENT "when the record was last modified";
 `WhenSent`    DATETIME DEFAULT NULL COMMENT "when the invoice was sent out to the client",
 `WhenPaid`    DATETIME DEFAULT NULL COMMENT "when payment was received on this invoice",
 `WhenVoid`    DATETIME DEFAULT NULL COMMENT "when this invoice was cancelled or otherwise nullified",
 `Notes`       VARCHAR(255) DEFAULT NULL COMMENT "human-entered notes",
  PRIMARY KEY(`ID`)

) ENGINE=MyISAM;</mysql>