class OLE_QA::Framework::OLEFS::Line_Item

A single Line Item in an OLE Financial System PURAP E-Document.

Public Instance Methods

set_elements() click to toggle source

Set line item elements.

# File lib/olefs/objects/line_item.rb, line 26
def set_elements
  super
  # Fields
  element(:copies_field)                      {b.text_field(:id => "document.item[#{line_id}].oleItemQuantity")}
  element(:parts_field)                       {b.text_field(:id => "document.item[#{line_id}].itemNoOfParts")}
  element(:list_price_field)                  {b.text_field(:id => "document.item[#{line_id}].itemListPrice")}
  element(:discount_field)                    {b.text_field(:id => "document.item[#{line_id}].itemDiscount")}
  element(:description_field)                 {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[1]/td[2]")}
  element(:item_type_field)                   {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[1]/td[3]")}
  element(:extended_cost_field)               {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[2]/td[3]")}
  element(:receipt_status_field)              {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[1]")}
  # Selectors
  element(:item_price_source_selector)        {b.select_list(:id => "document.item[#{line_id}].itemPriceSourceId")}
  element(:request_source_selector)           {b.select_list(:id => "document.item[#{line_id}].requestSourceId")}
  element(:item_type_selector)                {b.select_list(:id => "document.item[#{line_id}].itemTypeDescription")}
  element(:format_selector)                   {b.select_list(:id => "document.item[#{line_id}].formatTypeId")}
  element(:category_selector)                 {b.select_list(:id => "document.item[#{line_id}].categoryId")}
  element(:discount_type_selector)            {b.select_list(:id => "document.item[#{line_id}].itemDiscountType")}
  element(:location_selector)                 {b.select_list(:id => "document.item[#{line_id}].itemLocation")}
  # Buttons, Checkboxes, Etc.
  element(:delete_button)                     {b.input(:title => "Delete Item #{@line_number}")}
  element(:route_to_requestor_checkbox)       {b.checkbox(:id => "document.item[#{line_id}].itemRouteToRequestor")}
  element(:public_view_checkbox)              {b.checkbox(:id => "document.item[#{line_id}].itemPublicViewIndicator")}
  # Readonly Elements
  # Use these for closed, uneditable fields as with a pre-existing line item on a purchase order.
  element(:closed_description_field)          {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[1]/td[2]")}
  element(:closed_item_type_field)            {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[1]/td[3]")}
  element(:closed_extended_cost_field)        {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[2]/td[3]")}
  element(:closed_list_price_field)           {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[2]/td[4]")}
  element(:closed_copies_field)               {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[2]/td[1]")}
  element(:closed_parts_field)                {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[2]/td[2]")}
  element(:closed_receipt_status_field)       {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[1]")}
  element(:closed_copies_received_field)      {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[2]")}
  element(:closed_parts_received_field)       {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[3]")}
  element(:closed_item_price_source_field)    {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[4]")}
  element(:closed_request_source_field)       {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[3]/td[5]")}
  element(:closed_format_field)               {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[4]/td[1]")}
  element(:closed_category_field)             {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[4]/td[2]")}
  element(:closed_vendor_item_id_field)       {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[4]/td[3]")}
  element(:closed_requestor_field)            {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[4]/td[4]")}
  element(:closed_route_to_requestor_field)   {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[4]/td[5]")}
  element(:closed_unit_cost_field)            {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[5]/td[1]")}
  element(:closed_discount_field)             {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[5]/td[2]")}
  element(:closed_discount_type_field)        {b.td(:xpath => "//tr[td[@class='tab-subhead'][contains(text(),'Item #{@line_number}')]]/following-sibling::tr[5]/td[4]")}
  # Subtab Toggle Buttons                   # Matches all of type, then selects by index = line_id (i.e. if @line_num is 1, index is 0)
  element(:accounting_lines_toggle)           {b.input(:id => /tab-AccountingLines[0-9]+-imageToggle/, :index => line_id)}
  element(:notes_toggle)                      {b.input(:id => /tab-Notes[0-9]+-imageToggle/, :index => line_id)}
  element(:copies_toggle)                     {b.input(:id => /tab-Copies[0-9]+-imageToggle/, :index => line_id)}
  # New Accounting Line Elements
  element(:account_number_field)              {b.text_field(:id => "document.item[#{line_id}].newSourceLine.accountNumber")}
  element(:chart_selector)                    {b.select_list(:id => "document.item[#{line_id}].newSourceLine.chartOfAccountsCode")}
  element(:sub_account_number_field)          {b.text_field(:id => "document.item[#{line_id}].newSourceLine.subAccountNumber")}
  element(:object_field)                      {b.text_field(:id => "document.item[#{line_id}].newSourceLine.financialObjectCode")}
  element(:sub_object_field)                  {b.text_field(:id => "document.item[#{line_id}].newSourceLine.financialSubObjectCode")}
  element(:project_field)                     {b.text_field(:id => "document.item[#{line_id}].newSourceLine.projectCode")}
  element(:org_ref_id_field)                  {b.text_field(:id => "document.item[#{line_id}].newSourceLine.organizationReferenceId")}
  element(:dollar_field)                      {b.text_field(:id => "document.item[#{line_id}].newSourceLine.amount")}
  element(:percent_field)                     {b.text_field(:id => "document.item[#{line_id}].newSourceLine.accountLinePercent")}
  element(:add_account_button)                {b.input(:name => "methodToCall.insertSourceLine.line#{line_id}.anchoraccountingSourceAnchor")}
  # New Notes Line Elements
  element(:note_type_selector)                {b.select_list(:id => "document.item[#{line_id}].noteTypeId")}
  element(:note_field)                        {b.text_field(:id => "document.item[#{line_id}].note")}
  element(:add_note_button)                   {b.input(:name => "methodToCall.addNote.line#{line_id}")}
  # New Copies Line Elements
  element(:copies_line_copies_field)          {b.text_field(:id => "document.item[#{line_id}].itemCopies")}
  element(:location_copies_selector)          {b.select_list(:id => "document.item[#{line_id}].locationCopies")}
  element(:starting_copy_field)               {b.text_field(:id => "document.item[#{line_id}].startingCopyNumber")}
  element(:caption_field)                     {b.text_field(:id => "document.item[#{line_id}].caption")}
  element(:volume_number_field)               {b.text_field(:id => "document.item[#{line_id}].volumeNumber")}
  element(:add_copy_button)                   {b.input(:name => "methodToCall.addCopy.line#{line_id}")}
end
set_sublines() click to toggle source

Create accessor methods for subline objects.

# File lib/olefs/objects/line_item.rb, line 19
def set_sublines
  set_subline(:accounting_line, OLE_QA::Framework::OLEFS::Accounting_Line)
  set_subline(:notes_line, OLE_QA::Framework::OLEFS::Notes_Line)
  set_subline(:copies_line, OLE_QA::Framework::OLEFS::Copies_Line)
end