**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)


addons/hr_payroll/models/hr_payslip.py
"""a class that will be used into the python code, mainly for usability purposes"""
            def sum(self, code, from_date, to_date=None):
                if to_date is None:
                    to_date = fields.Date.today()
                self.env.cr.execute("""
                    SELECT sum(amount) as sum
                    FROM hr_payslip as hp, hr_payslip_input as pi
                    WHERE hp.employee_id = %s AND hp.state = 'done'
                    AND hp.date_from >= %s AND hp.date_to <= %s AND hp.id = pi.payslip_id AND pi.code = %s""",
                    (self.employee_id, from_date, to_date, code))
                return self.env.cr.fetchone()[0] or 0.0
        class WorkedDays(BrowsableObject):
            """a class that will be used into the python code, mainly for usability purposes"""
            def _sum(self, code, from_date, to_date=None):
                if to_date is None:
                    to_date = fields.Date.today()
                self.env.cr.execute("""
                    SELECT sum(number_of_days) as number_of_days, sum(number_of_hours) as number_of_hours
                    FROM hr_payslip as hp, hr_payslip_worked_days as pi
                    WHERE hp.employee_id = %s AND hp.state = 'done'
                    AND hp.date_from >= %s AND hp.date_to <= %s AND hp.id = pi.payslip_id AND pi.code = %s""",
                    (self.employee_id, from_date, to_date, code))
                return self.env.cr.fetchone()
            def sum(self, code, from_date, to_date=None):
                res = self._sum(code, from_date, to_date)
                return res and res[0] or 0.0
            def sum_hours(self, code, from_date, to_date=None):
                res = self._sum(code, from_date, to_date)
                return res and res[1] or 0.0
        class Payslips(BrowsableObject):