Class: Toolhound::Transaction

Inherits:
Base
  • Object
show all
Defined in:
lib/toolhound-ruby/transaction.rb

Overview

Class to parse GitHub repository owner and name from URLs and to generate URLs

Constant Summary

Constants inherited from Base

Base::DATE_TIME_FORMAT, Base::DB_TYPE_REGEX

Instance Attribute Summary

Attributes inherited from Base

#client, #connection

Instance Method Summary collapse

Methods inherited from Base

#_build_joins, #_build_selects, #_build_where, #all, #build_and_query, #build_group, #build_joins, #build_selects, #build_sql, #build_update_attributes, #build_update_sql, #build_where, #default_wheres, #find, #formatted_table_and_column, #formatted_table_name, #formmatted_column_name, #get_operator, #initialize, #insert, #locale, #merge_options, #parse_time, primary_key, #primary_key, primary_key=, #procedure, #query, rename_attributes, renamed_attributes, #table_name, table_name, table_name=, #transform_attribute_key, #transform_attributes, #transform_procedure_key, #transform_procedure_value, #transform_procedure_variables, #update, #update_query

Methods included from Util

#acronym_regex, #acronyms, #camelize, #demodulize, #underscore

Constructor Details

This class inherits a constructor from Toolhound::Base

Instance Method Details

#default_joinsObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/toolhound-ruby/transaction.rb', line 33

def default_joins
  arr = []
  arr << "INNER JOIN tblTransaction ON tblTransaction.intTransactionID = tblTransactionDetail.intTransactionID"
  arr << "INNER JOIN tblTransactionType ON tblTransactionType.intTransactionTypeID = tblTransactionDetail.intTransactionTypeID"
  arr << "INNER JOIN tblReturnStatus ON tblReturnStatus.intReturnStatusID = tblTransactionDetail.intReturnStatusID"
  arr << "INNER JOIN tblReturnStatusText ON tblReturnStatusText.intReturnStatusID = tblReturnStatus.intReturnStatusID AND tblReturnStatusText.varLocaleID = '#{locale}'"
  arr << "INNER JOIN tblInventoryStatusText ON tblInventoryStatusText.intInventoryStatusID = tblTransactionType.intInventoryStatusID AND tblInventoryStatusText.varLocaleID = '#{locale}'"
 arr << "INNER JOIN tblInventoryID ON tblInventoryID.intInventoryIdID = tblTransactionDetail.intInventoryIdID"
  arr << "INNER JOIN tblInventory ON tblInventory.intInventoryID = tblInventoryID.intInventoryID"
  arr << "INNER JOIN tblInventoryText ON tblInventoryText.intInventoryID = tblInventory.intInventoryID AND tblInventoryText.varLocaleID = '#{locale}'"
  arr << "LEFT OUTER JOIN tblInventoryItem ON tblInventoryItem.intInventoryItemID = tblInventoryID.intInventoryItemID"
  arr << "LEFT OUTER JOIN tblInventoryItemText ON tblInventoryItemText.intInventoryItemID = tblInventoryItem.intInventoryItemID AND tblInventoryItemText.varLocaleID = '#{locale}'"
  arr << "INNER JOIN tblEntity ON tblTransaction.intEntityID = tblEntity.intEntityID"
  arr << "INNER JOIN tblLocation AS tblEntityLocation ON tblEntityLocation.intEntityID = tblEntity.intEntityID"
  arr << "INNER JOIN tblLocationText AS tblEntityLocationText ON tblEntityLocationText.intLocationID = tblEntityLocation.intLocationID AND tblEntityLocationText.varLocaleID = '#{locale}'"
  arr << "LEFT OUTER JOIN tblJobText ON tblJobText.intJobID = tblTransaction.intJobID AND tblJobText.varLocaleID = '#{locale}'"


  # AND tblTransactionType.bolReturn = 'true'
  arr
end

#default_selectsObject

self.table_name = :rental self.primary_key = :int_rental_id



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/toolhound-ruby/transaction.rb', line 12

def default_selects
  # tblWorkOrder.varWorkOrderNo,
  # tblInventoryID.varInventoryID,
  {
    transaction_detail:     ['intInventoryIdID', :int_transaction_detail_id, :int_qty, :int_qty_return, :dec_unit_cost],
    transaction:            [:int_transaction_id, :dte_transaction_date, :var_transaction_no, :int_location_id, :int_entity_id, :int_job_id],
    transaction_type:       [:bol_return],
    job_text:               [:var_job_number, :var_job],
    return_status:          [:int_return_status_id],
    return_status_text:     [:var_return_status],
    inventory_status_text:  [:var_inventory_status],
    entity:                 [{var_entity_id: "varJobNo"}],
    entity_location_text:   [:var_location_name],

    inventory_id:           [{var_inventory_id: "varInventoryIdNo"}],
    inventory:              [:int_inventory_id, :int_category_id, :int_sub_category_id],
    inventory_text:         [:var_description, :var_part_no, {varUserField1: "varGlRevenue"}, {varUserField2: "varGlCOGSCode"}, {varUserField3: "varPhaseCode"}],
    inventory_item_text:    [:var_serial_number]
  }
end

#remove(job_id) ⇒ Object

def insert(variables = {})

vars = {created_user_id: 1, modified_user_id: 1, active: true, job: nil, created_date: nil, modified_date: nil}
# procedure("Job_Insert", vars)

end



110
111
112
# File 'lib/toolhound-ruby/transaction.rb', line 110

def remove(job_id)
  # procedure("Job_Delete", {job_id: job_id})
end

#return_periods(options = {}) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/toolhound-ruby/transaction.rb', line 56

def return_periods(options = {})
  options       = (options || {}).dup
  entity_id     = options.delete :entity_id
  damaged_only  = options.delete :damaged_only

  wheres = []

  wheres << {'transaction.int_entity_id' => entity_id} if entity_id

  selects = {
    transaction: [
      {dte_transaction_date: {as: :min_date, agg: :min} },
      {dte_transaction_date: {as: :max_date, agg: :max} }
    ]
  }
  joins = []
  joins << "INNER JOIN tblTransaction ON tblTransaction.intTransactionID = tblTransactionDetail.intTransactionID"
  joins << "INNER JOIN tblTransactionType ON
  	         tblTransactionType.intTransactionTypeID = tblTransactionDetail.intTransactionTypeID
  	        AND tblTransactionType.bolReturn = 'true'
           "
  if damaged_only
    joins << "INNER JOIN tblReturnStatus ON tblReturnStatus.intReturnStatusID = tblTransactionDetail.intReturnStatusID"
    wheres << "(tblReturnStatus.bolCreateWO = 1 OR tblReturnStatus.bolRetire = 1)"
  end

  build_and_query(joins: joins, selects: selects, where: wheres, from: 'tblTransactionDetail').first

end

#returns(options = {}) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/toolhound-ruby/transaction.rb', line 86

def returns(options = {})
  options       = (options || {}).dup
  entity_id     = options.delete :entity_id
  from_date     = options.delete :from
  to_date       = options.delete :to
  damaged_only  = options.delete :damaged_only

  selects = default_selects
  joins   = default_joins
  wheres  = []
  wheres << {"transaction_type.bol_return" => 'true'}

  wheres << {"transaction.int_entity_id" => entity_id}                                  if entity_id.present?
  wheres << "tblTransaction.dteTransactionDate BETWEEN '#{parse_time(from_date)}' AND '#{parse_time(to_date)}'" if from_date && to_date
  wheres << "(tblReturnStatus.bolCreateWO = 1 OR tblReturnStatus.bolRetire = 1)"        if damaged_only == true

  build_and_query(joins: joins, selects: selects, where: wheres, from: 'tblTransactionDetail', order: "tblEntityLocationText.varLocationName")

end