Difference between revisions of "VbzCart/tables/ord hold type"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(rename references in text and SQL)
(tidying, some minor changes)
Line 3: Line 3:
 
* '''Relates to''': {{vbzcart|table|ord_change}}
 
* '''Relates to''': {{vbzcart|table|ord_change}}
 
* '''Background''': See {{vbzcart|table|ord_change}}
 
* '''Background''': See {{vbzcart|table|ord_change}}
* '''History''':
+
==History==
** '''2008-12-27''' Extracted from main "tables" listing, no design changes; no documentation yet, either
+
* '''2008-12-27''' Extracted from main "tables" listing, no design changes; no documentation yet, either
** '''2009-07-12''' Removed isActive field; added "Hold" to field names for directional consistency (+1 always turns on an alert); preliminary documentation
+
* '''2009-07-12''' Removed isActive field; added "Hold" to field names for directional consistency (+1 always turns on an alert); preliminary documentation
** '''2009-10-18'''
+
* '''2009-10-18'''
*** changing type for alert flags from TINYINT to TINYINT(1); the default seems to be TINYINT(4)
+
** changing type for alert flags from TINYINT to TINYINT(1); the default seems to be TINYINT(4)
**** BIT(2) would work, but there doesn't seem to be any clean way to represent -1
+
*** BIT(2) would work, but there doesn't seem to be any clean way to represent -1
*** renaming from '''ord_event_type''' to '''ord_change_type'''; will eventually replace '''ord_pull_type'''
+
** renaming from '''ord_event_type''' to '''ord_change_type'''; will eventually replace '''ord_pull_type'''
* '''Fields''':
+
* '''2017-06-01''' Renamed '''Descr''' to '''About'''; changed ENGINE from MYISAM to InnoDB.
** '''alert flags''':
+
==Fields==
*** '''doHoldRstk''' - if TRUE, do not base restock requests on this order's items
+
* '''alert flags''':
*** '''doHoldChrg''' - if TRUE, do not make any debits from the customer for this order (wait for confirmation)
+
** '''doHoldRstk''' - if TRUE, do not base restock requests on this order's items
*** '''doContact''' - if TRUE, contact the customer before proceeding (do we need a separate "no payment" flag?)
+
** '''doHoldChrg''' - if TRUE, do not make any debits from the customer for this order (wait for confirmation)
*** '''doExamine''' - if TRUE, something about this order needs further examination (explanation in event notes)
+
** '''doContact''' - if TRUE, contact the customer before proceeding (do we need a separate "no payment" flag?)
*** It may be that we need a "'''doImport'''" flag, to indicate orders which need importing; '''doExamine''' is probably for more complicated issues which may take time/expertise to resolve. On the other hand, it may make more sense to detect un-imported orders in other ways, e.g. the fact that some fields will be NULL -- but it may be useful to have an explicit flag for this, e.g. to be able to signal that an order needs to be ''re''-imported.
+
** '''doExamine''' - if TRUE, something about this order needs further examination (explanation in event notes)
*** We may also want a "'''doHoldShip'''" flag, to indicate that shipping should be delayed
+
** It may be that we need a "'''doImport'''" flag, to indicate orders which need importing; '''doExamine''' is probably for more complicated issues which may take time/expertise to resolve. On the other hand, it may make more sense to detect un-imported orders in other ways, e.g. the fact that some fields will be NULL -- but it may be useful to have an explicit flag for this, e.g. to be able to signal that an order needs to be ''re''-imported.
*** Eventually, maybe we need an ord_action table, listing all the possible actions which might be flagged
+
** We may also want a "'''doHoldShip'''" flag, to indicate that shipping should be delayed
 +
** Eventually, maybe we need an ord_action table, listing all the possible actions which might be flagged
 
===alert flags===
 
===alert flags===
 
The alert flag fields each have 3 possible values:
 
The alert flag fields each have 3 possible values:
Line 29: Line 30:
 
If the order has any one of these flags set, then the order is "on hold".
 
If the order has any one of these flags set, then the order is "on hold".
 
==SQL==
 
==SQL==
<section begin=sql /><mysql>CREATE TABLE `ord_change_type` (
+
<mysql>CREATE TABLE `ord_change_type` (
 
   `ID`          INT NOT NULL AUTO_INCREMENT,
 
   `ID`          INT NOT NULL AUTO_INCREMENT,
 
   `Display`      VARCHAR(63) COMMENT "brief name for this event type",
 
   `Display`      VARCHAR(63) COMMENT "brief name for this event type",
   `Descr`        VARCHAR(127) COMMENT "longer description of usage",
+
   `About`        VARCHAR(127) COMMENT "longer description of usage",
 
   `doHoldRstk` TINYINT(1) COMMENT "forbid(+1)/allow(-1) restocking this order's items",
 
   `doHoldRstk` TINYINT(1) COMMENT "forbid(+1)/allow(-1) restocking this order's items",
 
   `doHoldChrg` TINYINT(1) COMMENT "forbid(+1)/allow(-1) charging bank card for this order",
 
   `doHoldChrg` TINYINT(1) COMMENT "forbid(+1)/allow(-1) charging bank card for this order",
Line 39: Line 40:
 
   PRIMARY KEY(`ID`)
 
   PRIMARY KEY(`ID`)
 
)
 
)
ENGINE = MYISAM;</mysql>
+
ENGINE = InnoDB;</mysql>
<section end=sql />
 

Revision as of 12:17, 1 June 2017

About

  • Purpose: Admin-maintained table for different types of order changes and how the order itself is affected by each event of that type
  • Relates to: ord_change
  • Background: See ord_change

History

  • 2008-12-27 Extracted from main "tables" listing, no design changes; no documentation yet, either
  • 2009-07-12 Removed isActive field; added "Hold" to field names for directional consistency (+1 always turns on an alert); preliminary documentation
  • 2009-10-18
    • changing type for alert flags from TINYINT to TINYINT(1); the default seems to be TINYINT(4)
      • BIT(2) would work, but there doesn't seem to be any clean way to represent -1
    • renaming from ord_event_type to ord_change_type; will eventually replace ord_pull_type
  • 2017-06-01 Renamed Descr to About; changed ENGINE from MYISAM to InnoDB.

Fields

  • alert flags:
    • doHoldRstk - if TRUE, do not base restock requests on this order's items
    • doHoldChrg - if TRUE, do not make any debits from the customer for this order (wait for confirmation)
    • doContact - if TRUE, contact the customer before proceeding (do we need a separate "no payment" flag?)
    • doExamine - if TRUE, something about this order needs further examination (explanation in event notes)
    • It may be that we need a "doImport" flag, to indicate orders which need importing; doExamine is probably for more complicated issues which may take time/expertise to resolve. On the other hand, it may make more sense to detect un-imported orders in other ways, e.g. the fact that some fields will be NULL -- but it may be useful to have an explicit flag for this, e.g. to be able to signal that an order needs to be re-imported.
    • We may also want a "doHoldShip" flag, to indicate that shipping should be delayed
    • Eventually, maybe we need an ord_action table, listing all the possible actions which might be flagged

alert flags

The alert flag fields each have 3 possible values:

0 = no change
+1 = FORBID / TURN ON ALERT
-1 = ALLOW / TURN OFF ALERT

Each one affects the corresponding field in the order (not yet implemented as of 2009-07-12) as described above when an event of the type defined in this record occurs

If the order has any one of these flags set, then the order is "on hold".

SQL

<mysql>CREATE TABLE `ord_change_type` (

 `ID`           INT NOT NULL AUTO_INCREMENT,
 `Display`      VARCHAR(63) COMMENT "brief name for this event type",
 `About`        VARCHAR(127) COMMENT "longer description of usage",
 `doHoldRstk` TINYINT(1) COMMENT "forbid(+1)/allow(-1) restocking this order's items",
 `doHoldChrg` TINYINT(1) COMMENT "forbid(+1)/allow(-1) charging bank card for this order",
 `doContact`  TINYINT(1) COMMENT "turn on(+1)/off(-1) need-to-contact flag for this order",
 `doExamine`  TINYINT(1) COMMENT "turn on(+1)/off(-1) need-to-examine flag for this order",
 PRIMARY KEY(`ID`)

) ENGINE = InnoDB;</mysql>