diff --git a/bt5/erp5_accounting/ActionTemplateItem/portal_types/Sale%20Invoice%20Transaction/invoice_print.xml b/bt5/erp5_accounting/ActionTemplateItem/portal_types/Sale%20Invoice%20Transaction/invoice_print.xml new file mode 100644 index 0000000000000000000000000000000000000000..64a9404e8987d6b17acaf7742d7cab78b18e28ad --- /dev/null +++ b/bt5/erp5_accounting/ActionTemplateItem/portal_types/Sale%20Invoice%20Transaction/invoice_print.xml @@ -0,0 +1,83 @@ +<?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>__ac_local_roles__</string> </key> + <value> + <none/> + </value> + </item> + <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>invoice_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>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Print Invoice</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}/Invoice_viewODTPrintDialog</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTDataDict.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTDataDict.xml new file mode 100644 index 0000000000000000000000000000000000000000..d093f43a41cc6bc8f92a6cece95c3b04332c7530 --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTDataDict.xml @@ -0,0 +1,343 @@ +<?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>Python_magic</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>__ac_local_roles__</string> </key> + <value> + <none/> + </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>T_ = context.Base_translateString\n +\n +def getFieldAsString(field):\n + field = field or \'\'\n + text = field.replace(\'\\r\', \'\')\n + text_list = text.split(\'\\n\')\n + text_list = [x for x in text_list if x]\n + return \', \'.join(text_list)\n +\n +def getProductAndLineDesc(prod_desc, line_desc):\n + if prod_desc:\n + if line_desc:\n + return \' - \'.join([getFieldAsString(prod_desc), getFieldAsString(line_desc)])\n + return getFieldAsString(prod_desc)\n + return getFieldAsString(line_desc)\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\' % (T_(\'tel.\'), phone)\n + if fax:\n + if s: s += \', \'\n + s += \'%s: %s\' % (T_(\'fax\'), fax)\n + return s\n +\n +def getEmail(email):\n + s = \'\'\n + if email:\n + s += \'%s: %s\' % (T_(\'email\'), email)\n + return s\n +\n +def getVatId(vat_id):\n + s = \'\'\n + if vat_id:\n + s += \'%s: %s\' % (T_(\'VAT ID\'), vat_id)\n + return s\n +\n +preferred_date_order = context.getPortalObject().portal_preferences.getPreferredDateOrder() or \'ymd\'\n +separator = \'/\'\n +def getOrderedDate(date):\n + if date is None:\n + return \'\'\n + pattern = separator.join(list(preferred_date_order))\n + pattern = pattern.replace(\'y\', \'%Y\')\n + pattern = pattern.replace(\'m\', \'%m\')\n + pattern = pattern.replace(\'d\', \'%d\')\n + return date.strftime(pattern)\n +\n +def getSourceReference(line):\n + category_list = line.getAcquiredCategoryList()\n + portal_type_list = (\'Invoice Line\',\n + \'Invoice Cell\',)\n + tmp_context = line.asContext(context=line, categories=category_list)\n + predicate_list = context.portal_domains.searchPredicateList(tmp_context, portal_type=portal_type_list)\n + for predicate in predicate_list:\n + source_reference = predicate.getSourceReference()\n + if source_reference:\n + return source_reference\n + return \'\'\n +\n +def getPaymentConditionText(order):\n + if order.getPaymentConditionPaymentEndOfMonth():\n + return T_("End of Month")\n + days = order.getPaymentConditionPaymentTerm()\n + if days:\n + return \'%s %s\' % (days, T_(\'Days\'))\n + return \'\'\n +\n +line_list = []\n +total_price = 0.0\n +total_vat = 0.0\n +\n +excluded_portal_type_list = context.getPortalTaxMovementTypeList() + context.getPortalAccountingMovementTypeList()\n +\n +def getSubLineList(obj):\n + sub_list = []\n + for x in obj.searchFolder(portal_type=context.getPortalInvoiceMovementTypeList(),\n + sort_on=[(\'int_index\', \'ascending\'), (\'reference\', \'ascending\')]):\n + if x.getPortalType() in excluded_portal_type_list:\n + continue\n + sub_list.append(x)\n + sub_list.extend(getSubLineList(x))\n + return sub_list\n +\n +for line in getSubLineList(context):\n + prod_desc = line.getResource() is not None and line.getResourceValue().getDescription() or \'\'\n + desc = getProductAndLineDesc(prod_desc, line.getDescription())\n +\n + line_dict = {\n + \'style_name\': \'Table_20_Contents\',\n + \'left_style_name\': \'Table_20_Contents_20_Left\',\n + \'right_style_name\': \'Table_20_Contents_20_Right\',\n + \'index\': line.getReference() or line.getIntIndex(),\n + \'source_reference\': getSourceReference(line),\n + \'reference\': line.getResource() is not None and line.getResourceValue().getReference() or \'\',\n + \'description\': desc,\n + \'total_quantity\': line.getTotalQuantity() or \'\',\n + \'quantity_unit\': line.getQuantityUnitTitle() or (line.getResource() and line.getResourceValue().getQuantityUnitTitle()) or \'\',\n + \'stop_date\': getOrderedDate(line.getStopDate()) or \'\',\n + \'base_price\': line.getPrice() or \'\',\n + \'total_price\': line.getTotalPrice() or \'\',\n + }\n + total_price += line.getTotalPrice() or 0.0\n + line_list.append(line_dict.copy())\n +\n +data_dict = {\n + \'source_section_title\': context.getSourceSectionTitle() or \'\',\n + \'source_section_address\': getOneLineAddress(\n + context.getSourceSection() and context.getSourceSectionValue().getDefaultAddressText() or \'\',\n + context.getSourceSection() and context.getSourceSectionValue().getDefaultAddressRegionTitle() or \'\'),\n + \'source_section_telfax\': getPhoneAndFax(context.getSourceSection() and context.getSourceSectionValue().getTelephoneText() or \'\',\n + context.getSourceSection() and context.getSourceSectionValue().getFaxText() or \'\'),\n + \'source_section_email\': unicode(getEmail(context.getSourceSection() and context.getSourceSectionValue().getEmailText() or \'\'), \'utf8\'),\n + \'source_section_vatid\': unicode(getVatId(context.getSourceSection() and context.getSourceSectionValue().getVatCode() or \'\'), \'utf8\'),\n +\n + \'source_decision_title\': context.getSourceDecisionTitle() or \'\',\n + \'source_decision_address\': unicode(getOneLineAddress(\n + context.getSourceDecision() and context.getSourceDecisionValue().getDefaultAddressText() or \'\',\n + context.getSourceDecision() and context.getSourceDecisionValue().getDefaultAddressRegionTitle() or \'\'), \'utf8\'),\n + \'source_decision_telfax\': getPhoneAndFax(context.getSourceDecision() and context.getSourceDecisionValue().getTelephoneText() or \'\',\n + context.getSourceDecision() and context.getSourceDecisionValue().getFaxText() or \'\'),\n + \'source_decision_email\': getEmail(context.getSourceDecision() and context.getSourceDecisionValue().getEmailText() or \'\'),\n + \'source_decision_vatid\': unicode(getVatId(context.getSourceDecision() and context.getSourceDecisionValue().getVatCode() or \'\'), \'utf8\'),\n +\n + \'destination_title\': context.getDestinationTitle() or \'\',\n + \'destination_address\': getOneLineAddress(\n + context.getDestination() and context.getDestinationValue().getDefaultAddressText() or \'\',\n + context.getDestination() and context.getDestinationValue().getDefaultAddressRegionTitle() or \'\'),\n + \'destination_telfax\': getPhoneAndFax(context.getDestination() and context.getDestinationValue().getTelephoneText() or \'\',\n + context.getDestination() and context.getDestinationValue().getFaxText() or \'\'),\n + \'destination_email\': getEmail(context.getDestination() and context.getDestinationValue().getEmailText() or \'\'),\n +\n + \'destination_section_title\': unicode(context.getDestinationSectionTitle() or \'\', \'utf8\'),\n + \'destination_section_image_path\': context.getDestinationSectionValue().getDefaultImagePath(),\n + \'destination_section_address\': unicode(getOneLineAddress(\n + context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressText() or \'\',\n + context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressRegionTitle() or \'\'), \'utf8\'),\n + \'destination_section_telfax\': unicode(getPhoneAndFax(\n + context.getDestinationSection() and context.getDestinationSectionValue().getTelephoneText() or \'\',\n + context.getDestinationSection() and context.getDestinationSectionValue().getTelephoneText() or \'\'), \'utf8\'),\n + \'destination_section_email\': unicode(getEmail(context.getDestinationSection() and context.getDestinationSectionValue().getEmailText() or \'\'), \'utf8\'),\n + \'destination_section_vatid\': unicode(getVatId(context.getDestinationSection() and context.getDestinationSectionValue().getVatCode() or \'\'), \'utf8\'),\n +\n + \'destination_decision_title\': context.getDestinationDecisionTitle() or \'\',\n + \'destination_decision_telfax\': getPhoneAndFax(context.getDestinationDecision() and context.getDestinationDecisionValue().getTelephoneText() or \'\',\n + context.getDestinationDecision() and context.getDestinationDecisionValue().getFaxText() or \'\'),\n + \'destination_decision_email\': getEmail(context.getDestinationDecision() and 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 + \'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 + \'vat_list\': context.searchFolder(portal_type=context.getPortalTaxMovementTypeList(), order_by=\'title\'),\n + \'description\': getFieldAsString(context.getDescription()),\n +\n + \'line_list\': line_list,\n +}\n +\n +#from pprint import pformat\n +#context.log(pformat(data_dict))\n +return data_dict\n +</string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_filepath</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_owner</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>T_</string> + <string>getFieldAsString</string> + <string>getProductAndLineDesc</string> + <string>getOneLineAddress</string> + <string>getPhoneAndFax</string> + <string>getEmail</string> + <string>getVatId</string> + <string>preferred_date_order</string> + <string>separator</string> + <string>getOrderedDate</string> + <string>getSourceReference</string> + <string>getPaymentConditionText</string> + <string>line_list</string> + <string>total_price</string> + <string>total_vat</string> + <string>excluded_portal_type_list</string> + <string>getSubLineList</string> + <string>_getiter_</string> + <string>line</string> + <string>None</string> + <string>prod_desc</string> + <string>desc</string> + <string>line_dict</string> + <string>_inplacevar_</string> + <string>unicode</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>Invoice_getODTDataDict</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTStyleSheet.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTStyleSheet.xml new file mode 100644 index 0000000000000000000000000000000000000000..2aa8d63303e1119fdcadee89439631329c30b97e --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_getODTStyleSheet.xml @@ -0,0 +1,280 @@ +<?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>__ac_local_roles__</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>Invoice_getODTStyleSheet</string> </value> + </item> + <item> + <key> <string>_owner</string> </key> + <value> + <none/> + </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_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewAsODT.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewAsODT.xml new file mode 100644 index 0000000000000000000000000000000000000000..230f71db89982011d754b4b6d1d84ed5c23a68d4 --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewAsODT.xml @@ -0,0 +1,775 @@ +<?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>__ac_local_roles__</string> </key> + <value> + <none/> + </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>_owner</string> </key> + <value> + <none/> + </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/Invoice_getODTDataDict\'>\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=\'2690*\' style:column-width=\'0.78cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.B\'>\n + <style:table-column-properties style:rel-column-width=\'7254*\' style:column-width=\'2.103cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.C\'>\n + <style:table-column-properties style:rel-column-width=\'7151*\' style:column-width=\'2.073cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.D\'>\n + <style:table-column-properties style:rel-column-width=\'24052*\' style:column-width=\'6.971cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.E\'>\n + <style:table-column-properties style:rel-column-width=\'4546*\' style:column-width=\'1.318cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.F\'>\n + <style:table-column-properties style:rel-column-width=\'3493*\' style:column-width=\'1.012cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.G\'>\n + <style:table-column-properties style:rel-column-width=\'5757*\' style:column-width=\'1.669cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.H\'>\n + <style:table-column-properties style:rel-column-width=\'4722*\' style:column-width=\'1.369cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau1.I\'>\n + <style:table-column-properties style:rel-column-width=\'5870*\' style:column-width=\'1.7cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau1.1\'>\n + <style:table-row-properties style:min-row-height=\'2.759cm\'/>\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=\'20270*\' style:column-width=\'5.868cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.C\'>\n + <style:table-column-properties style:rel-column-width=\'4344*\' style:column-width=\'1.258cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.D\'>\n + <style:table-column-properties style:rel-column-width=\'20214*\' style:column-width=\'5.853cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.E\'>\n + <style:table-column-properties style:rel-column-width=\'15381*\' style:column-width=\'4.454cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau2.1\'>\n + <style:table-row-properties style:row-height=\'2.251cm\'/>\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-column\' style:name=\'Tableau2.E1.1\'>\n + <style:table-column-properties style:rel-column-width=\'6760*\' style:column-width=\'1.958cm\'/>\n + </style:style>\n + <style:style style:family=\'table-column\' style:name=\'Tableau2.E1.2\'>\n + <style:table-column-properties style:rel-column-width=\'8621*\' style:column-width=\'2.496cm\'/>\n + </style:style>\n + <style:style style:family=\'table-row\' style:name=\'Tableau2.E1.1\'>\n + <style:table-row-properties style:row-height=\'0.75cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau2.E1.2.1\'>\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=\'Tableau2.E1.1.2\'>\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=\'Tableau2.E1.2.2\'>\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-cell\' style:name=\'Tableau1.A2\'>\n + <style:table-cell-properties fo:padding=\'0.049cm\' fo:border-right=\'none\' fo:border-top=\'none\' fo:background-color=\'transparent\' fo:border-left=\'none\' fo:border-bottom=\'0.018cm solid #000000\'>\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.75cm\'/>\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=\'none\' fo:border-top=\'none\' fo:background-color=\'transparent\' fo:border-left=\'none\' fo:border-bottom=\'0.018cm 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.4\'>\n + <style:table-row-properties style:row-height=\'4.83cm\'/>\n + </style:style>\n + <style:style style:family=\'table-cell\' style:name=\'Tableau1.A4\'>\n + <style:table-cell-properties style:vertical-align=\'middle\' 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=\'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=\'10535*\' 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=\'5493*\' 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=\'34451*\' 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=\'9165*\' 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=\'5891*\' 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.25cm\'/>\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.018cm solid #000000\' fo:border-left=\'0.018cm 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.018cm 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.018cm solid #000000\' fo:border-top=\'0.018cm 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.018cm solid #000000\' fo:border-right=\'0.018cm solid #000000\' fo:border-bottom=\'0.018cm solid #000000\' fo:padding=\'0.097cm\' fo:border-top=\'none\'/>\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=\'justify\' 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 + <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-column table:style-name=\'Tableau1.G\'/>\n + <table:table-column table:style-name=\'Tableau1.H\'/>\n + <table:table-column table:style-name=\'Tableau1.I\'/>\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=\'9\'\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.A1\'\n + office:value-type=\'string\'>\n + <!--This PageTemplate is Used For Sale Order and Purchase Order-->\n + <tal:block tal:define="orig_string string:Supplier;\n + en_string python:here.Base_translateString(orig_string, lang=\'en\');\n + my_string python:here.Base_translateString(orig_string);\n + ds_title python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'destination_section_title\'] or data_dict[\'source_section_title\'];\n + ds_address python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'destination_section_address\'] or data_dict[\'source_section_address\'];\n + ds_telfax python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'destination_section_telfax\'] or data_dict[\'source_section_telfax\'];\n + ds_email python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'destination_section_email\'] or data_dict[\'source_section_email\'];\n + ds_vatid python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'destination_section_vatid\'] or data_dict[\'source_section_vatid\'];\n + orig_title string:Invoice;\n + en_title python:here.Base_translateString(orig_title, lang=\'en\');\n + my_title python:here.Base_translateString(orig_title);\n + orig_page string:Page;\n + en_page python:here.Base_translateString(orig_page, lang=\'en\');\n + my_page python:here.Base_translateString(orig_page);\n + orig_of string:of;\n + en_of python:here.Base_translateString(orig_of, lang=\'en\');\n + my_of python:here.Base_translateString(orig_of)">\n + <text:p text:style-name=\'Table_20_Heading\'>\n + <text:variable-set text:formula=\'ooow:title\'\n + text:name=\'ds_title\'\n + text:display=\'none\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value ds_title\'/>\n + <text:variable-set text:formula=\'ooow:address\'\n + text:name=\'ds_address\'\n + text:display=\'none\'\n + office:string-value=\'address\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value ds_address\'/>\n + <text:variable-set text:formula=\'ooow:telfax\'\n + text:name=\'ds_telfax\'\n + text:display=\'none\'\n + office:string-value=\'telfax\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value ds_telfax\'/>\n + <text:variable-set text:formula=\'ooow:email\'\n + text:name=\'ds_email\'\n + text:display=\'none\'\n + office:string-value=\'email\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value ds_email\'/>\n + <text:variable-set text:formula=\'ooow:vatid\'\n + text:name=\'ds_vatid\'\n + text:display=\'none\'\n + office:string-value=\'vatid\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value ds_vatid\'/>\n + <text:variable-set text:formula=\'ooow:purchase_order\'\n + text:name=\'purchase_order\'\n + text:display=\'none\'\n + office:string-value=\'purchase_order\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value en_title\'/>\n + <text:variable-set text:formula=\'ooow:purchase_order_tr\'\n + text:name=\'purchase_order_tr\'\n + text:display=\'none\'\n + office:string-value=\'purchase_order_tr\'\n + office:value-type=\'string\'\n + tal:condition="python: en_title != my_title"\n + tal:attributes=\'office:string-value my_title\'/>\n + <text:variable-set text:formula=\'ooow:page\'\n + text:name=\'page\' text:display=\'none\'\n + office:string-value=\'page\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value my_page\'/>\n + <text:variable-set text:formula=\'ooow:of\'\n + text:name=\'of\' text:display=\'none\'\n + office:string-value=\'of\'\n + office:value-type=\'string\'\n + tal:attributes=\'office:string-value my_of\'/>\n + <tal:block tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\'\n + tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </tal:block>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.A1\'\n + office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:data_dict["source_section_title"]\'>source_section</text:p>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:data_dict["source_section_address"]\'>address</text:p>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:data_dict["source_section_telfax"]\'>tel, fax</text:p>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:data_dict["source_section_email"]\'>email</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.A1\'\n + office:value-type=\'string\'\n + tal:define=\'orig_string string:Recipient; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.A1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_title"]\'>destination</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_address"]\'>address</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_telfax"]\'>tel, fax</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_email"]\'>email</text:p>\n + </table:table-cell>\n + <table:table-cell>\n + <table:table table:is-sub-table=\'true\'>\n + <table:table-column table:style-name=\'Tableau2.E1.1\'/>\n + <table:table-column table:style-name=\'Tableau2.E1.2\'/>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.A1\' office:value-type=\'string\' tal:define=\'orig_string string:Reference; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.1\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Big_20_Table_20_Content\' tal:content=\'python:data_dict["reference"]\'>reference</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\'\n + office:value-type=\'string\'\n + tal:define=\'orig_string string:Document Date; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content="python: here.getPortalType().startswith(\'Purchase\') and data_dict[\'start_date\'] or data_dict[\'stop_date\']">start_date</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Currency; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["currency"]\'>EUR</text:p>\n + </table:table-cell>\n + </table:table-row>\n + </table:table>\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.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Seller; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["source_decision_title"]\'>name</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["source_decision_telfax"]\'>tel, fax</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["source_decision_email"]\'>email</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Buyer; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_decision_title"]\'>name</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_decision_telfax"]\'>tel, fax</text:p>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["destination_decision_email"]\'>email</text:p>\n + </table:table-cell>\n + <table:table-cell>\n + <table:table table:is-sub-table=\'true\'>\n + <table:table-column table:style-name=\'Tableau2.E1.1\'/>\n + <table:table-column table:style-name=\'Tableau2.E1.2\'/>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Payment; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["payment_condition"]\'>60 days</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Delivery Mode; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["delivery_mode"]\'>del mode</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau2.E1.1\'>\n + <table:table-cell table:style-name=\'Tableau2.E1.1.2\' office:value-type=\'string\' tal:define=\'orig_string string:Incoterm; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau2.E1.2.2\' office:value-type=\'string\'>\n + <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:data_dict["incoterm"]\'>incoterm</text:p>\n + </table:table-cell>\n + </table:table-row>\n + </table:table>\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: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:Line; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Your Item no.; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Our Item no.; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Description; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Left\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Quantity; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Unit; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Delivery Date; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Unit Price; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A2\' office:value-type=\'string\' tal:define=\'orig_string string:Total Price; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\'><span tal:replace=\'en_string\'/></text:p>\n + <text:p text:style-name=\'Item_20_Table_20_Title_20_Right\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/></text:p>\n + </table:table-cell>\n + </table:table-row>\n + </table:table-header-rows>\n + <table:table-row table:style-name=\'Tableau1.3\' tal:repeat=\'line_dict python:data_dict["line_list"]\'>\n + <div tal:omit-tag=\'\' tal:define=\'style_name python:line_dict["style_name"];\n + left_style_name python:line_dict["left_style_name"];\n + right_style_name python:line_dict["right_style_name"]\'>\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["index"]\' tal:attributes=\'text:style-name left_style_name\'>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 + tal:content=\'python:line_dict["source_reference"]\'\n + tal:attributes=\'text:style-name style_name\'>source_ref</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 + tal:content=\'python:line_dict["reference"]\'\n + tal:attributes=\'text:style-name style_name\'>ref</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 + tal:content=\'python:line_dict["description"]\'\n + tal:attributes=\'text:style-name left_style_name\'>desc</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:line_dict["total_quantity"]\'\n + tal:attributes=\'text:style-name right_style_name\'>qty</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 + tal:content=\'python:line_dict["quantity_unit"]\'\n + tal:attributes=\'text:style-name style_name\'>qty_u</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 + tal:content=\'python:line_dict["stop_date"]\'\n + tal:attributes=\'text:style-name style_name\'>stop_date</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:line_dict["base_price"]\'\n + tal:attributes=\'text:style-name right_style_name\'>base_price</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n + <text:p text:style-name=\'Table_20_Contents\'\n + tal:content=\'python:line_dict["total_price"]\'\n + tal:attributes=\'text:style-name right_style_name\'>total_price</text:p>\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.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 + <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:Total Excluding VAT; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.E2\' office:value-type=\'float\'>\n + <text:p text:style-name=\'Table_20_Contents_20_Right\' tal:content=\'python:data_dict["total_price_novat"]\'>800.000,00</text:p>\n + </table:table-cell>\n + </table:table-row>\n + <table:table-row table:style-name=\'Tableau3.3\'>\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 + <tal:block tal:define="global total_vat_list python: []">\n + <table:table-cell table:style-name=\'Tableau3.D3\'\n + office:value-type=\'string\'>\n + <tal:block tal:repeat="vat python: data_dict[\'vat_list\']">\n + <tal:block tal:define="orig_string python:vat.getResourceTitle(); en_string python:here.Base_translateString(orig_string, lang=\'en\'); my_string python:here.Base_translateString(orig_string)">\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\'\n + tal:condition=\'python:my_string != en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </tal:block>\n + </tal:block>\n + <text:p text:style-name=\'Table_20_Heading\'\n + tal:define="orig_string string:TAX; en_string python:here.Base_translateString(orig_string, lang=\'en\'); my_string python:here.Base_translateString(orig_string)"><span tal:replace="python: \'Total %s\' % (my_string)"/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.E3\'\n + office:value-type=\'float\'\n + tal:attributes="office:value python: sum(total_vat_list)">\n + <tal:block tal:repeat="vat python: data_dict[\'vat_list\']">\n + <text:p tal:define="vat_price python: vat.getPrice() * vat.getQuantity(); any python: total_vat_list.append(vat_price)"\n + text:style-name=\'Table_20_Contents_20_Right\'\n + tal:content="vat_price">2000</text:p>\n + </tal:block>\n + <text:p text:style-name=\'Table_20_Contents_20_Right\'\n + tal:content="python: sum(total_vat_list)">2000</text:p>\n + </table:table-cell>\n + </tal:block>\n + </table:table-row>\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.D3\' office:value-type=\'string\' tal:define=\'orig_string string:Total Including VAT; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n + <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name=\'Tableau3.E3\' office:value-type=\'float\' tal:attributes="office:value python:data_dict[\'total_price_novat\'] + sum(total_vat_list)">\n + <text:p text:style-name=\'Table_20_Contents_20_Right\'\n + tal:content=\'python:data_dict["total_price_novat"] + sum(total_vat_list)\'>12345</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 + <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; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n + <text:p text:style-name=\'P2\'><span tal:replace=\'en_string\'/><span tal:omit-tag=\'\' tal:condition=\'python:my_string!=en_string\'> / <span tal:replace=\'my_string\'/></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:content=\'python:data_dict["description"]\'>my_description</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 + </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> + +]]></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>Invoice_viewAsODT</string> </value> + </item> + <item> + <key> <string>ooo_stylesheet</string> </key> + <value> <string>Invoice_getODTStyleSheet</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog.xml new file mode 100644 index 0000000000000000000000000000000000000000..2ee1fac7e3ecd6758ee33ca1aa78a27cd18d94da --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog.xml @@ -0,0 +1,144 @@ +<?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>__ac_local_roles__</string> </key> + <value> + <none/> + </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/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>_owner</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Invoice_viewAsODT</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> + </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>Invoice_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 Order</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_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_format.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_format.xml new file mode 100644 index 0000000000000000000000000000000000000000..474bcbd96cc532bd69deeff061885351d8fb4b2d --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_format.xml @@ -0,0 +1,132 @@ +<?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>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> + </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_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_target_language.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_target_language.xml new file mode 100644 index 0000000000000000000000000000000000000000..78b5e2fe91260f14b4db22bbcec419458ceaebbf --- /dev/null +++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Invoice_viewODTPrintDialog/your_target_language.xml @@ -0,0 +1,283 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ListField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <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> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>unknown_selection</string> </key> + <value> <string>You selected an item that was not in the list.</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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</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>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Language</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </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: [(\'\', \'\')] + [(lang[\'title\'], lang[\'id\']) for lang in here.Localizer.get_languages_map()]</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_accounting/bt/change_log b/bt5/erp5_accounting/bt/change_log index 14bb3e29ebb7a952a2c1c0408f4ea87356795d9e..913fb8685e92dc37a5893c1c2178c17bdb364763 100644 --- a/bt5/erp5_accounting/bt/change_log +++ b/bt5/erp5_accounting/bt/change_log @@ -1,3 +1,6 @@ +2008-3-16 nicolas +* add Print action for Invoices + 2008-3-4 jerome * add a fast input to group accounting lines from invoice and corresponding payment. diff --git a/bt5/erp5_accounting/bt/revision b/bt5/erp5_accounting/bt/revision index 0bd049a9634083bb649713736462c9db8aeb8228..8e6862383d3ca1f23e51b1467e98ee692e765b43 100644 --- a/bt5/erp5_accounting/bt/revision +++ b/bt5/erp5_accounting/bt/revision @@ -1 +1 @@ -682 \ No newline at end of file +684 \ No newline at end of file diff --git a/bt5/erp5_accounting/bt/template_action_path_list b/bt5/erp5_accounting/bt/template_action_path_list index 28e7e2a2c6542f5226ee6876d5851a4794e72cd9..c710adc835b98926c9e0748b3fb21e605920ba88 100644 --- a/bt5/erp5_accounting/bt/template_action_path_list +++ b/bt5/erp5_accounting/bt/template_action_path_list @@ -82,6 +82,7 @@ Sale Invoice Transaction | create_related_payment Sale Invoice Transaction | create_reversal Sale Invoice Transaction | destination_asset Sale Invoice Transaction | detail +Sale Invoice Transaction | invoice_print Sale Invoice Transaction | jump_to_related_payment Sale Invoice Transaction | source_asset Sale Invoice Transaction | view \ No newline at end of file