lib/toolhound-ruby/inventory.rb in toolhound-ruby-1.0.4 vs lib/toolhound-ruby/inventory.rb in toolhound-ruby-1.0.5
- old
+ new
@@ -6,14 +6,92 @@
# Class to parse GitHub repository owner and name from
# URLs and to generate URLs
class Inventory < Base
# attr_accessor :owner, :name, :id
- self.table_name = "tblInventory"
- self.primary_key = "intInventoryID"
+ # self.table_name = "tblInventory"
+ # self.primary_key = "intInventoryID"
+
+ def default_selects
+ selects = {
+ inventory: ["intInventoryID", "intCategoryID", "intSubCategoryID", "intManufacturerID", "intVendorID", "dteCreatedDate", "dteModifiedDate"],
+ inventory_text: ["varPartNo", "varDescription", "txtNotes", {varUserField1: "varGlRevenue"}, {varUserField2: "varGlCOGSCode"}, {varUserField3: "varPhaseCode"}],
+ unit_of_measure_text: ["varUnitOfMeasure"],
+ category: ["varCategory"],
+ sub_category: ["varCategory"]
+ }
+ end
+ def default_joins
+ arr = []
+ arr << "INNER JOIN tblInventoryType ON tblInventory.intInventoryTypeID = tblInventoryType.intInventoryTypeID"
+ arr << "INNER JOIN tblInventoryText ON (tblInventoryText.intInventoryID = tblInventory.intInventoryID AND tblInventoryText.varLocaleID = '#{locale}')"
+ arr << "LEFT OUTER JOIN tblUnitOfMeasureText ON (tblUnitOfMeasureText.intUofMID = tblInventory.intUofMID )"
+ arr << "LEFT OUTER JOIN tblCategoryText AS tblCategory ON (tblCategory.intCategoryID = tblInventory.intCategoryID AND tblCategory.varLocaleID = '#{locale}')"
+ arr << "LEFT OUTER JOIN tblCategoryText AS tblSubCategory ON (tblSubCategory.intCategoryID = tblInventory.intSubCategoryID AND tblSubCategory.varLocaleID = '#{locale}')"
+ end
+
+ def default_wheres
+ [{bolIsActive: 1}, {bolDeleted: 0}]
+ end
+ # include_selects tblInventoryText: [:varPartNo, :varDescription, :txtNotes ],
+ # tblInventory: [:intInventoryID, :intCategoryID]
+ # def selects
+ # arr = build_selects(selects)
+ #
+ # arr.join(", ")
+ # end
+
+
+ # def joins
+ # # LEFT OUTER JOIN tblInventoryID ON tblInventoryID.intInventoryID = tblInventory.intInventoryID
+ # [
+ # {type: :inner, table: :inventory_type, on: "intInventoryTypeID"},
+ # {type: :inner, table: :inventory_text, on: ["intInventoryTypeID", varLocaleID: locale]},
+ # {type: :left_outer, table: :unit_of_measure_text, on: "intUofMID"},
+ # {type: :left_outer, table: :category_text, on: ["intUofMID", varLocaleID: locale], as: :category},
+ #
+ # ]
+ # arr.join(" ")
+ # end
+
+ def build_join(join)
+ join_types = {
+ inner: "INNER JOIN",
+ left: "LEFT OUTER JOIN",
+ left_outer: "LEFT OUTER JOIN",
+ left_inner: "LEFT INNER JOIN",
+ right: "RIGHT OUTER JOIN",
+ right_outer: "RIGHT OUTER JOIN",
+ right_inner: "RIGHT INNER JOIN",
+ }
+
+ type = join_types[join[:type] || :inner]
+ table = formatted_table_name(join[:table])
+
+ table_str = "#{table} "
+ if join[:as]
+ table = formatted_table_name(join[:as])
+ table_str += "AS #{table} "
+ end
+
+ on = join[:on]
+ case on.class.to_s
+ when "String"
+
+ end
+
+ # on_str = on ? "ON #{on}" : ""
+ "#{type} #{table_str} #{on_str}"
+
+
+ end
+
# includes :tblInventoryText,
# rename_attributes intLocationID: 'location_id'
-
+
+
+
+
end
end