**Impacted versions:**
9.0

**Steps to reproduce:**
install `hr_payroll`, `hr_payroll_account`
Create employee's Contract with Journal: Misc Operations
Create employee's Payslip
Select employee
Journal field should be set to: Misc Operations but it is set to Currency Exchange Journal

**Current behavior:**
When payslip is created and no employee/contract is provided yet journal field is filled with first journal with `type = 'general'` found in database
(see https://github.com/odoo/odoo/blob/9.0/addons/hr_payroll_account/hr_payroll_account.py#L48)

When contract is provided `onchange_contract_id` from `hr_payroll_account` should be called to set `journal_id` from contract but this function is never called because original function from `hr_payroll` is never called due this commit https://github.com/odoo/odoo/commit/0a7ee85c18b9f847e0d0f1f9b54e4f43b2e046a9

**Expected behavior:**
Journal on payslip should be taken from employee's contract if it is set.

addons/hr_payroll_account/hr_payroll_account.py
if context is None:
            context = {}
        if 'journal_id' in context:
            vals.update({'journal_id': context.get('journal_id')})
        return super(hr_payslip, self).create(cr, uid, vals, context=context)
    def onchange_contract_id(self, cr, uid, ids, date_from, date_to, employee_id=False, contract_id=False, context=None):
        contract_obj = self.pool.get('hr.contract')
        res = super(hr_payslip, self).onchange_contract_id(cr, uid, ids, date_from=date_from, date_to=date_to, employee_id=employee_id, contract_id=contract_id, context=context)
        journal_id = contract_id and contract_obj.browse(cr, uid, contract_id, context=context).journal_id.id or (not contract_id and self._get_default_journal(cr, uid, context=None))
        res['value'].update({'journal_id': journal_id})
        return res
    def cancel_sheet(self, cr, uid, ids, context=None):
        move_pool = self.pool.get('account.move')
        move_ids = []
        move_to_cancel = []
        for slip in self.browse(cr, uid, ids, context=context):
            if slip.move_id:
                move_ids.append(slip.move_id.id)
                if slip.move_id.state == 'posted':
                    move_to_cancel.append(slip.move_id.id)
        move_pool.button_cancel(cr, uid, move_to_cancel, context=context)
        move_pool.unlink(cr, uid, move_ids, context=context)
        return super(hr_payslip, self).cancel_sheet(cr, uid, ids, context=context)
    def process_sheet(self, cr, uid, ids, context=None):