-
  Accountant can also be created receipt and validate it there for I checked it with that user who is accountant.
-
  !context
    uid: 'res_users_account_voucher_user'
- 
  Creating a Voucher Receipt for partner Seagate with amount 30000.0
- 
  !record {model: account.voucher, id: account_voucher_seagate_0, view: view_sale_receipt_form}:
    account_id: account.a_recv
    amount: 30000.0
    company_id: base.main_company
    journal_id: account.sales_journal
    line_cr_ids:
      - account_id: account.a_sale
        amount: 30000.0
        type: cr
    partner_id: base.res_partner_19
    period_id: account.period_9
    type: sale
    
-
  I check that the voucher state is Draft
-
  !assert {model: account.voucher, id: account_voucher_seagate_0}:
    - state == 'draft'

-
  I click on post button to post the voucher
-
  !workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_seagate_0}

-
  Check that the voucher state is Posted
-
  !assert {model: account.voucher, id: account_voucher_seagate_0}:
    - state == 'posted'
    
-
  I check that move lines are validated but not reconciled
-
  !python {model: account.voucher}: |
    reconciled = False
    for l in self.browse(cr, uid, [ref("account_voucher_seagate_0")])[0].move_ids: 
       if l.reconcile_id:
         reconciled = True
         break
    assert (not reconciled), "Found reconciled move lines, should not be"
-
  I create and post a voucher payment of amount 30000.0 for the partner Seagate
-
  !python {model: account.voucher}: |
    vals = {}
    journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
    res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
    vals = {
        'account_id': ref('account.cash'),
        'amount': 30000.0,
        'company_id': ref('base.main_company'),
        'journal_id': ref('account.bank_journal'),
        'partner_id': ref('base.res_partner_19'),
        'period_id': ref('account.period_8'),
        'type': 'receipt',
    }
    if not res['value']['line_cr_ids']:
      res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
    res['value']['line_cr_ids'][0]['amount'] = 30000.0
    vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
    id = self.create(cr, uid, vals)
    voucher_id = self.browse(cr, uid, id)
    assert (voucher_id.state=='draft'), "Voucher is not in draft state"
    voucher_id.signal_workflow('proforma_voucher')
-
  I check that move lines are reconciled meaning voucher is paid
-
  !python {model: account.voucher}: |
    reconciled = False
    for l in self.browse(cr, uid, [ref("account_voucher_seagate_0")])[0].move_ids: 
       if l.reconcile_id:
         reconciled = True
         break
    assert reconciled, "Found unreconciled move lines/unpaid voucher"
