装箱单管理 编写:OSOE项目 正如上一教程建立销售订单介绍,当您确认一个销售订单,ERP5系统就会自动生存一个“销 售装箱单”。因此,您就可以随时追踪与该订单相关的货物运送情况。 该教材旨在介绍如何管理销售装箱单,从而运送和交付货品。 这是一个两步骤流程:首先;将订单货品发送出去,其次,当货品顺利到达客户仓库时, 将装箱单状态改为“已交付”。 init openAndWait ${base_url}/Zuite_createFunctionalTestUser verifyTextPresent Done. Wait for activities openAndWait ${base_url}/Zuite_setUpSaleOrderTest verifyTextPresent Init Ok Wait for activities openAndWait ${base_url}/Zuite_setUpSalePackingListTest verifyTextPresent Init Ok Wait for activities Login As Functional Test User 纲要 • 如何进入装箱单 • 如何定义装箱单 • 如何声明发货 • 如何从装箱单生成发票 Invoke simulation alarms Wait for activities 管理装箱单 Delivery Flow 如图所示,管理装箱单的不同步骤可以和实际的公司员工联系起来。 基于工作流程的系统这项原则就在这里表现出来。实际上,当销售经理输入并确认了一个 销售订单,仓库员工就会根据系统由已确认销售订单自动生成的销售装箱单来准备货物。 基于系统工作流程,当仓库员工准备好货物之后,销售经理就会被告知货物已就绪待运, 于是他就可以给予指令“运送”这批货物。一旦客户接收到这批货物,查看无误并反馈给发 货公司,该销售经理就可以将装箱单状态改为“已交付”。 这样,基于ERP5,您就可以追踪完整的货运流程。 销售装箱单 Packing List View Tab 从上一节教程“建立销售订单”,您已经学会如何通过确认销售订单自动生成销售装箱单, 然后通过“跳至”菜单进入该新建装箱单。 现在您已经进入该销售订单相关的销售装箱单的初始页面,“概览”“详细信息”“支付”“简介 ”标签页的大部分信息已根据销售订单自动填充,因此您并没有非常多的信息需要补充。这 就是为何我们建议在建立装箱单之前先详细填写订单文件。现在您就可以开始填写缺失信 息。 openAndWait ${base_url} selectAndWait //select[@name="select_module"] Sale Packing Lists verifyText //div[@id="breadcrumb"]/a[2] Sale Packing Lists verifyText //div[@id="breadcrumb"]/a[3] ZUITE-TEST-SALEORDER-PRODUCT-001 type //textarea[@name="field_my_comment"] Delivery by the test. clickAndWait //button[@name="Base_edit:method"] verifyValue //input[@name="field_my_title"] ZUITE-TEST-SALEORDER-PRODUCT-001 verifyValue //input[@name= ZUITE-TEST-SALEORDER-ORGANISATION-001 "field_my_source_section_title"] verifyValue //input[@name="field_my_source_title"] ZUITE-TEST-SALEORDER-ORGANISATION-001 verifyValue //input[@name= ZUITE-TEST-SALEORDER-ORGANISATION-001 "field_my_source_administration_title"] verifyValue //input[@name= ZUITE-TEST-SALEORDER-ORGANISATION-002 "field_my_destination_section_title"] verifyValue //input[@name= ZUITE-TEST-SALEORDER-ORGANISATION-002 "field_my_destination_section_title"] verifyValue //input[@name= ZUITE-TEST-SALEORDER USER-001 "field_my_destination_administration_title"] verifyValue //input[@name="field_my_specialise_title"] General Sale Trade Condition verifyTextPresent 1 records verifyValue //tr[@class='listbox-data-line-0 DataA']/td 100 000.0 [6]/input 运送 Selecting Ship on Action Menu 当销售经理确认了销售订单,仓库员工就会准备发货。如果发货信息和销售装箱单信息相 符,您就需要告知ERP5已发货。 请打开“操作”菜单,点击“运送装箱单”,这将销售装箱单的状态由“已确认”(系统由已确 认销售订单自动生成销售装箱单的默认状态)变成“已运送”,如下图所示。 下一步就是在客户声明已接受货物后将装箱单设为“已交付”。 selectAndWait //select[@name="select_action"] Ship Packing List clickAndWait //button[@id="dialog_submit_button"] verifyText //label[normalize-space(text())='State']/../div Shipped storeAttribute //div[@id="breadcrumb"]/a[3]@href wait Wait for activities open ${wait} 交付 Selecting Delivery on Action Menu 当客户收到货物并核对无误后,您就可以将装箱单设为“已交付”。 打开“操作”菜单点击“交付装箱单”。这将使该销售装箱单的状态由“以运送”变为“已交付” ,并同时自动生成销售装箱单的相关发票,如下图所示。 selectAndWait //select[@name="select_action"] Deliver Packing List clickAndWait //button[@id="dialog_submit_button"] verifyText //label[normalize-space(text())='State']/../ Delivered div storeAttribute //div[@id="breadcrumb"]/a[3]@href spl Wait for activities 跳至“相关销售发票交易” Jump to "Related Sale Transaction Invoice" 当装箱单处于“已交付”状态,您就可以通过点击“跳至”菜单中“相关销售发票交易”进入该 销售装箱单的相连发票。 已生成的销售交易发票 Generated Sale Transaction Invoice 现在您可以浏览一下系统由已交付的销售装箱单自动生成的销售发票交易文件。如果您需 要返回起始销售订单或者销售装箱单,请点击“跳至”菜单的相应项目,或者通过ERP5系统 页面上方的“模块”菜单中销售订单和销售装箱单模块在文件列表中搜索。 下节教程,您将学习如何管理发票。 不一致的装箱单 Diverged Packing List 销售装箱单可以为相关交易事项自动生成发票,您只需点击“运送装箱单”这一简单操作即 可,前提是发货数量(即所运送的销售装箱单中的货物数量)同客户订购数量(即销售订 单中的货物数量)一致。在这种情况下,“运送”装箱单后,您不需进行其他操作,系统就 会为该已运送的装箱单自动生成一个发票。 同“相关销售装箱单”一样,您可以通过“跳至”菜单的“相关销售发票交易”进入发票文件页 面 当然,ERP5还可以处理订购数量与发货数量之间的差异。 例如,客户向您订购1000件产品,当销售经理在系统中输入销售订单信息并确认订单后, 仓库员工却发现库存仅有900件产品,原因是生产工人罢工,这就影响您及时交付货物。 负责准备货物,验证销售装箱单以及发货的仓库经理决定将这900件产品装箱,于是他修改 了销售装箱单的货物数量。从技术上讲,这就表明订单和发货数量不一致,因为客户订购 1000件产品,而只有900件被运出。基于这个原因,装箱单的运送和相关发票的生成就必须 由销售经理来决定。如果他/她允许发货,就要首先“拆分和推迟”原始销售装箱单,这将生 成另一个销售装箱单,它包含剩余货物数量并等待之后运送。仓库员工于是按照指令“运送 ”并最终“交付”第一批装箱单。一旦第二批货物准备就绪,仓库员工就可以“运送”并“交付” 剩下的装箱单,从而将所有订购的货物运送至客户。以该方式我们就能解决不一致的装箱 单问题。 注意:一旦您“运送”装箱单,系统就会以更新装箱单的发货数量为该装箱单自动生成相应 发票。因此您最终将得到两个销售发票,它们和各自的销售装箱单相联系。 Invoke simulation alarms Wait for activities open ${spl} selectAndWait //select[@name="select_jump"] Related Sale Invoice Transaction verifyText //div[@id="breadcrumb"]/a[1] ERP5 verifyText //div[@id="breadcrumb"]/a[2] Accounting Wait for activities Login As Manager open ${base_url}/ Zuite_tearDownSaleOrderTest verifyTextPresent Clean Ok Wait for activities