本帖最后由 xuming 于 2016-6-8 16:21 编辑
功能概述 新建一条染色的订单(脱色,染色,染纱),对订单的订单明细和投料明细进行管理。 操作流程 操作流程说明: 1、用户打开界面 2、用户新建一条订单 3、系统自动保存用户输入的数据 4、UI原型图(可以看出系统的结构) 参数说明 1、参数功能说明 用来区分大货订单为脱色,染绒,染纱 2、参数值说明:1=染绒,2=染纱,3=脱色。 Ref参照 1、单据状态:从常量明细表pbConstDtl中查询出可用的并且常量为292的值 2、经营方式:从常量明细表pbConstDtl中查询出可用的并且常量为1297的值 3、订单类型:从通用数据字典表pbDictionaryData中查询出可用的并且字典类型为1325的值 4、客户:从客商基础表pbCustomer中查询出客户编号,客户名称和客户ID,并且所属部门的ID为1175或者为0的所有客户 5、染色类型:从常量明细表pbConstDtl中查询出可用的并且常量值为1350,并且染色类型的值为参数传过来的值 6、订单状态:从常量明细表pbConstDtl中查询出可用的并且常量值为1278的值 7、用途:从常量明细表pbConstDtl中查询出可用的并且常量值为1351的值 8、模板配方编号: SELECT TOP 50 sColorTemplateNo = A.sBillNo,A.sTemplateName,A.sParentColorNo ,sRemark=dbo.fnpbConcatStringEx(b.sColorNo + '('+CAST( CAST(b.nRate AS DECIMAL(18,2)) AS NVARCHAR)+'%)-'+c.sMaterialNo,' / ') FROM dbo.tmDyeingColorTemplate A(NOLOCK) JOIN dbo.tmDyeingColorTemplateDtl b ON a.iIden=b.iHdrId LEFT JOIN dbo.mmMaterial c ON b.iMaterialId=c.iIden WHERE A.iBillStatus= 2 AND A.bUsable=1 AND 1=1 GROUP BY a.sBillNo,a.sTemplateName,a.sParentColorNo 查询出前50行的模板配方编号和模版配方名称,大色号,配方=色号+单纱比例+%-物料编号,当模版配方头表的单据状态为已审核的时候,查出的信息按照编号,模板名称和色号分类。 9、出货地点:从销售交地表sdDestination中查询出可用的出货地点名称和出货地点ID 10、物料: IF :iDyeingType IN(1,3) BEGIN --染绒时取绒 SELECT /*TOP*/ A.sMaterialNo,A.sMaterialName,iMaterialId = A.iIden,A.iUnitId,sUnitName=A.sUnit FROM dbo.mmMaterial A(NOLOCK) WHERE A.iMaterialCategoryId = 2 AND A.bUsable=1 AND (/*Condition*/) END ELSE BEGIN --染纱时取原纱库的库存物料 SELECT /*TOP*/ A.sMaterialNo,A.sMaterialName,iMaterialId = A.iIden,A.iUnitId,sUnitName=A.sUnit FROM dbo.mmMaterial A WITH(NOLOCK) WHERE A.iMaterialCategoryId = 4 AND a.bUsable=1 AND (/*Condition*/) END --当参数传过来的物料类型为1或3的时候(染绒、脱色)都取绒的物料,否则都取纱的物料
11、单位:从单位表pbUnit中查询出可用的单位名称和单位ID
查询业务逻辑 1、主查询根据菜单所配的参数来查询 2、订单明细根据订单来区分。 3、投料明细根据订单明细来区分 UI显示与控制 1、执行订单,暂停订单,取消订单 用来修改订单明细下的订单状态。 执行订单:当前的订单状态为正常的时候,执行订单的按钮不可见。 暂停订单:当前的订单状态为暂停的时候,暂停订单按钮不可见。 取消订单:当前的订单状态为取消的时候,取消订单按钮不可见。
2、控件非空校验: 订单明细:纱支,物料,单位,交期,订单状态非空。 投料明细:物料,物料批次和单位非空。 单点功能说明 执行订单:将订单状态的值更新为1,也就是正常。 UPDATE A SET A.iOrderState=1 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden 暂停订单:将订单状态的值更新为2,也就是暂停。 UPDATE A SET A.iOrderState=2 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden 取消订单:将订单状态的值更新为3,也就是取消。 UPDATE A SET A.iOrderState=3 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden --点击按钮之后执行的action EntitySet.ValidateEmpty(dtlEntitySet);--判断实体类是否为空 DOIF(:f[dtlEntitySet.iOrderState]=1,RefreshControl(btnReturn,false));如果当前的订单状态为执行的话,将执行按钮变为不可用。 DOIF(:f[dtlEntitySet.iOrderState]=2,RefreshControl(btnStop,false));如果当前的订单状态为暂停的话,将暂停按钮变为不可用。 DOIF(:f[dtlEntitySet.iOrderState]=3,RefreshControl(btnCancel,false));如果当前的订单状态为取消的话,将取消按钮变为不可用。
业务逻辑说明 1、新建一条订单后,填写对应的订单明细和投料明细,然后进行送审和审核对订单来操作。
|