lib/toolhound-ruby/inventory_item.rb in toolhound-ruby-1.0.10 vs lib/toolhound-ruby/inventory_item.rb in toolhound-ruby-1.0.11

- old
+ new

@@ -36,11 +36,11 @@ :int_inventory_item_id, "intQOH", :int_inventory_id, :int_inventory_type_id, :dec_cost, :dte_created_date, :dte_modified_date, {int_curr_location_id: :entity_id} ], inventory_item_text: [:var_serial_number, :var_user_field1, :var_user_field2, :var_user_field3, :var_bin], inventory: [:int_category_id, :int_sub_category_id], - inventory_text: [:var_description, :var_part_no], + inventory_text: [:var_description, :var_part_no, {varUserField1: "varGlRevenue"}, {varUserField2: "varGlCOGSCode"}, {varUserField3: "varPhaseCode"}], inventory_id: ["intInventoryIdID", {varInventoryID: "inventory_idid"}] } end @@ -64,24 +64,46 @@ def for_inventory(inventory_id) end - def charges_for_entity(entity_id) + def charges_for_entity(entity_id, job_id=nil) joins = default_joins joins << "INNER JOIN tblInventoryType ON tblInventoryType.intInventoryTypeID = tblInventoryItem.intInventoryTypeID AND tblInventoryType.bolSerialized = 1" joins << "INNER JOIN( SELECT tblRentalItem.intInventoryIDID, SUM(tblRentalItem.decTotalRent) AS decTotalRent FROM tblRentalItem INNER JOIN tblRentalDetail ON tblRentalDetail.intRentalDetailID = tblRentalItem.intRentalDetailID INNER JOIN tblRental ON tblRental.intRentalID = tblRentalDetail.intRentalID AND tblRental.intEntityID = '#{entity_id}' GROUP BY tblRentalItem.intInventoryIDID ) AS tblRentalQuery ON tblRentalQuery.intInventoryIDID = tblInventoryID.intInventoryIdID" + joins << "LEFT OUTER JOIN ( + SELECT rc.intInventoryIDID, MAX(rc.intRentalChargeID) AS latest_id + FROM tblRentalCharge as rc + WHERE rc.intEntityID = '#{entity_id}' + GROUP BY rc.intInventoryIDID + ) AS tblLatestCharge ON tblLatestCharge.intInventoryIDID = tblInventoryID.intInventoryIdID" + joins << "LEFT OUTER JOIN ( + SELECT tblRentalCharge.intJobID, tblRentalCharge.intRentalChargeID + FROM tblRentalCharge + WHERE intEntityID = '#{entity_id}' + ) AS tblJobCharge ON tblJobCharge.intRentalChargeID = tblLatestCharge.latest_id" + joins << "LEFT OUTER JOIN tblJobText on tblJobText.intJobID = tblJobCharge.intJobID AND tblJobText.varLocaleID = '#{locale}'" selects = default_selects + selects[:job_text] = [:int_job_id, :int_job_text_id, :var_job_number, :var_job] selects[:rental_query] = [:dec_total_rent] - build_and_query(selects: selects, where: [], joins: joins, order: "tblInventoryText.varPartNo") + # (tblInventoryItem.intQOH=@p_QOH OR @p_QOH IS NULL) + wheres = [] + if job_id + if job_id == :null + wheres << "(tblJobText.intJobID IS NULL)" + else + wheres << "(tblJobText.intJobID = #{job_id})" + end + end + build_and_query(selects: selects, where: wheres, joins: joins, order: "tblInventoryText.varPartNo") # SELECT tblInventoryItem.*, subquery1.total_rent FROM tblInventoryItem # INNER JOIN tblInventoryID ON tblInventoryItem.intInventoryItemID = tblInventoryID.intInventoryItemID # INNER JOIN tblInventoryItemText ON tblInventoryItemText.intInventoryItemID = tblInventoryItem.intInventoryItemID # INNER JOIN tblInventoryType ON tblInventoryType.intInventoryTypeID = tblInventoryItem.intInventoryTypeID AND tblInventoryType.bolSerialized = 1