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