From 1d3f80e1f0cbd885d022460e217c6cc4bd4c75b6 Mon Sep 17 00:00:00 2001 From: Fabien Morin <fabien@nexedi.com> Date: Tue, 10 Mar 2009 09:28:09 +0000 Subject: [PATCH] 2009-03-10 fabien * fix some minor problems * add a default action on Pay Sheet Transaction portal type to be able to print a Payslip * add AsODT and AsODTStyles files * increment version number because of the new style of the payslip git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25932 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../pay_sheet_print.xml | 77 ++ ...tion_getMovementTotalPriceFromCategory.xml | 4 +- .../PaySheetTransaction_getODTDataDict.xml | 495 +++++++++++++ ...etYearToDateBaseContributionTotalPrice.xml | 13 +- .../PaySheetTransaction_viewAsODT.xml | 690 ++++++++++++++++++ .../PaySheetTransaction_viewAsODTStyles.xml | 409 +++++++++++ .../PaySheet_getODTStyleSheet.xml | 268 +++++++ .../erp5_payroll/PaySheet_printAsODT.xml | 132 ++++ .../PaySheet_viewODTPrintDialog.xml | 133 ++++ .../your_format.xml | 140 ++++ .../your_international_form.xml | 171 +++++ .../your_target_language.xml | 93 +++ .../erp5_payroll/payroll_odt_macro.xml | 131 ++++ bt5/erp5_payroll/bt/change_log | 6 + bt5/erp5_payroll/bt/revision | 2 +- bt5/erp5_payroll/bt/template_action_path_list | 1 + bt5/erp5_payroll/bt/version | 2 +- 17 files changed, 2760 insertions(+), 7 deletions(-) create mode 100644 bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Transaction/pay_sheet_print.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getODTDataDict.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODT.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODTStyles.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_getODTStyleSheet.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_printAsODT.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_format.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_international_form.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_target_language.xml create mode 100644 bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/payroll_odt_macro.xml diff --git a/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Transaction/pay_sheet_print.xml b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Transaction/pay_sheet_print.xml new file mode 100644 index 0000000000..061eb2da42 --- /dev/null +++ b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Transaction/pay_sheet_print.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_print</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>pay_sheet_print</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>3.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Print Pay Sheet</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/PaySheet_viewODTPrintDialog</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementTotalPriceFromCategory.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementTotalPriceFromCategory.xml index a51045163a..692a394512 100644 --- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementTotalPriceFromCategory.xml +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementTotalPriceFromCategory.xml @@ -62,7 +62,8 @@ total_price = 0\n movement_list = context.getMovementList(portal_type=(\'Pay Sheet Line\', \'Pay Sheet Cell\'))\n for movement in movement_list:\n - if movement.isMemberOf(tax_category) and movement.isMemberOf(base_contribution):\n + if base_contribution is not None and tax_category is not None and\\\n + movement.isMemberOf(tax_category) and movement.isMemberOf(base_contribution):\n total_price += movement.getTotalPrice()\n \n # Get Precision\n @@ -114,6 +115,7 @@ return amount\n <string>movement_list</string> <string>_getiter_</string> <string>movement</string> + <string>None</string> <string>_inplacevar_</string> <string>precision</string> <string>round</string> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getODTDataDict.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getODTDataDict.xml new file mode 100644 index 0000000000..87d14edc85 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getODTDataDict.xml @@ -0,0 +1,495 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>translateString = context.Base_translateString\n +request = context.REQUEST\n +\n +# display only title line instead of description\n +use_line_title = request.get(\'use_line_title\', 0)\n +\n +model = context.getSpecialiseValue()\n +def getPropertyFromModel(model, property_name):\n + """Get a property from the paysheet model, or from a specialised model.\n + """\n + v = model.getProperty(property_name)\n + if v:\n + return v\n + for specialised_model in model.getSpecialiseValueList():\n + v = getPropertyFromModel(specialised_model, property_name)\n + if v:\n + return v\n +\n +def getFieldAsString(field):\n + return \', \'.join(getFieldAsLineList(field))\n +\n +def getFieldAsLineList(field):\n + """Returns the text as a list of lines."""\n + field = field or \'\'\n + text = field.replace(\'\\r\', \'\')\n + text_list = text.split(\'\\n\')\n + return [x for x in text_list if x]\n +\n +def getProductAndLineDesc(prod_desc, line_desc):\n + line_list = []\n + if line_desc:\n + line_list.extend(getFieldAsLineList(line_desc))\n + elif prod_desc:\n + line_list.extend(getFieldAsLineList(prod_desc))\n + return line_list\n +\n +def getOneLineAddress(text, region):\n + text_list = [getFieldAsString(text)]\n + if region:\n + text_list.append(region)\n + return \', \'.join(text_list)\n +\n +def getPhoneAndFax(phone, fax):\n + s = \'\'\n + if phone:\n + s += \'%s: %s\' % (translateString(\'Tel\'), phone)\n + if fax:\n + if s: s += \', \'\n + s += \'%s: %s\' % (translateString(\'Fax\'), fax)\n + return s\n +\n +def getEmail(email):\n + s = \'\'\n + if email:\n + s += \'%s: %s\' % (translateString(\'Email\'), email)\n + return s\n +\n +def getVatId(vat_id):\n + s = \'\'\n + if vat_id:\n + s += \'%s: %s\' % (translateString(\'VAT ID\'), vat_id)\n + return s\n +\n +def getActivityCodeId(activity_code_id):\n + s = \'\'\n + if activity_code_id:\n + s += \'%s: %s\' % (translateString(\'Activity Code\'), activity_code_id)\n + return s\n +\n +def getCorporateRegistrationCodeId(corporate_registration_code_id):\n + s = \'\'\n + if corporate_registration_code_id:\n + s += \'%s: %s\' % (translateString(\'Corporate Registration Code\'), corporate_registration_code_id)\n + return s\n +\n +def getSocialCodeId(social_code_id):\n + s = \'\'\n + if social_code_id:\n + s += \'%s: %s\' % (translateString(\'Social Code\'), social_code_id)\n + return s\n +\n +def getCareerId(career_title):\n + s = \'\'\n + if career_title:\n + s += \'%s: %s\' % (translateString(\'Career Title\'), career_title)\n + return s\n +\n +preferred_date_order = context.getPortalObject().portal_preferences\\\n + .getPreferredDateOrder() or \'ymd\'\n +separator = \'/\'\n +def getOrderedDate(date):\n + if date is None:\n + return \'\'\n + pattern = separator.join([\'%%%s\' % s for s in list(preferred_date_order)])\n + pattern = pattern.replace(\'y\', \'Y\')\n + return date.strftime(pattern)\n +\n +def getPaymentConditionText(order):\n + if order.getPaymentConditionPaymentEndOfMonth():\n + return translateString("End of Month")\n + days = order.getPaymentConditionPaymentTerm()\n + if days:\n + return \'%s %s\' % (days, translateString(\'Days\'))\n + return \'\'\n +\n +\n +line_list = []\n +total_price = 0.0\n +total_vat = 0.0\n +\n +def unicodeDict(d):\n + for k, v in d.items():\n + if isinstance(v, str):\n + d.update({k:unicode(v, \'utf8\')})\n + return d\n +\n +line_list = context.PaySheetTransaction_getLineListAsDict()\n +inch_cm_ratio = 2.54 / 100.0\n +\n +class EmptyOrganisation:\n + """Used for default when organisation is not found.\n + """\n + def getTitle(self):\n + return \'\'\n + def getDefaultAddressText(self):\n + return \'\'\n + def getDefaultAddressRegionTitle(self):\n + return \'\'\n + def getDefaultImagePath(self):\n + return \'\'\n + def getDefaultImageHeight(self):\n + return 0\n + def getDefaultImageWidth(self):\n + return 0\n + def getProperty(self, prop, d=\'\'):\n + return d\n +\n +source = context.getSourceValue()\n +if source is None:\n + source = EmptyOrganisation()\n +\n +destination = context.getDestinationValue()\n +if destination is None:\n + destination = EmptyOrganisation()\n +\n +source_section = context.getSourceSectionValue()\n +if source_section is None:\n + source_section = EmptyOrganisation()\n +\n +destination_section = context.getDestinationSectionValue()\n +if destination_section is None:\n + destination_section = EmptyOrganisation()\n +\n +source_administration = context.getSourceAdministrationValue(\n + portal_type=\'Organisation\')\n +if source_administration is None:\n + source_administration = context.getSourceSectionValue()\n +if source_administration is None:\n + source_administration = EmptyOrganisation()\n +\n +destination_administration = context.getDestinationAdministrationValue(\n + portal_type=\'Organisation\')\n +if destination_administration is None:\n + destination_administration = context.getDestinationSectionValue()\n +if destination_administration is None:\n + destination_administration = EmptyOrganisation()\n +\n +\n +data_dict = {\n + \'source_section_title\': source_section.getProperty(\'corporate_name\') or\\\n + source_section.getTitle(),\n + \'source_section_image_path\': context.getSourceSectionValue() is not None\\\n + and context.getSourceSectionValue().getDefaultImagePath() or \'\',\n + \'source_section_image_width\': context.getSourceSectionValue() is not None\\\n + and context.getSourceSectionValue().getDefaultImageWidth() is not None\\\n + and context.getSourceSectionValue().getDefaultImageWidth() \\\n + * inch_cm_ratio or \'\',\n + \'source_section_image_height\': context.getSourceSectionValue() is not None\\\n + and context.getSourceSectionValue().getDefaultImageHeight() is not None\\\n + and context.getSourceSectionValue().getDefaultImageHeight() \\\n + * inch_cm_ratio or \'\',\n + \'source_section_address\': context.getSourceSection() and\n + context.getSourceSectionValue().getDefaultAddressText() or \'\',\n + \'source_section_telfax\': getPhoneAndFax(context.getSourceSection() and \\\n + context.getSourceSectionValue().getTelephoneText() or \'\',\n + context.getSourceSection() and \\\n + context.getSourceSectionValue().getFaxText() or \'\'),\n + \'source_section_email\': getEmail(context.getSourceSection() and\n + context.getSourceSectionValue().getEmailText() or \'\'),\n + \'source_section_vatid\': getVatId(context.getSourceSection() and\\\n + getattr(context.getSourceSectionValue(), \'getVatCode\', None)\\\n + is not None and\\\n + context.getSourceSectionValue().getVatCode() or \'\'),\n + \'source_section_career_title\': getCareerId(context.getSourceSection() and\n + context.getSourceSectionValue().getCareerTitle() or \'\'),\n +\n + \'source_administration_title\': \\\n + source_administration.getProperty(\'corporate_name\') \\\n + or source_administration.getTitle(),\n + \'source_administration_address\': getOneLineAddress(\n + source_administration.getDefaultAddressText(),\n + source_administration.getDefaultAddressRegionTitle()),\n + \'source_administration_telfax\':\n + getPhoneAndFax(source_administration.getProperty(\'telephone_text\', \'\'),\n + source_administration.getProperty(\'fax_text\', \'\')),\n + \'source_administration_email\':\n + getEmail(source_administration.getProperty(\'email_text\', \'\')),\n + \'source_administration_vatid\':\n + getVatId(source_administration.getProperty(\'vat_code\', \'\')),\n +\n + \'source_title\': source.getProperty(\'corporate_name\') or source.getTitle(),\n + \'source_address\': getOneLineAddress(\n + context.getSource() and\n + context.getSourceValue().getDefaultAddressText() or \'\',\n + context.getSource() and \n + context.getSourceValue().getDefaultAddressRegionTitle() or \'\'),\n + \'source_telfax\': getPhoneAndFax(context.getSource() and \\\n + context.getSourceValue().getTelephoneText() or \'\',\n + context.getSource() and \\\n + context.getSourceValue().getFaxText() or \'\'),\n + \'source_email\': getEmail(context.getSource() and\n + context.getSourceValue().getEmailText() or \'\'),\n + \'source_vatid\': getVatId(context.getSource() and\n + context.getSourceValue().getProperty(\'vat_code\', \'\') or \'\'),\n +\n + \'source_decision_title\': context.getSourceDecisionTitle() or \'\',\n + \'source_decision_image_path\': context.getSourceDecisionValue(portal_type=\'Organisation\') is not None\\\n + and context.getSourceDecisionValue(portal_type=\'Organisation\').getDefaultImagePath() or \'\',\n + \'source_decision_image_width\': context.getSourceDecisionValue(portal_type=\'Organisation\') is not None\\\n + and context.getSourceDecisionValue(portal_type=\'Organisation\').getDefaultImageWidth() is not None\\\n + and context.getSourceDecisionValue(portal_type=\'Organisation\').getDefaultImageWidth() \\\n + * inch_cm_ratio or \'\',\n + \'source_decision_image_height\': context.getSourceDecisionValue(portal_type=\'Organisation\') is not None\\\n + and context.getSourceDecisionValue(portal_type=\'Organisation\').getDefaultImageHeight() is not None\\\n + and context.getSourceDecisionValue(portal_type=\'Organisation\').getDefaultImageHeight() \\\n + * inch_cm_ratio or \'\',\n + \'source_decision_address\':getOneLineAddress(\n + context.getSourceDecision() and \n + context.getSourceDecisionValue().getDefaultAddressText() or \'\',\n + context.getSourceDecision() and \\\n + context.getSourceDecisionValue().getDefaultAddressRegionTitle() or \'\'),\n + \'source_decision_telfax\': getPhoneAndFax(context.getSourceDecision() and\n + context.getSourceDecisionValue().getTelephoneText() or \'\',\n + context.getSourceDecision() and \\\n + context.getSourceDecisionValue().getFaxText() or \'\'),\n + \'source_decision_email\': getEmail(context.getSourceDecision() and\n + context.getSourceDecisionValue().getEmailText() or \'\'),\n + \'source_decision_vatid\': getVatId(context.getSourceDecision() and\\\n + getattr(context.getSourceDecisionValue(), \'getVatCode\', None)\\\n + is not None and\\\n + context.getSourceDecisionValue().getVatCode() or \'\'),\n +\n + \'destination_title\': destination.getProperty(\'corporate_name\') or destination.getTitle(),\n + \'destination_address\': getOneLineAddress(\n + context.getDestination() and \\\n + context.getDestinationValue().getDefaultAddressText() or \'\',\n + context.getDestination() and \\\n + context.getDestinationValue().getDefaultAddressRegionTitle() or \'\'),\n + \'destination_telfax\': getPhoneAndFax(context.getDestination() and\n + context.getDestinationValue().getTelephoneText() or \'\',\n + context.getDestination() and context.getDestinationValue().getFaxText() or \'\'),\n + \'destination_email\': getEmail(context.getDestination() and \\\n + context.getDestinationValue().getEmailText() or \'\'),\n + \'destination_vatid\': getVatId(context.getDestination() and\n + context.getDestinationValue().getProperty(\'vat_code\', \'\') or \'\'),\n +\n + \'destination_section_title\': destination_section.getProperty(\'corporate_name\') or \\\n + destination_section.getTitle(),\n + \'destination_section_image_path\': destination_section.getDefaultImagePath(),\n + \'destination_section_image_width\': context.getDestinationSectionValue() is not None\\\n + and context.getDestinationSectionValue().getDefaultImageWidth() is not None\\\n + and context.getDestinationSectionValue().getDefaultImageWidth() * inch_cm_ratio or \'\',\n + \'destination_section_image_height\': context.getDestinationSectionValue() is not None\\\n + and context.getDestinationSectionValue().getDefaultImageHeight() is not None\\\n + and context.getDestinationSectionValue().getDefaultImageHeight() * inch_cm_ratio or \'\',\n + \'destination_section_address\': getOneLineAddress(\n + context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressText() or \'\',\n + context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressRegionTitle() or \'\'),\n + \'destination_section_telfax\': getPhoneAndFax(\n + context.getDestinationSection() and context.getDestinationSectionValue().getTelephoneText() or \'\',\n + context.getDestinationSection() and context.getDestinationSectionValue().getFaxText() or \'\'),\n + \'destination_section_email\': getEmail(context.getDestinationSection() and context.getDestinationSectionValue().getEmailText() or \'\'),\n + \'destination_section_vatid\': getVatId(context.getDestinationSection() and\n + context.getDestinationSectionValue().getProperty(\'vat_code\') or \'\'),\n + \'destination_section_corporate_registration_codeid\': getCorporateRegistrationCodeId(context.getDestinationSection() and\n + context.getDestinationSectionValue().getProperty(\'corporate_registration_code\') or \'\'),\n + \'destination_section_activity_codeid\': getActivityCodeId(context.getDestinationSection() and\n + context.getDestinationSectionValue().getProperty(\'activity_code\') or \'\'),\n + \'destination_section_social_codeid\': getSocialCodeId(context.getDestinationSection() and\n + context.getDestinationSectionValue().getProperty(\'social_code\') or \'\'),\n + \'destination_section_social_company_title\' : context.getSocialInsuranceAnnotationLineValue() is not None and \\\n + context.getSocialInsuranceAnnotationLineValue().getSourceTitle() or \'\',\n + \'destination_section_social_address\': getOneLineAddress(\n + context.getSocialInsuranceAnnotationLineValue() is not None and \\\n + context.getSocialInsuranceAnnotationLineValue().getSource() and \\\n + context.getSocialInsuranceAnnotationLineValue().getSourceValue().getDefaultAddressText() or \'\',\n + context.getSocialInsuranceAnnotationLineValue() is not None and \\\n + context.getSocialInsuranceAnnotationLineValue().getSource() and \\\n + context.getSocialInsuranceAnnotationLineValue().getSourceValue().getDefaultAddressRegionTitle() or \'\'),\n +\n + \'destination_administration_title\':\\\n + destination_administration.getProperty(\'corporate_name\') or \\\n + destination_administration.getTitle(),\n + \'destination_administration_address\': getOneLineAddress(\n + destination_administration.getDefaultAddressText(),\n + destination_administration.getDefaultAddressRegionTitle()),\n + \'destination_administration_telfax\':\n + getPhoneAndFax(destination_administration.getProperty(\'telephone_text\', \'\'),\n + destination_administration.getProperty(\'fax_text\', \'\')),\n + \'destination_administration_email\':\n + getEmail(destination_administration.getProperty(\'email_text\', \'\')),\n + \'destination_administration_vatid\':\n + getVatId(destination_administration.getProperty(\'vat_code\', \'\')),\n +\n + \'destination_decision_title\': context.getDestinationDecisionTitle() or \'\',\n + \'destination_decision_telfax\': getPhoneAndFax(context.getDestinationDecision() and\n + context.getDestinationDecisionValue().getTelephoneText() or \'\',\n + context.getDestinationDecision() and context.getDestinationDecisionValue().getFaxText() or \'\'),\n + \'destination_decision_email\': getEmail(context.getDestinationDecision() and\n + context.getDestinationDecisionValue().getEmailText() or \'\'),\n +\n + \'reference\': context.getReference() or \'\',\n + \'start_date\': getOrderedDate(context.getStartDate()) or \'\',\n + \'stop_date\': getOrderedDate(context.getStopDate()) or \'\',\n + \'creation_date\': getOrderedDate(context.getCreationDate()) or \'\',\n + \'currency\': context.getPriceCurrencyReference() or \'\',\n + \'payment_condition\': getPaymentConditionText(context),\n + \'delivery_mode\': context.getDeliveryModeTitle() or \'\',\n + \'incoterm\': context.getIncoterm() and context.getIncotermValue().getCodification() or \'\',\n +\n + \'total_price_novat\': total_price,\n + \'description\': getFieldAsLineList(context.getDescription() or\n + getPropertyFromModel(model, \'description\') or \'\'),\n + \'specialise_title\': context.getProperty(\'specialise_title\',\'\'),\n +\n + \'line_list\': line_list,\n +}\n +\n +return unicodeDict(data_dict)\n +</string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>errors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>func_code</string> </key> + <value> + <object> + <klass> + <global name="FuncCode" module="Shared.DC.Scripts.Signature"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>co_argcount</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>_getattr_</string> + <string>context</string> + <string>translateString</string> + <string>request</string> + <string>use_line_title</string> + <string>model</string> + <string>getPropertyFromModel</string> + <string>getFieldAsLineList</string> + <string>getFieldAsString</string> + <string>getProductAndLineDesc</string> + <string>getOneLineAddress</string> + <string>getPhoneAndFax</string> + <string>getEmail</string> + <string>getVatId</string> + <string>getActivityCodeId</string> + <string>getCorporateRegistrationCodeId</string> + <string>getSocialCodeId</string> + <string>getCareerId</string> + <string>preferred_date_order</string> + <string>separator</string> + <string>getOrderedDate</string> + <string>getPaymentConditionText</string> + <string>line_list</string> + <string>total_price</string> + <string>total_vat</string> + <string>unicodeDict</string> + <string>inch_cm_ratio</string> + <string>EmptyOrganisation</string> + <string>source</string> + <string>None</string> + <string>destination</string> + <string>source_section</string> + <string>destination_section</string> + <string>source_administration</string> + <string>destination_administration</string> + <string>getattr</string> + <string>data_dict</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PaySheetTransaction_getODTDataDict</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getYearToDateBaseContributionTotalPrice.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getYearToDateBaseContributionTotalPrice.xml index 3e81032d57..58f8bd7aec 100644 --- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getYearToDateBaseContributionTotalPrice.xml +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getYearToDateBaseContributionTotalPrice.xml @@ -56,7 +56,7 @@ <value> <string>\'\'\'\n this script return the total price of the base contribution list\n from the first of january of the year of the paysheet and until\n - the start_date of this current paysheet.\n + the start_date of this current paysheet. Return 0.0 if there is no amount.\n \'\'\'\n \n if paysheet is None:\n @@ -73,7 +73,12 @@ portal = context.getPortalObject();\n portal_simulation = portal.portal_simulation\n \n base_amount = portal.portal_categories.base_amount\n -base_contribution_uid_list = [getattr(base_amount, category, None).getUid() for category in base_contribution_list]\n +\n +for category in base_contribution_list:\n + category_value = getattr(base_amount, category, None)\n + if category_value is None:\n + raise ValueError, \'Category "%s/%s" not found.\' % (base_amount.getPath(), category) \n + base_contribution_uid_list = category_value.getUid()\n \n params = {\n \'node_uid\' : paysheet.getSourceSectionUid(),\n @@ -135,11 +140,11 @@ return portal_simulation.getInventoryAssetPrice(**params)\n <string>portal</string> <string>portal_simulation</string> <string>base_amount</string> - <string>append</string> - <string>$append0</string> <string>_getiter_</string> <string>category</string> <string>getattr</string> + <string>category_value</string> + <string>ValueError</string> <string>base_contribution_uid_list</string> <string>DateTime</string> <string>params</string> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODT.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODT.xml new file mode 100644 index 0000000000..580d0ba2c1 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODT.xml @@ -0,0 +1,690 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="OOoTemplate" module="Products.ERP5OOo.OOoTemplate"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>OLE_documents_zipstring</string> </key> + <value> <string encoding="base64">UEsDBBQAAAAIAKKDdTg1Ytc5PgEAAEoHAAAVAAAATUVUQS1JTkYvbWFuaWZlc3QueG1stZVLasMw +EED3PYXR3lbbVTFxAi30BOkBJvLYEeiHZhSS21cO5NM2lKZYOwmk90YjzWix2ltT7TCS9q4TT82j +qNAp32s3duJj/V6/iNXyYWHB6QGJ29OgyvscnaedSNG1HkhT68AitaxaH9D1XiWLjtuv69vJtHyo +LuBBG6zzwnioLjLsNdR8CNgJCMFoBZzjlDvXN0dXc61oGPcsLruHZEwdgLedkELeJbtNefNu0GOK +xyDoWRIDJ9pALIMHpdBgnvooVYpxOmLOYnFXEcFgPDAWggcfUshPIBXCRz9GpHI3PYVeDM7em2Jw +bWFEkq+aLQQq6riT/b1fUHJT9TRJN+pa8LcY7pRPnUhOtXoTnv38v2L+nUt8MEizYy0yzNZ41ttk +Nw60IcmnYRPcODd83sQic/4Qz6ldyB//4fITUEsBAhQAFAAAAAgAooN1ODVi1zk+AQAASgcAABUA +AAAAAAAAAAAAAAAAAAAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbFBLBQYAAAAAAQABAEMAAABxAQAA +AAA=</string> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<office:document-content xmlns:office=\'urn:oasis:names:tc:opendocument:xmlns:office:1.0\' xmlns:text=\'urn:oasis:names:tc:opendocument:xmlns:text:1.0\' xmlns:number=\'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\' xmlns:meta=\'urn:oasis:names:tc:opendocument:xmlns:meta:1.0\' xmlns:tal=\'http://xml.zope.org/namespaces/tal\' xmlns:table=\'urn:oasis:names:tc:opendocument:xmlns:table:1.0\' xmlns:style=\'urn:oasis:names:tc:opendocument:xmlns:style:1.0\' xmlns:script=\'urn:oasis:names:tc:opendocument:xmlns:script:1.0\' xmlns:xlink=\'http://www.w3.org/1999/xlink\' xmlns:math=\'http://www.w3.org/1998/Math/MathML\' xmlns:draw=\'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\' xmlns:form=\'urn:oasis:names:tc:opendocument:xmlns:form:1.0\' xmlns:ooo=\'http://openoffice.org/2004/office\' xmlns:dc=\'http://purl.org/dc/elements/1.1/\' xmlns:chart=\'urn:oasis:names:tc:opendocument:xmlns:chart:1.0\' xmlns:i18n=\'http://xml.zope.org/namespaces/i18n\' xmlns:dr3d=\'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\' xmlns:fo=\'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\' xmlns:xforms=\'http://www.w3.org/2002/xforms\' xmlns:dom=\'http://www.w3.org/2001/xml-events\' xmlns:ooow=\'http://openoffice.org/2004/writer\' xmlns:svg=\'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\' xmlns:metal=\'http://xml.zope.org/namespaces/metal\' xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\' xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:oooc=\'http://openoffice.org/2004/calc\' tal:attributes=\'dummy python:request.RESPONSE.setHeader("Content-Type", "text/html;; charset=utf-8")\' office:version=\'1.0\'\n + tal:define="data_dict here/PaySheetTransaction_getODTDataDict;\n + set_precision python: request.set(\'precision\', here.getQuantityPrecisionFromResource(here.getPriceCurrency()));\n + quantity_renderer nocall:here/Base_viewFieldLibrary/my_money_quantity/render_pdf;\n + price_renderer nocall:here/PaySheetTransaction_viewFieldLibrary/my_price/render_pdf;\n + default_language python:test(request.get(\'international_form\'), \'en\', here.Localizer.get_selected_language())">\n + <office:scripts/>\n + <office:font-face-decls>\n + <style:font-face svg:font-family=\'StarSymbol\' style:name=\'StarSymbol\' style:font-charset=\'x-symbol\'/>\n + <style:font-face svg:font-family="\'DejaVu Sans\'" style:name=\'DejaVu Sans1\' style:font-pitch=\'variable\'/>\n + <style:font-face svg:font-family="\'Times New Roman\'" style:font-family-generic=\'roman\' style:name=\'Times New Roman\' style:font-pitch=\'variable\'/>\n + <style:font-face svg:font-family=\'Arial\' style:font-family-generic=\'swiss\' style:name=\'Arial1\' style:font-pitch=\'variable\'/>\n + <style:font-face svg:font-family=\'Arial\' style:font-family-generic=\'swiss\' style:name=\'Arial\' style:font-pitch=\'variable\' style:font-adornments=\'Normalny\'/>\n + <style:font-face svg:font-family="\'DejaVu Sans\'" style:font-family-generic=\'swiss\' style:name=\'DejaVu Sans\' style:font-pitch=\'variable\'/>\n + <style:font-face svg:font-family="\'DejaVu Sans\'" style:font-family-generic=\'system\' style:name=\'DejaVu Sans2\' style:font-pitch=\'variable\'/>\n + </office:font-face-decls>\n + <office:automatic-styles>\n + <style:style style:family=\'table\' style:name=\'Tableau1\'>\n + <style:table-properties fo:margin-left=\'0.021cm\' fo:margin-right=\'-0.014cm\' fo:break-before=\'page\' table:align=\'margins\' style:width=\'18.994cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.A\'>\n + <style:table-column-properties style:rel-column-width=\'31535*\' style:column-width=\'1.58cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.B\'>\n + <style:table-column-properties style:rel-column-width=\'8000*\' style:column-width=\'2.073cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.C\'>\n + <style:table-column-properties style:rel-column-width=\'5000*\' style:column-width=\'6.971cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.D\'>\n + <style:table-column-properties style:rel-column-width=\'8000*\' style:column-width=\'1.318cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.E\'>\n + <style:table-column-properties style:rel-column-width=\'5000*\' style:column-width=\'1.012cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.F\'>\n + <style:table-column-properties style:rel-column-width=\'8000*\' style:column-width=\'1.669cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau1.1\'>\n + <style:table-row-properties style:min-row-height=\'5.0cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A1\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:background-color=\'transparent\' fo:border=\'none\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table\' style:name=\'Tableau2\'>\n + <style:table-properties fo:margin-left=\'0cm\' fo:margin-right=\'0.019cm\' table:align=\'margins\' style:width=\'18.974cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.A\'>\n + <style:table-column-properties style:rel-column-width=\'5326*\' style:column-width=\'1.542cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.B\'>\n + <style:table-column-properties style:rel-column-width=\'22690*\' style:column-width=\'5.000cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.C\'>\n + <style:table-column-properties style:rel-column-width=\'5326*\' style:column-width=\'1.542cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.D\'>\n + <style:table-column-properties style:rel-column-width=\'32192*\' style:column-width=\'5.000cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.E\'>\n + <style:table-column-properties style:rel-column-width=\'1*\' style:column-width=\'5.000cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau2.1\'>\n + <style:table-row-properties style:row-height=\'2.5cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.A1\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'none\' fo:border-top=\'0.018cm solid #000000\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.A2\'>\n + <style:table-cell-properties fo:padding=\'0.5cm\' fo:padding-left=\'0.8cm\' fo:border-right=\'none\' fo:border-top=\'0.018cm solid #000000\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.A3\'>\n + <style:table-cell-properties fo:padding=\'0.2cm\' fo:padding-left=\'0.5cm\' fo:border-right=\'none\' fo:border-top=\'none\' fo:border-left=\'none\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.A4\'>\n + <style:table-cell-properties fo:padding=\'0.049cm\' fo:border=\'0.018cm solid #000000\' style:vertical-align=\'top\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.A5\'>\n + <style:table-cell-properties fo:padding=\'0.5cm\' fo:padding-left=\'1.2cm\' fo:border-right=\'none\' fo:border-top=\'0.018cm solid #000000\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A2\'>\n + <style:table-cell-properties fo:padding=\'0.049cm\' fo:background-color=\'#e6e6e6\' fo:border=\'0.008cm solid #000000\' style:vertical-align=\'middle\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau1.3\'>\n + <style:table-row-properties style:min-row-height=\'0.4cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A3\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:border-right=\'0.008cm solid #000000\' fo:border-top=\'none\' fo:background-color=\'transparent\' fo:border-left=\'0.008cm solid #000000\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau1.4\'>\n + <style:table-row-properties style:row-height=\'0.3cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A4\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:border-right=\'none\' fo:border-top=\'0.008cm solid #000000\' fo:background-color=\'transparent\' fo:border-left=\'none\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A6\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:border-right=\'0.008cm solid #000000\' fo:border-top=\'none\' fo:background-color=\'transparent\' fo:border-left=\'0.008cm solid #000000\' fo:border-bottom=\'0.008cm solid #000000\' style:vertical-align=\'middle\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A7\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:border-right=\'none\' fo:border-top=\'none\' fo:background-color=\'transparent\' fo:border-left=\'none\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A8\'>\n + <style:table-cell-properties fo:padding=\'0cm\' fo:border-right=\'0.008cm solid #000000\' fo:border-top=\'0.008cm solid #000000\' fo:background-color=\'transparent\' fo:border-left=\'0.008cm solid #000000\' fo:border-bottom=\'0.008cm solid #000000\' style:vertical-align=\'middle\'>\n + <style:background-image/>\n + </style:table-cell-properties>\n + </style:style>\n + <style:style style:family=\'table\' style:name=\'Tableau3\'>\n + <style:table-properties style:may-break-between-rows=\'false\' table:align=\'margins\' style:width=\'18.994cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau3.A\'>\n + <style:table-column-properties style:rel-column-width=\'20267*\' style:column-width=\'3.053cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau3.B\'>\n + <style:table-column-properties style:rel-column-width=\'14134*\' style:column-width=\'1.593cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau3.C\'>\n + <style:table-column-properties style:rel-column-width=\'14134*\' style:column-width=\'9.985cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau3.D\'>\n + <style:table-column-properties style:rel-column-width=\'9000*\' style:column-width=\'2.656cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau3.E\'>\n + <style:table-column-properties style:rel-column-width=\'8000*\' style:column-width=\'1.707cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.1\'>\n + <style:table-row-properties style:row-height=\'0.5cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.A1\'>\n + <style:table-cell-properties style:vertical-align=\'middle\' fo:padding=\'0.097cm\' fo:border=\'none\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.2\'>\n + <style:table-row-properties style:row-height=\'0.75cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.3\'>\n + <style:table-row-properties style:row-height=\'2cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.A2\'>\n + <style:table-cell-properties style:vertical-align=\'middle\' fo:padding=\'0cm\' fo:border=\'none\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.D2\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'none\' fo:border-top=\'0.018cm solid #000000\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.E2\'>\n + <style:table-cell-properties style:vertical-align=\'middle\' fo:padding=\'0.097cm\' fo:border=\'0.018cm solid #000000\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.D3\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'none\' fo:border-top=\'none\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.E3\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'0.018cm solid #000000\' fo:border-top=\'none\' fo:border-left=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.6\'>\n + <style:table-row-properties style:row-height=\'0.45cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.A6\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'none\' fo:border-top=\'0.008cm solid #000000\' fo:border-left=\'0.008cm solid #000000\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.B6\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'none\' fo:border-top=\'0.008cm solid #000000\' fo:border-left=\'none\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.E6\'>\n + <style:table-cell-properties fo:padding=\'0.097cm\' fo:border-right=\'0.008cm solid #000000\' fo:border-top=\'0.008cm solid #000000\' fo:border-left=\'none\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.7\'>\n + <style:table-row-properties style:row-height=\'1.499cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.A7\'>\n + <style:table-cell-properties fo:border-left=\'0.008cm solid #000000\' fo:border-right=\'0.008cm solid #000000\' fo:border-bottom=\'0.008cm solid #000000\' fo:padding=\'0.097cm\' fo:border-top=\'none\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau3.8\'>\n + <style:table-row-properties style:row-height=\'0.0cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau3.A8\'>\n + <style:table-cell-properties fo:padding=\'0.0cm\' fo:border-right=\'none\' fo:border-top=\'0.008cm solid #000000\' fo:border-left=\'0.008cm solid #000000\' fo:border-bottom=\'none\' style:vertical-align=\'middle\'/>\n + </style:style>\n + <style:style style:family=\'table\' style:name=\'Tableau4\'>\n + <style:table-properties style:may-break-between-rows=\'false\' table:align=\'margins\' style:width=\'18.994cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.A\'>\n + <style:table-column-properties style:rel-column-width=\'10922*\' style:column-width=\'3.053cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.B\'>\n + <style:table-column-properties style:rel-column-width=\'10922*\' style:column-width=\'1.593cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.C\'>\n + <style:table-column-properties style:rel-column-width=\'10922*\' style:column-width=\'9.985cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.D\'>\n + <style:table-column-properties style:rel-column-width=\'10923*\' style:column-width=\'2.656cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.E\'>\n + <style:table-column-properties style:rel-column-width=\'10923*\' style:column-width=\'1.707cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau4.F\'>\n + <style:table-column-properties style:rel-column-width=\'10923*\' style:column-width=\'1.707cm\'/>\n + </style:style>\n + <style:style style:parent-style-name=\'Table_20_Heading\' style:family=\'paragraph\' style:name=\'P1\'>\n + <style:text-properties fo:font-style=\'normal\' style:font-style-asian=\'normal\' style:font-size-complex=\'7pt\' style:font-size-asian=\'7pt\' style:font-style-complex=\'normal\' style:font-weight-complex=\'normal\' style:font-weight-asian=\'normal\' fo:font-size=\'7pt\' fo:font-weight=\'normal\'/>\n + </style:style>\n + <style:style style:parent-style-name=\'Table_20_Heading\' style:family=\'paragraph\' style:name=\'P2\'>\n + <style:paragraph-properties fo:text-align=\'start\' style:justify-single-word=\'false\'/>\n + </style:style>\n + <style:style style:parent-style-name=\'Table_20_Contents\' style:family=\'paragraph\' style:name=\'P3\'>\n + <style:paragraph-properties fo:text-align=\'left\' style:justify-single-word=\'false\'/>\n + </style:style>\n + <style:style style:parent-style-name=\'Text_20_body\' style:family=\'paragraph\' style:name=\'P4\'>\n + <style:text-properties style:font-size-complex=\'6pt\' style:font-size-asian=\'6pt\' style:font-weight-complex=\'normal\' style:font-weight-asian=\'normal\' fo:font-size=\'6pt\' fo:font-weight=\'normal\'/>\n + </style:style>\n + </office:automatic-styles>\n + <office:body>\n + <office:text>\n + <text:variable-decls>\n + <text:variable-decl text:name=\'ds_title\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'ds_address\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'ds_telfax\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'ds_email\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'ds_vatid\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'purchase_order\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'purchase_order_tr\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'page\' office:value-type=\'string\'/>\n + <text:variable-decl text:name=\'of\' office:value-type=\'string\'/>\n + </text:variable-decls>\n + <text:sequence-decls>\n + <text:sequence-decl text:display-outline-level=\'0\' text:name=\'Illustration\'/>\n + <text:sequence-decl text:display-outline-level=\'0\' text:name=\'Table\'/>\n + <text:sequence-decl text:display-outline-level=\'0\' text:name=\'Text\'/>\n + <text:sequence-decl text:display-outline-level=\'0\' text:name=\'Drawing\'/>\n + </text:sequence-decls>\n + <draw:line text:anchor-type="page" text:anchor-page-number="1" draw:z-index="1" draw:style-name="gr1" draw:text-style-name="P1" svg:x1="-0.004cm" svg:y1="9.8cm" svg:x2="0.396cm" svg:y2="9.8cm">\n + <text:p/>\n + </draw:line>\n + <draw:line text:anchor-type="page" text:anchor-page-number="1" draw:z-index="2" draw:style-name="gr1" draw:text-style-name="P1" svg:x1="-0.004cm" svg:y1="19.962cm" svg:x2="0.396cm" svg:y2="19.962cm">\n + <text:p/>\n + </draw:line>\n + <table:table table:style-name=\'Tableau1\' table:name=\'Tableau1\'>\n + <table:table-column table:style-name=\'Tableau1.A\'/>\n + <table:table-column table:style-name=\'Tableau1.B\'/>\n + <table:table-column table:style-name=\'Tableau1.C\'/>\n + <table:table-column table:style-name=\'Tableau1.D\'/>\n + <table:table-column table:style-name=\'Tableau1.E\'/>\n + <table:table-column table:style-name=\'Tableau1.F\'/>\n + <table:table-header-rows>\n + <table:table-row table:style-name=\'Tableau1.1\'>\n + <table:table-cell table:style-name=\'Tableau1.A1\'\n + table:number-columns-spanned=\'6\'\n + office:value-type=\'string\'>\n + <table:table table:style-name=\'Tableau2\' table:name=\'Tableau2\'>\n + <table:table-column table:style-name=\'Tableau2.A\'/>\n + <table:table-column table:style-name=\'Tableau2.B\'/>\n + <table:table-column table:style-name=\'Tableau2.C\'/>\n + <table:table-column table:style-name=\'Tableau2.D\'/>\n + <table:table-column table:style-name=\'Tableau2.E\'/>\n + <table:table-header-rows>\n + <table:table-row table:style-name=\'Tableau2.1\'>\n + <table:table-cell table:style-name=\'Tableau2.A2\'\n + office:value-type=\'string\' table:number-columns-spanned=\'2\'>\n + <text:p text:style-name=\'Big_20_Table_20_Content_20_Left\'\n + tal:content=\'python:data_dict["destination_section_title"]\'>destination_section</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:content=\'python:data_dict["destination_section_address"]\'>address</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:content=\'python:data_dict["destination_section_telfax"]\'>tel, fax</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:content=\'python:data_dict["destination_section_email"]\'>email</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_vatid\'\n + tal:content=\'python:data_dict["destination_section_vatid"]\'>vat ID</text:p>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:table-cell table:style-name=\'Tableau2.A5\'\n + office:value-type=\'string\' table:number-columns-spanned=\'2\'\n + table:number-rows-spanned=\'2\'>\n +\n + <text:p text:style-name=\'Header_20_Title_Left\'\n + tal:content=\'python:data_dict["source_section_title"]\'>source</text:p>\n + <text:p text:style-name=\'Header_20_left\'\n + tal:content="structure python:data_dict[\'source_section_address\'].replace(\'&\', \'&amp;\').replace(\'>\', \'&gt;\').replace(\'<\', \'&lt;\').replace(\'\\n\', \'<text:line-break/>\')"/>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:table-cell table:style-name=\'Tableau2.A1\'\n + office:value-type=\'string\'>\n + </table:table-cell>\n + </table:table-row>\n + </table:table-header-rows>\n + <table:table-row table:style-name=\'Tableau2.1\'>\n + <table:table-cell table:style-name=\'Tableau2.A4\'\n + office:value-type=\'string\' table:number-columns-spanned=\'2\'>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_corporate_registration_codeid\'\n + tal:content=\'python:data_dict["destination_section_corporate_registration_codeid"]\'>SIRET</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_activity_codeid\'\n + tal:content=\'python:data_dict["destination_section_activity_codeid"]\'>APE</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_social_codeid\'\n + tal:content=\'python:data_dict["destination_section_social_codeid"]\'>Social Code</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_social_company_title\'\n + tal:content=\'python:data_dict["destination_section_social_company_title"]\'>Social Code</text:p>\n + <text:p text:style-name=\'Table_20_Contents_20_Left\'\n + tal:condition=\'data_dict/destination_section_social_address\'\n + tal:content=\'python:data_dict["destination_section_social_address"]\'>Social Code</text:p>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:table-cell table:style-name=\'Tableau2.A1\'\n + office:value-type=\'string\'>\n + </table:table-cell>\n + </table:table-row>\n + </table:table>\n + <text:p text:style-name=\'P1\'/>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + </table:table-row>\n + <table:table-row>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Designation; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Base; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Employee Share Rate; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Employee Share; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Employer Share Rate; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Employer Share; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'orig_message\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/></text:p>\n + </table:table-cell>\n + </table:table-row>\n + </table:table-header-rows>\n + <tal:block tal:define="global service python:None"/>\n + <tal:block tal:define="global previous_line python:None"/>\n + <tal:block tal:repeat=\'line_dict python:data_dict["line_list"]\'>\n +\n + <!-- If previous line has \'base_salary\' category in its\n + base_contribution list and the next one don\'t have, display the total\n + gross_salary -->\n + <tal:block condition="python: previous_line is not None and \'base_amount/gross_salary\' in previous_line[\'base_contribution_list\'] and \'base_amount/gross_salary\' not in line_dict[\'base_contribution_list\']">\n + <table:table-row table:style-name=\'Tableau1.3\'>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:content=\'python: here.Base_translateString("Gross Salary")\'>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents_20_Right\' tal:content=\'python:quantity_renderer(context.PaySheetTransaction_getMovementTotalPriceFromCategory(base_contribution="base_contribution/base_amount/gross_salary", tax_category="tax_category/employee_share"))\'>400 000</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A8\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </table:table-row>\n + </tal:block>\n + \n +\n + <!-- display the name of the service if it\'s not the same than the\n + previous -->\n + <tal:block condition="python: service != line_dict[\'group\']">\n + <table:table-row table:style-name=\'Tableau1.3\'>\n + <tal:block tal:define="global service python: line_dict[\'group\']"/>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:content=\'python:line_dict["group"]\'>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </table:table-row>\n + </tal:block>\n +\n +\n + <table:table-row table:style-name=\'Tableau1.3\'>\n + <div tal:omit-tag=\'\' tal:define="style_name python:\'Item_20_Table_20_Title\';\n + left_style_name python:\'Table_20_Contents_20_Left\';\n + right_style_name python:\'Table_20_Contents_20_Right\'">\n +\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["title"]\' tal:attributes=\'text:style-name left_style_name\'>1</text:p>\n + </table:table-cell>\n + \n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'float\'\n + tal:condition="python: line_dict[\'base\'] != None"\n + tal:attributes=\'office:value line_dict/base\'> \n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: quantity_renderer(line_dict[\'base\'])"\n + tal:attributes=\'text:style-name right_style_name\'>base</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'string\'\n + tal:condition="python: line_dict[\'base\'] == None"> \n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n +\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'float\'\n + tal:condition="python: line_dict[\'employee_share_price\'] != None"\n + tal:attributes=\'office:value line_dict/employee_share_price\'> \n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: price_renderer(line_dict[\'employee_share_price\'])"\n + tal:attributes=\'text:style-name right_style_name\'>employee price</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'string\'\n + tal:condition="python: line_dict[\'employee_share_price\'] == None"> \n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n +\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'float\'\n + tal:condition="python: line_dict[\'employee_share_total_price\'] != None"\n + tal:attributes=\'office:value line_dict/employee_share_total_price\'> \n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: quantity_renderer(line_dict[\'employee_share_total_price\'])"\n + tal:attributes=\'text:style-name right_style_name\'>employee total price</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'string\'\n + tal:condition="python: line_dict[\'employee_share_total_price\'] == None"> \n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n +\n + <!-- if this line not contribute to gross_salary base amount display employer share else don\'t display it-->\n + <tal:block tal:condition="python: \'base_amount/gross_salary\' not in line_dict[\'base_contribution_list\']">\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'float\'\n + tal:condition="python: line_dict[\'employer_share_price\'] != None"\n + tal:attributes=\'office:value line_dict/employer_share_price\'> \n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: price_renderer(line_dict[\'employer_share_price\'])"\n + tal:attributes=\'text:style-name right_style_name\'>employer price</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'string\'\n + tal:condition="python: line_dict[\'employer_share_price\'] == None"> \n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'float\'\n + tal:condition="python: line_dict[\'employer_share_total_price\'] != None"\n + tal:attributes=\'office:value line_dict/employer_share_total_price\'> \n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: quantity_renderer(line_dict[\'employer_share_total_price\'])"\n + tal:attributes=\'text:style-name right_style_name\'>employer total price</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\'\n + office:value-type=\'string\'\n + tal:condition="python: line_dict[\'employer_share_total_price\'] == None"> \n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </tal:block>\n + <tal:block tal:condition="python: \'base_amount/gross_salary\' in line_dict[\'base_contribution_list\']">\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </tal:block>\n + </div>\n + </table:table-row>\n + <tal:block tal:define="global previous_line python:line_dict"/>\n + </tal:block>\n + <table:table-row table:style-name=\'Tableau1.4\' >\n + <div tal:omit-tag=\'\' tal:define="style_name python:\'Item_20_Table_20_Title\';\n + left_style_name python:\'Table_20_Contents_20_Left\';\n + right_style_name python:\'Table_20_Contents_20_Right\'">\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A4\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </div>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau1.5\'>\n + <table:table-cell table:style-name=\'Tableau1.A5\'\n + table:number-columns-spanned=\'9\' office:value-type=\'string\'>\n + <table:table table:style-name=\'Tableau3\' table:name=\'Tableau3\'>\n + <table:table-column table:style-name=\'Tableau3.A\'/>\n + <table:table-column table:style-name=\'Tableau3.B\'/>\n + <table:table-column table:style-name=\'Tableau3.C\'/>\n + <table:table-column table:style-name=\'Tableau3.D\'/>\n + <table:table-column table:style-name=\'Tableau3.E\'/>\n + <table:table-row table:style-name=\'Tableau3.2\'>\n + <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.D2\' office:value-type=\'string\' tal:define=\'orig_string string:Net payable; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'orig_message\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:translated_message != orig_message\'><span tal:replace=\'translated_message\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.E2\'\n + office:value-type=\'float\'\n + tal:attributes=\'office:value data_dict/total_price_novat\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\' tal:content="python: \'%s %s\' % (quantity_renderer(context.PaySheetTransaction_getMovementTotalPriceFromCategory(base_contribution=\'base_contribution/base_amount/net_salary\', tax_category=\'tax_category/employee_share\')), data_dict[\'currency\'])">800.000,00</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau3.1\'>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </table:table-row>\n + <!-- call a macro to display other information in this way, the\n + paysheet could be adapted for all countries and legislation-->\n + <tal:block metal:use-macro="here/payroll_odt_macro/macros/other_informations" />\n + </table:table>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + </table:table-row>\n + </table:table>\n + <text:p text:style-name=\'P4\'/>\n + </office:text>\n + </office:body>\n +</office:document-content>\n + + +]]></string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.text</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PaySheetTransaction_viewAsODT</string> </value> + </item> + <item> + <key> <string>ooo_stylesheet</string> </key> + <value> <string>PaySheetTransaction_viewAsODTStyles</string> </value> + </item> + <item> + <key> <string>ooo_xml_file_id</string> </key> + <value> <string>content.xml</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODTStyles.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODTStyles.xml new file mode 100644 index 0000000000..aac2e25525 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewAsODTStyles.xml @@ -0,0 +1,409 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="OOoTemplate" module="Products.ERP5OOo.OOoTemplate"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>OLE_documents_zipstring</string> </key> + <value> <string encoding="base64">UEsDBBQAAAAIAMCAlTg1Ytc5PgEAAEoHAAAVAAAATUVUQS1JTkYvbWFuaWZlc3QueG1stZVLasMw +EED3PYXR3lbbVTFxAi30BOkBJvLYEeiHZhSS21cO5NM2lKZYOwmk90YjzWix2ltT7TCS9q4TT82j +qNAp32s3duJj/V6/iNXyYWHB6QGJ29OgyvscnaedSNG1HkhT68AitaxaH9D1XiWLjtuv69vJtHyo +LuBBG6zzwnioLjLsNdR8CNgJCMFoBZzjlDvXN0dXc61oGPcsLruHZEwdgLedkELeJbtNefNu0GOK +xyDoWRIDJ9pALIMHpdBgnvooVYpxOmLOYnFXEcFgPDAWggcfUshPIBXCRz9GpHI3PYVeDM7em2Jw +bWFEkq+aLQQq6riT/b1fUHJT9TRJN+pa8LcY7pRPnUhOtXoTnv38v2L+nUt8MEizYy0yzNZ41ttk +Nw60IcmnYRPcODd83sQic/4Qz6ldyB//4fITUEsBAhQAFAAAAAgAwICVODVi1zk+AQAASgcAABUA +AAAAAAAAAAAAAAAAAAAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbFBLBQYAAAAAAQABAEMAAABxAQAA +AAA=</string> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<?xml version="1.0" encoding="utf-8"?>\n +<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"\n + xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"\n + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"\n + xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"\n + xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"\n + xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"\n + xmlns:xlink="http://www.w3.org/1999/xlink"\n + xmlns:dc="http://purl.org/dc/elements/1.1/"\n + xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"\n + xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"\n + xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"\n + xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"\n + xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"\n + xmlns:math="http://www.w3.org/1998/Math/MathML"\n + xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"\n + xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"\n + xmlns:ooo="http://openoffice.org/2004/office"\n + xmlns:ooow="http://openoffice.org/2004/writer"\n + xmlns:oooc="http://openoffice.org/2004/calc"\n + xmlns:dom="http://www.w3.org/2001/xml-events"\n + xmlns:tal="http://xml.zope.org/namespaces/tal"\n + xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n + xmlns:metal="http://xml.zope.org/namespaces/metal"\n + office:version="1.1"\n + tal:attributes="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')"\n + tal:define=\'data_dict here/PaySheetTransaction_getODTDataDict\'>\n + <office:font-face-decls>\n + <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/>\n + <style:font-face style:name="DejaVu Sans1" svg:font-family="\'DejaVu Sans\'" style:font-pitch="variable"/>\n + <style:font-face style:name="Times New Roman" svg:font-family="\'Times New Roman\'" style:font-family-generic="roman" style:font-pitch="variable"/>\n + <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>\n + <style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Normalny" style:font-family-generic="swiss" style:font-pitch="variable"/>\n + <style:font-face style:name="DejaVu Sans" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>\n + <style:font-face style:name="DejaVu Sans2" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="system" style:font-pitch="variable"/>\n + </office:font-face-decls>\n + <office:styles>\n + <style:default-style style:family="graphic">\n + <style:graphic-properties draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="true"/>\n + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">\n + <style:tab-stops/>\n + </style:paragraph-properties>\n + <style:text-properties style:use-window-font-color="true" fo:font-size="12pt" fo:language="pl" fo:country="PL" style:font-size-asian="12pt" style:language-asian="pl" style:country-asian="PL" style:font-size-complex="12pt" style:language-complex="pl" style:country-complex="PL"/>\n + </style:default-style>\n + <style:default-style style:family="paragraph">\n + <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>\n + <style:text-properties style:use-window-font-color="true" style:font-name="Times New Roman" fo:font-size="12pt" fo:language="pl" fo:country="PL" style:font-name-asian="DejaVu Sans1" style:font-size-asian="12pt" style:language-asian="pl" style:country-asian="PL" style:font-name-complex="DejaVu Sans1" style:font-size-complex="12pt" style:language-complex="pl" style:country-complex="PL" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>\n + </style:default-style>\n + <style:default-style style:family="table">\n + <style:table-properties table:border-model="collapsing"/>\n + </style:default-style>\n + <style:default-style style:family="table-row">\n + <style:table-row-properties fo:keep-together="always"/>\n + </style:default-style>\n + <style:style style:name="Standard" style:family="paragraph" style:class="text">\n + <style:text-properties style:font-name="Arial"/>\n + </style:style>\n + <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">\n + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm"/>\n + </style:style>\n + <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">\n + <style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" fo:keep-with-next="always"/>\n + <style:text-properties style:font-name="DejaVu Sans" fo:font-size="14pt" style:font-name-asian="DejaVu Sans2" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans2" style:font-size-complex="14pt"/>\n + </style:style>\n + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Header" style:next-style-name="Text_20_body" style:class="text">\n + <style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>\n + </style:style>\n + <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list"/>\n + <style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="extra" style:master-page-name="">\n + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:text-align="start" style:justify-single-word="false" style:register-true="true" style:page-number="auto" fo:background-color="transparent" style:shadow="none" fo:keep-with-next="always" style:vertical-align="auto">\n + <style:tab-stops/>\n + <style:background-image/>\n + </style:paragraph-properties>\n + <style:text-properties style:font-name="Arial1" fo:font-size="7pt" style:font-name-asian="DejaVu Sans1" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans1" style:font-size-complex="14pt"/>\n + </style:style>\n + <style:style style:name="Header_20_left" style:display-name="Header left" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties text:number-lines="false" text:line-number="0">\n + <style:tab-stops>\n + <style:tab-stop style:position="9.5cm" style:type="center"/>\n + <style:tab-stop style:position="19.001cm" style:type="right"/>\n + </style:tab-stops>\n + </style:paragraph-properties>\n + </style:style>\n + <style:style style:name="Header_20_right" style:display-name="Header right" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties fo:text-align="end" style:justify-single-word="false" text:number-lines="false" text:line-number="0">\n + <style:tab-stops>\n + <style:tab-stop style:position="9.5cm" style:type="center"/>\n + <style:tab-stop style:position="19.001cm" style:type="right"/>\n + </style:tab-stops>\n + </style:paragraph-properties>\n + <style:text-properties fo:font-size="8pt" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties text:number-lines="false" text:line-number="0">\n + <style:tab-stops>\n + <style:tab-stop style:position="9.5cm" style:type="center"/>\n + <style:tab-stop style:position="19.001cm" style:type="right"/>\n + </style:tab-stops>\n + </style:paragraph-properties>\n + <style:text-properties fo:font-size="6pt"/>\n + </style:style>\n + <style:style style:name="Footer_20_right" style:display-name="Footer right" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties text:number-lines="false" text:line-number="0">\n + <style:tab-stops>\n + <style:tab-stop style:position="9.5cm" style:type="center"/>\n + <style:tab-stop style:position="19.001cm" style:type="right"/>\n + </style:tab-stops>\n + </style:paragraph-properties>\n + </style:style>\n + <style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>\n + <style:text-properties fo:font-size="7pt"/>\n + </style:style>\n + <style:style style:name="Table_20_Heading" style:display-name="Table Heading" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra">\n + <style:paragraph-properties fo:text-align="end" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>\n + <style:text-properties fo:font-size="6pt" fo:font-style="normal" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">\n + <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" text:number-lines="false" text:line-number="0"/>\n + <style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-size-complex="12pt" style:font-style-complex="italic"/>\n + </style:style>\n + <style:style style:name="Table" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>\n + <style:style style:name="Text" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>\n + <style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="extra"/>\n + <style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">\n + <style:paragraph-properties text:number-lines="false" text:line-number="0"/>\n + </style:style>\n + <style:style style:name="Header_20_Title" style:display-name="Header Title" style:family="paragraph" style:parent-style-name="Header_20_right" style:master-page-name="">\n + <style:paragraph-properties style:page-number="auto" style:shadow="none"/>\n + <style:text-properties fo:text-transform="uppercase" fo:font-size="16pt"/>\n + </style:style>\n + <style:style style:name="Header_20_Title_Left" style:display-name="Header Title Left" style:family="paragraph" style:parent-style-name="Header_20_left" style:master-page-name="">\n + <style:paragraph-properties style:page-number="auto" style:shadow="none"/>\n + <style:text-properties fo:text-transform="uppercase" fo:font-size="16pt"/>\n + </style:style>\n + <style:style style:name="Big_20_Table_20_Content" style:display-name="Big Table Content" style:family="paragraph" style:parent-style-name="Table_20_Contents">\n + <style:text-properties fo:font-size="8pt" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="Big_20_Table_20_Content_20_Left" style:display-name="Big Table Content Left" style:family="paragraph" style:parent-style-name="Big_20_Table_20_Content">\n + <style:paragraph-properties fo:margin-left="0.049cm" fo:margin-right="0cm" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>\n + </style:style>\n + <style:style style:name="Item_20_Table_20_Title" style:display-name="Item Table Title" style:family="paragraph" style:parent-style-name="Table_20_Heading" style:class="extra">\n + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>\n + <style:text-properties fo:font-size="7pt" style:font-weight-asian="normal" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="Table_20_Contents_20_Left" style:display-name="Table Contents Left" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra">\n + <style:paragraph-properties fo:margin-left="0.2cm" fo:margin-right="0cm" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>\n + </style:style>\n + <style:style style:name="Table_20_Contents_20_Right" style:display-name="Table Contents Right" style:family="paragraph" style:parent-style-name="Table_20_Contents_20_Left" style:class="extra">\n + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>\n + </style:style>\n + <style:style style:name="Item_20_Table_20_Title_20_Left" style:display-name="Item Table Title Left" style:family="paragraph" style:parent-style-name="Item_20_Table_20_Title" style:class="extra">\n + <style:paragraph-properties fo:margin-left="0.049cm" fo:margin-right="0cm" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>\n + </style:style>\n + <style:style style:name="Item_20_Table_20_Title_20_Right" style:display-name="Item Table Title Right" style:family="paragraph" style:parent-style-name="Item_20_Table_20_Title" style:class="extra">\n + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.049cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>\n + </style:style>\n + <style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">\n + <style:text-properties style:font-name="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-size-complex="9pt"/>\n + </style:style>\n + <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/>\n + <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/>\n + <style:style style:name="Graphics" style:family="graphic">\n + <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>\n + </style:style>\n + <style:style style:name="Header_20_Image" style:display-name="Header Image" style:family="graphic" style:parent-style-name="Graphics">\n + <style:graphic-properties svg:width="9.999cm" svg:height="0.049cm" text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0cm" fo:margin-right="0cm" style:run-through="foreground" style:wrap="right" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="left" style:horizontal-rel="paragraph" fo:background-color="transparent" style:background-transparency="100%" style:shadow="none">\n + <style:background-image/>\n + <style:columns fo:column-count="1" fo:column-gap="0cm"/>\n + </style:graphic-properties>\n + </style:style>\n + <text:outline-style>\n + <text:outline-level-style text:level="1" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="2" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="3" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="4" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="5" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="6" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="7" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="8" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="9" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + <text:outline-level-style text:level="10" style:num-format="">\n + <style:list-level-properties text:min-label-distance="0.381cm"/>\n + </text:outline-level-style>\n + </text:outline-style>\n + <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/>\n + <text:notes-configuration text:note-class="endnote" text:citation-style-name="Endnote_20_Symbol" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/>\n + <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>\n + </office:styles>\n + <office:automatic-styles>\n + <style:style style:name="Tableau4" style:family="table">\n + <style:table-properties style:width="19.001cm" table:align="margins" style:shadow="none"/>\n + </style:style>\n + <style:style style:name="Tableau4.A" style:family="table-column">\n + <style:table-column-properties style:column-width="6.334cm" style:rel-column-width="21845*"/>\n + </style:style>\n + <style:style style:name="Tableau4.B" style:family="table-column">\n + <style:table-column-properties style:column-width="6.334cm" style:rel-column-width="21844*"/>\n + </style:style>\n + <style:style style:name="Tableau4.1" style:family="table-row">\n + <style:table-row-properties style:min-row-height="1.723cm"/>\n + </style:style>\n + <style:style style:name="Tableau4.A1" style:family="table-cell">\n + <style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>\n + </style:style>\n + <style:style style:name="Tableau4.A2" style:family="table-cell">\n + <style:table-cell-properties fo:padding="0.097cm" fo:border="none" style:vertical-align="middle"/>\n + </style:style>\n + <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">\n + <style:text-properties style:font-name-asian="DejaVu Sans1" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans1" style:font-size-complex="14pt"/>\n + </style:style>\n + <style:style style:name="P2" style:family="paragraph" style:parent-style-name="Header_20_right">\n + <style:text-properties style:font-name-asian="DejaVu Sans1" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans1" style:font-size-complex="14pt"/>\n + </style:style>\n + <style:style style:name="fr1" style:family="graphic" style:parent-style-name="Header_20_Image">\n + <style:graphic-properties style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0cm 0cm 0cm 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>\n + </style:style>\n + <style:style style:name="gr1" style:family="graphic">\n + <style:graphic-properties draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="page" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" style:flow-with-text="false"/>\n + </style:style>\n + <style:page-layout style:name="pm1">\n + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="1cm" fo:margin-right="1cm" fo:background-color="transparent" style:writing-mode="lr-tb" style:footnote-max-height="0cm">\n + <style:background-image/>\n + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>\n + </style:page-layout-properties>\n + <style:header-style>\n + <style:header-footer-properties svg:height="2.200cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.499cm" fo:border="none" fo:padding="0cm" style:shadow="none" style:dynamic-spacing="false"/>\n + </style:header-style>\n + <style:footer-style>\n + <style:header-footer-properties fo:min-height="0.25cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" style:dynamic-spacing="false"/>\n + </style:footer-style>\n + </style:page-layout>\n + <style:page-layout style:name="pm2">\n + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">\n + <style:footnote-sep style:adjustment="left" style:rel-width="25%" style:color="#000000"/>\n + </style:page-layout-properties>\n + <style:header-style/>\n + <style:footer-style/>\n + </style:page-layout>\n + </office:automatic-styles>\n + <office:master-styles>\n + <style:master-page style:name="Standard" style:page-layout-name="pm1">\n + <style:header tal:define="default_language python:test(request.get(\'international_form\'), \'en\', here.Localizer.get_selected_language());\n + date_renderer nocall:here/Base_viewFieldLibrary/my_date/render_pdf;\n + orig_title python: \'Payslip\';\n + en_title python: unicode(here.Base_translateString(orig_title, lang=default_language), \'utf-8\');\n + my_title python: unicode(here.Base_translateString(orig_title), \'utf-8\');\n + orig_period python: \'From ${start_date} to ${stop_date}\';\n + en_period python: unicode(here.Base_translateString(orig_period, lang=default_language,\n + mapping = {\'start_date\': date_renderer(here.getStartDate()),\n + \'stop_date\': date_renderer(here.getStopDate())}), \'utf-8\');\n + my_period python: unicode(here.Base_translateString(orig_period,\n + mapping = {\'start_date\': date_renderer(here.getStartDate()),\n + \'stop_date\': date_renderer(here.getStopDate())}), \'utf-8\');\n + image_path python: here.getPortalType().startswith(\'Pay Sheet Transaction\') and data_dict[\'destination_section_image_path\'] or (data_dict[\'destination_decision_image_path\'] or data_dict[\'destination_section_image_path\']);\n + image_width python: here.getPortalType().startswith(\'Pay Sheet Transaction\') and data_dict[\'destination_section_image_width\'] or (data_dict[\'destination_decision_image_width\'] or data_dict[\'destination_section_image_width\']);\n + image_height python: here.getPortalType().startswith(\'Pay Sheet Transaction\') and data_dict[\'destination_section_image_height\'] or (data_dict[\'destination_decision_image_height\'] or data_dict[\'destination_section_image_height\'])">\n + <table:table table:name="Tableau4" table:style-name="Tableau4">\n + <table:table-column table:style-name="Tableau4.A"/>\n + <table:table-column table:style-name="Tableau4.B"/>\n + <table:table-column table:style-name="Tableau4.A"/>\n + <table:table-row table:style-name="Tableau4.1">\n + <table:table-cell table:style-name="Tableau4.A1" office:value-type="string">\n + <text:p text:style-name="P1">\n + <office:include_img tal:condition="python: image_path and image_width and image_height"\n + maxwidth="6cm"\n + maxheight="2cm"\n + tal:attributes="path image_path;\n + draw:style-name string:fr1;\n + draw:z-index string:0;\n + text:anchor-type string:paragraph;\n + width image_width;\n + height image_height"/>\n + </text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="Tableau4.A2" office:value-type="string">\n + </table:table-cell>\n + <table:table-cell table:style-name="Tableau4.A1" office:value-type="string">\n + <text:p text:style-name="Header_20_Title"\n + tal:content="en_title">\n + </text:p>\n + <text:p text:style-name="Header_20_right"\n + tal:content="my_title" tal:condition="python: my_title != en_title">\n + </text:p>\n + <text:p text:style-name="Header_20_right"\n + tal:content="en_period">\n + </text:p>\n + <text:p text:style-name="Header_20_right"\n + tal:content="my_period" tal:condition="python: my_period != en_period">\n + </text:p>\n + </table:table-cell>\n + </table:table-row>\n + </table:table>\n + </style:header>\n + <style:footer>\n + <tal:block metal:use-macro="here/payroll_odt_macro/macros/footer" />\n + <text:p text:style-name="Footer">Generated with ERP5 鈥� Open Source ERP suite (www.erp5.org)</text:p>\n + </style:footer>\n + </style:master-page>\n + <style:master-page style:name="Endnote" style:page-layout-name="pm2"/>\n + </office:master-styles>\n +</office:document-styles>\n + + +]]></string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.text</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PaySheetTransaction_viewAsODTStyles</string> </value> + </item> + <item> + <key> <string>ooo_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ooo_stylesheet</string> </key> + <value> <string>PaySheet_getODTStyleSheet</string> </value> + </item> + <item> + <key> <string>ooo_xml_file_id</string> </key> + <value> <string>styles.xml</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_getODTStyleSheet.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_getODTStyleSheet.xml new file mode 100644 index 0000000000..903d3c359b --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_getODTStyleSheet.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="File" module="OFS.Image"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_EtagSupport__etag</string> </key> + <value> <string>ts06116239.52</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>PaySheet_getODTStyleSheet</string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/octet-stream</string> </value> + </item> + <item> + <key> <string>data</string> </key> + <value> <string encoding="base64">UEsDBBQAAAAAACWCdThexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz +aXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAAAAAAJYJ1OAAAAAAAAAAAAAAAABoAAABDb25maWd1 +cmF0aW9uczIvc3RhdHVzYmFyL1BLAwQUAAgACAAlgnU4AAAAAAAAAAAAAAAAJwAAAENvbmZpZ3Vy +YXRpb25zMi9hY2NlbGVyYXRvci9jdXJyZW50LnhtbAMAUEsHCAAAAAACAAAAAAAAAFBLAwQUAAAA +AAAlgnU4AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9mbG9hdGVyL1BLAwQUAAAAAAAl +gnU4AAAAAAAAAAAAAAAAGgAAAENvbmZpZ3VyYXRpb25zMi9wb3B1cG1lbnUvUEsDBBQAAAAAACWC +dTgAAAAAAAAAAAAAAAAcAAAAQ29uZmlndXJhdGlvbnMyL3Byb2dyZXNzYmFyL1BLAwQUAAAAAAAl +gnU4AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9tZW51YmFyL1BLAwQUAAAAAAAlgnU4 +AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi90b29sYmFyL1BLAwQUAAAAAAAlgnU4AAAA +AAAAAAAAAAAAHwAAAENvbmZpZ3VyYXRpb25zMi9pbWFnZXMvQml0bWFwcy9QSwMEFAAIAAgAJYJ1 +OAAAAAAAAAAAAAAAAAsAAABjb250ZW50LnhtbO1dW3PbuBV+76/gqNNOt7OkeNHFcmPv2LGzyUyS +dRMn0z55YBKSuSEJBgAtq7++AElJ1IUUAYI2nXgfshFwDvid+wEEKq9+ewgD7R5i4qPopGcZZk+D +kYs8P5qd9L5cv9GPer+d/uUVmk59Fx57yE1CGFHdRRFl/9cYd0SOs9mTXoKjYwSIT44jEEJyTN1j +FMNoyXVcpD5On5WNELoIarOnxEVuCh9oXWZOu8ELbus/OSUucnsYzOsyc1qm1CL7FNVlfiCBPkVM +62EMqL+F4iHwo28nvTtK4+N+fz6fG3PHQHjWtyaTST+dXQF2V3RxgoOUynP7MID8YaRvGVZ/SRtC +Curi47RFSFES3kJcWzWAgh2rkvtZbY+4n5Woxr0DuLZvpMSb5nW8+uZ1vCJvCOhdiU2O+h/YZPrH +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</string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <long>12867</long> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_printAsODT.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_printAsODT.xml new file mode 100644 index 0000000000..5d6cc89e8b --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_printAsODT.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>if target_language:\n + container.REQUEST[\'AcceptLanguage\'].set(target_language, 10)\n +\n +return context.PaySheetTransaction_viewAsODT(format=format)\n +</string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>target_language=\'\', format=\'pdf\'</string> </value> + </item> + <item> + <key> <string>errors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>func_code</string> </key> + <value> + <object> + <klass> + <global name="FuncCode" module="Shared.DC.Scripts.Signature"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>co_argcount</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>target_language</string> + <string>format</string> + <string>_getattr_</string> + <string>_getitem_</string> + <string>container</string> + <string>context</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <tuple> + <string></string> + <string>pdf</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PaySheet_printAsODT</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog.xml new file mode 100644 index 0000000000..134f0812a6 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog.xml @@ -0,0 +1,133 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>PaySheet_printAsODT</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string>multipart/form-data</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>your_target_language</string> + <string>your_international_form</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>your_format</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PaySheet_viewODTPrintDialog</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Base_viewODTPrintDialog</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_dialog</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Print Pay Sheet</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_format.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_format.xml new file mode 100644 index 0000000000..2a406bc480 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_format.xml @@ -0,0 +1,140 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>items</string> + <string>enabled</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_format</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string>printing format</string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_format</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Format</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.Base_getConversionFormatItemList(base_content_type=\'application/vnd.oasis.opendocument.text\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_international_form.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_international_form.xml new file mode 100644 index 0000000000..7d0579f65d --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_international_form.xml @@ -0,0 +1,171 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="CheckBoxField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_international_form</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> + </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>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>title</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>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>title</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> <int>0</int> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Include english and translated version of all terms.</string> </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>title</string> </key> + <value> <string>International Form</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_target_language.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_target_language.xml new file mode 100644 index 0000000000..6760d967c7 --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheet_viewODTPrintDialog/your_target_language.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_target_language</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_target_language</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/payroll_odt_macro.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/payroll_odt_macro.xml new file mode 100644 index 0000000000..9a22b3325e --- /dev/null +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/payroll_odt_macro.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<!-- This macro is inclued in PaySheetTransaction_viewAsODT if no localized\n +macro is found. It\'s used to display description field -->\n +\n +<tal:block\n + xmlns:draw=\'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\'\n + xmlns:office=\'urn:oasis:names:tc:opendocument:xmlns:office:1.0\' \n + xmlns:text=\'urn:oasis:names:tc:opendocument:xmlns:text:1.0\'\n + xmlns:ooo=\'http://openoffice.org/2004/office\'\n + xmlns:number=\'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\'\n + xmlns:dc=\'http://purl.org/dc/elements/1.1/\'\n + xmlns:meta=\'urn:oasis:names:tc:opendocument:xmlns:meta:1.0\'\n + xmlns:table=\'urn:oasis:names:tc:opendocument:xmlns:table:1.0\'\n + xmlns:dr3d=\'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\'\n + xmlns:fo=\'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\' \n + xmlns:style=\'urn:oasis:names:tc:opendocument:xmlns:style:1.0\'\n + xmlns:xforms=\'http://www.w3.org/2002/xforms\'\n + xmlns:form=\'urn:oasis:names:tc:opendocument:xmlns:form:1.0\'\n + xmlns:script=\'urn:oasis:names:tc:opendocument:xmlns:script:1.0\' \n + xmlns:ooow=\'http://openoffice.org/2004/writer\'\n + xmlns:svg=\'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\'\n + xmlns:chart=\'urn:oasis:names:tc:opendocument:xmlns:chart:1.0\'\n + xmlns:dom=\'http://www.w3.org/2001/xml-events\'\n + xmlns:xlink=\'http://www.w3.org/1999/xlink\'\n + xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\'\n + xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\'\n + xmlns:oooc=\'http://openoffice.org/2004/calc\'\n + xmlns:math=\'http://www.w3.org/1998/Math/MathML\'\n + xmlns:tal=\'http://xml.zope.org/namespaces/tal\'\n + xmlns:i18n=\'http://xml.zope.org/namespaces/i18n\'\n + xmlns:metal=\'http://xml.zope.org/namespaces/metal\'>\n + <tal:block metal:define-macro="other_informations">\n + <table:table-row table:style-name=\'Tableau3.6\'>\n + <table:table-cell table:style-name=\'Tableau3.A6\' office:value-type=\'string\' tal:define=\'orig_string string:Notes; orig_message python:unicode(here.Base_translateString(orig_string, lang=default_language),"utf-8"); translated_message python:unicode(here.Base_translateString(orig_string),"utf-8")\'>\n + <text:p text:style-name=\'P2\'><span tal:replace=\'orig_message\'/>\n + <span tal:omit-tag=\'\' tal:condition=\'python:translated_message != orig_message\'> / <span tal:replace=\'translated_message\'/></span>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.B6\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.B6\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.B6\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.E6\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'/>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau3.7\'>\n + <table:table-cell table:style-name=\'Tableau3.A7\' table:number-columns-spanned=\'5\' office:value-type=\'string\'>\n + <text:p text:style-name=\'P3\'><tal:block tal:repeat="line data_dict/description"><tal:block\n + tal:replace="line"/><text:line-break tal:condition="not:repeat/line/end"/></tal:block>\n + </text:p>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + <table:covered-table-cell/>\n + </table:table-row>\n + </tal:block>\n +\n + <tal:block metal:define-macro="footer">\n + <text:p />\n + </tal:block>\n +</tal:block>\n + + +]]></string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.text</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>payroll_odt_macro</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_payroll/bt/change_log b/bt5/erp5_payroll/bt/change_log index 505e2cd745..62e52817c4 100644 --- a/bt5/erp5_payroll/bt/change_log +++ b/bt5/erp5_payroll/bt/change_log @@ -1,3 +1,9 @@ +2009-03-10 fabien +* fix some minor problems +* add a default action on Pay Sheet Transaction portal type to be able to print a Payslip +* add AsODT and AsODTStyles files +* increment version number because of the new style of the payslip + 2009-02-26 fabien * update PaySheetTransaction_view and PaySheetModel_view to display payment_condition_payment_date only if cutom payment_condition_trade_date is selected. diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision index ac471d3ba0..755152b7ef 100644 --- a/bt5/erp5_payroll/bt/revision +++ b/bt5/erp5_payroll/bt/revision @@ -1 +1 @@ -355 \ No newline at end of file +359 \ No newline at end of file diff --git a/bt5/erp5_payroll/bt/template_action_path_list b/bt5/erp5_payroll/bt/template_action_path_list index 8dcb20d502..bc8b1e78a5 100644 --- a/bt5/erp5_payroll/bt/template_action_path_list +++ b/bt5/erp5_payroll/bt/template_action_path_list @@ -22,6 +22,7 @@ Pay Sheet Transaction | accounting_lines Pay Sheet Transaction | annotation_lines Pay Sheet Transaction | apply_model Pay Sheet Transaction | calcul +Pay Sheet Transaction | pay_sheet_print Pay Sheet Transaction | view Pay Sheet Transaction | view_payment Pay Sheet Transaction | view_profile diff --git a/bt5/erp5_payroll/bt/version b/bt5/erp5_payroll/bt/version index 42f7d2336e..616187889b 100644 --- a/bt5/erp5_payroll/bt/version +++ b/bt5/erp5_payroll/bt/version @@ -1 +1 @@ -2.1 \ No newline at end of file +2.2 \ No newline at end of file -- 2.30.9