Class: OLE_QA::Framework::OLEFS::Invoice

Inherits:
OLE_QA::Framework::OLELS::E_Doc show all
Defined in:
lib/olefs/pages/invoice.rb

Overview

An OLE Library System invoice document.

Instance Attribute Summary collapse

Attributes inherited from Page

#lines, #url, #wait_on

Attributes inherited from Common_Object

#elements, #functions, #ole

Instance Method Summary collapse

Methods inherited from Page

#lookup, #lookup_url, #open, #set_line, #wait_for_element, #wait_for_page_to_load

Methods included from Helpers

#browser, #load_yml, #set_element, #set_function

Constructor Details

#initialize(ole_session) ⇒ Invoice

Initialize with URL for a new invoice.



26
27
28
29
30
31
# File 'lib/olefs/pages/invoice.rb', line 26

def initialize(ole_session)
  url = ole_session.url + '/portal.do?channelTitle=Create&channelUrl='
  url += ole_session.url + '/ole-kr-krad/OLEInvoice?viewId=OLEInvoiceDocumentView&methodToCall=docHandler&command=initiate&documentClass=org.kuali.ole.krad.transaction.documents.OLEInvoiceDocument'
  lookup_url = "ole-kr-krad/OLEInvoice?viewId=OLEInvoiceDocumentView&methodToCall=docHandler&docId=_DOC_ID_&command=displayDocSearchView"
  super(ole_session, url, lookup_url)
end

Instance Attribute Details

#current_items_lineObject (readonly)

A flexible object representing a Purchase Order line item in the Current Items tab of an Invoice document.



23
24
25
# File 'lib/olefs/pages/invoice.rb', line 23

def current_items_line
  @current_items_line
end

#po_lineObject (readonly)

A flexible object representing a Purchase Order line on an Invoice document.



20
21
22
# File 'lib/olefs/pages/invoice.rb', line 20

def po_line
  @po_line
end

Instance Method Details

#set_elementsObject

Define basic invoice document screen elements.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/olefs/pages/invoice.rb', line 34

def set_elements
  super
  element(:document_overview_toggle)              {b.img(:id => 'Uif-Inv-DocumentOverviewSection_toggle_col')}
  element(:document_status, true)                 {b.div(:class => 'uif-documentStatus').span(:index => 0)}
  element(:document_id, true)                     {b.div(:class => 'uif-documentNumber').span(:index => 0)}
  element(:document_type_status)                  {b.div(:id => 'invoice-appDocStatus').span(:id => 'invoice-appDocStatus_control')}
  element(:fiscal_year)                           {b.span(:id => 'invoice-documentYear_control')}
  element(:total_amount)                          {b.span(:id => 'invoice-documentTotalAmount_control')}
  element(:vendor_selector)                       {b.select_list(:id => 'invoice-vendorHeaderIdentifier_control')}
  element(:vendor_invoice_num_field)              {b.text_field(:id => 'invoice-invoiceNumber_control')}
  element(:payment_class_field)                   {b.text_field(:id => 'invoice-invoicePaymentClassification_control')}
  element(:vendor_invoice_amt_field)              {b.text_field(:id => 'invoice-invoiceVendorAmount_control')}
  element(:invoice_type_selector)                 {b.select_list(:id => 'invoice-invoiceTypeId_control')}
  element(:bank_code_field)                       {b.text_field(:id => 'invoice-invoiceBankCode_control')}
  element(:pay_date_field)                        {b.text_field(:id => 'invoice-invoicePayDate_control')}
  element(:immediate_pay_checkbox)                {b.checkbox(:id => 'invoice-invoicePayDateCheck_control')}
  element(:invoice_date_field)                    {b.text_field(:id => 'invoice-invoiceDate_control')}
  element(:pay_attachment_checkbox)               {b.checkbox(:id => 'paymentAttachmentIndicator_control')}
  element(:invoice_subtype_selector)              {b.select_list(:id => 'invoice-invoiceSubTypeId_control')}
  element(:payment_method_selector)               {b.select_list(:id => 'invoice-paymentMethod_control')}
  element(:po_number_field)                       {b.text_field(:id => 'OleInvoice_POLookup_control')}
  element(:po_add_button)                         {b.button(:id => 'addProcessItem-button')}
  element(:freight_cost_field)                    {b.text_field(:id => 'additionalItem_extendedCost_line0_control')}
  element(:freight_description_field)             {b.text_field(:id => 'additionalItem_itemDesc_line0_control')}
  element(:shipping_cost_field)                   {b.text_field(:id => 'additionalItem_extendedCost_line1_control')}
  element(:shipping_description_field)            {b.text_field(:id => 'additionalItem_itemDesc_line1_control')}
  element(:min_order_cost_field)                  {b.text_field(:id => 'additionalItem_extendedCost_line2_control')}
  element(:min_order_description_field)           {b.text_field(:id => 'additionalItem_itemDesc_line2_control')}
  element(:misc_cost_field)                       {b.text_field(:id => 'additionalItem_extendedCost_line3_control')}
  element(:misc_description_field)                {b.text_field(:id => 'additionalItem_itemDesc_line3_control')}
  element(:prorate_price_checkbox)                {b.checkbox(:id => 'myAccount_prorateByDollar_control')}
  element(:prorate_qty_checkbox)                  {b.checkbox(:id => 'myAccount_prorateByQuantity_control')}
  element(:prorate_manual_checkbox)               {b.checkbox(:id => 'myAccount_prorateByManual_control')}
  element(:no_prorate_checkbox)                   {b.checkbox(:id => 'myAccount_noProrate_control')}
  element(:prior_total_field)                     {b.text_field(:id => 'invoiceTotal_control')}
  element(:grand_total)                           {b.span(:id => 'myAccount_grandTotal_control')}
  element(:submit_button)                         {b.button(:text => /submit/)}
  element(:save_button)                           {b.button(:text => /save/)}
  element(:approve_button)                        {b.button(:text => /blanket approve/)}
  element(:close_button)                          {b.button(:text => /close/)}
  element(:cancel_button)                         {b.a(:id => 'ucancel')}
  element(:calculate_button)                      {b.button(:text => /calculate/)}
  element(:messages)                              {b.ul(:id => 'pageValidationList').lis}
end

#set_functionsObject



86
87
88
89
# File 'lib/olefs/pages/invoice.rb', line 86

def set_functions
  super
  function(:message)                              {|which = 1| b.ul(:id => 'pageValidationList').li(:index => which - 1)}
end

#set_linesObject



91
92
93
94
# File 'lib/olefs/pages/invoice.rb', line 91

def set_lines
  set_line(:po_line, OLE_QA::Framework::OLEFS::Invoice_Line)
  set_line(:current_items_line, OLE_QA::Framework::OLEFS::Invoice_Current_Item)
end

#wait_for_elementsObject

Wait on these elements before the page is considered to have fully loaded.



80
81
82
83
84
# File 'lib/olefs/pages/invoice.rb', line 80

def wait_for_elements
  super
  # Remove document ID from wait_for_elements.
  @wait_on.delete(:document_id)
end