**Impacted versions:**
11.0 
**Steps to reproduce:**
  - Create payslip
  - Add a contract with any structure
  - Add a structure in payslip, different from the one defined in step 2
  - Confirm or compute sheet

**Current behavior:**
Payslip is computed using the contract structure

**Expected behavior:**
Payslip should be computed using the payslip structure

**FYI:**  This is an issue because, sometimes, it's necessary to pay the employee using a structure different from their contract, e.g. in case of Christmas bonuses

**Video/Screenshot link (optional):**
[Video](https://www.youtube.com/watch?v=32H01n503uU&feature=youtu.be)


res = {
            'value': {
                'line_ids': [],
                
                'input_line_ids': [(2, x,) for x in self.input_line_ids.ids],
                
                'worked_days_line_ids': [(2, x,) for x in self.worked_days_line_ids.ids],
                
                'name': '',
                'contract_id': False,
                'struct_id': False,
            }
        }
        if (not employee_id) or (not date_from) or (not date_to):
            return res
        ttyme = datetime.fromtimestamp(time.mktime(time.strptime(date_from, "%Y-%m-%d")))
        employee = self.env['hr.employee'].browse(employee_id)
        locale = self.env.context.get('lang') or 'en_US'
        res['value'].update({
            'name': _('Salary Slip of %s for %s') % (employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale))),
            'company_id': employee.company_id.id,
        })
        if not self.env.context.get('contract'):
            
            contract_ids = self.get_contract(employee, date_from, date_to)