def local_employee_discount_line_item(settings_index):

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('employee discount on line item')
    general_functions.extended_wait("main_page_key_pad", 300)

    settings_for_this_test = l_test_settings[settings_index]
    general_functions.fill_basket(settings_for_this_test[0],
                                  settings_for_this_test[1])
    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    add_employee(settings_for_this_test)

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'EMPLOYEE ITEM DISCOUNT')

    general_buttons.basket_page_employee_percentage_discounts_menu_btns_click(
        settings_for_this_test[4])

    # click TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')
    wait(3)
    general_functions.extended_wait('four_eyes_form', 60)

    general_functions.extended_wait('payment_page_key_pad', 30)
    # general_functions.four_eyes(l_general_test_settings[4], l_general_test_settings[5])
    general_functions.pay_transaction_with_tender([['tender', 'DINERS']])

    general_functions.end_of_test_case()
Exemple #2
0
def pick_up():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('pick up')
    l_general_test_settings = test_settings.general_test_settings()

    general_buttons.main_page_footer_menu_btns_click('OTHER')

    general_buttons.main_page_other_menu_btns_click('PICK UP')

    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])

    time.sleep(6)
    for x in range(0, l_general_test_settings[9]):
        time.sleep(0.5)

        number_of_items = l_test_settings

        type(str(number_of_items[x]))
        time.sleep(0.5)
        type(Key.ENTER)
        time.sleep(0.5)
        general_functions.writeTestResults("def pick up", "GUI", "data",
                                           str(x), "",
                                           "number of denominations", "", "")
        x += 1

    general_buttons.pick_up_page_click('TAKE OVER')

    type(Key.ENTER)

    general_functions.close_drawer_msg()
def local_employee_discount_transaction(settings_index):

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('employee discount on transaction')
    general_functions.extended_wait("main_page_key_pad", 300)

    settings_for_this_test = l_test_settings[settings_index]

    general_functions.fill_basket(settings_for_this_test[0],
                                  settings_for_this_test[1])
    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    add_employee(settings_for_this_test)  # add employee data

    # test_cases.does_part_of_screen_exist('employee_search_screen', 0.5, 'are all elements on the employee_search_screen OK')
    # test_cases.does_part_of_screen_exist('employee_discount_btns', 0.5, 'are the right buttons present in the employee discount menu?')

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'EMPLOYEE TRANSACTION DISCOUNT')

    general_buttons.basket_page_employee_percentage_discounts_menu_btns_click(
        settings_for_this_test[5])

    # click TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')
    wait(3)
    # general_functions.extended_wait('four_eyes_form', 60)
    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])
    general_functions.extended_wait('payment_page_key_pad', 30)
    general_functions.pay_transaction_with_multiple_tenders(
        [['DINERS', 'REST']])

    general_functions.end_of_test_case()
def returns_with_out_receipt_item_not_found_and_exchange():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('returns without receipt item not found and exchange')
    # add items to be returned
    returns_with_out_receipt_add_return_items()

    # click SEARCH ITEM button
    general_buttons.main_page_key_pad_btns_click('ITEM SEARCH')

    # move to next line on search form
    type(Key.ENTER)

    # article number
    type(l_test_settings[0])

    # click SEARCH button
    general_buttons.article_search_form_btns_click('SEARCH')

    general_functions.extended_wait('basket_page_key_pad', 30)

    # finish returns
    returns_with_receipt.finish_returns()

    # general end of test case
    general_functions.end_of_test_case()
def with_loyalty_number():
    general_functions.start_of_test_case('returns without receipt with loyalty number')

    # add items to be returned
    returns_with_out_receipt_add_return_items()
    wait(1)

    # customer add loyalty number

    general_buttons.basket_page_returns_footer_menu('CUSTOMER btn', 200, 0)

    general_buttons.click_element('basket_page_customer_menu', -200, -70, 'ENTER LOYALTY NUMBER btn')
    type(l_test_settings[2])
    type(Key.ENTER)
    type(Key.ENTER)

    general_buttons.click_element('basket_page_customer_loyalty_menu', 70, -70, 'ENTER VOUCHER NUMBER btn')
    type(l_test_settings[3])
    type(Key.ENTER)
    type(Key.ENTER)

    general_buttons.click_element('secondary_pages_key_pad', 100, 100, 'TOTAL btn')
    receipt_meta_data_array = general_functions.get_receipt_meta_data()
    general_functions.four_eyes(l_general_test_settings[4], l_general_test_settings[5])
    type(Key.ENTER)
    general_functions.pay_transaction_with_tender([['tender','MAESTRO']])

    # general end of test case
    general_functions.end_of_test_case()
Exemple #6
0
def no_sale():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('no sale')

    wait(1)

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('main_page')

    general_buttons.main_page_footer_menu_btns_click('OTHER')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('other_screen')

    general_buttons.main_page_other_menu_btns_click('NO SALE')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('open_drawer_select_reason')

    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])
    type(Key.ENTER)

    wait(2)

    general_functions.close_drawer_msg()

    general_functions.end_of_test_case()
def bonus_buys():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('bonus buys')

    l_test_settings = test_settings.bonus_buys()

    x = 0
    while x < len(l_test_settings):
        y = l_test_settings[x]
        print("y: " + str(y))

        general_functions.fill_basket(y[0], y[1])
        general_buttons.main_page_key_pad_btns_click('TOTAL')
        general_functions.pay_transaction_with_multiple_tenders([['ALIPAY', 'REST']])

        # TEST CASE
        if is_gui_test == 'YES':
            gui_screens.check_gui_element('payment_screen')

        wait(1)

        # TEST CASE
        if is_gui_test == 'YES':
            gui_screens.check_gui_element('main_page')


        x += 1

    general_functions.end_of_test_case( )
def suspend():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('TC suspend sale with loyalty number')

    y = l_test_settings[0]
    general_functions.fill_basket(str(y[0]), y[1])
    # select loyalty client by loyalty number

    general_buttons.main_page_footer_menu_btns_click('CUSTOMER')
    general_buttons.main_page_customer_menu_btns_click('LOYALTY NUMBER SEARCH')

    type(y[4])
    type(Key.ENTER)
    type(Key.ENTER)
    type(Key.ENTER)

    general_functions.extended_wait('payment_page_key_pad_TOTAL', 30)
    general_buttons.main_page_key_pad_btns_click('TOTAL')

    receipt_meta_data_array = general_functions.get_receipt_meta_data()

    general_buttons.hamburger_click('HAMBURGER')
    general_buttons.hamburger_basket_menu_btns_click('SUSPEND')

    type(Key.ENTER)

    general_functions.end_of_test_case()
def remove():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('remove promotion')

    general_functions.fill_basket(l_test_settings[0], l_test_settings[1])
    wait(5)

    # select first line item
    Location(254, 214).click()

    general_buttons.basket_page_edit_line_item_click('REMOVE PROMOTION')

    general_buttons.item_editing_key_pad_btns_click('END EDITING')

    general_buttons.basket_page_key_pad_btns_click('TOTAL')

    receipt_meta_data_array = general_functions.get_receipt_meta_data()

    general_functions.pay_transaction_with_multiple_tenders([['VISA', 'REST']])

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('payment_screen')

    wait(1)

    # type(Key.ENTER)

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('main_page')

    general_functions.end_of_test_case()
def returns_with_out_receipt_item_not_found():
    general_functions.start_of_test_case('returns without receipt item not found')
    # add items to be returned
    returns_with_out_receipt_add_return_items()
    # finish returns
    returns_with_receipt.finish_returns()
    # general end of test case
    general_functions.end_of_test_case()
def item_not_found():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case(
        'TC item not found all divisions test ')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('main_page')

    time.sleep(5)

    if is_gui_test == 'YES':
        # for the GUI test 1 division is enough
        number_of_divisions = 1
    else:
        number_of_divisions = l_test_settings[0]

    for div in range(0, number_of_divisions):

        general_buttons.main_page_items_gv_menu_btns_click('ITEM NOT FOUND')

        if div == 0:
            # TEST CASE
            if is_gui_test == 'YES':
                gui_screens.check_gui_element('item_not_found')

        division = "DIV " + str(div + 1)

        print('division: ' + str(division))

        general_buttons.main_page_items_gv_menu_item_not_found_btns_click(
            division)

        type("123456789")

        type(Key.ENTER)
        amount = 50 + div
        type(str(amount) + ".00")

        type(Key.ENTER)

    # click the TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')

    general_functions.extended_wait('four_eyes_form', 60)
    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])

    general_functions.extended_wait('payment_page_key_pad', 60)

    general_functions.pay_transaction_with_multiple_tenders(l_test_settings[1])

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('main_page')

    # general end of test case
    general_functions.end_of_test_case()
Exemple #12
0
def check_gui_element(element):

    general_functions.start_of_test_case('GUI test ' + country + ' ' + brand + ' ' + element)

    picture = country + '_' + brand + '_' + element + '.png'

    if exists(Pattern(picture).similar(0.70)):
        test_result = "OK"
        reg = find(Pattern(picture).similar(0.70))
    else:
        test_result = "NOK"
        reg = ""

    print("test result for function: " + test_result)
    general_functions.writeTestResults('test result', "GUI", element, test_result, "", "", reg, picture)
Exemple #13
0
def line_items():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('commission sale line item')

    general_functions.fill_basket(l_test_settings[0], l_test_settings[1])

    # select first line item
    Location(254, 214).click()

    general_buttons.main_page_key_pad_btns_click('SALES PERSON')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('sales_person_search')

    sleep(2)
    type(Key.ENTER)
    sleep(2)
    type(Key.ENTER)
    # general_functions.pause_test_case_msg()

    # select first line item
    Location(254, 214).click()

    general_buttons.main_page_key_pad_btns_click('SALES PERSON')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('select_sales_person')

    sleep(2)
    type(Key.ENTER)
    sleep(2)
    type(Key.DOWN)
    type(Key.ENTER)
    # general_functions.pause_test_case_msg()

    general_buttons.main_page_key_pad_btns_click('TOTAL')

    receipt_meta_data_array = general_functions.get_receipt_meta_data()
    if brand == 'TH':  # TH has zalando as tender
        general_functions.pay_transaction_with_multiple_tenders(
            [['MAESTRO', 'REST']])
    else:
        general_functions.pay_transaction_with_multiple_tenders(
            [['MAESTRO', 'REST']])

    general_functions.end_of_test_case()
Exemple #14
0
def custom():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('item not found all divisions')

    l_general_test_settings = test_settings.general_test_settings()
    locale = l_general_test_settings[8]
    brand = l_general_test_settings[6]
    transactions = test_settings.custom(locale)

    # test_cases.item_not_found_tc_0010("does the main screen look OK?")

    time.sleep(5)

    for transaction in transactions:
        general_buttons.main_page_items_gv_menu_btns_click('ITEM NOT FOUND')

        division = transaction[0]

        print('division: ' + division)

        general_buttons.main_page_items_gv_menu_item_not_found_btns_click(
            division)

        type(transaction[1])

        type(Key.ENTER)

        type(transaction[2])

        type(Key.ENTER)

        # click the TOTAL button
        general_buttons.main_page_key_pad_btns_click('TOTAL')

        general_functions.extended_wait('four_eyes_form', 60)

        general_functions.four_eyes(l_general_test_settings[4],
                                    l_general_test_settings[5])

        general_functions.extended_wait('payment_page_key_pad', 60)

        general_functions.pay_transaction_with_multiple_tenders(transaction[3])

        general_functions.extended_wait('main_page_key_pad', 60)

    # general end of test case
    general_functions.end_of_test_case()
def basic_sale_chf_to_eur():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('convert CHF to EUR basic sale')

    general_functions.fill_basket(l_test_settings[0], l_test_settings[1])

    general_buttons.main_page_key_pad_btns_click('TOTAL')

    general_buttons.payment_page_footer_menu_btns_click('OTHER TENDERS')
    
    general_buttons.payment_page_other_tenders_menu_btns_click('ZALANDO')

    general_functions.extended_wait('payment_page_key_pad', 1)

    general_functions.pay_transaction_with_multiple_tenders([['CASH', 'REST']])
    
    # general end of test case
    general_functions.end_of_test_case()
Exemple #16
0
def transaction():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('commission sale line transaction')

    general_functions.fill_basket(l_test_settings[0], l_test_settings[1])
    # select first line item
    general_buttons.main_page_key_pad_btns_click('SALES PERSON')
    type(Key.ENTER)
    type(Key.ENTER)

    # general_buttons.click_element_in_region('basket_page_key_pad_end_editing', 100, 100, 'END EDITING btn', general_functions.get_key_pad_area(), 0.7)

    general_buttons.main_page_key_pad_btns_click('TOTAL')

    receipt_meta_data_array = general_functions.get_receipt_meta_data()
    general_functions.pay_transaction_with_multiple_tenders(
        [['MAESTRO', 'REST']])

    general_functions.end_of_test_case()
def search():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('TC search loyalty number')

    y = l_test_settings[0]
    general_functions.fill_basket(str(y[0]), y[1])
    # select loyalty client by loyalty number

    general_buttons.main_page_footer_menu_btns_click('CUSTOMER')
    general_buttons.main_page_customer_menu_btns_click('LOYALTY NUMBER SEARCH')

    type(y[4])
    type(Key.ENTER)
    type(Key.ENTER)
    type(Key.ENTER)

    general_functions.pay_transaction_with_multiple_tenders(y[4])

    general_functions.end_of_test_case()
Exemple #18
0
def gift_receipt_from_transaction():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('print gift receipt from transaction')

    # make test receipt and get it to print it as a gift receipt
    get_receipt_for_gift_receipt(
        general_functions.make_test_receipts(l_test_settings[0],
                                             l_test_settings[1]))

    wait(10)
    # select all transaction items
    general_buttons.gift_receipt_key_pad_btns_click('SELECT ALL')

    # print gift receipt
    sleep(2)
    general_buttons.gift_receipt_key_pad_btns_click('PRINT')

    # general end of test case
    general_functions.end_of_test_case()
Exemple #19
0
def bonus_buys():

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('bonus buys')

    l_test_settings = test_settings.bonus_buys(locale)

    x = 0
    while x < len(l_test_settings):
        y = l_test_settings[x]
        print("y: " + str(y))

        general_functions.fill_basket(y[0], y[1])
        general_buttons.main_page_key_pad_btns_click('TOTAL')
        general_functions.pay_transaction_with_multiple_tenders([['MAESTRO', 'REST']])

        x += 1

    general_functions.end_of_test_case()
def add():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('TC add loyalty number')

    print(str(l_test_settings))

    for test_data in l_test_settings:
        general_functions.start_of_test_case('TC add loyalty number ' +
                                             test_data[5])

        general_functions.fill_basket(test_data[0], test_data[1])

        general_buttons.main_page_footer_menu_btns_click('CUSTOMER')

        # click ENTER LOYALTY NUMBER button
        general_buttons.main_page_customer_menu_btns_click(
            'ENTER LOYALTY NUMBER')

        type(test_data[2])
        type(Key.ENTER)
        wait(1)
        type(Key.ENTER)
        wait(2)

        # click ENTER VOUCHER NUMBER button

        general_buttons.main_page_customer_menu_btns_click(
            'ENTER VOUCHER NUMBER')
        type(test_data[3])
        type(Key.ENTER)
        wait(1)
        type(Key.ENTER)
        wait(2)

        general_functions.extended_wait('payment_page_key_pad_TOTAL', 30)

        general_buttons.main_page_key_pad_btns_click('TOTAL')
        general_functions.extended_wait('payment_page_key_pad', 30)
        general_functions.pay_transaction_with_multiple_tenders(test_data[4])

        # general end of test case
        general_functions.end_of_test_case()
def returns_with_receipt_and_exchange():
    general_functions.start_of_test_case('returns with receipt and exchange')
    receipt_number = general_functions.make_test_receipts(
        l_test_settings[0], l_test_settings[1])

    print('receipt_number: ' + receipt_number)

    general_functions.extended_wait('main_page_key_pad', 30)

    returns_with_receipt_return_items(receipt_number)

    # click SEARCH ITEM button

    general_buttons.main_page_key_pad_btns_click('ITEM SEARCH')

    # move to next line on search form
    type(Key.ENTER)
    # article number
    type(l_test_settings[0])
    # click SEARCH button
    # article_search_form_en_GB.png"
    general_buttons.click_element('article_search_form', 300, 40, 'search btn')
    # add product(s)
    z = 0
    print('number of products: ' + str(l_test_settings[1]))
    while z < l_test_settings[1] - 2:
        general_buttons.click_element('add_or_substract_product', 100, 0,
                                      'PLUS btn')
        z += 1
        print('z: ' + str(z))

    general_buttons.main_page_key_pad_btns_click('TOTAL')
    general_functions.extended_wait('four_eyes_form', 60)
    # In case of italy there is no 4 eyes
    if l_general_test_settings[13] != 'IT':
        general_functions.four_eyes(l_general_test_settings[4],
                                    l_general_test_settings[5])
    general_functions.extended_wait('payment_page_key_pad', 60)
    general_functions.pay_transaction_with_multiple_tenders(
        [['DINERS', 'REST']])

    general_functions.end_of_test_case()
def remove():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('TC remove loyalty number')

    y = l_test_settings[0]
    general_functions.fill_basket(str(y[0]), y[1])

    general_buttons.main_page_footer_menu_btns_click('CUSTOMER')

    # click ENTER LOYALTY NUMBER button
    general_buttons.main_page_customer_menu_btns_click('ENTER LOYALTY NUMBER')

    type(y[2])
    type(Key.ENTER)
    wait(1)
    type(Key.ENTER)
    wait(2)

    # click ENTER VOUCHER NUMBER button

    general_buttons.main_page_customer_menu_btns_click('ENTER VOUCHER NUMBER')
    type(y[3])
    type(Key.ENTER)
    wait(1)
    type(Key.ENTER)
    wait(2)

    general_functions.extended_wait('payment_page_key_pad_TOTAL', 30)
    general_buttons.main_page_key_pad_btns_click('TOTAL')
    type(Key.ENTER)
    wait(2)

    # remove loyalty
    general_buttons.main_page_footer_menu_btns_click('CUSTOMER')

    general_buttons.main_page_customer_menu_btns_click('REMOVE LOYALTY')
    type(Key.ENTER)

    general_functions.pay_transaction_with_multiple_tenders(y[4])

    general_functions.end_of_test_case()
Exemple #23
0
def drop_off():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('drop off')

    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])

    time.sleep(6)

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('drop_off')

    for x in range(0, l_general_test_settings[9]):
        time.sleep(0.5)

        number_of_items = l_test_settings

        type(str(number_of_items[x]))
        time.sleep(0.5)
        type(Key.ENTER)
        time.sleep(0.5)
        general_functions.writeTestResults("def drop_off", "GUI", "data",
                                           str(x), "",
                                           "number of denominations", "", "")
        x += 1

    general_buttons.drop_off_page_click('TAKE OVER')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('drop_off_overview')

    type(Key.ENTER)

    general_functions.close_drawer_msg()

    # general end of test case
    general_functions.end_of_test_case()
Exemple #24
0
def basic_sale_off_line_card():
    general_functions.errorhandling("ABORT")

    l_general_test_settings = test_settings.general_test_settings()
    locale = l_general_test_settings[8]
    l_test_settings = test_settings.global_blue_transactions(locale)

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('basic sale paid with ' + y[2])

    wait(1)

    general_functions.fill_basket(y[0], y[1])

    general_buttons.main_page_key_pad_btns_click('TOTAL')

    general_buttons.payment_page_other_menu_btns_click('ISSUE TAX FREE')

    type(Key.ENTER)

    general_functions.extended_wait('payment_page_key_pad', 30)
    general_functions.pay_transaction_with_multiple_tenders([y[2], 'REST']])
Exemple #25
0
def non_merchandise_sale():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('non merchandise sale all types')
    general_functions.extended_wait("main_page_key_pad", 300)

    print('length: ' + str(len(l_test_settings)))

    for transaction in l_test_settings:

        general_buttons.main_page_items_gv_menu_btns_click(
            'NON MERCHANDISE SALE')

        # TEST CASE
        if is_gui_test == 'YES':
            gui_screens.check_gui_element('non_merchandise_sale_footer')

        general_buttons.main_page_items_gv_menu_non_merchandise_sale_btns_click(
            transaction[0])

        wait(0.5)

        # enter price
        type(str(transaction[1]))

        # confirm
        type(Key.ENTER)

    # click TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')

    wait(2)

    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])
    wait(2)

    general_functions.pay_transaction_with_multiple_tenders([['AMEX', 'REST']])

    general_functions.end_of_test_case()
Exemple #26
0
def gift_receipt_from_line_items():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('print gift receipt from line item')

    # make test receipt and get it to print it as a gift receipt
    get_receipt_for_gift_receipt(
        general_functions.make_test_receipts(l_test_settings[0],
                                             l_test_settings[1]))

    wait(10)

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('print_gift_receipt')

    # select 2 items
    Location(254, 214).click()
    Location(241, 346).click()
    # print gift receipt
    general_buttons.gift_receipt_key_pad_btns_click('PRINT')

    # general end of test case
    general_functions.end_of_test_case()
Exemple #27
0
def void_line_item():
    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('void line item')

    wait(1)

    general_functions.fill_basket(l_test_settings[0], l_test_settings[1])

    time.sleep(5)

    print("VOID LINE ITEM")
    # void line item
    general_buttons.click_element('add_or_substract_product', -100, 0,
                                  'PLUS or MINUS btn')
    time.sleep(5)

    #test_cases.void_line_item_tc_0010('is the line item voided ')

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('is_the_line_item_voided')

    general_buttons.main_page_key_pad_btns_click('TOTAL')

    general_functions.extended_wait('payment_page_key_pad', 30)

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('payment_screen')

    general_functions.pay_transaction_with_multiple_tenders(l_test_settings[2])

    # TEST CASE
    if is_gui_test == 'YES':
        gui_screens.check_gui_element('main_page')

    general_functions.end_of_test_case()
def local_employee_discount_remove_transaction_discount(settings_index):

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case(
        'employee discount remove transaction discount')
    general_functions.extended_wait("main_page_key_pad", 300)

    settings_for_this_test = l_test_settings[settings_index]
    general_functions.fill_basket(settings_for_this_test[0],
                                  settings_for_this_test[1])
    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    add_employee(settings_for_this_test)  # add employee data

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'EMPLOYEE TRANSACTION DISCOUNT')

    general_buttons.basket_page_employee_percentage_discounts_menu_btns_click(
        settings_for_this_test[5])

    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'REMOVE TRANSACTION DISCOUNT')

    type(Key.ENTER)
    # type(Key.ENTER)

    # test_cases.does_part_of_screen_exist('discount_is_removed_but_the_employee_isnt', 0.7, 'is the line item discount removed and is the employee still there')

    # click TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')
    wait(5)
    general_functions.extended_wait('payment_page_key_pad', 30)
    general_functions.pay_transaction_with_tender([['tender', 'MAESTRO']])
    type(Key.ENTER)
    general_functions.end_of_test_case()
def local_employee_discount_remove_employee(settings_index):

    general_functions.errorhandling("ABORT")
    general_functions.start_of_test_case('employee discount remove employee')
    general_functions.extended_wait("main_page_key_pad", 300)

    settings_for_this_test = l_test_settings[settings_index]
    general_functions.fill_basket(settings_for_this_test[0],
                                  settings_for_this_test[1])
    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    add_employee(settings_for_this_test)  # add employee data

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'EMPLOYEE ITEM DISCOUNT')

    general_buttons.basket_page_employee_percentage_discounts_menu_btns_click(
        settings_for_this_test[5])

    general_buttons.basket_page_footer_menu_btns_click('DISCOUNTS')

    general_buttons.basket_page_employee_discounts_menu_btns_click(
        'REMOVE EMPLOYEE')

    type(Key.ENTER)

    # test_cases.does_part_of_screen_exist('employee_and_discount_are_removed', 0.7, 'are employee and discount removed')

    # click TOTAL button
    general_buttons.main_page_key_pad_btns_click('TOTAL')
    wait(5)
    general_functions.extended_wait('payment_page_key_pad', 30)
    general_functions.pay_transaction_with_multiple_tenders(
        [['WECHAT', 'REST']])

    general_functions.end_of_test_case()
def returns_with_receipt():
    general_functions.start_of_test_case('returns with receipt line items')

    receipt_number = general_functions.make_test_receipts(
        l_test_settings[0], l_test_settings[1])

    print('receipt_number: ' + receipt_number)

    general_functions.extended_wait('main_page_key_pad', 30)

    returns_with_receipt_return_items(receipt_number)

    if l_general_test_settings[13] != 'IT':
        general_buttons.main_page_key_pad_btns_click('TOTAL')

    general_functions.extended_wait('four_eyes_form', 60)
    general_functions.four_eyes(l_general_test_settings[4],
                                l_general_test_settings[5])

    general_functions.extended_wait('payment_page_key_pad', 30)
    general_functions.pay_transaction_with_multiple_tenders(
        [['CHINA UNION PAY', 'REST']])

    general_functions.end_of_test_case()