第二篇金蝶k3供应链系统初始化[1]
- 格式:ppt
- 大小:2.47 MB
- 文档页数:29
系统实施文档之K/3系统初始化指南文档作者:创建日期:确认日期:当前版本:拷贝数量:目录一.概述 (4)1、各系统模块启用前必须完成的资料 (4)2、实际业务处理前需要完成的资料 (5)二.静态数据:基础资料 (5)1、物料 (5)2、计量单位 (6)3、仓库 (6)4、客户 (6)5、供应商 (7)6、职员 (7)7、科目 (7)8、自定义核算项目 (8)9、自定义辅助资料 (8)三.静态数据:供应链 (8)1、检验项目、不良原因 (8)四.静态数据:生产管理 (8)1、BOM (8)2、工艺路线 (8)五.静态数据:成本管理 (9)1、成本对象组、共耗材料费用分配标准 (9)六.动态数据:供应链 (9)1、初始库存 (9)2、初始暂估入库单 (10)3、初始未核销销售出库单 (10)4、初始暂估委外加工入库单 (10)5、初始未核销委外加工出库单 (10)6、初始未完结采购订单、销售订单 (10)七.动态数据:生产管理 (11)1、初始未完结生产任务单、委外加工单 (11)八.动态数据:总账 (11)1、初始科目余额 (11)2、初始现金流量 (12)九.动态数据:应收款管理 (12)1、初始增值税发票、普通发票、其他应收单、预收单 (12)2、初始应收票据 (12)十.动态数据:应付款管理 (12)1、初始增值税发票、普通发票、其他应付单、预付单 (12)2、初始应付票据 (13)十一.动态数据:固定资产管理 (13)1、初始固定资产卡片 (13)2、无形资产管理 (13)十二.动态数据:成本管理 (13)1、初始在制品成本余额(与供应链同期初始化) (13)2、初始在制品成本余额(在供应链之后初始化) (14)十三.动态数据:对账 (15)1、总账与供应链对账 (15)2、总账与应收款管理对账 (16)3、总账与应付款管理对账 (16)4、总账与固定资产管理对账 (16)5、总账与现金管理对账 (16)6、总账与成本管理对账 (16)附:EXCEL文件引入注意事项 (16)K/3系统初始化指南一.概述系统初始化资料分2部分:一是各系统模块启用前必须完成的资料,项目实施任务中的“初始化结束”便是指此部分资料录入结束;一是实际业务处理前需要完成的资料,这部分资料可以在相应系统模块启用后录入。
系统初始化一、初始化准备工作:1、在服务器端新建帐套,并启用帐套2、客户端选择“以命名用户方式登录”,并以administrator用户登录K3系统,密码为空,登入系统后,进入“系统设置”-“用户管理”-“用户管理”-“用户管理”,新建一个用户(可以用自己的英文名字或拼音,不建议用中文),认证方式选择密码认证,设置一个密码,并设置用户组为administrators组。
3、后续,都以新建立的帐户登录系统作业二、初始化系统设置注意:采购、销售、仓存、存货核算四个系统,只要在其中任意一个系统进行初始化,其他系统也会同时完成)1、“系统设置”→“初始化”→“采购管理”→“系统参数设置”(细讲各参数的设置对后日的影响)◆核算方式选择数量金额核算①选择[数量核算],表示在K/3工业供需链中只对物料进出的数量核算,存货核算系统将不再具有核算物料成本的功能,财务人员要根据供需链部分产生的单据在总帐中手工制作凭证。
(建议:如用户只是运用本系统进行仓库物料数量统计时,才选择此选项)②选择[数量金额核算],表示在K/3工业供需链中不仅核算物料数量,且核算金额,并在存货核算系统中自动生成凭证并传送到总帐中。
(建议:如用户使用K/3系统是为了将供需链和财务系统更好的结合起来,则选择此项。
)◆库存更新控制选择[单据审核后才更新]即单据都需要通过审核程序,而选择[单据保存后立即更新]则表示单据不需要通过审核程序,建议选择[单据审核后生效]。
◆门店管理选项不能钩选,请注意注意:核算参数一经设定并结束初始化后将不能返回再修改三、从模板中引入会计科目(该企业为工业企业)“系统设置”-“基础资料”-“公共资料”-“科目”,然后从“文件”菜单中调用“从模版中引入科目”,将系统模版中的科目(类型为工业企业)全部引入到系统中。
四、设置总帐系统参数“系统设置”-“系统设置”-“总帐”-“系统参数”,总帐页签中设置“本年利润”科目(本年利润321)和“利润分配”科目(利润分配322)对应的科目代码对以下帐套选项打“√”: 1、启用往来业务核销2、新增凭证自动填补断号(凭证页签中)五、系统资料维护(二)增加凭证字为“记”字。
系统初始化流程系统设置会计科目引入-参数设置基础资料设置辅助资料-比别-凭证字-计量单位-会计科目-核算项目-固定资产类初始数据录入存货初始数据录入-出事单据数据录入结束初始化对账-结束初始化基础资料-会计科目录入金蝶系统中将会计科目分为“资产”、“负债”、“权益”、“成本”、“损益”和“表外”六大类。
在本软件中会计科目可以从标准模板引入,可以根据企业的实际情况选择。
案例:引入“企业会计制度科目”模板操作步骤1、在K/3主控台,依次选择【系统设置】-->【基础资料】-->【公共资料】-->【科目】,进入“科目”维护窗口。
单击【文件】菜单下的【从模板中引入科目】,进入科目模板窗口。
一、系统参数设置K/3基础版分为总账、报表、现金流量表、工资管理、固定资产、应收款管理、应付款管理、现金管理、财务分析、采购管理、销售管理、仓存管理、存货核算共计13个系统。
每个系统都可独立操作,故都有自己的设置。
其中,总账、工资管理、固定资产、应收款管理、应付款管理、现金管理在正式使用前都要进行自己的系统参数设置。
而采购管理、销售管理、仓存管理、存货核算由于共用一个参数设置界面,故只需在其中一个系统设置,其他系统就可以直接引用。
下面我们分系统介绍参数设置。
参数设置-总帐操作步骤1、在K/3主控台,依次选择【系统设置】-->【系统设置】-->【总账】-->【系统参数】,进入总账系统参数设置窗口。
参数设置-现金管理操作步骤1、在K/3主控台,依次选择【系统设置】-->【系统设置】-->【现金管理】-->【系统参数】,进入现金管理系统参数设置窗口。
参数设置-工资操作步骤1、在K/3主控台,依次选择【系统设置】-->【系统设置】-->【工资管理】-->【系统参数】,进入工资管理系统参数设置窗口。
参数设置-固定资产操作步骤1、在K/3主控台,依次选择【系统设置】-->【系统设置】-->【固定资产管理】-->【系统参数】,进入固定资产管理系统参数设置窗口。
金蝶K3供应系统内部技术分析手册(初始化设置篇)目录一、工业物流初始设置 (3)1.1工业初始化 (3)1.1.1初始化参数设置 (3)1.1.1处理流程 (3)1.1.1.2相关的数据结构: (3)1.1.1.3其他 (5)1.1.2初始化功能流程 (5)1.1.2.1.初始数据录入 (5)1.1.2.2流程 (6)1.1.2.3传递余额到总帐 (7)1.1.2.4初始余额数据录入和保存:icinvinitial (10)1.1.2.5初始化数据的规则 (11)1.1.3结束初始化 (13)1.3.1检查条件如下 (13)1.1.3.2结束初始化过程 (13)1.1.3.3结束初始化的处理内容 (13)1.1.4 反初始化 (13)1.1.5初始化以前三类单据 (14)1.2工业系统参数设置 (15)1.2.1系统设置 (15)1.2.2编码规则设置 (15)1.2.3打印控制 (16)1.2.4单据科目类型 (16)1.2.5工业整体选项:共17项 (16)1.2.6采购系统选项:共10项 (16)1.2.7销售系统选项:共11项 (17)1.2.8仓存系统选项 (17)1.2.9核算系统选项共11项 (17)1.2.10成本核算共4项 (18)1.2.11生产系统选项共11项 (18)1.2.12车间1项 (18)1.2.13 业务流程设计应用: (18)1.2.14其他: (19)1.3工业辅助功能 (19)1.3.1多级审核 (19)1.3.2供应商供货信息 (20)1.3.3物料对应表 (21)1.3.4价格资料 (22)1.3.5折扣资料 (23)1.3.6信用管理 (24)1.3.7批号管理 (25)1.3.8条形码,条形码关联 (26)1.3.9客户BOM和批号对应表 (27)一、工业物流初始设置 1.1工业初始化1.1.1初始化参数设置 1.1.1处理流程 核算参数得设置流程:启用年度和启用期间---------税率----------核算方式------库存结余控制-------库存更新控制---------销售模块设置参数说明:启用年度和启用期间:业务实际的启用年度和期间,其自定义得期间规则参照总帐的设置税率:系统默认为17%,输入时只输入%前面的数据即可,不要输入0.17等数据,参照总帐核算方式:数量核算”和“数量、金额核算”两种方式,“数量核算”,系统以后只核算数量,不核算金额,数量、金额核算”是对材料的数量和成本都核库存结余控制:确定是否允许负结存,负结存是库存即时数量为负数库存更新控制:单据审核后才更新,单据保存后立即更新,在新增、修改、复制、删除、作废、反作废该库存单据时进行库存调整销售模块设置:日常业务中是否存在企业集团内部销售业务,1.1.1.2相关的数据结构: 整个核算参数涉及的数据流程如下1.表示销售模块设置是否启用集团分销0:不区分1:区分数据存放于: t_SystemProfile系统参数表 FCategory='GL' AND Fkey='DisCivilExportSale')例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='GL' AND Fkey='DisCivilExportSale')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='GL' ANDFkey='DisCivilExportSale'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('GL','DisCivilExportSale','1')2-税率参照总帐税率, 数据存放于FCategory='GL' AND Fkey='TaxRate例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='GL' AND Fkey='TaxRate')UPDATE t_SystemProfile SET FValue='17' WHERE FCategory='GL' AND Fkey='TaxRate' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('GL','TaxRate','17')3.表示启用年度和期间,目前年度和期间,数据存放于'CurrentPeriod' 'CurrentYear','StartPeriod','StartYear' 例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='CurrentPeriod')UPDATE t_SystemProfile SET FValue='7' WHERE FCategory='IC' ANDFkey='CurrentPeriod'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','CurrentPeriod','7')IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='CurrentYear')UPDATE t_SystemProfile SET FValue='2003' WHERE FCategory='IC' ANDFkey='CurrentYear'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','CurrentYear','2003')goIF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='StartPeriod')UPDATE t_SystemProfile SET FValue='7' WHERE FCategory='IC' AND Fkey='StartPeriod' ELSEINSERT INTO t_SystemProfile(FCategIF Exists(select * from t_Syory,FKey,FValue) V alues('IC','StartPeriod','7')gostemProfile WHERE FCategory='IC' AND Fkey='StartYear')UPDATE t_SystemProfile SET FValue='2003' WHERE FCategory='IC' AND Fkey='StartYear'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','StartYear','2003')4.历史遗留的暂估凭证 , 数据存放于FCategory='IC' AND Fkey='ZanguV oucher'例如:设置保存过程:IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='ZanguV oucher')UPDATE t_SystemProfile SET FValue='0' WHERE FCategory='IC' ANDFkey='ZanguV oucher'ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','ZanguV oucher','0')5.库存结余控制(是否允许负结存(1--允许,0--不允许)数据存放于'UnderStock'例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='UnderStock')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='UnderStock' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','UnderStock','1')6.-核算方式0:数量核算,1:数量、金额核算,数据存放于FCategory='IC' AND Fkey='AuditChoice'例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='AuditChoice')UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='AuditChoice' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','AuditChoice','1')go7.库存更新控制0:审核更新,1:保存更新数据存放于FCategory='IC' AND Fkey='UPSTOCKWHENSA VE') 例如:设置保存过程IF Exists(select * from t_SystemProfile WHERE FCategory='IC' AND Fkey='UPSTOCKWHENSA VE') UPDATE t_SystemProfile SET FValue='1' WHERE FCategory='IC' AND Fkey='UPSTOCKWHENSA VE' ELSEINSERT INTO t_SystemProfile(FCategory,FKey,FValue) Values('IC','UPSTOCKWHENSA VE','1')1.1.1.3其他 核算参数的设置前提有两个:工业供需链系统处于初始化阶段工业供需链系统中不存在任何已录入的初始余额和业务单据1.1.2初始化功能流程1.1.2.1.初始数据录入处理流程采用加权平均法、移动平均法计价的物料:不进行批次管理,直接在“初始数据录入”界面的右边录入期初数量、期初金额;进行批次管理,物料必须保证所有批次的年初余额、期初余额的单价一致,录入每批次的初始数据,对于期初余额,只在“合计行”录入计划成本法计价的物料:直接在“初始数据录入”界面的右边录入期初数量、差异类数采用先进先出法、后进先出法计价的物料:需要通过单击“物料”和“批次/顺序号”对应的空白按钮、调出顺序录入数据分批认定法计价:必须进行业务批次管理,因此需要通过单击“物料”和“批次/顺序号”对应的空白按钮初始录入:初始数据分仓库、仓位录入如果是年中启用:年初金额,年初差异,本年累计收入数量,本年累计收入金额,本年累计收入差异,本年累计发出数量,本年累计发出金额,本年累计发出差异等根据帮助说明,进行相关入录,平衡得到。
系统实施文档之K/3系统初始化指南文档作者:创建日期:确认日期:当前版本:拷贝数量:目录一.概述 (4)1、各系统模块启用前必须完成的资料 (4)2、实际业务处理前需要完成的资料 (5)二.静态数据:基础资料 (5)1、物料 (5)2、计量单位 (6)3、仓库 (6)4、客户 (6)5、供应商 (7)6、职员 (7)7、科目 (7)8、自定义核算项目 (8)9、自定义辅助资料 (8)三.静态数据:供应链 (8)1、检验项目、不良原因 (8)四.静态数据:生产管理 (8)1、BOM (8)2、工艺路线 (8)五.静态数据:成本管理 (9)1、成本对象组、共耗材料费用分配标准 (9)六.动态数据:供应链 (9)1、初始库存 (9)2、初始暂估入库单 (10)3、初始未核销销售出库单 (10)4、初始暂估委外加工入库单 (10)5、初始未核销委外加工出库单 (10)6、初始未完结采购订单、销售订单 (10)七.动态数据:生产管理 (11)1、初始未完结生产任务单、委外加工单 (11)八.动态数据:总账 (11)1、初始科目余额 (11)2、初始现金流量 (12)九.动态数据:应收款管理 (12)1、初始增值税发票、普通发票、其他应收单、预收单 (12)2、初始应收票据 (12)十.动态数据:应付款管理 (12)1、初始增值税发票、普通发票、其他应付单、预付单 (12)2、初始应付票据 (13)十一.动态数据:固定资产管理 (13)1、初始固定资产卡片 (13)2、无形资产管理 (13)十二.动态数据:成本管理 (13)1、初始在制品成本余额(与供应链同期初始化) (13)2、初始在制品成本余额(在供应链之后初始化) (14)十三.动态数据:对账 (15)1、总账与供应链对账 (15)2、总账与应收款管理对账 (16)3、总账与应付款管理对账 (16)4、总账与固定资产管理对账 (16)5、总账与现金管理对账 (16)6、总账与成本管理对账 (16)附:EXCEL文件引入注意事项 (16)K/3系统初始化指南一.概述系统初始化资料分2部分:一是各系统模块启用前必须完成的资料,项目实施任务中的“初始化结束”便是指此部分资料录入结束;一是实际业务处理前需要完成的资料,这部分资料可以在相应系统模块启用后录入。
金蝶K3供应链操作手册•供应链系统概述•基础设置与初始化•采购管理模块操作指南•库存管理模块操作指南目录•销售管理模块操作指南•物流配送管理模块操作指南•总结与展望供应链系统概述供应链系统定义与功能供应链系统定义供应链系统功能供应链系统的主要功能包括计划、采购、生产、库存、销售等,旨在实现物流、信息流和资金流的高效协同,提高整体运营效率。
高度集成灵活配置强大报表易用性金蝶K3供应链系统特点系统架构与部署方式系统架构金蝶K3供应链系统采用B/S架构,支持多用户并发访问,具有良好的可扩展性和可维护性。
部署方式系统支持本地部署和云部署两种方式,企业可根据自身需求选择合适的部署方式。
本地部署需要企业在自己的服务器上安装软件并配置环境,而云部署则由金蝶提供服务器和运维服务,企业只需通过浏览器即可访问系统。
基础设置与初始化系统参数设置操作路径关键参数注意事项基础资料维护操作路径维护内容注意事项期初数据录入操作路径01录入内容02注意事项031 2 3操作步骤确认内容注意事项系统初始化完成确认采购管理模块操作指南采购需求分析与计划制定需求分析根据企业生产计划、销售预测和历史数据,分析物料需求,确定采购品种、数量和时间。
市场调研收集市场信息,了解物料价格、供应商能力和市场动态,为制定采购计划提供依据。
计划制定结合需求分析和市场调研结果,制定采购计划,包括采购预算、采购周期、采购方式等。
供应商选择与评估供应商信息收集供应商初步筛选供应商评估订单创建与确认订单跟踪订单变更处理在金蝶K3系统中创建采购订单,并与供应商确认订单内容,包括物料规格、数量、价格、交货期等。
采购订单处理及跟踪采购收货与退货处理收货验收退货处理并记录退货原因和处理结果。
付款结算库存管理模块操作指南库存组织结构与策略制定库存组织结构建立01库存策略制定02库存参数设置03盘点计划制定定期或不定期地制定盘点计划,明确盘点范围、时间、人员等要素。
盘点数据录入与审核使用金蝶K3进行盘点数据录入,确保数据准确性,并进行审核确认。
初始化数据对帐一、供应链部分1、期初库存库存物料的金额要与总帐的存货科目金额相等。
如原材料、半成品、包装材料、库存商品等科目。
可以在总帐初始化中直接录入存货科目金额,也可以从仓存初始化中把录入的金额传递到总帐。
注意:期初总帐的存货中如果有已销售出库未开发票的,对帐时要减少这部分金额,最好将这部分数据转到分期收款发出商品的科目下。
库存初数据完成后,点对帐:会显示物料中维护的存货科目汇总数据。
点传递会将金额按物料的存货科目传到相应的总帐科目下。
2、销售出库未开发票●未开发票的销售出库单已经结转了营业成本的,销售方式为赊销,出库单中物料的成本和单价一一输入。
如果成本不容易给出,输入一个不为零的数字也可以。
注意:这样的结果是销售毛利润表不对。
或者当销售发票开据的时候直接在应收系统中做,不经过物流也可以。
●未开发票的销售出库单没有结转了营业成本的,销售方式为分期收款销售,出库单的物料成本单价一定要录入,且总金额要与总帐中的分期收款发出商品科目余额一致。
3、暂估入库单按供应商录入未开发票的物料明细,并录入数量、单价或金额,存货的成本均为不含税。
要求与应付帐款中的按供应商暂估的总金额一致。
4、未核销的委外加工出库单按加工商将委外发出没有加工完成入库的物料录入(即:存放在加工商处的材料),每个物料都要录入数量及成本。
并与总帐中委外加工物资金额一致。
5、暂估的委外加工入库单委外加工入库但没有收到加工发票的物料。
按加工商录入物料明细,填写数量、材料金额,如果暂估了加工费的也要录入金额,并要与总帐中应付暂估一致。
注意:有加工费时,要将税率改为0,且只录入不含税的加工费。
二、应收应付部分1、从总帐中录入数据传递到应收应付系统中。
在总帐中录入期初余额(应收、应付、预收、预付),传递到应收应付中。
以应收款为例:初始化—应收款管理—初始应收单据查询:在过滤界面选择要生成的单据类型科目按F7进行选择(选择从总帐下的哪个科目取数),单据类型用下拉键进行选择(生成什么样的应收单据),往来单位下拉键选择(科目下挂的核算项目)。
set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER PROCEDURE [dbo].[StockINIDataOn]ASSET NOCOUNT ONDECLARE @pPeriodTmp V ARCHAR(255)DECLARE @Period INT--当前会计期间DECLARE @Ptype V ARCHAR(255)DECLARE @CurYear INT--当前年份DECLARE @CalType INT--核算方式DECLARE @CurStartDate DA TETIMEDECLARE @CurEndDate DA TETIMEDECLARE @BillNo V ARCHAR(255)--单据号码DECLARE @AuditChoice INT---核算方式,--数量核算,--数量、金额核算--电子行业:序列号检查--检查SystemINISNDataOn存储过程的存在,存在则执行IF EXISTS(SELECT 1 FROM sysobjects WHERE name='SystemINISNDataOn') EXEC SystemINISNDataOn--电子行业:序列号检查SET @AuditChoice = 0SELECT @CurYear =CONVERT(INT, FValue)FROM t_SystemProfile WHERE FCategory ='IC'AND FKey ='CurrentYear'IF @CurYear =NULLBEGINRAISERROR('~$~系统参数: 《IC--CurrentYear》数据被破坏^|^!',16,1)RETURN 0ENDEXEC GetSysPrm 'IC','CurrentPeriod', @pPeriodTmp OUTPUT, @pType OUTPUTSELECT @Period =CONVERT(INT, @pPeriodTmp)SELECT @CalType =CONVERT(INT, Fvalue)FROM t_SystemProfile WHERE FCategory ='IC'AND FKey ='CalculateType'If @CalType =NullBEGINRAISERROR('~$~系统参数: 《IC--CalculateType 数据被破坏^|^!',16,1)RETURN 0ENDIF @CalType = 2BEGINIF EXISTS(SELECT 1FROM t_StockWHERE FTypeID IN(500, 20291, 20293)AND FStockGroupID = 0 ) BEGINRAISERROR('~$~系统检测到在分组核算模式下,还有实仓未分组^|^', 16, 1)RETURN 0ENDUPDATE t_Stock SET FGroupID = FStockGroupID WHERE FTypeID IN(500, 20291, 20293)ENDIF @CalType = 1BEGINUPDATE t_Stock SET FGroupID = FItemID WHERE FTypeID IN(500, 20291, 20293) ENDIF @CalType = 0BEGINUPDATE t_Stock SET FGroupID = 0 WHERE FTypeID IN(500, 20291, 20293) END--当前会计期间的起止日期EXEC GetPeriodStartEnd 0, @Period, @CurStartDate OUTPUT, @CurEndDate OUTPUTIF(SELECT COUNT(*)FROM(SELECT DISTINCT FPeriod FROM ICInvInitial)AS t1)= 1BEGINUPDATE ICInvInitial SET FPeriod = @PeriodUPDATE ICInvInitialAdj SET FPeriod = @PeriodENDELSE IF(SELECT COUNT(*)FROM(SELECT DISTINCT FPeriod FROM ICInvInitial) AS t1)> 1BEGINRAISERROR('~$~系统提示: 系统初始化表《ICInvInitial》含有多期数据,不符合启用条件^|^!', 16, 1)RETURN 0ENDSELECT @BillNo = FBillNoFROM ICStockBillWHERE(FCheckerID IS NULL OR FCheckerID = 0)AND FTranType = 28 AND FDate < @CurStartDateIF@@ROWCOUNT> 0BEGINSET @BillNo ='~$~系统提示: 委外加工出库单--^|^'+ @BillNo +'^|^~$~未审核,不符合启用条件^|^!'RAISERROR(@BillNo, 16, 1)RETURN 0ENDSELECT @BillNo = FBillNoFROM ICStockBillWHERE(FCheckerID IS NULL OR FCheckerID = 0)AND FTranType = 5 AND FDate < @CurStartDateIF@@ROWCOUNT> 0BEGINSET @BillNo ='~$~系统提示: 委外加工入库单--^|^'+ @BillNo +'^|^~$~未审核,不符合启用条件^|^!'RAISERROR(@BillNo, 16, 1)RETURN 0END--数量核算账套不检查金额SELECT@AuditChoice =FValue FROM t_SystemProfile WHERE FKey ='AuditChoice' AND FCategory ='IC'IF @AuditChoice = 1BEGINSELECT @BillNo = B.FBillNoFROM ICStockBill BINNER JOIN ICStockBillEntry E ON B.FInterID =E.FInterID AND B.FTranType = 28 AND E.FAmount = 0WHERE B.FDate < @CurStartDateIF@@ROWCOUNT> 0BEGINSET @BillNo ='~$~系统提示: 委外加工出库单--^|^'+ @BillNo +'^|^~$~中存在金额为的分录,不符合启用条件^|^!'RAISERROR(@BillNo, 16, 1)RETURN 0ENDSELECT @BillNo = B.FBillNoFROM ICStockBill BINNER JOIN ICStockBillEntry E ON B.FInterID =E.FInterID AND B.FTranType = 5AND(E.FMaterialCost =0 OR E.FMaterialCostPrice = 0)WHERE B.FDate < @CurStartDateIF@@ROWCOUNT> 0BEGINSET @BillNo ='~$~系统提示: 委外加工入库单--^|^'+ @BillNo +'^|^~$~中存在金额为的分录,不符合启用条件^|^!'RAISERROR(@BillNo, 16, 1)RETURN 0ENDEND--系统不允许负库存的时候,不允许出现负数IF EXISTS(SELECT top 1 1 FROM ICInvInitial tiINNER JOIN t_Stock ts ON ti.FStockID =ts.FItemID WHERE FBegQty <0 AND ts.FUnderStock=0)BEGINRAISERROR('~$~系统不允许负库存,但是期初结存已经录入负数,不符合启用条件^|^!',16,1)RETURN 0ENDTRUNCATE TABLE ICInvBalTRUNCATE TABLE ICBalTRUNCATE TABLE ICVMIInvBalCREATE TABLE #ICInvBalTemp(FStockID INT NOT NULL DEFAULT(0),FSPID INT NOT NULL DEFAULT(0),FItemID INT NOT NULL,FBatchNo V ARCHAR(200)NOT NULL DEFAULT(''),FMtoNo NV ARCHAR(50)NOT NULL DEFAULT(''),FBegQty DECIMAL(28, 10)DEFAULT(0),FReceive DECIMAL(28, 10)DEFAULT(0),FSend DECIMAL(28, 10)DEFAULT(0),FYtdReceive DECIMAL(28, 10)DEFAULT(0),FYtdSend DECIMAL(28, 10)DEFAULT(0),FEndQty DECIMAL(28, 10)DEFAULT(0),FBegBal DECIMAL(20,2)NOT NULL DEFAULT(0),FCredit DECIMAL(20,2)NOT NULL DEFAULT(0), FYtdDebit DECIMAL(20,2)NOT NULL DEFAULT(0), FYtdCredit DECIMAL(20,2)NOT NULL DEFAULT(0), FEndBal DECIMAL(20,2)NOT NULL DEFAULT(0), FBegDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FReceiveDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FSendDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FEndDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FBillInterID INT IDENTITY(1,1),FOldBillInterID INT NOT NULL DEFAULT(0),FEntryID INT NOT NULL DEFAULT(0),FYtdReceiveDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FYtdSendDiff DECIMAL(20,2)NOT NULL DEFAULT(0), FSecBegQty DECIMAL(28, 10)NOT NULL DEFAULT(0), FSecReceive DECIMAL(28, 10)NOT NULL DEFAULT(0), FSecSend DECIMAL(28, 10)NOT NULL DEFAULT(0), FSecYtdReceive DECIMAL(28, 10)NOT NULL DEFAULT(0), FSecYtdSend DECIMAL(28, 10)NOT NULL DEFAULT(0), FSecEndQty DECIMAL(28, 10)NOT NULL DEFAULT(0), FStockInDate V ARCHAR(20)NOT NULL DEFAULT(''),FAuxPropID INT NOT NULL DEFAULT(0),FKFDate V ARCHAR(20)NOT NULL DEFAULT(''),FKFPeriod INT NOT NULL DEFAULT(0),FAuxUnitBegQty DECIMAL(28, 10)NOT NULL DEFAULT(0), FYtdAuxUnitSend DECIMAL(28, 10)NOT NULL DEFAULT(0), FYtdAuxUnitReceive DECIMAL(28, 10)NOT NULL DEFAULT(0), FSupplyID INT NOT NULL DEFAULT(0))CREATE TABLE #ICVMIInvBalTemp(FStockID INT NOT NULL DEFAULT(0),FSPID INT NOT NULL DEFAULT(0),FItemID INT NOT NULL,FBatchNo V ARCHAR(200)NOT NULL DEFAULT(''), FMtoNo NV ARCHAR(50)NOT NULL DEFAULT(''), FBegQty DECIMAL(28, 10)DEFAULT(0),FReceive DECIMAL(28, 10)DEFAULT(0),FSend DECIMAL(28, 10)DEFAULT(0),FYtdReceive DECIMAL(28, 10)DEFAULT(0),FYtdSend DECIMAL(28, 10)DEFAULT(0),FEndQty DECIMAL(28, 10)DEFAULT(0),FBegBal DECIMAL(20,2)NOT NULL DEFAULT(0),FCredit DECIMAL(20,2)NOT NULL DEFAULT(0),FYtdDebit DECIMAL(20,2)NOT NULL DEFAULT(0),FYtdCredit DECIMAL(20,2)NOT NULL DEFAULT(0),FEndBal DECIMAL(20,2)NOT NULL DEFAULT(0),FBegDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FReceiveDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FSendDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FEndDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FBillInterID INT IDENTITY(1,1),FOldBillInterID INT NOT NULL DEFAULT(0),FEntryID INT NOT NULL DEFAULT(0),FYtdReceiveDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FYtdSendDiff DECIMAL(20,2)NOT NULL DEFAULT(0),FSecBegQty DECIMAL(28, 10)NOT NULL DEFAULT(0),FSecReceive DECIMAL(28, 10)NOT NULL DEFAULT(0),FSecSend DECIMAL(28, 10)NOT NULL DEFAULT(0),FSecYtdReceive DECIMAL(28, 10)NOT NULL DEFAULT(0),FSecYtdSend DECIMAL(28, 10)NOT NULL DEFAULT(0),FSecEndQty DECIMAL(28, 10)NOT NULL DEFAULT(0),FStockInDate V ARCHAR(20)NOT NULL DEFAULT(''),FAuxPropID INT NOT NULL DEFAULT(0),FKFDate V ARCHAR(20)NOT NULL DEFAULT(''),FKFPeriod INT NOT NULL DEFAULT(0),FAuxUnitBegQty DECIMAL(28, 10)NOT NULL DEFAULT(0),FYtdAuxUnitSend DECIMAL(28, 10)NOT NULL DEFAULT(0),FYtdAuxUnitReceive DECIMAL(28, 10)NOT NULL DEFAULT(0),FSupplyID INT NOT NULL DEFAULT(0))--普通仓ICInvInitial数据结转入临时表--非后进先出和先进先出按批号+入库日期排序重新分配顺序号INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive) SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff,a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceiveFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,SUM(t1.FAuxUnitBegQty)As FAuxUnitBegQty,SUM(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,SUM(t1.FYtdAuxUnitReceive)As FYtdAuxUnitReceiveFROM ICInvInitial t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack<>79 And t3.FTrack<>78 AND t4.FTypeID <> 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod) aORDER BY a.FStockID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FStockInDate,a.FAuxPropID,a.FInterID,a.FSPID, a.FKFDate,a.FKFPeriod--普通仓ICInvInitial数据结转入临时表--先进先出法按入库日期正排INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive)SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff,a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceiveFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,Sum(t1.FAuxUnitBegQty)As FAuxUnitBegQty,Sum(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,Sum(t1.FYtdAuxUnitReceive) As FYtdAuxUnitReceiveFROM ICInvInitial t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack= 78 AND t4.FTypeID <> 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod) aORDER BY a.FStockID,a.FItemID,a.FStockInDate ,a.FBatchNo,a.FMtoNo,a.FAuxPropID,a.FInterID,a.FSPID ,a.FKFDate,a.FKFPeriod--普通仓ICInvInitial数据结转入临时表--后进先出法按入库日期倒排INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive)SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff, a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceiveFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,Sum(t1.FAuxUnitBegQty)As FAuxUnitBegQty,Sum(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,Sum(t1.FYtdAuxUnitReceive)As FYtdAuxUnitReceiveFROM ICInvInitial t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack= 79 AND t4.FTypeID <> 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod) aORDER BY a.FStockID,a.FItemID,a.FStockInDate DESC,a.FBatchNo,a.FMtoNo,a.FAuxPropID,a.FInterID,a.FSPID,a.FKFDate,a.FKFPeriod --VMI仓结算余额来自ICInvInitialAdj--非后进先出和先进先出按批号+入库日期排序重新分配顺序号INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID) SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff, a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,SUM(t1.FAuxUnitBegQty)As FAuxUnitBegQty,SUM(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,SUM(t1.FYtdAuxUnitReceive)As FYtdAuxUnitReceive,t1.FSupplyIDFROM ICInvInitialAdj t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack<>79 And t3.FTrack<>78 AND t4.FTypeID = 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod,t1.FSupplyID) aORDER BY a.FStockID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FStockInDate,a.FAuxPropID,a.FInterID,a.FSPID, a.FKFDate,a.FKFPeriod,a.FSupplyID--VMI仓结算余额来自ICInvInitialAdj--先进先出法按入库日期正排INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID)SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff, a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,Sum(t1.FAuxUnitBegQty)As FAuxUnitBegQty,Sum(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,Sum(t1.FYtdAuxUnitReceive) As FYtdAuxUnitReceive,t1.FSupplyIDFROM ICInvInitialAdj t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack= 78 AND t4.FTypeID = 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod,t1.FSupplyID) aORDER BY a.FStockID,a.FItemID,a.FStockInDate ,a.FBatchNo,a.FMtoNo,a.FAuxPropID,a.FInterID,a.FSPID ,a.FKFDate,a.FKFPeriod,a.FSupplyID--VMI仓结算余额来自ICInvInitialAdj--后进先出法按入库日期倒排INSERT INTO #ICInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID) SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff, a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,Sum(t1.FAuxUnitBegQty)As FAuxUnitBegQty,Sum(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,Sum(t1.FYtdAuxUnitReceive)As FYtdAuxUnitReceive,t1.FSupplyIDFROM ICInvInitialAdj t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack= 79 AND t4.FTypeID = 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod,t1.FSupplyID) aORDER BY a.FStockID,a.FItemID,a.FStockInDateDESC,a.FBatchNo,a.FMtoNo,a.FAuxPropID,a.FInterID,a.FSPID,a.FKFDate,a.FKFPeriod,a.FSu pplyID--临时表结算余额结转进入ICInvBalINSERT INTO ICInvBal(FBrNo,FYear,FPeriod,FStockID,FStockPlaceID,FItemID, FBatchNo,FMtoNo,FBegQty, FReceive, FSend, FYtdReceive, FYtdSend, FEndQty,FBegBal, FDebit, FCredit, FYtdDebit, FYtdCredit, FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff, FYtdSendDiff,FKFDate,FKFPeriod,FAuxPropID,FSecBegQty,FSecYtdSend, FSecYtdReceive,FStockInDate,FBillInterID,FSupplyID)SELECT'0', @CurYear, @Period, FStockID, FSPID, FItemID, FBatchNo, FMtoNo,FBegQty, FReceive, FSend, FYtdReceive, FYtdSend, FEndQty,FBegBal, FDebit, FCredit, FYtdDebit, FYtdCredit, FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff, FYtdSendDiff,FKFDate,FKFPeriod,FAuxPropID,FAuxUnitBegQty, FYtdAuxUnitSend, FYtdAuxUnitReceive,FStockInDate,FBillInterID,FSupplyIDFROM #ICInvBalTempUPDATE t1 SET FBillInterID=0 FROM icinvbal t1 inner join t_icitem t2 on t1.FItemID=t2.FItemID where t2.FTrack not in(78,79,20308)--从ICinvBal导数据到ICBal,不用包含VMI仓数据INSERT INTO ICBal(FBrNo,FYear,FPeriod,FItemID,FBatchNo,FStockGroupID, FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FBillInterID,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate) SELECT'0',@CurYear,@Period,t1.FItemID,t1.FBatchNo,t2.FGroupID,SUM(FBegQty),SUM(FReceive),SUM(FSend),SUM(FYtdReceive),SUM(FYtdSend),SUM(FEnd Qty),SUM(FBegBal),SUM(FDebit),SUM(FCredit),SUM(FYtdDebit),SUM(FYtdCredit),SUM(FEndBa l),SUM(FBegDiff),SUM(FReceiveDiff),SUM(FSendDiff),SUM(FYtdReceiveDiff),SUM(FYtdSend Diff),t1.FBillInterID,t1.FAuxPropID,SUM(FSecBegQty),SUM(FSecYtdSend),SUM(FSecYtdReceive), t1.FStockInDateFROM ICInvBal t1 INNER JOIN t_Stock t2 ON t1.FStockID=t2.FItemIDWHERE t2.FTypeID <> 504GROUP BY t2.FGroupID,t1.FItemID,t1.FBatchNo,t1.FAuxPropID,t1.FStockInDate,t1.FBillInterID--VMI仓库存余额--非后进先出和先进先出按批号+入库日期排序重新分配顺序号INSERT INTO #ICVMIInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID) SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff,a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)As FSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,SUM(t1.FAuxUnitBegQty)As FAuxUnitBegQty,SUM(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,SUM(t1.FYtdAuxUnitReceive)As FYtdAuxUnitReceive,t1.FSupplyIDFROM ICInvInitial t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemIDINNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack<>79 And t3.FTrack<>78 AND t4.FTypeID = 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod,t1.FSupplyID) aORDER BY a.FStockID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FStockInDate,a.FAuxPropID,a.FInterID,a.FSPID, a.FKFDate,a.FKFPeriod,a.FSupplyID--普通仓ICInvInitial数据结转入临时表--先进先出法按入库日期正排INSERT INTO #ICVMIInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID)SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff, a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As FReceiveDiff,Sum(t1.FSendDiff)As FSendDiff,Sum(t1.FYtdReceiveDiff)As FYtdReceiveDiff,Sum(t1.FYtdSendDiff)As FYtdSendDiff, FAuxPropID,Sum(FAuxUnitBegQty)As FSecBegQty,t1.FBillInterID As FInterID,Sum(FYtdAuxUnitSend)AsFSecYtdSend,Sum(FYtdAuxUnitReceive)As FSecYtdReceive,FStockInDate,t1.FKFDate,t1.FKFPeriod,Sum(t1.FAuxUnitBegQty)As FAuxUnitBegQty,Sum(t1.FYtdAuxUnitSend)As FYtdAuxUnitSend,Sum(t1.FYtdAuxUnitReceive) As FYtdAuxUnitReceive,t1.FSupplyIDFROM ICInvInitial t1 INNER JOIN t_icitem t3 ON t1.FItemID=t3.FItemID INNER JOIN t_Stock t4 ON t1.FStockID=t4.FItemIDWHERE t1.FPeriod=@Period And t3.FTrack= 78 AND t4.FTypeID = 504GROUP BY t1.FStockID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,FAuxPropID,FStockInDate,t1.FBillInterID,t1.F SPID,t1.FKFDate,t1.FKFPeriod,t1.FSupplyID) aORDER BY a.FStockID,a.FItemID,a.FStockInDate ,a.FBatchNo,a.FMtoNo,a.FAuxPropID,a.FInterID,a.FSPID ,a.FKFDate,a.FKFPeriod,a.FSupplyID--普通仓ICInvInitial数据结转入临时表--后进先出法按入库日期倒排INSERT INTO #ICVMIInvBalTemp(FStockID,FSPID,FItemID,FBatchNo,FMtoNo,FOldBillInterID,FBegQty,FReceive,FSend,FYtdReceive,FYtdSend,FEndQty,FBegBal,FDebit,FCredit,FYtdDebit,FYtdCredit,FEndBal,FBegDiff,FReceiveDiff,FSendDiff,FYtdReceiveDiff,FYtdSendDiff,FAuxPropID,FSecBegQty,FSecYtdSend,FSecYtdReceive,FStockInDate,FKFDate,FKFPeriod,FAuxUnitBegQty,FYtdAuxUnitSend,FYtdAuxUnitReceive,FSupplyID) SELECT a.FStockID, a.FSPID,a.FItemID,a.FBatchNo,a.FMtoNo,a.FInterID,a.FBegQty,a.FReceive,a.FSend,a.FYtdReceive,a.FYtdSend,a.FEndQty,a.FBegBal,a.FDebit,a.FCredit,a.FYtdDebit,a.FYtdCredit,a.FEndBal,a.FBegDiff,a.FReceiveDiff,a.FSendDiff,a.FYtdReceiveDiff,a.FYtdSendDiff,a.FAuxPropID,a.FSecBegQty,a.FSecYtdSend,a.FSecYtdReceive,a.FStockInDate,a.FKFDate,a.FKFPeriod,a.FAuxUnitBegQty,a.FYtdAuxUnitSend,a.FYtdAuxUnitReceive,a.FSup plyIDFROM(SELECT t1.FStockID, t1.FSPID,t1.FItemID,t1.FBatchNo,t1.FMtoNo,Sum(t1.FBegQty)AS FBegQty,Sum(t1.FReceive)As Freceive ,Sum(t1.FSend)As FSend,Sum(t1.FYtdReceive)As FYtdReceive,Sum(t1.FYtdSend)As FYtdSend,Sum(t1.FEndQty)As FEndQty,Sum(t1.FBegBal)As FBegBal,Sum(t1.Fdebit)As Fdebit,Sum(t1.Fcredit)As Fcredit,Sum(t1.FYtdDebit)As FYtdDebit,Sum(t1.FYtdCredit)As FYtdCredit,Sum(t1.FEndBal)As FEndBal,Sum(t1.FBegDiff)As FBegDiff,Sum(t1.FReceiveDiff)As。