34 lines
1.9 KiB
Python
34 lines
1.9 KiB
Python
from django.urls import reverse
|
|
from playwright.sync_api import expect
|
|
from .base import BasePage
|
|
|
|
|
|
class PaymentsPage(BasePage):
|
|
def select_customer(self, mobile):
|
|
self.page.get_by_label('جستوجو و انتخاب مشتری', exact=False).fill(mobile)
|
|
result = self.page.locator('.pay-customer-result').filter(has_text=mobile)
|
|
result.get_by_role('button', name='انتخاب این مشتری', exact=True).click()
|
|
expect(self.page.locator('[data-selected-customer]')).to_contain_text(mobile)
|
|
|
|
def open_hub(self):
|
|
self.goto(reverse('payments:home'))
|
|
expect(self.page.get_by_role('heading',name='چهارسو',exact=True)).to_be_visible()
|
|
|
|
def send_receipt(self, account_id, png, linked=False):
|
|
self.goto(reverse('payments:receipt_new'))
|
|
if not linked:
|
|
self.page.get_by_label('واریز مستقل',exact=True).check()
|
|
self.page.locator('#id_paid_amount').fill('۱۲۳۴۵')
|
|
self.page.locator('#id_destination_account').select_option(str(account_id))
|
|
self.page.get_by_role('button',name='امروز',exact=True).click()
|
|
self.page.locator('#id_receipt_image').set_input_files({'name':'receipt.png','mimeType':'image/png','buffer':png})
|
|
self.page.get_by_role('button',name='ثبت و ارسال فیش').click()
|
|
expect(self.page.locator('.flash')).to_contain_text('فیش ثبت شد و در انتظار بررسی است.')
|
|
|
|
def approve(self, receipt_id, senior=False):
|
|
self.goto(reverse('staff_payments:receipt_detail',args=[receipt_id]))
|
|
if senior:
|
|
self.page.locator('#decision-reason').fill('تطبیق پرداخت بررسی شد')
|
|
self.page.get_by_role('button',name='تأیید نهایی ارشد' if senior else 'ثبت تأیید من',exact=True).click()
|
|
expect(self.page.locator('.flash')).to_contain_text('تصمیم ثبت شد.')
|