VbzCart/docs/tables/stk history legacy: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | tables
Jump to navigation Jump to search
imported>Woozle
m (a little tidying -- trying to figure out what is different from stk_history)
m (Woozle moved page VbzCart/VbzCart/tables/stk history legacy to VbzCart/docs/tables/stk history legacy without leaving a redirect: part 4/5)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
==About==
==About==
* '''Status''' Deprecated.
** This table is no longer needed, and is not really something that needs to be part of VbzCart proper. Its only use, other than dealing with imported data from older versions of VbzCart, would be an aid in importing from other systems -- and it would probably be better just to hand-craft any intermediate tables for that purpose.
* '''Purpose''': For accommodating old stock history data (possibly imported from another application) where some rows don't meet the stricter requirements of {{vbzcart/table|stk_history}}. This table should have all the same fields as that table, but some fields may have looser requirements and additional fields may be added.
* '''Purpose''': For accommodating old stock history data (possibly imported from another application) where some rows don't meet the stricter requirements of {{vbzcart/table|stk_history}}. This table should have all the same fields as that table, but some fields may have looser requirements and additional fields may be added.
* '''Usage''': Feel free to NOT-NULLify any existing fields, or even add additional fields to preserve your old data. If you have no old data to deal with, this table is unnecessary; you can either leave it empty, or modify {{vbzcart/query|qryStk_History}} not to require it.
* '''Usage''': Feel free to NOT-NULLify any existing fields, or even add additional fields to preserve your old data. If you have no old data to deal with, this table is unnecessary; you can either leave it empty, or modify {{vbzcart/query|qryStk_History}} not to require it.
* '''History''':
* '''History''':
** '''2008-12-29''' Created so that old data could be accommodated without compromising integrity of new data added to {{vbzcart/table|stk_history}}.
** '''2008-12-29''' Created so that old data could be accommodated without compromising integrity of new data added to {{vbzcart/table|stk_history}}.
** '''2016-03-02'''
*** Found that there were no NULL values in my data for '''ID_StkBin''', '''ID_StkLine''', '''CH_OthType''', '''IDS_OthCont''', '''QtyAdded''' -- so made them NOT NULL
**** Actually, '''QtyAdded''' was already NOT NULL in my actual table... just making that official, in this table which should be going away shortly.
** '''2016-03-03'''
*** Preparing to merge with {{l/vc/table|stk_history}}: set NULL ID_Item fields by looking up stk_lines.ID_Item from ID_StkLine. ID_Item can now be NOT NULL, as in stk_history.
*** Merged with stk_history into updated (INNODB) stk_history table, and deprecated.
==SQL==
==SQL==
<mysql>CREATE TABLE `stk_history_legacy` (
<mysql>CREATE TABLE `stk_history_legacy` (
   `ID`          INT    NOT NULL  AUTO_INCREMENT,
   `ID`          INT    NOT NULL  AUTO_INCREMENT,
   `ID_StkBin`    INT /*NOT NULL*/ COMMENT "stock item is being moved to or from this bin",
   `ID_StkBin`    INT   NOT NULL   COMMENT "stock item is being moved to or from this bin",
   `ID_StkLine`  INT /*NOT NULL*/ COMMENT "stk_items.ID of item in this bin being moved",
   `ID_StkLine`  INT   NOT NULL   COMMENT "stk_items.ID of item in this bin being moved",
   `CH_OthType`  CHAR /*NOT NULL*/ COMMENT "type for 'other' container & line",
   `CH_OthType`  CHAR   NOT NULL   COMMENT "type for 'other' container & line",
   `ID_OthCont`  INT  /*NOT NULL*/ COMMENT "[container type's table].ID of the Other place",
   `ID_OthCont`  INT  /*NOT NULL*/ COMMENT "[container type's table].ID of the Other place",
   `ID_OthLine`  INT  /*NOT NULL*/ COMMENT "[container type's line table].ID of of the Other place",
   `ID_OthLine`  INT  /*NOT NULL*/ COMMENT "[container type's line table].ID of of the Other place",
   `IDS_OthCont`  VARCHAR(31) /*NOT NULL*/ COMMENT "container.IDS of the Other place",
   `IDS_OthCont`  VARCHAR(31) NOT NULL  COMMENT "container.IDS of the Other place",
   `ID_Item`      INT /*NOT NULL*/ COMMENT "cat_items.ID of item being moved",
   `ID_Item`      INT   NOT NULL COMMENT "cat_items.ID of item being moved",
   `QtyBefore`    INT  /*NOT NULL*/ COMMENT "quantity found in this stock line before the move",
   `QtyBefore`    INT  /*NOT NULL*/ COMMENT "quantity found in this stock line before the move",
   `QtyAdded`    INT    NOT NULL  COMMENT "quantity moved (Qty fields at targ/dest may change value later)",
   `QtyAdded`    INT    NOT NULL  COMMENT "quantity moved (Qty fields at targ/dest may change value later)",
Line 35: Line 43:
   PRIMARY KEY(`ID`)
   PRIMARY KEY(`ID`)
) ENGINE = MYISAM;</mysql>
) ENGINE = MYISAM;</mysql>
===Migration===
This was used to copy stk_history_legacy data into stk_history_new, to be renamed stk_history:
<mysql>INSERT INTO stk_history_new (
  ID_StkBin,
  ID_StkLine,
  CH_OthType,
  ID_OthCont,
  ID_OthLine,
  IDS_OthCont,
  ID_Item,
  QtyBefore,
  QtyAdded,
  QtyAfter,
  QtyBinBefore,
  QtyBinAfter,
  WhenStarted,
  What,
  WhoAdmin,
  WhoSystem,
  WhoNetwork,
  Notes
  )
SELECT
  ID_StkBin,
  ID_StkLine,
  CH_OthType,
  ID_OthCont,
  ID_OthLine,
  IDS_OthCont,
  ID_Item,
  QtyBefore,
  QtyAdded,
  QtyAfter,
  QtyBinBefore,
  QtyBinAfter,
  `When`,
  What,
  'woozle',
  'from stk_history_legacy',
  '50.111.67.243',
  Notes
FROM stk_history_legacy
</mysql>
Note that there were some NULL values in When, which were translated into "zero date" values in stk_history_new. At the moment, I can't think of any way to recover those timestamps.

Latest revision as of 01:57, 25 February 2024

About

  • Status Deprecated.
    • This table is no longer needed, and is not really something that needs to be part of VbzCart proper. Its only use, other than dealing with imported data from older versions of VbzCart, would be an aid in importing from other systems -- and it would probably be better just to hand-craft any intermediate tables for that purpose.
  • Purpose: For accommodating old stock history data (possibly imported from another application) where some rows don't meet the stricter requirements of Template:Vbzcart/table. This table should have all the same fields as that table, but some fields may have looser requirements and additional fields may be added.
  • Usage: Feel free to NOT-NULLify any existing fields, or even add additional fields to preserve your old data. If you have no old data to deal with, this table is unnecessary; you can either leave it empty, or modify Template:Vbzcart/query not to require it.
  • History:
    • 2008-12-29 Created so that old data could be accommodated without compromising integrity of new data added to Template:Vbzcart/table.
    • 2016-03-02
      • Found that there were no NULL values in my data for ID_StkBin, ID_StkLine, CH_OthType, IDS_OthCont, QtyAdded -- so made them NOT NULL
        • Actually, QtyAdded was already NOT NULL in my actual table... just making that official, in this table which should be going away shortly.
    • 2016-03-03
      • Preparing to merge with Template:L/vc/table: set NULL ID_Item fields by looking up stk_lines.ID_Item from ID_StkLine. ID_Item can now be NOT NULL, as in stk_history.
      • Merged with stk_history into updated (INNODB) stk_history table, and deprecated.

SQL

<mysql>CREATE TABLE `stk_history_legacy` (

 `ID`           INT    NOT NULL   AUTO_INCREMENT,
 `ID_StkBin`    INT    NOT NULL   COMMENT "stock item is being moved to or from this bin",
 `ID_StkLine`   INT    NOT NULL   COMMENT "stk_items.ID of item in this bin being moved",
 `CH_OthType`   CHAR   NOT NULL   COMMENT "type for 'other' container & line",
 `ID_OthCont`   INT  /*NOT NULL*/ COMMENT "[container type's table].ID of the Other place",
 `ID_OthLine`   INT  /*NOT NULL*/ COMMENT "[container type's line table].ID of of the Other place",
 `IDS_OthCont`  VARCHAR(31) NOT NULL  COMMENT "container.IDS of the Other place",
 `ID_Item`      INT    NOT NULL COMMENT "cat_items.ID of item being moved",
 `QtyBefore`    INT  /*NOT NULL*/ COMMENT "quantity found in this stock line before the move",
 `QtyAdded`     INT    NOT NULL   COMMENT "quantity moved (Qty fields at targ/dest may change value later)",
 `QtyAfter`     INT  /*NOT NULL*/ COMMENT "quantity remaining in this stock line after the move",
 `QtyBinBefore` INT  /*NOT NULL*/ COMMENT "quantity of this ID_Item in the current bin before the move",
 `QtyBinAfter`  INT  /*NOT NULL*/ COMMENT "quantity of this ID_Item in the current bin after the move",
 `When`         DATETIME   /*NOT NULL*/   COMMENT "when the move happened",
 `What`         VARCHAR(63)  DEFAULT NULL COMMENT "brief automatic description of operation",
 `Notes`        TINYTEXT     DEFAULT NULL COMMENT "optional human-added explanatory notes",

/* fields specific to vbz.net data migration -- these may be omitted for normal usage */

 `oIDS_ContSrce` VARCHAR(31),
 `oIDS_LineSrce` VARCHAR(31),
 `oIDS_ContDest` VARCHAR(31),
 `oIDS_LineDest` VARCHAR(31),
 `oID_StkBin`    INT,
 `oID_StkLine`   INT,
 `oQtyFnd`       INT,
 `oQtyDone`      INT,
 `oQtyLeft`      INT,
 `wasSrce`       BIT COMMENT "how the data was handled at migration: TRUE = stock is source",
 PRIMARY KEY(`ID`)

) ENGINE = MYISAM;</mysql>

Migration

This was used to copy stk_history_legacy data into stk_history_new, to be renamed stk_history: <mysql>INSERT INTO stk_history_new (

 ID_StkBin,
 ID_StkLine,
 CH_OthType,
 ID_OthCont,
 ID_OthLine,
 IDS_OthCont,
 ID_Item,
 QtyBefore,
 QtyAdded,
 QtyAfter,
 QtyBinBefore,
 QtyBinAfter,
 WhenStarted,
 What,
 WhoAdmin,
 WhoSystem,
 WhoNetwork,
 Notes
 )

SELECT

 ID_StkBin,
 ID_StkLine,
 CH_OthType,
 ID_OthCont,
 ID_OthLine,
 IDS_OthCont,
 ID_Item,
 QtyBefore,
 QtyAdded,
 QtyAfter,
 QtyBinBefore,
 QtyBinAfter,
 `When`,
 What,
 'woozle',
 'from stk_history_legacy',
 '50.111.67.243',
 Notes

FROM stk_history_legacy </mysql> Note that there were some NULL values in When, which were translated into "zero date" values in stk_history_new. At the moment, I can't think of any way to recover those timestamps.