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

#url

Attributes inherited from Common_Object

#elements, #functions, #ole

Instance Method Summary collapse

Methods inherited from OLE_QA::Framework::OLELS::E_Doc

#create_line, #remove_line

Methods inherited from Page

#open, #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
32
# 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'
  super(ole_session, url)
  @po_line = OLE_QA::Framework::OLEFS::Invoice_Line.new(@ole, 1)
  @current_items_line = OLE_QA::Framework::OLEFS::Invoice_Current_Item.new(@ole, 1)
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.



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
# File 'lib/olefs/pages/invoice.rb', line 35

def set_elements
  super
  element(:document_type_id)                      {b.span(:xpath => "//table[@class='uif-gridLayout']/descendant::th[span/label[contains(text(),'Invoice #:')]]/following-sibling::td[1]/div/span")}
  element(:document_type_status)                  {b.span(:xpath => "//table[@class='uif-gridLayout']/descendant::th[span/label[contains(text(),'Invoice Doc Status:')]]/following-sibling::td[1]/div/span")}
  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(:id => 'usave')}
  element(:approve_button)                        {b.button(:text => /blanket approve/)}
  element(:close_button)                          {b.button(:id => 'uclose')}
  element(:cancel_button)                         {b.a(:id => 'ucancel')}
  element(:calculate_button)                      {b.button(:text => /calculate/)}
  element(:messages)                              {b.ul(:id => 'pageValidationList').lis}
end

#set_functionsObject



84
85
86
87
# File 'lib/olefs/pages/invoice.rb', line 84

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

#wait_for_elementsObject

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



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

def wait_for_elements
  super
  # @wait_on << :element
end