"""Tests for WorksheetTaxCorrectionVAT model.""" from decimal import Decimal from abacus_common_logic.connectors.database import db from sqlalchemy import select from payment.models import WorksheetTaxCorrectionVAT def test_create(mock_statement_periods, mock_accounts, mock_contracts): """Test create WorksheetTaxCorrectionVAT instance.""" WorksheetTaxCorrectionVAT.create( contract_id=1, account_id=1, correction_statement_period_id=1, payable_detail_type_id=1, base_amount_payee_currency=Decimal('20.00'), payee_currency_code='USD', vat_currency_code='USD', vat_rate=Decimal('20.00'), vat_amount_payee_currency=Decimal('20.00'), vat_amount_vat_currency=Decimal('20.00'), net_amount_payee_currency=Decimal('20.00'), wht_rate=Decimal('10.00'), wht_amount_payee_currency=Decimal('10.01'), wht_amount_vat_currency=Decimal('10.02'), note='test note', ) worksheets = db.session.execute(select(WorksheetTaxCorrectionVAT)).scalars().all() worksheet = worksheets[0] assert len(worksheets) == 1 assert worksheet.contract_id == 1 assert worksheet.account_id == 1 assert worksheet.correction_statement_period_id == 1 assert worksheet.payable_detail_type_id == 1 assert worksheet.base_amount_payee_currency == Decimal('20.00') assert worksheet.payee_currency_code == 'USD' assert worksheet.vat_currency_code == 'USD' assert worksheet.vat_rate == Decimal('20.00') assert worksheet.vat_amount_payee_currency == Decimal('20.00') assert worksheet.vat_amount_vat_currency == Decimal('20.00') assert worksheet.net_amount_payee_currency == Decimal('20.00') assert worksheet.wht_rate == Decimal('10.00') assert worksheet.wht_amount_payee_currency == Decimal('10.01') assert worksheet.wht_amount_vat_currency == Decimal('10.02') assert worksheet.note == 'test note' def test_soft_delete_ids(mock_statement_periods, mock_contracts, mock_accounts): """Test soft_delete_by_ids method.""" worksheet_tax_correction_1 = WorksheetTaxCorrectionVAT.create( worksheet_tax_correction_vat_id=1, contract_id=1, account_id=1, correction_statement_period_id=1, payable_detail_type_id=1, base_amount_payee_currency=Decimal('20.00'), payee_currency_code='USD', vat_currency_code='USD', vat_rate=Decimal('20.00'), vat_amount_payee_currency=Decimal('20.00'), vat_amount_vat_currency=Decimal('20.00'), net_amount_payee_currency=Decimal('20.00'), note='test note', ) WorksheetTaxCorrectionVAT.create( worksheet_tax_correction_vat_id=2, contract_id=2, account_id=2, correction_statement_period_id=2, payable_detail_type_id=2, base_amount_payee_currency=Decimal('20.00'), payee_currency_code='USD', vat_currency_code='USD', vat_rate=Decimal('20.00'), vat_amount_payee_currency=Decimal('20.00'), vat_amount_vat_currency=Decimal('20.00'), net_amount_payee_currency=Decimal('20.00'), note='test note', ) WorksheetTaxCorrectionVAT.soft_delete_by_ids([1]) assert db.session.execute( select(WorksheetTaxCorrectionVAT).where( WorksheetTaxCorrectionVAT.deleted_at != None # noqa ) ).scalars().all() == [worksheet_tax_correction_1]