savoirfairelinux / odoo_payroll Goto Github PK
View Code? Open in Web Editor NEWOdoo Payroll
License: GNU Affero General Public License v3.0
Odoo Payroll
License: GNU Affero General Public License v3.0
Hello
I solicitate you help for odoo problem can you help me .I want to limit number of fields that can be checked(appears_journal) max=20. If there are more than 20 checks for appears_journal it displays error message and don’t save.
i want to limit number of selected fields :for example with payroll field appears_on_ payslip .How to limit number of field to appears on payslip :all fields can’t appear on payslip !
Now i give you my code
On py file :
from odoo import models, fields, api
from openerp.exceptions import ValidationError
class HrJournal(models.Model):
_inherit = 'hr.salary.rule'
abreviation = fields.Char(string='Nom abrégé',size=5,help="Nom abrégé de la régle moins de 6 caracteres pour ne pas encombrer le journal ")
appears_journal = fields.Boolean(string= appears on journal,default=False, help="Utilisé pour faire apparaitre dans le journal de paie.")
#pealf = self.env['hr.salary.rule'].search_count([(' appears_journal ','=',True)])
@api.constrains(' appears_journal ')
def _check_boolean(self):
checked_bool = self.search([('id', '!=', self.id),(' appears_journal ', '=', True)], limit=5)
if self. appears_journal and checked_bool:
raise ValidationError(_("There's already 5 checked boolean in record '%s'") % checked_bool.name)
on xml file :
Sur Journal hr.salary.rule <field name=" appears_journal l" />
<field name="abreviation" attrs="{'required':[(' appears_journal ','=',True)]}"/>
</xpath>
</field>
</record>
</data>
Thanks
Bonjour
Je veux limiter le nombre de selections de appears_on_payslip .Tous les champs ne peuvent pas apparaitre dans le bulletin, donc il fait limiter le nombre de selection à 20.si on selectionne plus de 20 champs il apparait un message d'erreur.
Merci
Hello,
On odoo 9 Version 9.0c-20160817 (Community Edition), i can't install the module.
I've an error : "field[@name='timesheet_ids']/form/field[@name='name'] can't be localize on the parent view."
hr.timesheet.sheet.form`
[view_id: 670, xml_id: n/a, model: hr_timesheet_sheet.sheet, parent_id: 564]
None" while parsing /var/lib/odoo/.local/share/Odoo/addons/9.0/payroll_activity_on_timesheet/views/hr_timesheet_sheet.xml:4, near
Thanks for your help.
Ericzen
Hello i am trying to do an summary table with vertical header ,now i want to limit the recors(column) only 7 records (columns)per page.
my code is here
<!--<div class="col-xs-3" style=" background-color:#00CC00;">
</div>-->
<td>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
No.
</td>
<t t-set="sr_no" t-value="0"/>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<t t-set="sr_no" t-value="sr_no+1"/>
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="sr_no"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Mat.
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="s.employee_id.matricule"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Employé
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Hrs
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="s.get_no_hours_paid()"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Sal.Base
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="doc.get_amt_by_code('Salaire de base',s)"/>
</td>
</t>
</tr>
<tr t-foreach="doc.get_deduction_rules('ALW')" t-as="alw" >
<th style="border: 1px solid #808080;padding:3px;text-align: center" align="center">
<span t-esc="alw"/>
</th>
<t t-foreach="doc.alw_cat_list" t-as="cat" >
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<t t-if="cat==alw" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="doc.get_amt_by_code(cat,s)"/>
</td>
</t>
</t>
</t>
<tr></tr>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Total Aug.
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<th style="border: 1px solid #808080;padding:3px;text-align: right" align="right">
<span t-esc="s.get_total(s,'ALW')"/>
</th>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Brut
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="doc.get_amt_by_code('Salaire Brut Total',s)"/>
</td>
</t>
</tr>
<t t-foreach="doc.get_deduction_rules('DED')" t-as="deduction">
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center" align="center">
<span t-esc="deduction"/>
</td>
</tr>
</t>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Total Déd.
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right" align="right">
<span t-esc="s.get_total(s,'DED')"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Net
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right" align="right">
<span t-esc="doc.get_amt_by_code('Net à payer',s)"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
IR
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="doc.get_amt_by_code('Impôt/Revenu',s)"/>
</td>
</t>
</tr>
<tr>
<td style="border: 1px solid #808080;padding:3px;text-align: center ;background-color:#00CC00;" align="center">
Panier
</td>
<t t-foreach="doc.slip_ids.sorted(key=lambda x: x.employee_id.matricule)" t-as="s" >
<td style="border: 1px solid #808080;padding:3px;text-align: right">
<span t-esc="doc.get_amt_by_code('Prime Panier',s)"/>
</td>
</t>
</tr>
</td>
<!-- To calculate grand total -->
<!-- <td style="border: 1px solid #808080;padding:3px;text-align: right"> </td> -->
<!-- Net pay -->
</table>
</body>
and the result is here:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.