1、成车开票(id,内容,日期,标志)
2、成车销售出库(id,内容,日期,标志)
3、购入库(购入库ID,购入描述...,入库标志--0 未入库 1 入库--)
4、库存(库存ID,购入库ID,单据号,日期...)
5、退货(退货ID,购入库ID,原因,日期...)
2、成车销售出库(id,内容,日期,标志)
3、购入库(购入库ID,购入描述...,入库标志--0 未入库 1 入库--)
4、库存(库存ID,购入库ID,单据号,日期...)
5、退货(退货ID,购入库ID,原因,日期...)
{
成车开票 //插入新记录
if(NOT 出库) //确定状态是"出库"与“非出库”之分,Yes分支可以命名为“冲红”
{
销售冲红 //须处理相关冲红工作,通常修改数量或金额为负值。
销单无效 //确定有一种状态是"无效"。
return //流程的一个退出分支
}
}if(成车销售出库) //确定有一种状态是"销售出库",是“出库”的一个子状态。
{ 输入条码 //进入条码处理模块。
}
else
{ if(退库) //确定有一种状态是"退库",也是“出库”的一个子状态。
{ 成车退库处理 //进入成车退库处理模块。
}
else
{ 库存减少 //其它出库状态直接减少库存,须设立库存表.
}
}//------------------------------------
整理后可以如下:
设立数据表:
发票(编号,型号, 数量,金额,状态)
其中 状态::={ 冲红 | 销售 | 退库 | 其它出库 | 无效 | 已处理}
库存(型号,数量)程序可以如下:
if(not exists the bill)
insert the record.case for 状态
when 冲红 then call sub 销售冲红, Set 状态 = 无效;
when 销售 then call sub 输入条码;
when 退库 then call sub 成车退库处理;
when 其它出库 then update 库存 set 数量 - @num_of_current_bill from 发票
else DO nothing.update 发票 set 状态 = 已处理 where 编号 = @Curren_编号
2、成车销售出库(id,内容,日期,标志)
3、购入库(购入库ID,购入描述...,入库标志--0 未入库 1 入库--)
4、库存(库存ID,购入库ID,单据号,日期...)
5、退货(退货ID,购入库ID,原因,日期...)