结存为正,入库单记账生成出库调整单177号工程师张学文2009年9月问题描述:移动平均法,某存货结存为10,单价1,结存金额为10,后做一张红字采购入库单,对此入库单记账时生成一张出库调整单,是什么原因,金额是如何计算出来的?现象记账时:经查,客户在存货选项中勾选了账面为负结存时入库单记账自动生成出库调整,但此存货结存是正啊,为什么还会生成?跟踪一下问题现象:begin--入库单据是否生成出库调整开始--取结存数量,金额,单价开始Select@iJcQuantity=sum(isnull(iNum,0)),@iJcPrice=sum(isnull(iMoney,0)),@iJcUnitPrice=(casewhensum(round(isnull(iNum,0),@iQuantityBits))=0then0elsesum(isnull(iMoney,0))/sum(isnull(iNum,0))end)fromIA_SummaryWhere(case@cAccountwhenN'按部门核算'thencDepCodewhenN'按仓库核算'thencWhCodeelseN''end)=isnull(@cWhDepCode,N'')AndcInvCode=@cInvCodeANDiMonth=@imonthAndIsNull(iDirect,0)=0And(IsNull(cFree1,N'')=Isnull(@cFree1,N'')orIsnull(@cFree1,N'')=N'')And(IsNull(cFree2,N'')=Isnull(@cFree2,N'')orIsnull(@cFree2,N'')=N'')And(IsNull(cFree3,N'')=Isnull(@cFree3,N'')orIsnull(@cFree3,N'')=N'')And(IsNull(cFree4,N'')=Isnull(@cFree4,N'')orIsnull(@cFree4,N'')=N'')And(IsNull(cFree5,N'')=Isnull(@cFree5,N'')orIsnull(@cFree5,N'')=N'')And(IsNull(cFree6,N'')=Isnull(@cFree6,N'')orIsnull(@cFree6,N'')=N'')And(IsNull(cFree7,N'')=Isnull(@cFree7,N'')orIsnull(@cFree7,N'')=N'')And(IsNull(cFree8,N'')=Isnull(@cFree8,N'')orIsnull(@cFree8,N'')=N'')And(IsNull(cFree9,N'')=Isnull(@cFree9,N'')orIsnull(@cFree9,N'')=N'')And(IsNull(cFree10,N'')=Isnull(@cFree10,N'')orIsnull(@cFree10,N'')=N'')--入库是否与结余方向相反--sup709040053--If((@iJcQuantity<=0Or@iJcPrice<=0Or@iJcUnitPrice<=0)And@iQuantity>0)Or--(((@iJcQuantity>=0Or@iJcPrice>=0)Or@iJcUnitPrice<0)And@iQuantity<0)If((@iJcQuantity<=0Or@iJcPrice<0Or@iJcUnitPrice<0)And@iQuantity>0)Or(((@iJcQuantity>=0Or@iJcPrice>0)Or@iJcUnitPrice<0)And@iQuantity<0)begin--将调整记录插入调整单据临时表set@iJustPrice=dbo.IA_fn_GetJustPrice(@iQuantity,@iPrice,@iJcQuantity,@iJcPrice,@iQuantityBits,@iCostBits)if@iJustPrice<>0execdbo.IA_sp_AddSysJustVouch@AutoID,@cBusType,0,@ID,@iJustPrice,@cValueStyle,@imonth,@cWhDepCode,@cInvCode,@cAccount,@cFree1,@cFree2,@cFree3,@cFree4,@cFree5,@cFree6,@cFree7,@cFree8,@cFree9,@cFree10,0endend--入库单据是否生成出库调整结束总结:系统判断入库是否与结余方向相反,并且∣入库数量∣<∣原结存数量∣并原结存单价为正,结存时取结存单价,反算出库调整金额。出库调整金额=入库数量*(入库单价-结存单价)如本例:数量单价金额期初10110收入-15-5则出库调整单=-1*(5-1)=-4使结存单价为1,如果没有生在出库调整单则结存单价为0.56,系统只所以如此处理,是为了在移动平均法的计价方式下,防止单价变动幅度过大。谢谢!