Commit 90c563db authored by Boxiang Sun's avatar Boxiang Sun

erp5_user_tutorial: Update user-Howto.Manage.Packing.Lists

parent 9c53df82
<section class="master">
<h1>How to Manage Packing Lists</h1>
<section class="master"> <footer>by <a href="http://www.osoe-project.org/contact">OSOE Project</a></footer>
<h1>How to Manage Packing Lists</h1>
<footer> <details open="open">
by <a href="http://www.osoe-project.org/contact">OSOE Project</a> <p>When you validate a Sale Order, as seen in the previous tutorial <a href="user-Howto.Create.Sale.Orders/view">&quot;How to create Sale Orders&quot;</a>, ERP5 automatically creates the related <strong>&ldquo;Sale Packing List&rdquo;</strong> . Thanks to it, you will be able to track the shipment of the goods related to the order.</p>
</footer>
<details open="open"> <p>The goal of this tutorial is to explain how to manage Sale Packing Lists, in order to have the goods shipped and delivered.</p>
<p>
When you validate a Sale Order, as seen in the previous tutorial <a href="user-Howto.Create.Sale.Orders/view">"How to create Sale Orders"</a>, ERP5 automatically creates the related <strong>“Sale Packing List”</strong> <p>This is a two step procedure: first, the order needs to be shipped and, when it reaches the clients warehouse, the status must be turned into <strong>&ldquo;Delivered&rdquo;</strong> .</p>
. Thanks to it, you will be able to track the shipment of the goods related to the order. </details>
</p><p>The goal of this tutorial is to explain how to manage Sale Packing Lists, in order to have the goods shipped and delivered.</p><p> <test>
This is a two step procedure: first, the order needs to be shipped and, when it reaches the clients warehouse, the status must be turned into <strong>“Delivered”</strong> <table class="test" style="display: none;">
.
</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody> <tbody>
<tr class="" style="opacity: 1;"> <tr style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/init_test_environment"&gt;init&lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/init_test_environment&quot;&gt;init&lt;/span&gt;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td>openAndWait</td> <td>openAndWait</td>
<td>${base_url}/Zuite_createFunctionalTestUser</td> <td>${base_url}/Zuite_createFunctionalTestUser</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td>verifyTextPresent</td> <td>verifyTextPresent</td>
<td>Done.</td> <td>Done.</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/wait_for_activities&quot;&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td>openAndWait</td> <td>openAndWait</td>
<td>${base_url}/Zuite_setUpSaleOrderTest</td> <td>${base_url}/Zuite_setUpSaleOrderTest</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td>verifyTextPresent</td> <td>verifyTextPresent</td>
<td>Init Ok</td> <td>Init Ok</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/wait_for_activities&quot;&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td>openAndWait</td> <td>openAndWait</td>
<td>${base_url}/Zuite_setUpSalePackingListTest</td> <td>${base_url}/Zuite_setUpSalePackingListTest</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>verifyTextPresent</td> <td>verifyTextPresent</td>
<td>Init Ok</td> <td>Init Ok</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr class="" style="opacity: 1; z-index: 0;"> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/wait_for_activities&quot;&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user&quot;&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section><section class="">
<h1>Agenda</h1> <section>
<ul> <h1>Agenda</h1>
<ul>
<li>How to reach a Packing List</li> <li>How to reach a Packing List</li>
<li>How to define Packing Lists</li> <li>How to define Packing Lists</li>
<li>How to declare a shipment</li> <li>How to declare a shipment</li>
<li>How to generate invoices from packing lists</li> <li>How to generate invoices from packing lists</li>
</ul> </ul>
<test> <test>
<table style="display: none;" class="test"> <table class="test" style="display: none;">
<tbody> <tbody>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms"&gt; Invoke simulation alarms &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms&quot;&gt; Invoke simulation alarms &lt;/span&gt;</td>
</tr>
<tr style="opacity: 1; z-index: 0;" class="">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section><section class="illustration">
<h1>Managing a Packing List</h1> <section class="illustration">
<img type="image/png" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Model?format=png" title="Delivery Flow" alt="Delivery Flow"> <h1>Managing a Packing List</h1>
<details open="open"> <img alt="Delivery Flow" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Model?format=png" title="Delivery Flow" type="image/png" />
<p>As you can see in the drawing, the different steps of managing a Packing List can be linked with real people in the company.</p><p>The principle of workflow based application makes sense in this case. Indeed, once the Sale Order has been registered and confirmed by the sales manager, the employee from the warehouse will prepare the automatically generated Sale Packing List related to the order. Thanks to the workflow, the sales manager will be aware that the order is ready to be sent and will give the order to “Ship” the goods. Once the client receives the goods, checks them and gives feedback, the sales manager will then change the status to “Delivered”.</p><p>In this way, it is possible to track the whole shipment process, thanks to ERP5.</p> <details open="open">
</details> <p>As you can see in the drawing, the different steps of managing a Packing List can be linked with real people in the company.</p>
<test>
<table style="display: none;" class="test"> <p>The principle of workflow based application makes sense in this case. Indeed, once the Sale Order has been registered and confirmed by the sales manager, the employee from the warehouse will prepare the automatically generated Sale Packing List related to the order. Thanks to the workflow, the sales manager will be aware that the order is ready to be sent and will give the order to &ldquo;Ship&rdquo; the goods. Once the client receives the goods, checks them and gives feedback, the sales manager will then change the status to &ldquo;Delivered&rdquo;.</p>
<tbody></tbody>
</table> <p>In this way, it is possible to track the whole shipment process, thanks to ERP5.</p>
</test> </details>
</section><section class="screenshot"> <test>
<h1>Sale Packing List</h1> <table class="test" style="display: none;">
<img type="image/png" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.View?format=png" title="Packing List View Tab" alt="Packing List View Tab">
<details open="open">
<p>
From the previous tutorial <a href="user-Howto.Create.Sale.Orders/view">"How to create Sale Orders"</a>, you have learned to generate the related Sale Packing List automatically by confirming the Sale Order, and reach the Sale Packing List by using the "Jump ..." menu.
</p><p>
Now that you are on the initial view form of the Packing List related to your Sale Order, you can start <strong>filling out the the missing information</strong>
where it is not filled automatically.
</p><p>
Note: <strong>Most data in the View tab and the other tabs (Details, Payment, Profile) should have been updated automatically from the Sale Order</strong>
, so you will not have much to do now. If some fields have not been updated, it means that those fields have not been filled out correctly in the related Sale Order. This is why we recommend to properly fill out the Sale Orders before generating Packing Lists.
</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody> <tbody>
<tr style="opacity: 1; z-index: 0;"> <tr style="opacity: 1; z-index: 0;">
<td>openAndWait</td> <td>openAndWait</td>
<td>${base_url}</td> <td>${base_url}</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>selectAndWait</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//select[@name="select_module"]</td>
<td>Sale Packing Lists</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;"> </tbody>
<td colspan="3">&lt;tal:block tal:content="structure python: here.Zuite_generateListboxBrowsing(listbox_selection=(['title', 'ZUITE-TEST-SALEORDER-PRODUCT-001'],), enter_object=True)"/&gt;</td> </table>
</test></section>
<section class="screenshot">
<h1>Sale Packing List</h1>
<img alt="Packing List View Tab" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.View?format=png" title="Packing List View Tab" type="image/png" />
<details open="open">
<p>From the previous tutorial <a href="user-Howto.Create.Sale.Orders/view">&quot;How to create Sale Orders&quot;</a>, you have learned to generate the related Sale Packing List automatically by confirming the Sale Order, and reach the Sale Packing List by using the &quot;Jump ...&quot; menu.</p>
<p>Now that you are on the initial view form of the Packing List related to your Sale Order, you can start <strong>filling out the the missing information</strong> where it is not filled automatically.</p>
<p>Note: <strong>Most data in the View tab and the other tabs (Details, Payment, Profile) should have been updated automatically from the Sale Order</strong> , so you will not have much to do now. If some fields have not been updated, it means that those fields have not been filled out correctly in the related Sale Order. This is why we recommend to properly fill out the Sale Orders before generating Packing Lists.</p>
</details>
<test>
<table class="test" style="display: none;">
<tbody>
<tr>
<td colspan="3">&lt;tal:block tal:define=&quot;click_configuration python: {&#39;text&#39;: &#39;Modules&#39;}&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
</tr> </tr>
<tr> <tr>
<td>verifyText</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//div[@id="breadcrumb"]/a[2]</td>
<td>Sale Packing Lists</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;"> <tr>
<td>verifyText</td> <td colspan="3">&lt;tal:block tal:define=&quot;click_configuration python: {&#39;text&#39;: &#39;Sale Packing Lists&#39;}&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
<td>//div[@id="breadcrumb"]/a[3]</td> </tr>
<td>ZUITE-TEST-SALEORDER-PRODUCT-001</td> <tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
</tr>
<tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_listbox_loaded&quot; /&gt;</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(text(), &quot;ZUITE-TEST-SALEORDER-PRODUCT-001&quot;)]</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(text(), &quot;ZUITE-TEST-SALEORDER-PRODUCT-001&quot;)]</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
</tr>
<tr>
<td>click</td>
<td>//input[@name=&quot;editable&quot;]</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@data-gadget-scope=&quot;field_my_comment&quot;]//textarea</td>
<td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>type</td> <td>type</td>
<td>//textarea[@name="field_my_comment"]</td> <td>//div[@data-gadget-scope=&quot;field_my_comment&quot;]//textarea</td>
<td>Delivery by the test.</td> <td>Delivery by the test.</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr>
<td>clickAndWait</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/save&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
<td>//button[@name="Base_edit:method"]</td>
<td></td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_title"]</td> <td>//input[@name=&quot;field_my_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-PRODUCT-001</td> <td>ZUITE-TEST-SALEORDER-PRODUCT-001</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_source_section_title"]</td> <td>//input[@name=&quot;field_my_source_section_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td> <td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_source_title"]</td> <td>//input[@name=&quot;field_my_source_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td> <td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_source_administration_title"]</td> <td>//input[@name=&quot;field_my_source_administration_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td> <td>ZUITE-TEST-SALEORDER-ORGANISATION-001</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_destination_section_title"]</td> <td>//input[@name=&quot;field_my_destination_section_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-ORGANISATION-002</td> <td>ZUITE-TEST-SALEORDER-ORGANISATION-002</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_destination_section_title"]</td> <td>//input[@name=&quot;field_my_destination_section_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER-ORGANISATION-002</td> <td>ZUITE-TEST-SALEORDER-ORGANISATION-002</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_destination_administration_title"]</td> <td>//input[@name=&quot;field_my_destination_administration_title&quot;]</td>
<td>ZUITE-TEST-SALEORDER USER-001</td> <td>ZUITE-TEST-SALEORDER USER-001</td>
</tr> </tr>
<tr> <tr>
<td>verifyValue</td> <td>verifyValue</td>
<td>//input[@name="field_my_specialise_title"]</td> <td>//input[@name=&quot;field_my_specialise_title&quot;]</td>
<td>General Sale Trade Condition</td> <td>General Sale Trade Condition</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr>
<td>verifyTextPresent</td> <td>waitForElementPresent</td>
<td>1 records</td> <td>//a[contains(text(), &quot;ZUITE-TEST-SALEORDER-PRODUCT-001&quot;)]</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr style="opacity: 1;">
<td>verifyValue</td> <td>waitForElementPresent</td>
<td>//tr[@class='listbox-data-line-0 DataA']/td[6]/input</td> <td>//p[contains(text(), &quot;100 000.00&quot;)]</td>
<td>100 000.0</td> <td>&nbsp;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section><section class="screenshot">
<h1>Ship</h1> <section class="screenshot">
<img type="image/png" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Ship?format=png" title="Selecting Ship on Action Menu" alt="Selecting Ship on Action Menu"> <h1>Ship</h1>
<details open="open"> <img alt="Selecting Ship on Action Menu" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Ship?format=png" title="Selecting Ship on Action Menu" type="image/png" />
<p>After the sales manager confirms the Sale Order, the employees in the warehouse will prepare the shipment and ship it. If the shipment corresponds with the information in the Sale Packing List, you have to tell ERP5 that your order has been shipped.</p><p> <details open="open">
To do so, browse the “Action” menu at the top of the screen, and click on <strong>“Ship Packing List”</strong> <p>After the sales manager confirms the Sale Order, the employees in the warehouse will prepare the shipment and ship it. If the shipment corresponds with the information in the Sale Packing List, you have to tell ERP5 that your order has been shipped.</p>
.
</p><p> <p>To do so, browse the &ldquo;Action&rdquo; menu at the top of the screen, and click on <strong>&ldquo;Ship Packing List&rdquo;</strong> .</p>
This will change the status of the Sale Packing List from "Confirmed" to <strong>"Shipped"</strong>
, as you can see on the next page's screenshot. <p>This will change the status of the Sale Packing List from &quot;Confirmed&quot; to <strong>&quot;Shipped&quot;</strong> , as you can see on the next page&#39;s screenshot.</p>
</p><p>The next step will be to set the packing list as delivered after the clients acknowledges the shipment.</p>
</details> <p>The next step will be to set the packing list as delivered after the clients acknowledges the shipment.</p>
<test> </details>
<table style="display: none;" class="test"> <test>
<table class="test" style="display: none;">
<tbody> <tbody>
<tr> <tr>
<td>storeAttribute</td> <td>storeLocation</td>
<td>//div[@id="breadcrumb"]/a[3]@href</td> <td>packing_list</td>
<td>wait</td> <td>&nbsp;</td>
</tr> </tr>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/wait_for_activities&quot;&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${wait}</td> <td>${packing_list}</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>selectAndWait</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//select[@name="select_action"]</td>
<td>Ship Packing List</td>
</tr> </tr>
<tr> <tr>
<td>clickAndWait</td> <td colspan="3">&lt;tal:block tal:define=&quot;click_configuration python: {&#39;text&#39;: &#39;Ship Packing List&#39;}&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
<td>//button[@id="dialog_submit_button"]</td>
<td></td>
</tr> </tr>
<tr> <tr>
<td>verifyText</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//label[normalize-space(text())='State']/../div</td>
<td>Shipped</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr>
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog&quot;&gt; &lt;/tal:block&gt;</td>
</tr> </tr>
<tr> <tr>
<td>open</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>${wait}</td> </tr>
<td></td> <tr>
<td>waitForElementPresent</td>
<td>//p[@id=&quot;field_my_translated_simulation_state_title&quot;]</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>verifyText</td>
<td>//p[@id=&quot;field_my_translated_simulation_state_title&quot;]</td>
<td>Shipped</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section><section class="screenshot">
<h1>Deliver</h1> <section class="screenshot">
<img type="image/png" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Deliver?format=png" title="Selecting Delivery on Action Menu" alt="Selecting Delivery on Action Menu"> <h1>Deliver</h1>
<details open="open"> <img alt="Selecting Delivery on Action Menu" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Deliver?format=png" title="Selecting Delivery on Action Menu" type="image/png" />
<p>When the shipment has been received by the customer, if the goods have been checked and are in good condition, you would like to set the packing list as delivered.</p><p> <details open="open">
To do so, please browse the “Action” menu and click on the line <strong>“Deliver Packing List”</strong> <p>When the shipment has been received by the customer, if the goods have been checked and are in good condition, you would like to set the packing list as delivered.</p>
.
</p><p> <p>To do so, please browse the &ldquo;Action&rdquo; menu and click on the line <strong>&ldquo;Deliver Packing List&rdquo;</strong> .</p>
This will change the status of the Sale Packing List from <strong>"Shipped" to “Delivered”</strong>
, and this will also <p>This will change the status of the Sale Packing List from <strong>&quot;Shipped&quot; to &ldquo;Delivered&rdquo;</strong> , and this will also <strong>generate the related invoice</strong> , as you can see on the following two pages.</p>
<strong>generate the related invoice</strong> </details>
, as you can see on the following two pages. <test>
</p> <table class="test" style="display: none;">
</details>
<test>
<table style="display: none;" class="test">
<tbody> <tbody>
<tr> <tr>
<td>selectAndWait</td> <td colspan="3">&lt;tal:block tal:define=&quot;click_configuration python: {&#39;text&#39;: &#39;Deliver Packing List&#39;}&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
<td>//select[@name="select_action"]</td>
<td>Deliver Packing List</td>
</tr> </tr>
<tr> <tr>
<td>clickAndWait</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//button[@id="dialog_submit_button"]</td> </tr>
<td></td> <tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog&quot;&gt; &lt;/tal:block&gt;</td>
</tr>
<tr>
<td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt; &lt;/tal:block&gt;</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//p[@id=&quot;field_my_translated_simulation_state_title&quot;]</td>
<td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>verifyText</td> <td>verifyText</td>
<td>//label[normalize-space(text())='State']/../div</td> <td>//p[@id=&quot;field_my_translated_simulation_state_title&quot;]</td>
<td>Delivered</td> <td>Delivered</td>
</tr> </tr>
<tr> <tr>
<td>storeAttribute</td> <td>storeLocation</td>
<td>//div[@id="breadcrumb"]/a[3]@href</td>
<td>spl</td> <td>spl</td>
</tr> <td>&nbsp;</td>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section><section class="screenshot">
<h1>Jump to "Related Sale Invoice Transaction"</h1> <section class="screenshot">
<img alt="Jump to &quot;Related Sale Transaction Invoice&quot;" title="Jump to &quot;Related Sale Transaction Invoice&quot;" type="image/svg+xml" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Jump.To.Related.Invoice?format=png"> <h1>Jump to &quot;Related Sale Invoice Transaction&quot;</h1>
<details open="open"> <img alt="Jump to &quot;Related Sale Transaction Invoice&quot;" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Jump.To.Related.Invoice?format=png" title="Jump to &quot;Related Sale Transaction Invoice&quot;" type="image/svg+xml" />
<p> <details open="open">
After the Packing List is in the "Delivered" state, you can access the related invoice by <strong>clicking the "Related Sale Invoice Transaction" in the "Jump..." menu</strong> <p>After the Packing List is in the &quot;Delivered&quot; state, you can access the related invoice by <strong>clicking the &quot;Related Sale Invoice Transaction&quot; in the &quot;Jump...&quot; menu</strong> .</p>
. </details>
</p> </section>
</details>
</section><section class="screenshot"> <section class="screenshot">
<h1>Generated Sale Invoice Transaction</h1> <h1>Generated Sale Invoice Transaction</h1>
<img alt="Generated Sale Transaction Invoice" title="Generated Sale Transaction Invoice" type="image/svg+xml" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Related.Invoice?format=png"> <img alt="Generated Sale Transaction Invoice" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Related.Invoice?format=png" title="Generated Sale Transaction Invoice" type="image/svg+xml" />
<details open="open"> <details open="open">
<p>Now you can have a look at the Sale Invoice Transaction generated from the Sale Packing List. If you need to go back to the initial Sale Order or Sale Packing List, you can either use the "Jump..." list again, or by browsing the Sale Orders or Sale Packing Lists in the "Modules" list.</p><p>In the next tutorial, you will learn how to manage invoices.</p> <p>Now you can have a look at the Sale Invoice Transaction generated from the Sale Packing List. If you need to go back to the initial Sale Order or Sale Packing List, you can either use the &quot;Jump...&quot; list again, or by browsing the Sale Orders or Sale Packing Lists in the &quot;Modules&quot; list.</p>
</details>
</section><section class="illustration"> <p>In the next tutorial, you will learn how to manage invoices.</p>
<h1>Diverged Packing List</h1> </details>
<img type="image/png" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Manage.Shipped.Quantity.Difference.Acknowledge?format=png" title="Diverged Packing List" alt="Diverged Packing List"> </section>
<details open="open">
<p> <section class="illustration">
Sale Packing Lists can <strong>generate an invoice</strong> <h1>Diverged Packing List</h1>
for the related transaction with a simple action: <img alt="Diverged Packing List" src="http://img.erp5.cn/user-Howto.Manage.Sale.Packing.Lists.Manage.Shipped.Quantity.Difference.Acknowledge?format=png" title="Diverged Packing List" type="image/png" />
<strong>Ship Packing List</strong> <details open="open">
, if the number of items shipped (in the Sale Packing List) matches the number of items ordered (in the Sale Order). This means that you do not have to bother clicking on anything, the invoice will be automatically generated after you ship the Packing List. <p>Sale Packing Lists can <strong>generate an invoice</strong> for the related transaction with a simple action: <strong>Ship Packing List</strong> , if the number of items shipped (in the Sale Packing List) matches the number of items ordered (in the Sale Order). This means that you do not have to bother clicking on anything, the invoice will be automatically generated after you ship the Packing List.<br />
<br> The same as the &quot;Related Sale Packing List&quot;, you can <strong>reach the &quot;Related Sale Invoice Transaction&quot; from the &quot;Jump ...&quot; menu</strong> .</p>
The same as the "Related Sale Packing List", you can
<strong>reach the "Related Sale Invoice Transaction" from the "Jump ..." menu</strong> <p>However, ERP5 also allows you to manage the difference that can exist between what has been ordered and what has been exactly shipped.</p>
.
</p><p>However, ERP5 also allows you to manage the difference that can exist between what has been ordered and what has been exactly shipped.</p><p>For example, your client ordered 1000 products from you, but after the sales manager registered the Sale Order and confirmed it, the warehouse agent discovers that there is only 900 products left, due to a strike that obstructed your shipment to be delivered on time.</p><p> <p>For example, your client ordered 1000 products from you, but after the sales manager registered the Sale Order and confirmed it, the warehouse agent discovers that there is only 900 products left, due to a strike that obstructed your shipment to be delivered on time.</p>
The warehouse agent, who is in charge of preparing the shipment, verifying the Sale Packing List on ERP5 and shipping the goods, decides to pack the 900 products available, and changed the quantity in the Sale Packing List. Technically speaking, this means that the order and the shipment are not convergent, because 1000 products have been ordered and only 900 have been shipped. For this reason, the invoice generation will be up to the sales manager. If he/she approves the shipment, he/she can <strong>first "Split and Defer" the initial Sale Packing List</strong>
, which will create another Sale Packing List for this order with the quantity left to be shipped later. The warehouse can <p>The warehouse agent, who is in charge of preparing the shipment, verifying the Sale Packing List on ERP5 and shipping the goods, decides to pack the 900 products available, and changed the quantity in the Sale Packing List. Technically speaking, this means that the order and the shipment are not convergent, because 1000 products have been ordered and only 900 have been shipped. For this reason, the invoice generation will be up to the sales manager. If he/she approves the shipment, he/she can <strong>first &quot;Split and Defer&quot; the initial Sale Packing List</strong> , which will create another Sale Packing List for this order with the quantity left to be shipped later. The warehouse can <strong>then &quot;Ship&quot; and finally &quot;Deliver&quot; the first Packing List</strong> . After the second part of the products are prepared, the warehouse can <strong>&quot;Ship&quot; and &quot;Deliver&quot; the second Packing List</strong> . In this way, the diverged Packing List can be solved.</p>
<strong>then "Ship" and finally "Deliver" the first Packing List</strong>
. After the second part of the products are prepared, the warehouse can <p>Note that <strong>once you Ship the Packing List, the action generates an invoice for the related Packing List automatically, with the updated quantity shipped</strong> . So finally, you will have two sale invoices, corresponding to each diverged Sale Packing List.</p>
<strong>"Ship" and "Deliver" the second Packing List</strong> </details>
. In this way, the diverged Packing List can be solved. <test>
</p><p> <table class="test" style="display: none;">
Note that <strong>once you Ship the Packing List, the action generates an invoice for the related Packing List automatically, with the updated quantity shipped</strong>
. So finally, you will have two sale invoices, corresponding to each diverged Sale Packing List.
</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody> <tbody>
<tr style="opacity: 1; z-index: 0;" class=""> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms"&gt; Invoke simulation alarms &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/invoke_simulation_alarms&quot;&gt; Invoke simulation alarms &lt;/span&gt;</td>
</tr>
<tr style="opacity: 1; z-index: 0;" class="">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${spl}</td> <td>${spl}</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>selectAndWait</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded&quot;&gt; &lt;/tal:block&gt;</td>
<td>//select[@name="select_jump"]</td>
<td>Related Sale Invoice Transaction</td>
</tr> </tr>
<tr> <tr>
<td>verifyText</td> <td colspan="3">&lt;tal:block tal:define=&quot;click_configuration python: {&#39;text&#39;: &#39;Related Sale Invoice Transaction&#39;}&quot;&gt; &lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link&quot;&gt; &lt;/tal:block&gt; &lt;/tal:block&gt;</td>
<td>//div[@id="breadcrumb"]/a[1]</td>
<td>ERP5</td>
</tr> </tr>
<tr> <tr>
<td>verifyText</td> <td colspan="3">&lt;tal:block metal:use-macro=&quot;here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded&quot;&gt;&lt;/tal:block&gt;</td>
<td>//div[@id="breadcrumb"]/a[2]</td>
<td>Accounting</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
<tr class="" style="opacity: 1;"> <tr style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_manager"&gt;Login As Manager&lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/login_as_manager&quot;&gt;Login As Manager&lt;/span&gt;</td>
</tr> </tr>
<tr> <tr>
<td>open</td> <td>open</td>
<td>${base_url}/Zuite_tearDownSaleOrderTest</td> <td>${base_url}/Zuite_tearDownSaleOrderTest</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>verifyTextPresent</td> <td>verifyTextPresent</td>
<td>Clean Ok</td> <td>Clean Ok</td>
<td></td> <td>&nbsp;</td>
</tr> </tr>
<tr class="" style="opacity: 1; z-index: 0;"> <tr style="opacity: 1; z-index: 0;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td> <td colspan="3">&lt;span metal:use-macro=&quot;container/Zuite_viewTestMacroLibrary/macros/wait_for_activities&quot;&gt; Wait for activities &lt;/span&gt;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</test> </test></section>
</section>
\ No newline at end of file
...@@ -359,11 +359,13 @@ ...@@ -359,11 +359,13 @@
</record> </record>
<record id="7" aka="AAAAAAAAAAc="> <record id="7" aka="AAAAAAAAAAc=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent> <item>
<key> <string>_log</string> </key>
<value>
<list> <list>
<dictionary> <dictionary>
<item> <item>
...@@ -386,7 +388,369 @@ ...@@ -386,7 +388,369 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6729.53047.35720</string> </value> <value> <string>923.6729.53047.35720</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global id="7.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354875607.66</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6732.8583.56251</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354875724.63</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6734.5280.51370</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354877682.57</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6766.46746.50944</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354883267.28</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6859.51832.18517</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354883357.55</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6861.19344.21913</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354883793.5</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6868.36864.49032</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354883847.46</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>923.6869.30236.1877</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1354885136.76</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>jingjing</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>931.51462.205.51814</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -396,16 +760,14 @@ ...@@ -396,16 +760,14 @@
<key> <string>time</string> </key> <key> <string>time</string> </key>
<value> <value>
<object> <object>
<klass> <klass> <reference id="7.1"/> </klass>
<global id="7.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple> <tuple>
<none/> <none/>
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354875607.66</float> <float>1395495207.92</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -419,7 +781,7 @@ ...@@ -419,7 +781,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>rafael</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -433,7 +795,7 @@ ...@@ -433,7 +795,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6732.8583.56251</string> </value> <value> <string>933.42771.22869.10325</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -449,8 +811,8 @@ ...@@ -449,8 +811,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354875724.63</float> <float>1412588442.11</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -464,7 +826,7 @@ ...@@ -464,7 +826,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>sven</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -478,7 +840,7 @@ ...@@ -478,7 +840,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6734.5280.51370</string> </value> <value> <string>940.10023.28866.21947</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -494,8 +856,8 @@ ...@@ -494,8 +856,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354877682.57</float> <float>1458220508.45</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -509,7 +871,7 @@ ...@@ -509,7 +871,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>sven</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -523,7 +885,7 @@ ...@@ -523,7 +885,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6766.46746.50944</string> </value> <value> <string>949.58331.9553.60934</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -539,8 +901,8 @@ ...@@ -539,8 +901,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354883267.28</float> <float>1458220513.49</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -554,7 +916,7 @@ ...@@ -554,7 +916,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>sven</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -568,7 +930,7 @@ ...@@ -568,7 +930,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6859.51832.18517</string> </value> <value> <string>949.58331.14997.40741</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -584,8 +946,8 @@ ...@@ -584,8 +946,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354883357.55</float> <float>1458220521.78</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -599,7 +961,7 @@ ...@@ -599,7 +961,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>ni.yan</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -613,7 +975,7 @@ ...@@ -613,7 +975,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6861.19344.21913</string> </value> <value> <string>950.48709.28771.64460</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -629,8 +991,8 @@ ...@@ -629,8 +991,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354883793.5</float> <float>1468942074.54</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -644,7 +1006,7 @@ ...@@ -644,7 +1006,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -658,7 +1020,7 @@ ...@@ -658,7 +1020,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6868.36864.49032</string> </value> <value> <string>990.17444.48467.46967</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -674,8 +1036,8 @@ ...@@ -674,8 +1036,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354883847.46</float> <float>1616551727.75</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -689,7 +1051,7 @@ ...@@ -689,7 +1051,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -703,7 +1065,7 @@ ...@@ -703,7 +1065,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>923.6869.30236.1877</string> </value> <value> <string>990.59168.52157.53060</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -719,8 +1081,8 @@ ...@@ -719,8 +1081,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1354885136.76</float> <float>1616632788.59</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
...@@ -734,7 +1096,7 @@ ...@@ -734,7 +1096,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>jingjing</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -748,7 +1110,7 @@ ...@@ -748,7 +1110,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>931.51462.205.51814</string> </value> <value> <string>990.60519.53084.45209</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -764,7 +1126,7 @@ ...@@ -764,7 +1126,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1395495207.92</float> <float>1616633415.16</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -779,7 +1141,7 @@ ...@@ -779,7 +1141,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>rafael</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -793,7 +1155,7 @@ ...@@ -793,7 +1155,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>933.42771.22869.10325</string> </value> <value> <string>990.60530.16564.63778</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -809,7 +1171,7 @@ ...@@ -809,7 +1171,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1412588442.11</float> <float>1616634776.06</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -824,7 +1186,7 @@ ...@@ -824,7 +1186,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>sven</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -838,7 +1200,7 @@ ...@@ -838,7 +1200,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>940.10023.28866.21947</string> </value> <value> <string>990.60552.61238.32750</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -854,7 +1216,7 @@ ...@@ -854,7 +1216,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1458220508.45</float> <float>1616634917.21</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -869,7 +1231,7 @@ ...@@ -869,7 +1231,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>sven</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -883,7 +1245,7 @@ ...@@ -883,7 +1245,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>949.58331.9553.60934</string> </value> <value> <string>990.60555.18802.48878</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -899,7 +1261,7 @@ ...@@ -899,7 +1261,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1458220513.49</float> <float>1616635217.42</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -914,7 +1276,7 @@ ...@@ -914,7 +1276,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>sven</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -928,7 +1290,7 @@ ...@@ -928,7 +1290,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>949.58331.14997.40741</string> </value> <value> <string>990.60560.19031.34867</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -944,7 +1306,7 @@ ...@@ -944,7 +1306,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1458220521.78</float> <float>1616635423.95</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -959,7 +1321,7 @@ ...@@ -959,7 +1321,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>ni.yan</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -973,7 +1335,7 @@ ...@@ -973,7 +1335,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>950.48709.28771.64460</string> </value> <value> <string>990.60563.48014.57992</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -989,7 +1351,7 @@ ...@@ -989,7 +1351,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1468942074.54</float> <float>1616635527.45</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -997,17 +1359,172 @@ ...@@ -997,17 +1359,172 @@
</value> </value>
</item> </item>
</dictionary> </dictionary>
</list> <dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>990.60565.29993.30088</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1616635652.17</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>990.60567.35141.59460</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1616635870.45</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>990.60571.11416.40789</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="7.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1616639381.68</float>
<string>UTC</string>
</tuple> </tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
<item>
<key> <string>_next</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tail_count</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
<record id="8" aka="AAAAAAAAAAg="> <record id="8" aka="AAAAAAAAAAg=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<key> <string>_log</string> </key>
<value>
<list> <list>
<dictionary> <dictionary>
<item> <item>
...@@ -1143,16 +1660,20 @@ ...@@ -1143,16 +1660,20 @@
</item> </item>
</dictionary> </dictionary>
</list> </list>
</tuple> </value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
<record id="9" aka="AAAAAAAAAAk="> <record id="9" aka="AAAAAAAAAAk=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<key> <string>_log</string> </key>
<value>
<list> <list>
<dictionary> <dictionary>
<item> <item>
...@@ -1875,7 +2396,21 @@ ...@@ -1875,7 +2396,21 @@
</item> </item>
</dictionary> </dictionary>
</list> </list>
</tuple> </value>
</item>
<item>
<key> <string>_next</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
<record id="10" aka="AAAAAAAAAAo="> <record id="10" aka="AAAAAAAAAAo=">
......
...@@ -1094,11 +1094,13 @@ gf8DLYRWb6+I+wgAAAAASUVORK5CYII=</string> </value> ...@@ -1094,11 +1094,13 @@ gf8DLYRWb6+I+wgAAAAASUVORK5CYII=</string> </value>
</record> </record>
<record id="6" aka="AAAAAAAAAAY="> <record id="6" aka="AAAAAAAAAAY=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<key> <string>_log</string> </key>
<value>
<list> <list>
<dictionary> <dictionary>
<item> <item>
...@@ -1191,7 +1193,9 @@ gf8DLYRWb6+I+wgAAAAASUVORK5CYII=</string> </value> ...@@ -1191,7 +1193,9 @@ gf8DLYRWb6+I+wgAAAAASUVORK5CYII=</string> </value>
</item> </item>
</dictionary> </dictionary>
</list> </list>
</tuple> </value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
<record id="7" aka="AAAAAAAAAAc="> <record id="7" aka="AAAAAAAAAAc=">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment