- $sql = "SELECT ".TB_PREF."stock_master.category_id,
- ".TB_PREF."stock_category.description AS cat_description,
- ".TB_PREF."stock_master.stock_id,
- ".TB_PREF."stock_master.description,
- IF(".TB_PREF."stock_moves.stock_id IS NULL, '', ".TB_PREF."stock_moves.loc_code) AS loc_code,
- SUM(IF(".TB_PREF."stock_moves.stock_id IS NULL,0,".TB_PREF."stock_moves.qty)) AS QtyOnHand
- FROM (".TB_PREF."stock_master,
- ".TB_PREF."stock_category)
- LEFT JOIN ".TB_PREF."stock_moves ON
- (".TB_PREF."stock_master.stock_id=".TB_PREF."stock_moves.stock_id OR ".TB_PREF."stock_master.stock_id IS NULL)
- WHERE ".TB_PREF."stock_master.category_id=".TB_PREF."stock_category.category_id
- AND (".TB_PREF."stock_master.mb_flag='B' OR ".TB_PREF."stock_master.mb_flag='M')";
+ //Setting return value
+ /*
+ * If true it will retun al barcodes as 14 digit strings
+ * If false it will return only what is needed UPC -> 12 / EAN -> 13 /
+ */
+
+ //Filter UPC coupon codes
+ /*
+ * If true it will return false on UPC coupon codes
+ * Type will always return UPC coupon code
+ */
+ $skip_coupon_codes = true;
+
+ //Trims parsed string to remove unwanted whitespace or characters
+ $code = (string)trim($code);
+ if (preg_match('/[^0-9]/', $code))
+ return false;
+
+ if (!is_string($code))
+ $code = strval($code);
+ $code = trim($code);
+ $length = strlen($code);
+ if(($length > 11 && $length <= 14) || $length == 8)
+ {
+ $zeroes = 18 - $length;
+ $fill = "";
+ for ($i = 0; $i < $zeroes; $i++)
+ $fill .= "0";
+ $code = $fill . $code;
+
+ $calc = 0;
+ for ($i = 0; $i < (strlen($code) - 1); $i++)
+ $calc += ($i % 2 ? $code[$i] * 1 : $code[$i] * 3);
+
+ if (substr(10 - (substr($calc, -1)), -1) != substr($code, -1))
+ return false;
+ elseif (substr($code, 5, 1) > 2)
+ {
+ //EAN / JAN / EAN-13 code
+ if ($get_type)
+ return 'EAN';
+ else
+ return (string)substr($code, ($return_value ? -14 : -13));
+ }
+ elseif (substr($code, 6, 1) == 0 && substr($code, 0, 10) == 0)
+ {
+ //EAN-8 / GTIN-8 code
+ if ($get_type)
+ return 'EAN-8';
+ else
+ return (string)substr($code, ($return_value ? -14 : -8));
+ }
+ elseif (substr($code, 5, 1) <= 0)
+ {
+ //UPC / UCC-12 GTIN-12 code
+ if ($get_type)
+ {
+ if (substr($code, 6, 1) == 5)
+ return 'UPC coupon code';
+ else
+ return 'UPC';
+ }
+ else
+ {
+ if ($skip_coupon_codes && substr($code, 6, 1) == 5)
+ return false;
+ return (string)substr($code, ($return_value ? -14 : -12));
+ }
+ }
+ elseif (substr($code, 0, 6) == 0)
+ {
+ //GTIN-14
+ if ($get_type)
+ return 'GTIN-14';
+ else
+ return (string)substr($code, -14);
+ }
+ else
+ {
+ //EAN code
+ if ($get_type)
+ return 'EAN';
+ else
+ return (string)substr($code,($return_value ? -14 : -13));
+ }
+ }
+ else
+ return false;
+}
+
+function getTransactions($category, $location, $item_like)
+{
+ $sql = "SELECT item.category_id,
+ category.description AS cat_description,
+ item.stock_id, item.units,
+ item.description, item.inactive,
+ IF(move.stock_id IS NULL, '', move.loc_code) AS loc_code,
+ SUM(IF(move.stock_id IS NULL,0,move.qty)) AS QtyOnHand
+ FROM ("
+ .TB_PREF."stock_master item,"
+ .TB_PREF."stock_category category)
+ LEFT JOIN ".TB_PREF."stock_moves move ON item.stock_id=move.stock_id
+ WHERE item.category_id=category.category_id
+ AND (item.mb_flag='B' OR item.mb_flag='M')";