Commit 5870e521 authored by Xiaowu Zhang's avatar Xiaowu Zhang

erp5_payroll_l10n_fr: improve payslip

1. allow user to define custom value in dialog
2. fix rounding issue for total value
3. improve view
parent 1b5c24df
kw["report_data"] = context.PaySheetTransaction_getPayslipData() kw["report_data"] = context.PaySheetTransaction_getPayslipData()
kw["report_data"]["amount_of_remuneration_evolution"] = context.REQUEST.get('field_your_evoluation_remuneration', 0)
kw["report_data"]["total_holiday"] = context.REQUEST.get('field_your_total_holiday', 0)
kw["report_data"]["taken_holiday"] = context.REQUEST.get('field_your_taken_holiday', 0)
rep_content = context.PaySheetTransaction_generatePayslipReportContent(**kw) rep_content = context.PaySheetTransaction_generatePayslipReportContent(**kw)
if isinstance(rep_content, unicode): if isinstance(rep_content, unicode):
......
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <!--tr>
<td i18n:translate="" i18n:domain="erp5_ui">Earned on this period</td> <td i18n:translate="" i18n:domain="erp5_ui">Earned on this period</td>
<td></td> <td></td>
</tr> </tr-->
<tr> <tr>
<td i18n:translate="" i18n:domain="erp5_ui">Taken on this period</td> <td i18n:translate="" i18n:domain="erp5_ui">Taken on this period</td>
<td></td> <td tal:content="python: quantity_renderer(payslip_data['taken_holiday'])"></td>
</tr> </tr>
<tr> <tr>
<td i18n:translate="" i18n:domain="erp5_ui">Remaining</td> <td i18n:translate="" i18n:domain="erp5_ui">Remaining</td>
<td></td> <td tal:content="python: quantity_renderer(payslip_data['total_holiday'])"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
......
...@@ -16,7 +16,11 @@ report_section_to_group_list=[ ...@@ -16,7 +16,11 @@ report_section_to_group_list=[
contribution_line_list = [] contribution_line_list = []
no_contribution_line_list = [] no_contribution_line_list = []
income_tax_dict = {} income_tax_dict = {
'base': 0,
'employee_price': 0,
'employee_total_price': 0
}
csg_base = 0 csg_base = 0
total_contribution_relief = 0 total_contribution_relief = 0
...@@ -62,8 +66,13 @@ def groupSameReportSectionLine(line_to_group_list): ...@@ -62,8 +66,13 @@ def groupSameReportSectionLine(line_to_group_list):
tmp2_base_dict[new_key]['base'] = tmp2_base_dict[new_key]['base'] + value['base'] tmp2_base_dict[new_key]['base'] = tmp2_base_dict[new_key]['base'] + value['base']
tmp2_base_dict[new_key]['employer_total_price'] = tmp2_base_dict[new_key]['employer_total_price'] + value['employer_total_price'] tmp2_base_dict[new_key]['employer_total_price'] = tmp2_base_dict[new_key]['employer_total_price'] + value['employer_total_price']
tmp2_base_dict[new_key]['employee_total_price'] = tmp2_base_dict[new_key]['employee_total_price'] + value['employee_total_price'] tmp2_base_dict[new_key]['employee_total_price'] = tmp2_base_dict[new_key]['employee_total_price'] + value['employee_total_price']
new_value_list = []
return tmp2_base_dict.values() # recalculate for rounding issue
for value_dict in tmp2_base_dict.values():
value_dict['employer_total_price'] = value_dict['base'] * value_dict['employer_price']
value_dict['employee_total_price'] = value_dict['base'] * value_dict['employee_price']
new_value_list.append(value_dict)
return new_value_list
...@@ -113,6 +122,7 @@ def getReportSectionDictList(line_dict_list): ...@@ -113,6 +122,7 @@ def getReportSectionDictList(line_dict_list):
new_line_dict_list += groupSameReportSectionLine(line_to_group_list) new_line_dict_list += groupSameReportSectionLine(line_to_group_list)
return new_line_dict_list, employer_total_price, employee_total_price return new_line_dict_list, employer_total_price, employee_total_price
non_contribution_share_total_price = 0
# split line list to differents categories # split line list to differents categories
for line_dict in line_dict_list: for line_dict in line_dict_list:
added_to_list = False added_to_list = False
...@@ -128,11 +138,14 @@ for line_dict in line_dict_list: ...@@ -128,11 +138,14 @@ for line_dict in line_dict_list:
} }
else: else:
if base_contribution == contribution_relief: if base_contribution == contribution_relief:
total_contribution_relief += line_dict['employer_total_price'] total_contribution_relief += (line_dict['base'] * line_dict['employer_price']) #line_dict['employer_total_price']
elif base_contribution in (csg_crds_taxable_to_income_tax, csg_non_taxable_to_income_tax): elif base_contribution in (csg_crds_taxable_to_income_tax, csg_non_taxable_to_income_tax):
csg_base = line_dict['base'] csg_base = line_dict['base']
line_dict['report_section'] = base_contribution line_dict['report_section'] = base_contribution
if base_contribution == non_subject_amount: if base_contribution == non_subject_amount:
if (line_dict['employee_total_price'] is None) and (line_dict['employer_total_price'] is None):
line_dict['employee_total_price'] = line_dict['base']
non_contribution_share_total_price += line_dict['base']
no_contribution_line_list.append(line_dict) no_contribution_line_list.append(line_dict)
else: else:
contribution_line_list.append(line_dict) contribution_line_list.append(line_dict)
...@@ -143,6 +156,20 @@ for line_dict in line_dict_list: ...@@ -143,6 +156,20 @@ for line_dict in line_dict_list:
contribution_line_list.append(line_dict) contribution_line_list.append(line_dict)
contribution_dict_list, contribution_employer_total_price, contribution_employee_total_price = getReportSectionDictList(contribution_line_list) contribution_dict_list, contribution_employer_total_price, contribution_employee_total_price = getReportSectionDictList(contribution_line_list)
# fix rounding issue
contribution_employee_total_price = context.PaySheetTransaction_getMovementTotalPriceFromCategory(
no_base_contribution=True,
include_empty_contribution=False,
excluded_reference_list=['ticket_restaurant', 'versement_interessement_pee', 'impot_revenu'],
contribution_share='contribution_share/employee'
)
contribution_employer_total_price = context.PaySheetTransaction_getMovementTotalPriceFromCategory(
no_base_contribution=True,
include_empty_contribution=False,
excluded_reference_list=['ticket_restaurant',],
contribution_share='contribution_share/employer'
)
if len(contribution_dict_list): if len(contribution_dict_list):
contribution_dict_list.append( contribution_dict_list.append(
getFakeLineDictForNewSection( getFakeLineDictForNewSection(
...@@ -165,9 +192,10 @@ if len(non_contribution_dict_list): ...@@ -165,9 +192,10 @@ if len(non_contribution_dict_list):
gross_salary = context.PaySheetTransaction_getMovementTotalPriceFromCategory(base_contribution="base_contribution/%s"%gross_category) gross_salary = context.PaySheetTransaction_getMovementTotalPriceFromCategory(base_contribution="base_contribution/%s"%gross_category)
# Set contribution_share to 'True' so it will return all movement with 0 contribution share # Set contribution_share to 'True' so it will return all movement with 0 contribution share
total_pay_by_employer = context.PaySheetTransaction_getMovementTotalPriceFromCategory( total_pay_by_employer = context.PaySheetTransaction_getMovementTotalPriceFromCategory(
base_contribution='base_contribution/base_amount/payroll/report/salary/net', base_contribution='base_contribution/base_amount/payroll/report/salary/net',
contribution_share='True') - contribution_employer_total_price - non_contribution_employer_total_price contribution_share='True') - contribution_employer_total_price - non_contribution_employer_total_price - non_contribution_share_total_price
net_salary = context.PaySheetTransaction_getMovementTotalPriceFromCategory( net_salary = context.PaySheetTransaction_getMovementTotalPriceFromCategory(
......
...@@ -17,7 +17,7 @@ return context.Base_printAsReport( ...@@ -17,7 +17,7 @@ return context.Base_printAsReport(
report_name = "PaySheetTransaction_generatePayslipReport", report_name = "PaySheetTransaction_generatePayslipReport",
report_footer = "PaySheetTransaction_generatePayslipReportFooter", report_footer = "PaySheetTransaction_generatePayslipReportFooter",
conversion_dict = dict( conversion_dict = dict(
margin_top=70, margin_top=60,
header_spacing=5 header_spacing=5
), ),
css_path="payslip_css/payslip", css_path="payslip_css/payslip",
......
...@@ -78,6 +78,9 @@ ...@@ -78,6 +78,9 @@
<list> <list>
<string>your_target_language</string> <string>your_target_language</string>
<string>your_international_form</string> <string>your_international_form</string>
<string>your_evoluation_remuneration</string>
<string>your_taken_holiday</string>
<string>your_total_holiday</string>
</list> </list>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="FloatField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_evoluation_remuneration</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>not_float</string> </key>
<value> <string>You did not enter a floating point number.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_large_precision</string> </key>
<value> <string>The number you input has too large precision.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string>-1234.5</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>text</string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Evaluation de la remuneration</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="FloatField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_taken_holiday</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>not_float</string> </key>
<value> <string>You did not enter a floating point number.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_large_precision</string> </key>
<value> <string>The number you input has too large precision.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string>-1234.5</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>text</string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Congé pris</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="FloatField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_total_holiday</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>not_float</string> </key>
<value> <string>You did not enter a floating point number.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_large_precision</string> </key>
<value> <string>The number you input has too large precision.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>input_style</string> </key>
<value> <string>-1234.5</string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string>text</string> </value>
</item>
<item>
<key> <string>precision</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Congé restant</string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -45,7 +45,7 @@ table.payslip-income-tax thead tr td{ ...@@ -45,7 +45,7 @@ table.payslip-income-tax thead tr td{
border-radius:1%; border-radius:1%;
width:45%; width:45%;
text-align: left; text-align: left;
min-height:200px; min-height:150px;
} }
.payslip-cumul-net-to-pay:after, .payslip-cumul-net-to-pay:after,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment