← Back to team overview

openerp-community team mailing list archive

Re: Payroll - Personal Deductions

 

Hi Fabien,

I'm not clear on how that would be used in this case. If I have a specific deduction/allowance shared by most/all employees with different conditions (e.g. amount, or based on date between or YTD amounts), wouldn't adding an input item just force me to enter the amount manually each time? I may be missing something, or misunderstanding, but I don't see a way to pull a value automatically into the input amount. Or are you suggesting adding a function to calculate the input field?

Wouldn't it be simpler just to pass a parameter (e.g. 'Code') to a function that would then look in the hr_payroll_employee_rules for a matching code and return the values - date to, date from and YTD's - as a browseable or dictionary? Then the rule could be applied differently for each employee based on the values in the table. An example might be a deduction for Retirement Savings where there's a maximum amount per employee and they may only want to contribute for part of the year or a federal pension plan that maxes out at a certain amount based on wage.

Forgive me if the 'Other Inputs' already does something like this, I dug through the code a bit and couldn't find it. 

Thanks!
John

On 2012-10-02, at 2:40 PM, Fabien Pinckaers <fp@xxxxxxxxxxx> wrote:

> Hello,
> 
> The payslip handles specific variables like this with the "Other Inputs" section
> which is filled automatically according to the variables used in the salary rules.
> We use this for rules like:
>   - payment commissions on salesman
>   - special allowances/deductions...
> 
> I would just put the exact same table on the employee contract that will just fill
> the default values of the Other Input section of the payslip. It defines variables
> that are used by salary rules.
> 
> 
> On 02/10/12 18:38, Daniel Reis wrote:
>> I have the following suggestions:
>>  - name the class as "class hr_payroll_employee_rules", so it encompasses both deductions and allowances.
>>  - you'll need also 'value': fields.float ... Note that this usually will hold a currency amount, but is same cases you might need it to represent a quantity.
>> 
>> As for the ytd_occurence and ytd_amount, I probably would skip them right now.
>> Probably mos cases can be handled the the start - end dates.
>> IMHO this sort of calculation should be a feature of the payroll rule engine, but that's a whole new problem...
>> 
>> Regarding the date ranges, date fields are represented by the ORM as 'yyyy-mm-dd' strings,so there sould be no problem.
>> 
>> DR
>> 
>> ------------------------------------------------------------------------
>> Subject: Re: [Openerp-community] Payroll - Personal Deductions
>> From: justbe.john@xxxxxxxxx
>> Date: Tue, 2 Oct 2012 11:13:48 -0400
>> CC: openerp-community@xxxxxxxxxxxxxxxxxxx
>> To: dreis.pt@xxxxxxxxxxx
>> 
>> Daniel and list, to clarify further and incorporate your suggestions could add the following:
>> 
>> Add class hr_payroll_employee_deductions with the columns:
>> 
>> 'name': fields.char
>> 'code': fields.char
>> 'employee_id': fields.many2one
>> 'ytd_amount': fields.function('_get_ytd_amount', etc, etc),
>> 'ytd_occurence': fields.function('_get_ytd_occurence', etc, etc),
>> 'date_start': fields.date
>> 'date_end': fields.date
>> 
>> This would be available on the employee or contract form, and country specific defaults could be loaded with 0 amounts.
>> 
>> Include functions _get_ytd_occurence, _get_ytd_amount. Also add a function to return a browseable object based on the code, although I think this may require overwriting browse() instead (?). Or I might be able to just add an additional field which returns a browseable object or dictionary of the values.
>> 
>> To the Available Variables (hr_payroll) add employee_deductions that will allow use of employee_deductions.X.ytd_amount, employee_deductions.X.date_start, etc (where X is the code from hr_payroll_employee_deductions). With that approach, you could add rules with Condition based on: Range and the range based on date or a minimum/maximum of YTD amount. I haven't tried using the range for dates or looked at the function so it may also require modification.
>> 
>> The only issue I can see with this is that all unique deductions would need to have a corresponding rule within the salary structure, but there should be a limited number of deductions.
>> 
>> 
>> On 2012-10-02, at 9:48 AM, Daniel Reis <dreis.pt@xxxxxxxxxxx <mailto:dreis.pt@xxxxxxxxxxx>> wrote:
>> 
>>    My explanation was not very clear, I'm sorry.
>> 
>>    AFAIK, Salary Rules are declared in Salary Structures.
>>    You can't associate a Salary Rule directly to an Employee.
>>    Closest thing you can do is to create a specific Salary Structure
>>    for that person. It'll do the job, but I think it's rather clumsy.
>> 
>>    I feel that the possibility to also associate Salary Rules
>>    directly with Contracts/Employees would allow to solve this issue.
>>    This way it would be easy, for example, to add a specific fixed
>>    deduction to an employee.
>>    Additionally, if it includes a "date from" and "date to", or a
>>    "number of occurrences", it could the user with the cases where
>>    the deductions are to be made during a 4 month period  or in the
>>    next 3 payslips.
>> 
>>    Regards
>>    Daniel Reis
>> 
>> 
>>    ------------------------------------------------------------------------
>>    From: justbe.john@xxxxxxxxx <mailto:justbe.john@xxxxxxxxx>
>>    Date: Tue, 2 Oct 2012 09:06:33 -0400
>>    To: openerp-community@xxxxxxxxxxxxxxxxxxx
>>    <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
>>    Subject: Re: [Openerp-community] Payroll - Personal Deductions
>> 
>>    Not sure I'm following. Wouldn't that be the same as the existing
>>    Salary Rules, since you'd need to enter a separate one per
>>    employee? I think the one additional requirement that you
>>    mentioned (and I'm looking into) is have a different cycle than
>>    the actual pay cycle - for example a deduction/allowance could be
>>    made once monthly when the pay cycle is weekly.
>> 
>>    My thinking for country specific variables add single fields to
>>    the employee object and a single salary rule that uses that field
>>    for all employees that require it. I realize that's likely a
>>    country specific way of doing it, but it could be added to
>>    whatever rules are standard for that country as the local payroll
>>    module.
>> 
>>    Does that make sense, or were you thinking something else?
>> 
>>    On 2012-10-02, at 8:42 AM, Daniel Reis <dreis.pt@xxxxxxxxxxx
>>    <mailto:dreis.pt@xxxxxxxxxxx>> wrote:
>> 
>>        In my experience, typical payroll sw has a "Fixed Values"
>>        table and "Variable Values" table  (weekly, monthly, etc)
>>        associated with employees.
>>        To add a fixed allowance to an employee you just add a row
>>        woth the code, value and date period.
>> 
>>        If anyone is willing to add such a feature to OpenERP I'm
>>        willing to help.
>> 
>>        Regards
>>        Daniel Reis
>> 
>> 
>>        ------------------------------------------------------------------------
>>        Date: Tue, 2 Oct 2012 09:16:29 +0800
>>        From:eric.caudal@xxxxxxxxxxxxxx
>>        <mailto:eric.caudal@xxxxxxxxxxxxxx>
>>        To:openerp-community@xxxxxxxxxxxxxxxxxxx
>>        <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
>>        Subject: Re: [Openerp-community] Payroll - Personal Deductions
>> 
>>        Adding a field in the employee or contract and referring to it
>>        in the payroll rules is probably the easiest.
>> 
>>        <Logo-Elico90.gif>
>>        	
>> 
>>        *Eric CAUDAL*, Elico Corp, Shanghai.
>>        eric.caudal@xxxxxxxxxxxxxx  <mailto:eric.caudal@xxxxxxxxxxxxxx>
>>        Cell: + 86 186 2136 1670. Skype: elico.corp
>>        *Premium Certified Training Partner - OpenERP Ready Partner.*
>> 
>>        	
>>        <CTP-Premium-Partner-logo-300x62.png>
>>        http://www.openerp.net.cn
>> 
>>        On 10/02/2012 08:45 AM, John Boyle wrote:
>> 
>>            Hi folks,
>> 
>>            Just wondering what's the best way to handle personal deductions for payroll? Specifically, I'm referring to cases where there's a deduction for many/most employees but the amount differs by employee.
>> 
>>            Adding a specific rule for each employees deduction seems a little tedious. Should a field be added to the Employee or Contract and a single rule used? Or is there a better way?
>> 
>>            Thanks!
>>            John
>>            _______________________________________________
>>            Mailing list:https://launchpad.net/~openerp-community  <https://launchpad.net/%7Eopenerp-community>
>>            Post to     :openerp-community@xxxxxxxxxxxxxxxxxxx  <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
>>            Unsubscribe :https://launchpad.net/~openerp-community  <https://launchpad.net/%7Eopenerp-community>
>>            More help   :https://help.launchpad.net/ListHelp
>> 
>> 
>> 
>>        _______________________________________________ Mailing
>>        list:https://launchpad.net/~openerp-community
>>        <https://launchpad.net/%7Eopenerp-community>Post to
>>        :openerp-community@xxxxxxxxxxxxxxxxxxx
>>        <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>Unsubscribe
>>        :https://launchpad.net/~openerp-community
>>        <https://launchpad.net/%7Eopenerp-community>More help
>>        :https://help.launchpad.net/ListHelp
>>        _______________________________________________
>>        Mailing list:https://launchpad.net/~openerp-community
>>        <https://launchpad.net/%7Eopenerp-community>
>>        Post to     :openerp-community@xxxxxxxxxxxxxxxxxxx
>>        <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
>>        Unsubscribe :https://launchpad.net/~openerp-community
>>        <https://launchpad.net/%7Eopenerp-community>
>>        More help   :https://help.launchpad.net/ListHelp
>> 
>> 
>> 
>>    _______________________________________________ Mailing
>>    list:https://launchpad.net/~openerp-community
>>    <https://launchpad.net/%7Eopenerp-community>Post to
>>    :openerp-community@xxxxxxxxxxxxxxxxxxx
>>    <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>Unsubscribe
>>    :https://launchpad.net/~openerp-community
>>    <https://launchpad.net/%7Eopenerp-community>More help
>>    :https://help.launchpad.net/ListHelp
>>    _______________________________________________
>>    Mailing list:https://launchpad.net/~openerp-community
>>    <https://launchpad.net/%7Eopenerp-community>
>>    Post to     :openerp-community@xxxxxxxxxxxxxxxxxxx
>>    <mailto:openerp-community@xxxxxxxxxxxxxxxxxxx>
>>    Unsubscribe :https://launchpad.net/~openerp-community
>>    <https://launchpad.net/%7Eopenerp-community>
>>    More help   :https://help.launchpad.net/ListHelp
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openerp-community
>> Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openerp-community
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openerp-community
> Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openerp-community
> More help   : https://help.launchpad.net/ListHelp



References