diff --git a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml index dc1e0d56d79640ebb7349a12d4f102896091422e..3fdaf94f4345e7ebe71a6102435a90db702ca421 100644 --- a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml +++ b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml @@ -53,7 +53,9 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>"""This script is called on the Invoice after the delivery builder has created\n + <value> <string encoding="cdata"><![CDATA[ + +"""This script is called on the Invoice after the delivery builder has created\n the new Invoice.\n """\n from Products.ERP5Type.Message import translateString\n @@ -77,8 +79,22 @@ if not invoice.Invoice_isAdvanced():\n invoice.setResource(invoice.getPriceCurrency())\n \n related_packing_list = invoice.getDefaultCausalityValue()\n -\n related_order = related_packing_list.getDefaultCausalityValue()\n +\n +# copy payment conditions from packing list\n +# if missing, try to copy from order (for compatibility)\n +payment_condition_copy_id_list = related_packing_list.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n +if len(payment_condition_copy_id_list) > 0:\n + clipboard = related_packing_list.manage_copyObjects(\n + ids=payment_condition_copy_id_list)\n + invoice.manage_pasteObjects(clipboard)\n +elif related_order is not None:\n + payment_condition_copy_id_list = related_order.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n + if len(payment_condition_copy_id_list) > 0:\n + clipboard = related_order.manage_copyObjects(\n + ids=payment_condition_copy_id_list)\n + invoice.manage_pasteObjects(clipboard)\n +\n if related_order is not None:\n # copy trade condition:\n if not context.getSpecialise():\n @@ -113,7 +129,9 @@ invoice.startBuilding()\n # Then an activity should put the causality state in diverged or solved\n invoice.activate(after_path_and_method_id=(related_simulation_movement_path_list,\n (\'immediateReindexObject\',\'recursiveImmediateReindexObject\'))).updateCausalityState()\n -</string> </value> + + +]]></string> </value> </item> <item> <key> <string>_code</string> </key> @@ -164,6 +182,9 @@ invoice.activate(after_path_and_method_id=(related_simulation_movement_path_list <string>_getattr_</string> <string>related_packing_list</string> <string>related_order</string> + <string>payment_condition_copy_id_list</string> + <string>len</string> + <string>clipboard</string> <string>append</string> <string>$append0</string> <string>_getiter_</string> @@ -171,7 +192,6 @@ invoice.activate(after_path_and_method_id=(related_simulation_movement_path_list <string>invoice_trade_model_line_reference_list</string> <string>order_trade_model_line_copy_id_list</string> <string>order_trade_model_line</string> - <string>clipboard</string> </tuple> </value> </item> diff --git a/bt5/erp5_invoicing/bt/revision b/bt5/erp5_invoicing/bt/revision index 832f62a3cbee4ea0a1147819b77db56a04e3de4c..91a3d4243df1581626c3a06d2332405e0241720b 100644 --- a/bt5/erp5_invoicing/bt/revision +++ b/bt5/erp5_invoicing/bt/revision @@ -1 +1 @@ -339 \ No newline at end of file +340 \ No newline at end of file diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml index 48aa69a9c73a81dedb10ee9c156d975db539e729..791154a5d4a9c99c34eaac89597b62eb9b94e15f 100644 --- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml +++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml @@ -53,7 +53,9 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>packing_list = context\n + <value> <string encoding="cdata"><![CDATA[ + +packing_list = context\n related_order = packing_list.getCausalityValue()\n \n if packing_list.getSimulationState() == \'draft\':\n @@ -61,7 +63,16 @@ if packing_list.getSimulationState() == \'draft\':\n comment = related_order.getComment(),\n title = related_order.getTitle()\n )\n -</string> </value> +\n + # copy order\'s payment conditions\n + payment_condition_copy_id_list = related_order.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n + if len(payment_condition_copy_id_list) > 0:\n + clipboard = related_order.manage_copyObjects(\n + ids=payment_condition_copy_id_list)\n + packing_list.manage_pasteObjects(clipboard)\n + + +]]></string> </value> </item> <item> <key> <string>_code</string> </key> @@ -101,6 +112,9 @@ if packing_list.getSimulationState() == \'draft\':\n <string>packing_list</string> <string>_getattr_</string> <string>related_order</string> + <string>payment_condition_copy_id_list</string> + <string>len</string> + <string>clipboard</string> </tuple> </value> </item> diff --git a/bt5/erp5_trade/bt/revision b/bt5/erp5_trade/bt/revision index 147d4e7f1d088e88efeca660788eabafe939da66..203bd07e6d263140da9b77baddf991832c4d81fa 100644 --- a/bt5/erp5_trade/bt/revision +++ b/bt5/erp5_trade/bt/revision @@ -1 +1 @@ -845 \ No newline at end of file +846 \ No newline at end of file