明永成

导航

 

USE [MedicineMis_STD]
GO
/****** Object:  User [FoodMisLogin]    Script Date: 03/02/2011 16:53:42 ******/
CREATE USER [FoodMisLogin] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
/****** Object:  User [FoodMisAuth]    Script Date: 03/02/2011 16:53:42 ******/
CREATE USER [FoodMisAuth] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
/****** Object:  Table [dbo].[WorkScope]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[WorkScope](
    [WorkScopeId] [tinyint] NOT NULL,
    [WorkScopeName] [varchar](20) NOT NULL,
    [Remark] [varchar](100) NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
CONSTRAINT [PK_WorkScope] PRIMARY KEY CLUSTERED
(
    [WorkScopeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营范围' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WorkScope', @level2type=N'COLUMN',@level2name=N'WorkScopeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WorkScope', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
/****** Object:  Table [dbo].[WebFunctionRole]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WebFunctionRole](
    [RoleId] [int] NULL,
    [WebFunctionId] [int] NULL,
    [ExFunction1Checked] [int] NULL,
    [ExFunction2Checked] [int] NULL,
    [ExFunction3Checked] [int] NULL,
    [ExFunction4Checked] [int] NULL,
    [ExFunction5Checked] [int] NULL,
    [ExFunction6Checked] [int] NULL,
    [ExFunction7Checked] [int] NULL,
    [ExFunction8Checked] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WebFunctionBack]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WebFunctionBack](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ParentId] [int] NULL,
    [Path] [nvarchar](500) NULL,
    [Description] [nvarchar](500) NULL,
    [ExFunction1] [nvarchar](50) NULL,
    [ExFunction2] [nvarchar](50) NULL,
    [ExFunction3] [nvarchar](50) NULL,
    [ExFunction4] [nvarchar](50) NULL,
    [ExFunction5] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WebFunction]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WebFunction](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ApplicationId] [int] NULL,
    [ParentId] [int] NULL,
    [Path] [nvarchar](500) NULL,
    [Description] [nvarchar](500) NULL,
    [ExFunction1] [nvarchar](50) NULL,
    [ExFunction1Action] [nvarchar](50) NULL,
    [ExFunction2] [nvarchar](50) NULL,
    [ExFunction2Action] [nvarchar](50) NULL,
    [ExFunction3] [nvarchar](50) NULL,
    [ExFunction3Action] [nvarchar](50) NULL,
    [ExFunction4] [nvarchar](50) NULL,
    [EXFunction4Action] [nvarchar](50) NULL,
    [ExFunction5] [nvarchar](50) NULL,
    [ExFunction5Action] [nvarchar](50) NULL,
    [ExFunction6] [nvarchar](50) NULL,
    [ExFunction6Action] [nvarchar](50) NULL,
    [ExFunction7] [nvarchar](50) NULL,
    [ExFunction7Action] [nvarchar](50) NULL,
    [ExFunction8] [nvarchar](50) NULL,
    [ExFunction8Action] [nvarchar](50) NULL,
CONSTRAINT [PK_WebFunction] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PostFunc]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PostFunc](
    [PostId] [int] NOT NULL,
    [FunctionId] [int] NOT NULL,
    [Tag] [bit] NULL,
CONSTRAINT [PK_PostFunc] PRIMARY KEY CLUSTERED
(
    [PostId] ASC,
    [FunctionId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Post]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Post](
    [PostId] [int] NOT NULL,
    [PostName] [varchar](20) NOT NULL,
    [Remark] [varchar](50) NULL,
    [IsSelected] [bit] NULL,
CONSTRAINT [PK_Post] PRIMARY KEY CLUSTERED
(
    [PostId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[NewStock]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[NewStock](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [TaxPrice] [char](10) NULL,
    [Amount] [decimal](18, 4) NULL,
    [TaxRate] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [SumTaxMoney] [decimal](18, 4) NULL,
    [ProductDate] [smalldatetime] NULL,
    [ValidateDate] [smalldatetime] NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](200) NULL,
    [TXM] [varchar](50) NULL,
    [CustomCode] [varchar](50) NULL,
    [IsChinese] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [Medicare] [tinyint] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
CONSTRAINT [PK_NewStock] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是不是中药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'IsChinese'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'NewStock', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
/****** Object:  Table [dbo].[KyylqxEvent]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[KyylqxEvent](
    [EmbranchmentId] [smallint] NOT NULL,
    [KyylqxUserId] [int] NOT NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [EmbranchmentPhone] [varchar](50) NULL,
    [BGDate] [datetime] NULL,
    [Bm] [varchar](50) NULL,
    [Bgly] [varchar](50) NULL,
    [EmbranchmentAddress] [varchar](50) NULL,
    [EmbranchmentZip] [varchar](10) NULL,
    [UserName] [varchar](50) NULL,
    [UserAge] [varchar](50) NULL,
    [UserSex] [varchar](2) NULL,
    [Yqzljbzy] [varchar](50) NULL,
    [EventBx] [varchar](50) NULL,
    [EventTime] [datetime] NULL,
    [Ylqxsjsycs] [varchar](50) NULL,
    [EventHg] [varchar](50) NULL,
    [SwDate] [datetime] NULL,
    [EventCx] [varchar](50) NULL,
    [YlqxflName] [varchar](50) NULL,
    [ShangPinName] [varchar](50) NULL,
    [ZheCeZhengCode] [varchar](50) NULL,
    [ScqyName] [varchar](50) NULL,
    [ScqyAddress] [varchar](50) NULL,
    [ScqyPhone] [varchar](50) NULL,
    [XhGuige] [varchar](50) NULL,
    [ProductCode] [varchar](50) NULL,
    [ProductBatch] [varchar](50) NULL,
    [Createor] [varchar](50) NULL,
    [Yxqz] [datetime] NULL,
    [TyDate] [datetime] NULL,
    [ZrDate] [datetime] NULL,
    [EventYyfx] [varchar](50) NULL,
    [EventClqk] [varchar](50) NULL,
    [EventReportState] [varchar](50) NULL,
    [Sjjcjgyjcx] [varchar](50) NULL,
    [Gjjcjgyjcx] [varchar](50) NULL,
    [Bgr] [varchar](50) NULL,
    [BgrQm] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [Deleted] [bit] NULL,
CONSTRAINT [PK_KyylqxEvent] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [KyylqxUserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售店Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'可疑医疗器械不良事件Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'KyylqxUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EmbranchmentPhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'BGDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Bm'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告来源' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Bgly'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EmbranchmentAddress'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮编' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EmbranchmentZip'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'患者姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'UserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'UserAge'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'UserSex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'预期治疗疾病或作用' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Yqzljbzy'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件表现' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventBx'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件发生时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医疗器械实际使用场所' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Ylqxsjsycs'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件后果' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventHg'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件陈述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventCx'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医疗器械分类名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'YlqxflName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ShangPinName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注册证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ZheCeZhengCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ScqyName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产企业地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ScqyAddress'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业联系电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ScqyPhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'型号规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'XhGuige'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ProductCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ProductBatch'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Createor'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Yxqz'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'停用日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'TyDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'植入日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'ZrDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件发生原因分析' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventYyfx'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件处理情况' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventClqk'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'事件报告状态' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'EventReportState'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'省级监测机构意见陈述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Sjjcjgyjcx'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国家监测机构意见陈述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Gjjcjgyjcx'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'Bgr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告人签名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'BgrQm'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数据版本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'KyylqxEvent', @level2type=N'COLUMN',@level2name=N'DataVersion'
GO
/****** Object:  Table [dbo].[IPAccess]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[IPAccess](
    [ID] [int] NOT NULL,
    [EnableIP] [varchar](8000) NULL,
    [DisableIP] [varchar](8000) NULL,
    [Remark] [varchar](600) NULL,
    [ExceptUser] [varchar](1000) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[User]    Script Date: 03/02/2011 16:53:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[User](
    [UserId] [int] NOT NULL,
    [UserName] [varchar](20) NOT NULL,
    [Password] [varchar](20) NULL,
    [Name] [varchar](20) NULL,
    [Email] [varchar](30) NULL,
    [Phone] [varchar](30) NULL,
    [MobilePhone] [varchar](30) NULL,
    [UserType] [int] NULL,
    [FactId] [int] NULL,
    [Enabled] [bit] NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
(
    [UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  StoredProcedure [dbo].[UpFieldData]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpFieldData](@ColumnName varchar(50),@ColumnValue varchar(25)) AS
declare @sql varchar(300)
declare @TableName varchar(50)
declare upTableCursor cursor for select b.name as TableName from syscolumns a inner join sysobjects b
on a.id=b.id and a.name=@ColumnName
open upTableCursor
fetch next from upTableCursor into @TableName
while(@@fetch_status=0)
begin
set @sql='update '+@TableName+' set '+@ColumnName+'='+@ColumnValue
exec(@sql)
print '表名:'+@TableName+' ,列名: '+@ColumnName
fetch next from upTableCursor into @TableName
end
close upTableCursor
deallocate upTableCursor
GO
/****** Object:  Table [dbo].[Sequences]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sequences](
    [Sequence_Name] [varchar](30) NOT NULL,
    [Sequence_NextId] [int] NOT NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_Sequences] PRIMARY KEY CLUSTERED
(
    [Sequence_Name] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Role]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Role](
    [Id] [int] NOT NULL,
    [Name] [varchar](255) NOT NULL,
    [LoweredName] [varchar](255) NOT NULL,
    [Description] [varchar](255) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Reports]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Reports](
    [ReportId] [int] NOT NULL,
    [ViewName] [varchar](50) NULL,
    [ReportData] [image] NULL,
    [ReportName] [varchar](150) NULL,
    [IsSystem] [bit] NULL,
    [IsDefault] [bit] NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_Reports] PRIMARY KEY CLUSTERED
(
    [ReportId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Report]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Report](
    [ReportId] [int] NOT NULL,
    [ViewName] [varchar](50) NULL,
    [ReportData] [image] NULL,
    [ReportName] [varchar](150) NULL,
    [IsSystem] [bit] NULL,
    [IsDefault] [bit] NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_Report] PRIMARY KEY CLUSTERED
(
    [ReportId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否默认格式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Report', @level2type=N'COLUMN',@level2name=N'IsDefault'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Report', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[QsProject]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[QsProject](
    [QsProjectId] [int] NOT NULL,
    [IsQueryStock] [bit] NULL,
    [QryBeginTime] [datetime] NULL,
    [QryEndTime] [datetime] NULL,
    [ExeBidTime] [datetime] NULL,
    [Name] [varchar](40) NULL,
CONSTRAINT [PK_QsProject] PRIMARY KEY CLUSTERED
(
    [QsProjectId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[QsPackageDetail]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[QsPackageDetail](
    [QsPackageDetailId] [int] NOT NULL,
    [PackageId] [int] NULL,
    [Amount] [numeric](18, 4) NULL,
    [Brand] [varchar](20) NULL,
    [GoodName] [varchar](40) NULL,
    [Model] [varchar](4000) NULL,
    [PledgePeriod] [varchar](50) NULL,
    [ProvidePeriod] [varchar](50) NULL,
    [Unit] [varchar](50) NULL,
    [Remark] [varchar](4000) NULL,
CONSTRAINT [PK_QsDetail] PRIMARY KEY CLUSTERED
(
    [QsPackageDetailId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[QsPackage]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[QsPackage](
    [QsPackageId] [int] NOT NULL,
    [BiBankRoll] [numeric](18, 4) NULL,
    [BidKind] [varchar](40) NULL,
    [BoBankRoll] [numeric](18, 4) NULL,
    [BudgetAmount] [numeric](18, 4) NULL,
    [Packgeno] [varchar](20) NULL,
    [ProjectId] [int] NULL,
    [SBankRoll] [numeric](18, 4) NULL,
    [StockPlanNo] [varchar](20) NULL,
    [State] [varchar](50) NULL,
    [QuotePriceId] [int] NULL,
    [OpenerId] [int] NULL,
    [OpenerId2] [int] NULL,
    [OpenerId3] [int] NULL,
    [BidAmount] [numeric](18, 0) NULL,
CONSTRAINT [PK_QsPackage] PRIMARY KEY CLUSTERED
(
    [QsPackageId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[ProviderPower]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ProviderPower](
    [ProviderId] [smallint] NOT NULL,
    [CatalogId] [int] NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](100) NULL,
    [ShortName] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [DataVersion] [bigint] NULL,
    [Deleted] [bit] NULL,
    [ProviderType] [varchar](50) NULL,
CONSTRAINT [PK_ProviderPower] PRIMARY KEY CLUSTERED
(
    [ProviderId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Provider]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Provider](
    [ProviderId] [smallint] NOT NULL,
    [CatalogId] [int] NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](100) NULL,
    [ShortName] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [DataVersion] [bigint] NULL,
    [Deleted] [bit] NULL,
    [ProviderType] [varchar](50) NULL,
CONSTRAINT [PK_Provider] PRIMARY KEY CLUSTERED
(
    [ProviderId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供应商是药品生产、经营企业、药品生产和经营企业、其它' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Provider', @level2type=N'COLUMN',@level2name=N'ProviderType'
GO
/****** Object:  Table [dbo].[Goods]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Goods](
    [Id] [nvarchar](50) NULL,
    [Name] [nvarchar](50) NULL,
    [Detail] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GoodRelation]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GoodRelation](
    [Id] [int] NULL,
    [ParentId] [int] NULL,
    [Level] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  StoredProcedure [dbo].[GetXml]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetXml] (
@ParameterSQL AS nvarchar(Max)
)
AS
BEGIN
 
DECLARE @SQL NVARCHAR(MAX)
DECLARE @XMLString VARCHAR(MAX)
DECLARE @XML XML
DECLARE @Paramlist NVARCHAR(1000)
SET @Paramlist = N'@XML XML OUTPUT'
SET @SQL = 'WITH PrepareTable (XMLString) '
SET @SQL = @SQL + 'AS ( '
SET @SQL = @SQL + @ParameterSQL+ ' FOR XML RAW, TYPE, ELEMENTS '
SET @SQL = @SQL + ') '
SET @SQL = @SQL + 'SELECT @XML = XMLString FROM PrepareTable '
EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUT
SET @XMLString = CAST(@XML AS VARCHAR(MAX))
SELECT @XMLString
 
END
GO
/****** Object:  Table [dbo].[Manufacturer]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Manufacturer](
    [ManufacturerId] [int] NOT NULL,
CONSTRAINT [PK_Manufacturer] PRIMARY KEY CLUSTERED
(
    [ManufacturerId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LoginOutInfo]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LoginOutInfo](
    [LoginId] [int] NOT NULL,
    [LoginOutDate] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LoginInfo]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LoginInfo](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ApplicationId] [int] NULL,
    [ApplicationName] [nvarchar](50) NULL,
    [UserId] [int] NULL,
    [UserName] [nvarchar](50) NULL,
    [LoginDate] [datetime] NULL,
    [LoginState] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[InoutStockTableCard]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[InoutStockTableCard](
    [Guid] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    [EmbranchmentId] [smallint] NULL,
    [StockId] [tinyint] NULL,
    [BillType] [tinyint] NULL,
    [BillId] [int] NULL,
    [BillCode] [varchar](50) NULL,
    [BusinessDate] [smalldatetime] NULL,
    [AuditDate] [smalldatetime] NULL,
    [RowNum] [tinyint] NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NULL,
    [PreCostPrice] [decimal](18, 4) NULL,
    [PreSalePrice] [decimal](18, 4) NULL,
    [PreBatchSalePrice] [decimal](18, 4) NULL,
    [ChangePrice] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [OriginalAmount] [decimal](18, 4) NULL,
    [PreAmount] [decimal](18, 4) NULL,
    [ChangeAmount] [decimal](18, 4) NULL,
    [InAmount] [decimal](18, 4) NULL,
    [OutAmount] [decimal](18, 4) NULL,
    [CurAmount] [decimal](18, 4) NULL,
    [PreCostSumMoney] [decimal](18, 4) NULL,
    [PreSaleSumMoney] [decimal](18, 4) NULL,
    [PreBatchSaleSumMoney] [decimal](18, 4) NULL,
    [ChangeSumMoney] [decimal](18, 4) NULL,
    [CurCostPrice] [decimal](18, 4) NULL,
    [CurSalePrice] [decimal](18, 4) NULL,
    [CurBatchSalePrice] [decimal](18, 4) NULL,
    [CurCostSumMoney] [decimal](18, 4) NULL,
    [CurSaleSumMoney] [decimal](18, 4) NULL,
    [CurBatchSaleSumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [IsAmountChanged] [bit] NULL,
    [IsMoneyChanged] [bit] NULL,
    [ProviderId] [int] NULL,
    [CustomerId] [int] NULL,
    [InStockId] [int] NULL,
    [OutStockId] [int] NULL,
    [DataVersion] [bigint] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [StockName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [ProviderName] [varchar](50) NULL,
    [CustomerName] [varchar](50) NULL,
    [InStockName] [varchar](50) NULL,
    [OutStockName] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [EntireDisCount] [decimal](6, 3) NULL,
    [MonthReckoningID] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [IsZY] [smallint] NULL,
    [PayType] [tinyint] NULL,
    [CardCode] [varchar](50) NULL,
    [Medicare] [tinyint] NULL,
    [PayCard] [decimal](18, 4) NULL,
    [PackingId] [int] NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [IsMedicare] [int] NULL,
    [MedicareFlag1] [varchar](50) NULL,
    [MedicareFlag2] [varchar](50) NULL,
    [MedicareFlag3] [varchar](50) NULL,
    [MedicareFlag4] [varchar](50) NULL,
    [MedicareFlag5Date] [datetime] NULL,
    [PayCardMoneyAfter] [decimal](18, 4) NULL,
    [PayCardMoneyBefore] [decimal](18, 4) NULL,
    [PayCardNO] [varchar](100) NULL,
    [PayKYB] [decimal](18, 4) NULL,
    [PaySYB] [decimal](18, 4) NULL,
    [PayYB] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [CostMemberPrice] [decimal](18, 4) NULL,
    [PreMemberPrice] [decimal](18, 4) NULL,
    [CurMemberPrice] [decimal](18, 4) NULL,
    [SumPayCard] [decimal](18, 4) NULL,
    [SumReturnPayCard] [decimal](18, 4) NULL,
    [Deleted] [bit] NULL,
    [CardDataVersion] [bigint] NULL,
    [IsLottery] [bit] NULL,
    [CompanyId] [smallint] NULL,
    [CFF] [decimal](18, 4) NULL,
CONSTRAINT [PK_InoutStockTableCard] PRIMARY KEY CLUSTERED
(
    [Guid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'StockId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'BillType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'BillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'AuditDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'行号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'RowNum'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前的成本价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreCostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前的零售价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreSalePrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前的批发价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreBatchSalePrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'引起数量变化的单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ChangePrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'引起数量变化的折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'期初库存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'OriginalAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ChangeAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库变化数量(批次跟踪时用)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'InAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出库变化数量(批次跟踪时用)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'OutAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CurAmount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前零售合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreSaleSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'变化前批发合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PreBatchSaleSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ChangeSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前成本合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CurCostSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前零售价合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CurSaleSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前批发价合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CurBatchSaleSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'IsAmountChanged'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'IsMoneyChanged'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'通用名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CommodityName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'Spec'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'剂型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'DoseTypeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产厂商' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ProducingArea'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'Unit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批准文号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'AuthorizeCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'月结' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'MonthReckoningID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'判断是否中药 "1"是中药"0"是西药"2"是POS' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'IsZY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'付款类型(0-现金;1-会员卡;2-现金+会员卡)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡消费' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayCard'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否已兑现医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'IsMedicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'勾兑单据ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'MedicareFlag1'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'勾兑人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'MedicareFlag2'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'勾兑人Name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'MedicareFlag3'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'勾兑时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'MedicareFlag5Date'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡交易后余额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayCardMoneyAfter'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡交易前余额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayCardMoneyBefore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'交易卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayCardNO'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'矿医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayKYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PaySYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'矿医保+市医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款(现金)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'PayMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'找零(现金)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'InoutStockTableCard', @level2type=N'COLUMN',@level2name=N'ReturnMoney'
GO
/****** Object:  Table [dbo].[InoutStockTable]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[InoutStockTable](
    [Guid] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    [EmbranchmentId] [smallint] NULL,
    [StockId] [tinyint] NULL,
    [BillType] [tinyint] NULL,
    [BillId] [int] NULL,
    [BillCode] [varchar](50) NULL,
    [BusinessDate] [smalldatetime] NULL,
    [AuditDate] [smalldatetime] NULL,
    [RowNum] [tinyint] NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NULL,
    [PreCostPrice] [decimal](18, 4) NOT NULL,
    [PreSalePrice] [decimal](18, 4) NULL,
    [PreBatchSalePrice] [decimal](18, 4) NULL,
    [ChangePrice] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [OriginalAmount] [decimal](18, 4) NULL,
    [PreAmount] [decimal](18, 4) NULL,
    [ChangeAmount] [decimal](18, 4) NULL,
    [InAmount] [decimal](18, 4) NULL,
    [OutAmount] [decimal](18, 4) NULL,
    [CurAmount] [decimal](18, 4) NULL,
    [PreCostSumMoney] [decimal](18, 4) NULL,
    [PreSaleSumMoney] [decimal](18, 4) NULL,
    [PreBatchSaleSumMoney] [decimal](18, 4) NULL,
    [ChangeSumMoney] [decimal](18, 4) NULL,
    [CurCostPrice] [decimal](18, 4) NULL,
    [CurSalePrice] [decimal](18, 4) NULL,
    [CurBatchSalePrice] [decimal](18, 4) NULL,
    [CurCostSumMoney] [decimal](18, 4) NULL,
    [CurSaleSumMoney] [decimal](18, 4) NULL,
    [CurBatchSaleSumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [IsAmountChanged] [bit] NULL,
    [IsMoneyChanged] [bit] NULL,
    [ProviderId] [int] NULL,
    [CustomerId] [int] NULL,
    [InStockId] [int] NULL,
    [OutStockId] [int] NULL,
    [DataVersion] [bigint] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [StockName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [ProviderName] [varchar](50) NULL,
    [CustomerName] [varchar](50) NULL,
    [InStockName] [varchar](50) NULL,
    [OutStockName] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [EntireDisCount] [decimal](6, 3) NULL,
    [MonthReckoningID] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [IsZY] [smallint] NULL,
    [PayType] [tinyint] NULL,
    [CardId] [int] NULL,
    [CardCode] [varchar](50) NULL,
    [Medicare] [tinyint] NULL,
    [PayCard] [decimal](18, 4) NULL,
    [PackingId] [int] NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [IsMedicare] [int] NULL,
    [MedicareFlag1] [varchar](50) NULL,
    [MedicareFlag2] [varchar](50) NULL,
    [MedicareFlag3] [varchar](50) NULL,
    [MedicareFlag4] [varchar](50) NULL,
    [MedicareFlag5Date] [datetime] NULL,
    [PaySYB] [decimal](18, 4) NULL,
    [PayKYB] [decimal](18, 4) NULL,
    [PayYB] [decimal](18, 4) NULL,
    [PayCardNO] [varchar](100) NULL,
    [PayCardMoneyBefore] [decimal](18, 4) NULL,
    [PayCardMoneyAfter] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [IsMemberPrice] [bit] NULL,
    [Status] [int] NULL,
    [CostMemberPrice] [decimal](18, 4) NULL,
    [CurMemberPrice] [decimal](18, 4) NULL,
    [PreMemberPrice] [decimal](18, 4) NULL,
    [SumPayCard] [decimal](18, 4) NULL,
    [SumReturnPayCard] [decimal](18, 4) NULL,
    [CardDataVersion] [bigint] NULL,
    [IsLottery] [bit] NULL,
    [CompanyId] [smallint] NULL,
    [CFF] [decimal](18, 4) NULL,
CONSTRAINT [PK_InoutStockTable] PRIMARY KEY CLUSTERED
(
    [Guid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[FunctionTree]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FunctionTree](
    [FuncId] [int] NOT NULL,
    [FuncName] [varchar](30) NULL,
    [DisplayOrder] [int] NULL,
    [ParentId] [int] NULL,
    [Remark] [varchar](60) NULL,
    [Flag] [int] NULL,
    [IsSelected] [bit] NULL,
    [Tag] [bit] NULL,
CONSTRAINT [PK_FunctionTree] PRIMARY KEY CLUSTERED
(
    [FuncId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1模块2功能菜单3功能项' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FunctionTree', @level2type=N'COLUMN',@level2name=N'Flag'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0-零售软件;1-会员卡' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FunctionTree', @level2type=N'COLUMN',@level2name=N'Tag'
GO
/****** Object:  Table [dbo].[FoodProvider]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodProvider](
    [EmbranchmentId] [int] NOT NULL,
    [ProviderId] [int] NOT NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [Address] [varchar](200) NULL,
    [EconomyKind] [varchar](50) NULL,
    [LegalPerson] [varchar](10) NULL,
    [BusinessScope] [varchar](500) NULL,
    [BusinessLicenseId] [varchar](50) NULL,
    [BusinessLicenseIssueDate] [datetime] NULL,
    [BusinessLicenseIssueOrganization] [varchar](50) NULL,
    [BusinessLicenseBeginDate] [datetime] NULL,
    [BusinessLicenseInvalidateDate] [datetime] NULL,
    [HealthLicenseId] [varchar](50) NULL,
    [HealthLicenseIssueDate] [datetime] NULL,
    [HealthLicenseIssueOrganization] [varchar](50) NULL,
    [HealthLicenseBeginDate] [datetime] NULL,
    [HealthLicenseInvalidateDate] [datetime] NULL,
    [Tel] [varchar](50) NULL,
CONSTRAINT [PK_FoodProvider] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [ProviderId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货商ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'ProviderId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货商编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货商名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'Address'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'EconomyKind'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法定代表人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'LegalPerson'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营范围' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessScope'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessLicenseId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessLicenseIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照发证机关' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessLicenseIssueOrganization'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照有效期自' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessLicenseBeginDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'BusinessLicenseInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卫生许可证编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'HealthLicenseId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卫生许可证发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'HealthLicenseIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卫生许可证发证机关' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'HealthLicenseIssueOrganization'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卫生许可证有效期自' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'HealthLicenseBeginDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'HealthLicenseInvalidateDate' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'HealthLicenseInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodProvider', @level2type=N'COLUMN',@level2name=N'Tel'
GO
/****** Object:  Table [dbo].[FoodManagementInstitution]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodManagementInstitution](
    [EmbranchmentId] [smallint] NOT NULL,
    [ManagementInstitutionId] [int] NOT NULL,
    [ManagementInstitutionTitle] [varchar](100) NULL,
    [ManagementInstitution] [varchar](8000) NULL,
    [ManagementInstitutionType] [varchar](20) NULL,
CONSTRAINT [PK_FoodManagementInstitution] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [ManagementInstitutionId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodManagementInstitution', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理制度ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodManagementInstitution', @level2type=N'COLUMN',@level2name=N'ManagementInstitutionId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理制度' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodManagementInstitution', @level2type=N'COLUMN',@level2name=N'ManagementInstitution'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理制度类型(食品安全管理制度/从业人员健康管理制度)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodManagementInstitution', @level2type=N'COLUMN',@level2name=N'ManagementInstitutionType'
GO
/****** Object:  Table [dbo].[FoodInoutStockTable]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodInoutStockTable](
    [Guid] [uniqueidentifier] NOT NULL,
    [EmbranchmentId] [smallint] NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [BillId] [int] NULL,
    [BillCode] [varchar](50) NULL,
    [RowNum] [tinyint] NULL,
    [FoodId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [BusinessId] [smallint] NULL,
    [BusinessDate] [smalldatetime] NULL,
    [BusinessName] [varchar](50) NULL,
    [ProductName] [varchar](50) NULL,
    [Spec] [varchar](50) NULL,
    [Amout] [decimal](18, 4) NULL,
    [BatchCode] [varchar](50) NULL,
    [ProductDate] [smalldatetime] NULL,
    [ValidateDate] [smalldatetime] NULL,
    [ProviderName] [varchar](50) NULL,
    [ProviderPhone] [varchar](50) NULL,
    [Checker] [varchar](50) NULL,
    [Remark] [varchar](200) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [CreatorId] [smallint] NULL,
    [CreatorName] [varchar](50) NULL,
    [CreatorDate] [smalldatetime] NULL,
    [AccepttorId] [int] NULL,
    [AccepttorName] [varchar](50) NULL,
    [QualityStatus] [varchar](50) NULL,
    [HasBill] [bit] NULL,
    [BuyTime] [smalldatetime] NULL,
    [ProviderTel] [varchar](50) NULL,
CONSTRAINT [PK_FoodInoutStockTable] PRIMARY KEY CLUSTERED
(
    [Guid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'行号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'RowNum'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BusinessId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'进货日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'ProductName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'Spec'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'保质期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货商' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'ProviderName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货商联系方式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'ProviderPhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'验收人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'Checker'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'CreatorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'CreatorDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'验收人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'AccepttorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'验收人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'AccepttorName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量状况' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'QualityStatus'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有购物凭证或票据(1有/0无)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'HasBill'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'购进时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInoutStockTable', @level2type=N'COLUMN',@level2name=N'BuyTime'
GO
/****** Object:  Table [dbo].[FoodInfo]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodInfo](
    [FoodId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [ProductName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [TXM] [varchar](60) NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
    [RetailPrice] [money] NULL,
    [PackingName] [varchar](50) NULL,
CONSTRAINT [PK_FoodInfo] PRIMARY KEY CLUSTERED
(
    [FoodId] ASC,
    [PackingId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInfo', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodInfo', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
/****** Object:  Table [dbo].[FoodEmbranchmentEmployeeTrainingDoc]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodEmbranchmentEmployeeTrainingDoc](
    [EmbranchmentId] [int] NOT NULL,
    [EmployeeId] [int] NOT NULL,
    [TrainDate] [smalldatetime] NULL,
    [TrainDoc] [varchar](5000) NULL,
CONSTRAINT [PK_FoodEmbranchmentEmployeeTrainingDoc] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [EmployeeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'培训日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployeeTrainingDoc', @level2type=N'COLUMN',@level2name=N'TrainDate'
GO
/****** Object:  Table [dbo].[FoodEmbranchmentEmployeeExamination]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodEmbranchmentEmployeeExamination](
    [EmbranchmentId] [int] NOT NULL,
    [EmployeeId] [int] NOT NULL,
    [CheckDate] [smalldatetime] NULL,
    [HealthStatus] [varchar](10) NULL,
    [Additional] [image] NULL,
CONSTRAINT [PK_FoodEmbranchmentEmployeeExamination] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [EmployeeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'体检日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployeeExamination', @level2type=N'COLUMN',@level2name=N'CheckDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'健康状况' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployeeExamination', @level2type=N'COLUMN',@level2name=N'HealthStatus'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'健康检查表附件(图)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployeeExamination', @level2type=N'COLUMN',@level2name=N'Additional'
GO
/****** Object:  Table [dbo].[FoodEmbranchmentEmployee]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodEmbranchmentEmployee](
    [EmbranchmentId] [smallint] NOT NULL,
    [EmployeeId] [smallint] NOT NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](10) NULL,
    [SpellCode] [varchar](10) NULL,
    [Sex] [varchar](2) NULL,
    [Address] [varchar](50) NULL,
    [Telephone] [varchar](20) NULL,
    [MobilePhone] [varchar](20) NULL,
    [Nation] [varchar](20) NULL,
    [IDNo] [varchar](20) NULL,
    [Duty] [varchar](20) NULL,
    [Deleted] [bit] NULL,
CONSTRAINT [PK_FoodEmbranchmentEmployee] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [EmployeeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位职员ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'EmployeeId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Sex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'户籍登记住址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Address'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'固定电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Telephone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'移动电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'MobilePhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'民族' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Nation'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'身份证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'IDNo'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职务(负责人、食品安全专业技术人员、食品安全管理人员、从业人员)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Duty'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
/****** Object:  Table [dbo].[FoodEmbranchment]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodEmbranchment](
    [EmbranchmentId] [int] NOT NULL,
    [UserName] [varchar](50) NOT NULL,
    [PassWord] [varchar](50) NULL,
    [Name] [varchar](50) NULL,
    [SpellCode] [varchar](50) NULL,
    [AgentName] [varchar](50) NULL,
    [Address] [varchar](100) NULL,
    [WorkMethod] [varchar](50) NULL,
    [Phone] [varchar](50) NULL,
    [MobilePhone] [varchar](20) NULL,
    [WorkLicenseId] [varchar](50) NULL,
    [WorkLicenseIssueDate] [smalldatetime] NULL,
    [WorkLicenseInvalidateDate] [smalldatetime] NULL,
    [Remark] [varchar](200) NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
    [Area] [varchar](50) NULL,
    [TradId] [varchar](50) NULL,
    [TradAgentName] [varchar](20) NULL,
    [RegisteredCapital] [varchar](50) NULL,
    [RealCapital] [varchar](50) NULL,
    [CompanyType] [varchar](50) NULL,
    [ProsecutionRange] [varchar](200) NULL,
    [TradIssueDate] [smalldatetime] NULL,
    [TradInvalidateDate] [smalldatetime] NULL,
CONSTRAINT [PK_FoodEmbranchment_1] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'登陆用户名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'UserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮单位名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法定代表人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'AgentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Address'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'WorkMethod'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'联系方式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Phone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'移动电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'MobilePhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮服务许可证编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮服务许可证发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮服务许可证有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'餐饮服务许可证备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数据版本号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'DataVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所属区域' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'Area'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照的注册号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'TradId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照的法定代表人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'TradAgentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注册资本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'RegisteredCapital'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实收资本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'RealCapital'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'CompanyType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营范围' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'ProsecutionRange'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'TradIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodEmbranchment', @level2type=N'COLUMN',@level2name=N'TradInvalidateDate'
GO
/****** Object:  Table [dbo].[FoodBillDetailBuyInStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodBillDetailBuyInStock](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [FoodId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [ProductName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [TXM] [varchar](60) NULL,
    [RetailPrice] [money] NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [smalldatetime] NULL,
    [ValidateDate] [smalldatetime] NULL,
    [QualityStatus] [varchar](50) NULL,
    [HasBill] [bit] NULL,
    [BuyTime] [smalldatetime] NULL,
CONSTRAINT [PK_FoodBillDetailBuyInStock] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量状况' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'QualityStatus'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有购物凭证或票据(1有/0无)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'HasBill'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'购进时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'BuyTime'
GO
/****** Object:  Table [dbo].[ClassType]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ClassType](
    [ClassId] [int] NOT NULL,
    [ClassName] [varchar](100) NULL,
    [Code] [varchar](4) NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_Class] PRIMARY KEY CLUSTERED
(
    [ClassId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[ClassRelation]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClassRelation](
    [ClassId] [int] NOT NULL,
    [ParentId] [int] NOT NULL,
    [Level] [int] NULL,
CONSTRAINT [PK_ClassRelation] PRIMARY KEY CLUSTERED
(
    [ClassId] ASC,
    [ParentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[FoodBill]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[FoodBill](
    [EmbranchmentId] [int] NOT NULL,
    [BillId] [int] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [BillCode] [varchar](50) NULL,
    [CreateDate] [smalldatetime] NULL,
    [CreatorId] [int] NULL,
    [BusinessDate] [smalldatetime] NULL,
    [BusinessId] [int] NULL,
    [AuditDate] [smalldatetime] NULL,
    [AuditorId] [int] NULL,
    [ProviderId] [int] NULL,
    [Status] [tinyint] NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [Remark] [varchar](100) NULL,
    [ProviderName] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [AuditorName] [varchar](50) NULL,
    [AccepttorId] [int] NULL,
    [AccepttorName] [varchar](50) NULL,
    [ProviderTel] [varchar](50) NULL,
CONSTRAINT [PK_FoodBill] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillId] ASC,
    [BillType] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'BillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'BillType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'CreateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'CreatorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'BusinessId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'AuditDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'AuditorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供应商Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'ProviderId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0刚创建1草稿2复核
(1:草稿,3:待办,4:已配货,5:废弃,2 审核' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'Status'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额(不算处方费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'验收人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'AccepttorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'验收人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FoodBill', @level2type=N'COLUMN',@level2name=N'AccepttorName'
GO
/****** Object:  StoredProcedure [dbo].[GetJSON]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetJSON] (
@ParameterSQL AS nvarchar(Max)
)
AS
BEGIN
 
DECLARE @SQL NVARCHAR(MAX)
DECLARE @XMLString VARCHAR(MAX)
DECLARE @XML XML
DECLARE @Paramlist NVARCHAR(1000)
SET @Paramlist = N'@XML XML OUTPUT'
SET @SQL = 'WITH PrepareTable (XMLString) '
SET @SQL = @SQL + 'AS ( '
SET @SQL = @SQL + @ParameterSQL+ ' FOR XML RAW, TYPE, ELEMENTS '
SET @SQL = @SQL + ') '
SET @SQL = @SQL + 'SELECT @XML = XMLString FROM PrepareTable '
EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUT
SET @XMLString = CAST(@XML AS VARCHAR(MAX))
 
DECLARE @JSON VARCHAR(MAX)
DECLARE @Row VARCHAR(MAX)
DECLARE @RowStart INT
DECLARE @RowEnd INT
DECLARE @FieldStart INT
DECLARE @FieldEnd INT
DECLARE @KEY VARCHAR(MAX)
DECLARE @Value VARCHAR(MAX)
 
DECLARE @StartRoot VARCHAR(100); SET @StartRoot = '<row>'
DECLARE @EndRoot VARCHAR(100); SET @EndRoot = '</row>'
DECLARE @StartField VARCHAR(100); SET @StartField = '<'
DECLARE @EndField VARCHAR(100); SET @EndField = '>'
 
SET @RowStart = CharIndex(@StartRoot, @XMLString, 0)
SET @JSON = ''
WHILE @RowStart > 0
BEGIN
    SET @RowStart = @RowStart+Len(@StartRoot)
    SET @RowEnd = CharIndex(@EndRoot, @XMLString, @RowStart)
    SET @Row = SubString(@XMLString, @RowStart, @RowEnd-@RowStart)
    SET @JSON = @JSON+'{'
 
    -- for each row
    SET @FieldStart = CharIndex(@StartField, @Row, 0)
    WHILE @FieldStart > 0
    BEGIN
        -- parse node key
        SET @FieldStart = @FieldStart+Len(@StartField)
        SET @FieldEnd = CharIndex(@EndField, @Row, @FieldStart)
        SET @KEY = SubString(@Row, @FieldStart, @FieldEnd-@FieldStart)
        SET @JSON = @JSON+'"'+@KEY+'":'
 
        -- parse node value
        SET @FieldStart = @FieldEnd+1
        SET @FieldEnd = CharIndex('</', @Row, @FieldStart)
        SET @Value = SubString(@Row, @FieldStart, @FieldEnd-@FieldStart)
        SET @JSON = @JSON+'"'+@Value+'",'
 
        SET @FieldStart = @FieldStart+Len(@StartField)
        SET @FieldEnd = CharIndex(@EndField, @Row, @FieldStart)
        SET @FieldStart = CharIndex(@StartField, @Row, @FieldEnd)
    END   
    IF LEN(@JSON)>0 SET @JSON = SubString(@JSON, 0, LEN(@JSON))
    SET @JSON = @JSON+'},'
    --/ for each row
 
    SET @RowStart = CharIndex(@StartRoot, @XMLString, @RowEnd)
END
IF LEN(@JSON)>0 SET @JSON = SubString(@JSON, 0, LEN(@JSON))
SET @JSON = '[' + @JSON + ']'
SELECT @JSON
 
END
GO
/****** Object:  Table [dbo].[Counter]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Counter](
    [CounterId] [tinyint] NOT NULL,
    [CounterName] [varchar](50) NOT NULL,
    [SpellCode] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
CONSTRAINT [PK_Counter] PRIMARY KEY CLUSTERED
(
    [CounterId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  StoredProcedure [dbo].[GetServerTime]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[GetServerTime]
(
    @CreateDate datetime output                                                                               --所取得的值
)
AS
    set nocount on
         select  @CreateDate=getdate()
GO
/****** Object:  Table [dbo].[MonthReckoning]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MonthReckoning](
    [MonthReckoningID] [int] NOT NULL,
    [IYear] [smallint] NOT NULL,
    [IMonth] [smallint] NOT NULL,
    [RecckonTime] [datetime] NOT NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_MonthReckoning] PRIMARY KEY CLUSTERED
(
    [MonthReckoningID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'月结ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthReckoning', @level2type=N'COLUMN',@level2name=N'MonthReckoningID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthReckoning', @level2type=N'COLUMN',@level2name=N'IYear'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'月' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthReckoning', @level2type=N'COLUMN',@level2name=N'IMonth'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'月结具体时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthReckoning', @level2type=N'COLUMN',@level2name=N'RecckonTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthReckoning', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[MonthCommodityStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MonthCommodityStock](
    [DepotId] [int] NOT NULL,
    [EmbranchmentId] [smallint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [InOrder] [int] NOT NULL,
    [MonthReckoningID] [int] NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [InstockDate] [datetime] NOT NULL,
    [CostPrice] [decimal](18, 4) NOT NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NOT NULL,
    [FactAmount] [decimal](18, 4) NULL,
    [Odds] [decimal](18, 4) NULL,
    [SumCost] [decimal](18, 4) NULL,
    [SumRetail] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](200) NULL,
    [TXM] [varchar](60) NULL,
    [CustomCode] [varchar](50) NULL,
    [CurrentRetailPrice] [decimal](18, 4) NULL,
    [IsChinese] [bit] NULL,
    [CounterId] [tinyint] NULL,
CONSTRAINT [PK_MonthReckoningCommodityStock] PRIMARY KEY CLUSTERED
(
    [DepotId] ASC,
    [EmbranchmentId] ASC,
    [CommodityId] ASC,
    [InOrder] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'月结ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthCommodityStock', @level2type=N'COLUMN',@level2name=N'MonthReckoningID'
GO
/****** Object:  Table [dbo].[MembershipUserExt]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MembershipUserExt](
    [Id] [int] NOT NULL,
    [AreaId] [int] NULL,
    [Name] [varchar](500) NULL,
CONSTRAINT [PK_MembershipUserExt] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE NONCLUSTERED INDEX [IX_MembershipUserExt] ON [dbo].[MembershipUserExt]
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[MembershipUser]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MembershipUser](
    [Id] [int] IDENTITY(600,1) NOT NULL,
    [Name] [varchar](255) NULL,
    [LoweredName] [varchar](255) NULL,
    [Description] [varchar](255) NULL,
    [Password] [varchar](128) NULL,
    [PasswordFormat] [int] NULL,
    [PasswordSalt] [varchar](128) NULL,
    [Email] [varchar](128) NULL,
    [LoweredEmail] [varchar](128) NULL,
    [PasswordQuestion] [varchar](255) NULL,
    [PasswordAnswer] [varchar](255) NULL,
    [Comments] [varchar](3000) NULL,
    [IsApproved] [bit] NULL,
    [IsLockedOut] [bit] NULL,
    [CreationDate] [datetime] NULL,
    [LastActivityDate] [datetime] NULL,
    [LastLoginDate] [datetime] NULL,
    [LastLockedOutDate] [datetime] NULL,
    [LastPasswordChangeDate] [datetime] NULL,
    [FailedPwdAttemptCnt] [int] NULL,
    [FailedPwdAttemptWndStart] [datetime] NULL,
    [FailedPwdAnsAttemptCnt] [int] NULL,
    [FailedPwdAnsAttemptWndStart] [datetime] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[MemberCardLevel]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemberCardLevel](
    [CardLevelId] [tinyint] NOT NULL,
    [CardLevelNo] [varchar](20) NOT NULL,
    [CardLevelName] [varchar](20) NOT NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_MemberCardLevel] PRIMARY KEY CLUSTERED
(
    [CardLevelId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardLevel', @level2type=N'COLUMN',@level2name=N'CardLevelId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardLevel', @level2type=N'COLUMN',@level2name=N'CardLevelNo'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardLevel', @level2type=N'COLUMN',@level2name=N'CardLevelName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardLevel', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[MemberCardDiscount]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemberCardDiscount](
    [CardDiscountId] [int] NOT NULL,
    [Discount] [numeric](6, 3) NOT NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_MemberCardDiscountId] PRIMARY KEY CLUSTERED
(
    [CardDiscountId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡折扣Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardDiscount', @level2type=N'COLUMN',@level2name=N'CardDiscountId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardDiscount', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardDiscount', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[MemberCardChangeLogTemp]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemberCardChangeLogTemp](
    [Guid] [uniqueidentifier] NOT NULL,
    [BillId] [int] NULL,
    [CardId] [int] NULL,
    [EmbranchmentId] [int] NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [CardCode] [varchar](50) NULL,
    [PreScore] [int] NULL,
    [ChangeScore] [int] NULL,
    [Score] [int] NULL,
    [CardTypeId] [int] NULL,
    [CardLevelId] [tinyint] NULL,
    [BillType] [tinyint] NULL,
    [BillCode] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [PreMoney] [numeric](18, 4) NULL,
    [ChangeMoney] [numeric](18, 4) NULL,
    [Balance] [numeric](18, 4) NULL,
    [CustomerId] [int] NULL,
    [CustomerName] [varchar](50) NULL,
    [BusinessId] [int] NULL,
    [BusinessName] [varchar](50) NULL,
    [BusinessDate] [smalldatetime] NULL,
    [Remark] [varchar](255) NULL,
    [DataVersion] [bigint] NULL,
    [orderno] [bigint] IDENTITY(1,1) NOT NULL,
    [PayCard] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [PayKYB] [decimal](18, 4) NULL,
    [PaySYB] [decimal](18, 4) NULL,
    [PayYB] [decimal](18, 4) NULL,
    [PayCardMoneyBefore] [decimal](18, 4) NULL,
    [PayCardMoneyAfter] [decimal](18, 4) NULL,
    [PayTypeStr] [varchar](50) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [SumMoneyScore] [decimal](18, 4) NULL,
    [PointsBase] [int] NULL,
    [Points] [int] NULL,
    [IsTransferred] [bit] NULL,
    [IsHC] [bit] NULL,
    [IsCZ] [bit] NULL,
    [PreBillId] [int] NULL,
    [PreEmbranchmentId] [int] NULL,
    [Deleted] [bit] NULL,
    [ChangeCardCode] [varchar](50) NULL,
    [ProviderId] [smallint] NULL,
    [Shadiness] [bit] NULL,
    [EmbranchmentChangeMoney] [decimal](18, 4) NULL,
    [DiffMoney] [decimal](18, 4) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[MemberCardChangeLog]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemberCardChangeLog](
    [Guid] [uniqueidentifier] NOT NULL,
    [BillId] [int] NULL,
    [CardId] [int] NULL,
    [EmbranchmentId] [int] NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [CardCode] [varchar](50) NULL,
    [PreScore] [int] NULL,
    [ChangeScore] [int] NULL,
    [Score] [int] NULL,
    [CardTypeId] [int] NULL,
    [CardLevelId] [tinyint] NULL,
    [BillType] [tinyint] NULL,
    [BillCode] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [PreMoney] [numeric](18, 4) NULL,
    [ChangeMoney] [numeric](18, 4) NULL,
    [Balance] [numeric](18, 4) NULL,
    [CustomerId] [int] NULL,
    [CustomerName] [varchar](50) NULL,
    [BusinessId] [int] NULL,
    [BusinessName] [varchar](50) NULL,
    [BusinessDate] [smalldatetime] NULL,
    [Remark] [varchar](255) NULL,
    [DataVersion] [bigint] NULL,
    [orderno] [bigint] IDENTITY(1,1) NOT NULL,
    [PayCard] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [PayKYB] [decimal](18, 4) NULL,
    [PaySYB] [decimal](18, 4) NULL,
    [PayYB] [decimal](18, 4) NULL,
    [PayCardMoneyBefore] [decimal](18, 4) NULL,
    [PayCardMoneyAfter] [decimal](18, 4) NULL,
    [PayTypeStr] [varchar](50) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [SumMoneyScore] [decimal](18, 4) NULL,
    [PointsBase] [int] NULL,
    [Points] [int] NULL,
    [IsTransferred] [bit] NULL,
    [IsHC] [bit] NULL,
    [IsCZ] [bit] NULL,
    [PreBillId] [int] NULL,
    [PreEmbranchmentId] [int] NULL,
    [Deleted] [bit] NULL,
    [ChangeCardCode] [varchar](50) NULL,
    [ProviderId] [smallint] NULL,
    [CardChangeMoney] [decimal](18, 4) NULL,
    [DiffMoney] [decimal](18, 4) NULL,
    [CheckOut] [bit] NULL,
    [Shadiness] [bit] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CardId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CardCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原有积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PreScore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'改变积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'ChangeScore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'Score'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡型Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CardTypeId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CardLevelId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BillType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处理动作' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BillCodeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原有金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PreMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'改变金额 [正负值]' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'ChangeMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'Balance'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'持卡人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CustomerId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'持卡人姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'CustomerName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作员ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BusinessId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作员姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BusinessName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款(现金)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PayMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'消费金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'SumMoneyScore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分基数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PointsBase'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'Points'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于储值卡向普通卡转钱时使用,0成功,1否' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'IsTransferred'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否红冲0否,1是' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'IsHC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否是储值卡0否,1是' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'IsCZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'在金额红冲时,保存红冲对应单子的ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PreBillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'在金额红冲时,保存红冲对应单子的分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCardChangeLog', @level2type=N'COLUMN',@level2name=N'PreEmbranchmentId'
GO
/****** Object:  Table [dbo].[MemberCard]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemberCard](
    [EmbranchmentId] [int] NOT NULL,
    [CardId] [int] NOT NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [Code] [varchar](50) NOT NULL,
    [Score] [int] NULL,
    [CustomerId] [int] NULL,
    [CustomerName] [varchar](50) NULL,
    [Balance] [numeric](18, 4) NULL,
    [SumConsumed] [numeric](18, 4) NULL,
    [CardTypeId] [int] NULL,
    [CardTypeName] [varchar](50) NULL,
    [CardLevelId] [tinyint] NULL,
    [CardLevelName] [varchar](50) NULL,
    [Status] [tinyint] NULL,
    [Password] [varchar](20) NULL,
    [Foregift] [numeric](18, 4) NULL,
    [Discount] [numeric](18, 4) NULL,
    [BeginTime] [datetime] NULL,
    [CancelTime] [datetime] NULL,
    [SuspendTime] [datetime] NULL,
    [LimitCount] [int] NULL,
    [UsedCount] [int] NULL,
    [Remark] [varchar](255) NULL,
    [Deleted] [bit] NULL,
    [SpellCode] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [MissCash] [numeric](18, 4) NULL,
    [ReturnPayCard] [numeric](18, 4) NULL,
    [SumAllMoney] [numeric](18, 4) NULL,
    [YBConsumed] [numeric](18, 4) NULL,
    [IsSumDiscount] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
    [IsCumulativePoints] [smallint] NULL,
    [SumDiscount] [numeric](6, 3) NULL,
    [SpareMoney] [decimal](18, 4) NULL,
    [IsTransferred] [bit] NULL,
    [CertificateNo] [varchar](50) NULL,
    [ReturnCard] [numeric](18, 4) NULL,
    [CancelReturnPayCard] [numeric](18, 4) NULL,
    [CallBackReturnPayCard] [numeric](18, 4) NULL,
    [DrawCard] [numeric](18, 4) NULL,
    [TransferCard] [numeric](18, 4) NULL,
    [ProviderId] [smallint] NULL,
    [IsCZ] [tinyint] NULL,
    [GivenMeoney] [decimal](18, 4) NULL,
CONSTRAINT [PK_MemberCard] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CardId] ASC,
    [Code] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Score'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'持卡人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CustomerId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'持卡人姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CustomerName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'余额[正值]' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Balance'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'累计消费额[正值]' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SumConsumed'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡型Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CardTypeId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CardLevelId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡级' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CardLevelName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态 0:代表正常,5在消费时出异常' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Status'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'密码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Password'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'押金' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Foregift'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'发卡时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'BeginTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'作废时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'CancelTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'挂失时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SuspendTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'限制次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'LimitCount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户使用次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'UsedCount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'回收(0-正常,1-回收)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员姓名拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'透支消费时,所补足的现金' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'MissCash'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'累计充资额[正值]' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SumAllMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否执行累计折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'IsSumDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否会员卡折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否累计上次未积分金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'IsCumulativePoints'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'累计折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SumDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'上次消费未参加积分余额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'SpareMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于储值卡向普通卡转钱时使用,0成功,1否' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MemberCard', @level2type=N'COLUMN',@level2name=N'IsTransferred'
GO
/****** Object:  StoredProcedure [dbo].[up_distinct]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
create procedure [dbo].[up_distinct](@t_name varchar(30),@f_key varchar(30))
--f_key表示是分组字段﹐即主键字段
as
begin
declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer
select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'
exec(@sql)
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key
if @type=56
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id
if @type=167
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''
exec(@sql)
fetch cur_rows into @id,@max
end
close cur_rows
deallocate cur_rows
set rowcount 0
end
GO
/****** Object:  Table [dbo].[tt]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tt](
    [id] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TreeMenu]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TreeMenu](
    [id] [varchar](150) NOT NULL,
    [pid] [varchar](150) NULL,
    [leaf] [bit] NULL,
    [text] [varchar](250) NULL,
    [ordernum] [int] NOT NULL,
    [needright] [varchar](60) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE NONCLUSTERED INDEX [TreeMenu_idx] ON [dbo].[TreeMenu]
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
/****** Object:  StoredProcedure [dbo].[GetJSON1]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================
-- Author:        Thiago R. Santos                                           --
-- Create date: Aug 3rd 2008                                               --
-- Description:    Returns the contents of a given table                       --
--                in JavaScript Object Notation.                               --
-- Params:                                                                   --
--      @table_name: the table to execute the query                           --
--        @registries_per_request: equivalent to "select top N * from table" --
--                                 replcing N by the actual number           --
--                                                                           --
-- Influenced by Thomas Frank's post MySQL to JSON @ January 23, 2007      --
-- Post Url: http://www.thomasfrank.se/mysql_to_json.html                  --
-- ==========================================================================

create procedure [dbo].[GetJSON1]
(
    @table_name varchar(50),
    @registries_per_request smallint = null
)
as
begin
    if((select count(*) from information_schema.tables where table_name = @table_name) > 0)
    begin
        declare    @json varchar(max),
                @line varchar(max),
                @columns varchar(max),
                @sql nvarchar(max),
                @columnNavigator varchar(50),
                @counter tinyint,
                @size varchar(10)
           
        if (@registries_per_request is null)
        begin
            set @size = ''
        end
        else
        begin
            set @size = 'top ' + convert(varchar, @registries_per_request)
        end
        set    @columns = '{'

        declare    schemaCursor cursor
        for        select column_name from information_schema.columns where table_name = @table_name
        open    schemaCursor   

        fetch next from schemaCursor
        into  @columnNavigator

        select    @counter = count(*) from information_schema.columns where table_name = @table_name

        while @@fetch_status = 0
        begin
            set @columns = @columns + '''''' + @columnNavigator + ''''':'''''' + convert(varchar, ' + @columnNavigator + ') + '''''''
            set @counter = @counter - 1
            if(0 != @counter)
            begin
                set @columns = @columns + ','
            end

            fetch next from schemaCursor
            into  @columnNavigator
        end   

        set    @columns =  @columns + '}'

        close        schemaCursor
        deallocate    schemaCursor
       
        set    @json = '['

        set @sql = 'select  ' + @size + '''' + @columns + ''' as json into tmpJsonTable from ' + @table_name
        exec sp_sqlexec @sql

        select    @counter = count(*) from tmpJsonTable

        declare    tmpCur cursor
        for        select * from tmpJsonTable
        open    tmpCur

        fetch next from tmpCur
        into  @line

        while @@fetch_status = 0
        begin
            set    @counter = @counter - 1
            set @json = @json + @line
            if ( 0 != @counter )
            begin
                set @json = @json + ','
            end
           
            fetch next from tmpCur
            into  @line
        end

        set    @json = @json + ']'

        close        tmpCur
        deallocate    tmpCur
        drop table    tmpJsonTable

        select @json as json
    end
end
GO
/****** Object:  Table [dbo].[Task]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Task](
    [TaskId] [int] NOT NULL,
    [ProjectId] [int] NULL,
    [BeginTime] [datetime] NULL,
    [EndTime] [datetime] NULL,
    [Content] [varchar](50) NULL,
CONSTRAINT [PK_Task] PRIMARY KEY CLUSTERED
(
    [TaskId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[TableChineseMeaning]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TableChineseMeaning](
    [TableName] [varchar](50) NOT NULL,
    [Meaning] [varchar](50) NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_TableChineseMeaning] PRIMARY KEY CLUSTERED
(
    [TableName] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[t2]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[t2](
    [Id] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[t1]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t1](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ParentId] [int] NULL,
    [Path] [nvarchar](500) NULL,
    [Description] [nvarchar](500) NULL,
    [ExFunction1] [nvarchar](50) NULL,
    [ExFunction2] [nvarchar](50) NULL,
    [ExFunction3] [nvarchar](50) NULL,
    [ExFunction4] [nvarchar](50) NULL,
    [ExFunction5] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[t]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t](
    [id] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SysData]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SysData](
    [Name] [varchar](50) NOT NULL,
    [IntValue] [bigint] NULL,
    [NumberValue] [decimal](18, 4) NULL,
    [StringValue] [varchar](100) NULL,
    [DateValue] [datetime] NULL,
    [Remark] [varchar](200) NULL,
CONSTRAINT [PK_SysData] PRIMARY KEY CLUSTERED
(
    [Name] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Syqyspb]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Syqyspb](
    [EmbranchmentId] [smallint] NOT NULL,
    [SyqyspbID] [int] NOT NULL,
    [GSPBH] [varchar](50) NULL,
    [EmployeeID] [smallint] NULL,
    [EmployeeName] [varchar](50) NULL,
    [RQ] [datetime] NULL,
    [ProviderId] [smallint] NULL,
    [ProviderName] [varchar](50) NULL,
    [LGPZ] [varchar](300) NULL,
    [XXDZ] [varchar](50) NULL,
    [QYLB] [varchar](50) NULL,
    [YZBM] [varchar](50) NULL,
    [EMAIL] [varchar](50) NULL,
    [CZ] [varchar](50) NULL,
    [LXR] [varchar](50) NULL,
    [LXDH] [varchar](50) NULL,
    [XKZXKZMC] [varchar](50) NULL,
    [XKZXKZH] [varchar](50) NULL,
    [XKZQYMC] [varchar](50) NULL,
    [XKZFZR] [varchar](50) NULL,
    [XKZSCFW] [varchar](300) NULL,
    [XKZYXQ] [datetime] NULL,
    [XKZQYDZ] [varchar](50) NULL,
    [XKZFZJG] [varchar](50) NULL,
    [YYZZQYMC] [varchar](50) NULL,
    [YYZZZCH] [varchar](50) NULL,
    [YYZZYXQX] [datetime] NULL,
    [YYZZFRDBR] [varchar](50) NULL,
    [YYZZJJXZ] [varchar](50) NULL,
    [YYZZZCZJ] [varchar](50) NULL,
    [YYZZJYFW] [varchar](300) NULL,
    [YYZZJYFS] [varchar](50) NULL,
    [YYZZQYDZ] [varchar](50) NULL,
    [YYZZFZJG] [varchar](50) NULL,
    [ZLXYZLRZZXYBH] [varchar](50) NULL,
    [ZLXYYXQX] [datetime] NULL,
    [ZLXYSDKCJN] [varchar](50) NULL,
    [WTXSWTR] [varchar](50) NULL,
    [WTXWTDQ] [varchar](50) NULL,
    [WTXQYMC] [varchar](50) NULL,
    [WTXWTYXQX] [datetime] NULL,
    [YWBMYJ] [varchar](50) NULL,
    [YWBMEmployeeID] [smallint] NULL,
    [YWBMEmployeeName] [varchar](50) NULL,
    [YWBMRQ] [datetime] NULL,
    [SHYJ] [varchar](50) NULL,
    [SHYJEmployeeID] [smallint] NULL,
    [SHYJEmployeeName] [varchar](50) NULL,
    [SHYJRQ] [datetime] NULL,
    [SPYJ] [varchar](50) NULL,
    [SPYJEmployeeID] [smallint] NULL,
    [SPYJEmployeeName] [varchar](50) NULL,
    [SPYJRQ] [datetime] NULL,
    [SFZB] [bit] NULL,
CONSTRAINT [PK_Syqyspb] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [SyqyspbID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GSP编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'GSPBH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'制单人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'EmployeeID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'制单人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'EmployeeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'RQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'ProviderId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拟供品种' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'LGPZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'详细地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XXDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'QYLB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮政编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YZBM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'E-MAIL' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'EMAIL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'传真' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'CZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'联系人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'LXR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'联系电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'LXDH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'许可证名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZXKZMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'许可证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZXKZH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZQYMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'负责人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZFZR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产范围' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZSCFW'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZYXQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZQYDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'发照机关' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'XKZFZJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZQYMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注册号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZZCH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZYXQX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法人代表人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZFRDBR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经济性质' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZJJXZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注册资金' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZZCZJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营范围' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZJYFW'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营方式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZJYFS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZQYDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'发照机关' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YYZZFZJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量认证证书与编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'ZLXYZLRZZXYBH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'ZLXYYXQX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实地考察结论' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'ZLXYSDKCJN'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'受委托人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'WTXSWTR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'委托地区' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'WTXWTDQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'WTXQYMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'委托有效期限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'WTXWTYXQX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务部门意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YWBMYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经理签字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YWBMEmployeeID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'YWBMRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SHYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经理ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SHYJEmployeeID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经理名字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SHYJEmployeeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SHYJRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审批意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SPYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SPYJEmployeeID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理名字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SPYJEmployeeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Syqyspb', @level2type=N'COLUMN',@level2name=N'SPYJRQ'
GO
/****** Object:  Table [dbo].[Sypzspb]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sypzspb](
    [EmbranchmentId] [smallint] NOT NULL,
    [SypzspbID] [int] NOT NULL,
    [GSPBH] [varchar](50) NULL,
    [ZDRID] [smallint] NULL,
    [ZDRMC] [varchar](50) NULL,
    [RQ] [datetime] NULL,
    [SPID] [int] NULL,
    [SPM] [varchar](50) NULL,
    [TYMC] [varchar](50) NULL,
    [JX] [varchar](50) NULL,
    [PY] [varchar](50) NULL,
    [GG] [varchar](50) NULL,
    [DW] [varchar](50) NULL,
    [CCTJ] [varchar](50) NULL,
    [ZYCF] [varchar](50) NULL,
    [ZLBZ] [varchar](50) NULL,
    [YXQ] [datetime] NULL,
    [PZWH] [varchar](50) NULL,
    [SCCS] [varchar](50) NULL,
    [SCXKZH] [varchar](50) NULL,
    [XXDZ] [varchar](50) NULL,
    [YYZZH] [varchar](50) NULL,
    [GMPZSH] [varchar](50) NULL,
    [RZSJ] [datetime] NULL,
    [ZSYXQ] [datetime] NULL,
    [SDKHRID] [smallint] NULL,
    [SDKHRMC] [varchar](50) NULL,
    [WTSYXQ] [datetime] NULL,
    [KCJL] [varchar](50) NULL,
    [CPPH] [varchar](50) NULL,
    [CCJYBGSH] [varchar](50) NULL,
    [SYJYJL] [varchar](50) NULL,
    [SYJYBGSH] [varchar](50) NULL,
    [CCJ] [decimal](18, 4) NULL,
    [GHJ] [decimal](18, 4) NULL,
    [PFJ] [decimal](18, 4) NULL,
    [LSJ] [decimal](18, 4) NULL,
    [SFYPZZMWJ] [bit] NULL,
    [SFYBZ] [bit] NULL,
    [SQLY] [text] NULL,
    [SQRID] [smallint] NULL,
    [SQRMC] [varchar](50) NULL,
    [SQRRQ] [datetime] NULL,
    [SCBYJ] [text] NULL,
    [SCBJLID] [smallint] NULL,
    [SCBJLMC] [varchar](50) NULL,
    [SCBJLRQ] [datetime] NULL,
    [ZGBYJ] [text] NULL,
    [ZGBJLID] [smallint] NULL,
    [ZGBJLMC] [varchar](50) NULL,
    [ZGBJLRQ] [datetime] NULL,
    [ZJLYJ] [text] NULL,
    [ZJLID] [smallint] NULL,
    [ZJLMC] [varchar](50) NULL,
    [ZJLRQ] [datetime] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
CONSTRAINT [PK_Sypzspb] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [SypzspbID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GSP编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'GSPBH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'制单人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZDRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'制单人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZDRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'RQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SPID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SPM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'通用名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'TYMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'剂型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'JX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'PY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'GG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'DW'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'储存条件' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'CCTJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'主要成份与功能主治' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZYCF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量标准' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZLBZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'YXQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批准文号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'PZWH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产厂商' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCCS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产许可证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCXKZH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'详细地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'XXDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'营业执照号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'YYZZH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GMP证书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'GMPZSH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'认证时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'RZSJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'证书有效期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZSYXQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实地考核人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SDKHRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实地考核人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SDKHRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'委托书有效期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'WTSYXQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'考察结论' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'KCJL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'CPPH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出厂检验报告书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'CCJYBGSH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'(首营)检验结论' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SYJYJL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'(首营)检验报告书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SYJYBGSH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出厂价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'CCJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供货价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'GHJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批发价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'PFJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'LSJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否有批准证明文件' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SFYPZZMWJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否有包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SFYBZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'申请理由' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SQLY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'申请人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SQRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'申请人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SQRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'申请人日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SQRRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市场部意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCBYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市场部经理ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCBJLID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市场部经理名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCBJLMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市场部经理日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'SCBJLRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质管部意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZGBYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质管部经理ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZGBJLID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质管部经理名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZGBJLMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质管部经理日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZGBJLRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZJLYJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZJLID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZJLMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总经理日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'ZJLRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sypzspb', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
/****** Object:  Table [dbo].[Site]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Site](
    [NIC] [varchar](100) NOT NULL,
    [ComputerName] [varchar](50) NULL,
    [LodingTime] [datetime] NULL,
CONSTRAINT [PK_Site] PRIMARY KEY CLUSTERED
(
    [NIC] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'网卡' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Site', @level2type=N'COLUMN',@level2name=N'NIC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'计算机名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Site', @level2type=N'COLUMN',@level2name=N'ComputerName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'登录时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Site', @level2type=N'COLUMN',@level2name=N'LodingTime'
GO
/****** Object:  Table [dbo].[Shift]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Shift](
    [EmbranchmentId] [int] NOT NULL,
    [ShiftId] [int] NOT NULL,
    [EmployeeId] [smallint] NULL,
    [StartTime] [smalldatetime] NOT NULL,
    [EndTime] [smalldatetime] NULL,
    [InMoney] [decimal](18, 4) NULL,
    [OutMoney] [decimal](18, 4) NULL,
    [InBillCount] [smallint] NULL,
    [OutBillCount] [smallint] NULL,
    [FactMoney] [decimal](18, 4) NULL,
    [PayCard] [decimal](18, 4) NULL,
    [YBMoneyCurr] [decimal](18, 4) NULL,
    [DataVersion] [bigint] NULL,
    [OutCard] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [OutReturnPayCard] [decimal](18, 4) NULL,
CONSTRAINT [PK_Shift] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [ShiftId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'开始时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'StartTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'交班时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'EndTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'InMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'退款金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'OutMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款单据数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'InBillCount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'退款单据数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'OutBillCount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'应交金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'FactMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'应交金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'PayCard'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'应交金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Shift', @level2type=N'COLUMN',@level2name=N'YBMoneyCurr'
GO
/****** Object:  Table [dbo].[ConversionDataTable]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ConversionDataTable](
    [CommodityId_Old] [int] NULL,
    [GeneralName_Old] [varchar](100) NULL,
    [ProductName_Old] [varchar](100) NULL,
    [EnglishName_Old] [varchar](200) NULL,
    [Spec_Old] [varchar](200) NULL,
    [ProducingArea_Old] [varchar](100) NULL,
    [DoseType_Old] [varchar](50) NULL,
    [AuthorizeCode_Old] [varchar](50) NULL,
    [Unit_Old] [varchar](50) NULL,
    [SpellCode_Old] [varchar](100) NULL,
    [CustomCode_Old] [varchar](50) NULL,
    [TXM_Old] [varchar](60) NULL,
    [PackingId_Old] [int] NULL,
    [CommodityId_New] [int] NULL,
    [GeneralName_New] [varchar](100) NULL,
    [ProductName_New] [varchar](100) NULL,
    [EnglishName_New] [varchar](200) NULL,
    [Spec_New] [varchar](200) NULL,
    [ProducingArea_New] [varchar](100) NULL,
    [DoseType_New] [varchar](50) NULL,
    [AuthorizeCode_New] [varchar](50) NULL,
    [Unit_New] [varchar](50) NULL,
    [SpellCode_New] [varchar](100) NULL,
    [CustomCode_New] [varchar](50) NULL,
    [TXM_New] [varchar](60) NULL,
    [PackingId_New] [int] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_ConversionDataTable] ON [dbo].[ConversionDataTable]
(
    [CommodityId_Old] ASC,
    [CommodityId_New] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ConversionDataTable', @level2type=N'COLUMN',@level2name=N'PackingId_Old'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ConversionDataTable', @level2type=N'COLUMN',@level2name=N'PackingId_New'
GO
/****** Object:  Table [dbo].[CatalogPedigree]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CatalogPedigree](
    [CatalogType] [int] NOT NULL,
    [ParentId] [int] NOT NULL,
    [ChildId] [int] NOT NULL,
    [ParentClass] [int] NOT NULL,
    [ChildClass] [int] NOT NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
CONSTRAINT [PK_CatalogPedigree] PRIMARY KEY CLUSTERED
(
    [CatalogType] ASC,
    [ParentId] ASC,
    [ChildId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CatalogPedigree', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
/****** Object:  Table [dbo].[EmployeePost]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[EmployeePost](
    [EmployeeId] [smallint] NOT NULL,
    [PostId] [int] NOT NULL,
CONSTRAINT [PK_UserPost] PRIMARY KEY CLUSTERED
(
    [EmployeeId] ASC,
    [PostId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Employee]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Employee](
    [EmbranchmentId] [smallint] NOT NULL,
    [EmployeeId] [smallint] NOT NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](10) NULL,
    [SpellCode] [varchar](10) NULL,
    [Sex] [varchar](2) NULL,
    [Address] [varchar](50) NULL,
    [Telephone] [varchar](20) NULL,
    [MobilePhone] [varchar](20) NULL,
    [DepartId] [varchar](10) NULL,
    [IsUser] [bit] NULL,
    [Study] [varchar](20) NULL,
    [Duty] [varchar](20) NULL,
    [Comment] [varchar](200) NULL,
    [GraduateDate] [smalldatetime] NULL,
    [InDate] [smalldatetime] NULL,
    [JSZC] [varchar](20) NULL,
    [ZYZG] [varchar](20) NULL,
    [CFQ] [bit] NULL,
    [CFF] [decimal](18, 4) NULL,
    [PassWord] [varchar](50) NULL,
    [Text] [varchar](4000) NULL,
    [Image] [image] NULL,
    [Fddbr] [bit] NULL,
    [Qyfzr] [bit] NULL,
    [Zlfzr] [bit] NULL,
    [IndentityNumber] [varchar](50) NULL,
    [Specialty] [varchar](50) NULL,
    [ExcuQualificationNumber] [varchar](50) NULL,
    [ExcuType] [varchar](50) NULL,
    [ExcuRegisterNumber] [varchar](50) NULL,
    [ExcuRegisterUnit] [varchar](50) NULL,
    [ExcuIssueDate] [datetime] NULL,
    [ExcuInvalidate] [datetime] NULL,
    [PractNumber] [varchar](50) NULL,
    [PractIssueUnit] [varchar](50) NULL,
    [PractWorkUnit] [varchar](50) NULL,
    [PractInvalidate] [varchar](50) NULL,
    [OthCertName] [varchar](50) NULL,
    [OthCertIssueUnit] [varchar](50) NULL,
    [OthCentNumber] [varchar](50) NULL,
    [OthCentIssueDate] [datetime] NULL,
    [OthCentWorkUnit] [varchar](50) NULL,
    [Resume] [varchar](8000) NULL,
    [Others] [varchar](8000) NULL,
    [DataVersion] [bigint] NULL,
    [Apothecary] [bit] NULL,
    [Login] [bit] NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [EmployeeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'部门Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'DepartId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'学历' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Study'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职务' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Duty'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Comment'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'毕业日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'GraduateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入职日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'InDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'技术职称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'JSZC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职业资格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ZYZG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方权(1是有,0是无)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'CFQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方费' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'CFF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'密码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'PassWord'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法人代表
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Fddbr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业负责人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Qyfzr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Zlfzr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'身份证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'IndentityNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'专业' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Specialty'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.资格证书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuQualificationNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.执业类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.注册证书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuRegisterNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.注册单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuRegisterUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.发证时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'ExcuInvalidate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.证书编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'PractNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.发证单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'PractIssueUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.证书工作单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'PractWorkUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'PractInvalidate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.资格名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'OthCertName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.发证单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'OthCertIssueUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.证书编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'OthCentNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.发证时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'OthCentIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.证书工作单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'OthCentWorkUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人从事药品
经营管理工作简历
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Resume'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Others'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药师' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Apothecary'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否允许登陆' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'Login'
GO
/****** Object:  Table [dbo].[EmbranchmentEmployee]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[EmbranchmentEmployee](
    [EmbranchmentId] [smallint] NOT NULL,
    [EmployeeId] [smallint] NOT NULL,
    [EmbranchmentName] [varchar](50) NOT NULL,
    [Code] [varchar](50) NOT NULL,
    [Name] [varchar](10) NOT NULL,
    [SpellCode] [varchar](10) NULL,
    [Sex] [varchar](2) NULL,
    [Address] [varchar](50) NULL,
    [Telephone] [varchar](20) NULL,
    [MobilePhone] [varchar](20) NULL,
    [DepartId] [varchar](10) NULL,
    [IsUser] [bit] NULL,
    [Study] [varchar](20) NULL,
    [Duty] [varchar](20) NULL,
    [Comment] [varchar](200) NULL,
    [GraduateDate] [smalldatetime] NULL,
    [InDate] [smalldatetime] NULL,
    [JSZC] [varchar](20) NULL,
    [ZYZG] [varchar](20) NULL,
    [CFQ] [bit] NULL,
    [CFF] [decimal](18, 4) NULL,
    [PassWord] [varchar](50) NULL,
    [Text] [varchar](4000) NULL,
    [Image] [image] NULL,
    [Fddbr] [bit] NULL,
    [Qyfzr] [bit] NULL,
    [Zlfzr] [bit] NULL,
    [IndentityNumber] [varchar](50) NULL,
    [Specialty] [varchar](50) NULL,
    [ExcuQualificationNumber] [varchar](50) NULL,
    [ExcuType] [varchar](50) NULL,
    [ExcuRegisterNumber] [varchar](50) NULL,
    [ExcuRegisterUnit] [varchar](50) NULL,
    [ExcuIssueDate] [datetime] NULL,
    [ExcuInvalidate] [datetime] NULL,
    [PractNumber] [varchar](50) NULL,
    [PractIssueUnit] [varchar](50) NULL,
    [PractWorkUnit] [varchar](50) NULL,
    [PractInvalidate] [varchar](50) NULL,
    [OthCertName] [varchar](50) NULL,
    [OthCertIssueUnit] [varchar](50) NULL,
    [OthCentNumber] [varchar](50) NULL,
    [OthCentIssueDate] [datetime] NULL,
    [OthCentWorkUnit] [varchar](50) NULL,
    [Resume] [varchar](8000) NULL,
    [Others] [varchar](8000) NULL,
    [DataVersion] [bigint] NULL,
    [Apothecary] [bit] NULL,
CONSTRAINT [PK_EmbranchmentEmployee] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [EmployeeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法人代表
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Fddbr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业负责人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Qyfzr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Zlfzr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'身份证号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'IndentityNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'专业' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Specialty'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.资格证书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuQualificationNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.执业类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.注册证书号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuRegisterNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.注册单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuRegisterUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.发证时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'执业药师证书.有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'ExcuInvalidate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.证书编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'PractNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.发证单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'PractIssueUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.证书工作单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'PractWorkUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'从业药师证书.有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'PractInvalidate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.资格名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'OthCertName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.发证单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'OthCertIssueUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.证书编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'OthCentNumber'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.发证时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'OthCentIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他药学(相关专业)资格证书.证书工作单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'OthCentWorkUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人从事药品
经营管理工作简历
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Resume'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'其他' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Others'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药师' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'EmbranchmentEmployee', @level2type=N'COLUMN',@level2name=N'Apothecary'
GO
/****** Object:  Table [dbo].[Embranchment]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Embranchment](
    [EmbranchmentId] [smallint] NOT NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](50) NULL,
    [SpellCode] [varchar](50) NULL,
    [Address] [varchar](100) NULL,
    [EconomyKind] [varchar](20) NULL,
    [WorkMethod] [varchar](50) NULL,
    [EnterpriseKind] [varchar](10) NULL,
    [ManagerName] [varchar](20) NULL,
    [Phone] [varchar](50) NULL,
    [MobilePhone] [varchar](20) NULL,
    [Guid] [uniqueidentifier] NULL,
    [ZhongChengYao] [bit] NULL,
    [ZhongYaoCai] [bit] NULL,
    [ZhongYaoCaiContent] [varchar](100) NULL,
    [ZhongYaoYinPian] [bit] NULL,
    [ZhongYaoYinPianContent] [varchar](100) NULL,
    [HXYZJ] [bit] NULL,
    [HXYLY] [bit] NULL,
    [KSS] [bit] NULL,
    [SHYP] [bit] NULL,
    [SWZP] [bit] NULL,
    [SWZPCYM] [bit] NULL,
    [SWZPCXYYP] [bit] NULL,
    [SWZPXZDYP] [bit] NULL,
    [MZYP] [bit] NULL,
    [MZYPContent] [varchar](100) NULL,
    [JSYP] [bit] NULL,
    [JSYPContent] [varchar](100) NULL,
    [YLYDXYP] [bit] NULL,
    [YLYDXYPContent] [varchar](100) NULL,
    [FSXYP] [bit] NULL,
    [YM] [bit] NULL,
    [WorkLicenseId] [varchar](50) NULL,
    [WorkLicenseIssueDate] [smalldatetime] NULL,
    [WorkLicenseInvalidateDate] [smalldatetime] NULL,
    [GSPLicenseId] [varchar](50) NULL,
    [GSPLicenseIssueDate] [smalldatetime] NULL,
    [GSPLicenseInvalidateDate] [smalldatetime] NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
    [IsSelected] [bit] NULL,
    [FCFY] [bit] NULL,
    [QYMC] [varchar](50) NULL,
    [ZCDZ] [text] NULL,
    [FDDBRID] [int] NULL,
    [FDDBRMC] [varchar](50) NULL,
    [QYFZRID] [int] NULL,
    [QYFZRMC] [varchar](50) NULL,
    [ZLFZRID] [int] NULL,
    [ZLFZRMC] [varchar](50) NULL,
    [InterTime] [int] NULL,
    [GeographyImage] [image] NULL,
    [BusinessImage] [image] NULL,
    [WorkLicenseChangeLog] [text] NULL,
    [YYJGMC] [varchar](100) NULL,
    [YYFDDBRID] [int] NULL,
    [YYFDDBR] [varchar](50) NULL,
    [YYDZ] [varchar](200) NULL,
    [YYZYFZRID] [int] NULL,
    [YYZYFZR] [varchar](50) NULL,
    [YYZLKM] [varchar](300) NULL,
    [YYDJH] [varchar](100) NULL,
    [YYYXQKS] [smalldatetime] NULL,
    [YYYXQJS] [smalldatetime] NULL,
    [YYFZJG] [varchar](100) NULL,
    [YYFZRQ] [smalldatetime] NULL,
    [Enable] [bit] NULL,
    [AreaId] [int] NULL,
    [AreaCode] [int] NULL,
    [HeadOffice] [bit] NULL,
CONSTRAINT [PK_Embranchment] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'Code'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经济性质,个体,有限责任公司' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'EconomyKind'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'经营方式:批发,批发(非法人),零售(经营处方药和非处方药)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'WorkMethod'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'总店,门店,无' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'EnterpriseKind'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中成药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZhongChengYao'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药材' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZhongYaoCai'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药材内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZhongYaoCaiContent'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药饮片' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZhongYaoYinPian'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药饮片内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZhongYaoYinPianContent'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品经营许可证编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品经营许可证发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品经营许可证有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GSP许可证编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'GSPLicenseId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GSP许可证发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'GSPLicenseIssueDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'GSP许可证有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'GSPLicenseInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数据版本号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'DataVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'非处方药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'FCFY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业企业名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'QYMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注册地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZCDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法定代表人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'FDDBRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'法定代表人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'FDDBRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业负责人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'QYFZRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'企业负责人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'QYFZRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZLFZRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'质量负责人名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'ZLFZRMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品经营许可证变更记录' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'WorkLicenseChangeLog'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院机构名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYJGMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院法定代表人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYFDDBRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院法定代表人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYFDDBR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYDZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院主要负责人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYZYFZRID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院主要负责人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYZYFZR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院诊疗科目' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYZLKM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院登记号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYDJH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院有效期开始' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYYXQKS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院有效期结束' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYYXQJS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院发证机关' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYFZJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医院发证日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'YYFZRQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售店信息是否填写完整(药监局确定)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'Enable'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'连锁店模式:0,分点;1,总店' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Embranchment', @level2type=N'COLUMN',@level2name=N'HeadOffice'
GO
/****** Object:  Table [dbo].[DoseType]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DoseType](
    [DoseTypeId] [int] NOT NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](50) NULL,
    [SpellCode] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
CONSTRAINT [PK_DoseType] PRIMARY KEY CLUSTERED
(
    [DoseTypeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'剂型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DoseType', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DoseType', @level2type=N'COLUMN',@level2name=N'Deleted'
GO
/****** Object:  Table [dbo].[Depot]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Depot](
    [DepotId] [int] NOT NULL,
    [EmbranchmentId] [int] NOT NULL,
    [Code] [varchar](50) NULL,
    [Name] [varchar](50) NULL,
    [SpellCode] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
    [Deleted] [bit] NULL,
CONSTRAINT [PK_Depot] PRIMARY KEY CLUSTERED
(
    [DepotId] ASC,
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Depot', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Depot', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Depot', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[Department]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Department](
    [DepartmentId] [int] NOT NULL,
    [DepartmentName] [varchar](50) NOT NULL,
    [SpellCode] [char](20) NULL,
CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
(
    [DepartmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Demolition]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Demolition](
    [DemId] [int] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [Dem_CommodityId] [int] NOT NULL,
    [Dem_PackingId] [int] NOT NULL,
    [proportion] [int] NOT NULL,
CONSTRAINT [PK_Demolition] PRIMARY KEY CLUSTERED
(
    [DemId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Demolition', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拆零药品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Demolition', @level2type=N'COLUMN',@level2name=N'Dem_CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拆零药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Demolition', @level2type=N'COLUMN',@level2name=N'Dem_PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拆零比例' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Demolition', @level2type=N'COLUMN',@level2name=N'proportion'
GO
/****** Object:  Table [dbo].[DataVersion]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DataVersion](
    [EmbranchmentId] [int] NOT NULL,
    [DataVersionId] [int] NOT NULL,
    [Name] [varchar](30) NOT NULL,
    [PreviousVersion] [bigint] NULL,
    [CurVersion] [bigint] NOT NULL,
    [MaxSenderRecord] [int] NULL,
    [OriginDateTime] [datetime] NOT NULL,
    [SynchronizeDateTime] [datetime] NOT NULL,
    [Remark] [varchar](50) NULL,
CONSTRAINT [PK_DataVersion] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [DataVersionId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'版本Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'DataVersionId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'前一个版本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'PreviousVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前版本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'CurVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最大上传记录数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'MaxSenderRecord'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前数据更新的原始时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'OriginDateTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前数据同步的时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'SynchronizeDateTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DataVersion', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[databaseseque]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[databaseseque](
    [id] [int] NOT NULL,
    [database_seques] [varchar](50) NULL,
CONSTRAINT [PK_databaseseque] PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[DataBaseChangeLog]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DataBaseChangeLog](
    [ChangeId] [bigint] NOT NULL,
    [ChangeDate] [datetime] NOT NULL,
    [ChangeContent] [varchar](1000) NOT NULL,
    [UpdateSQL] [varchar](4000) NOT NULL,
CONSTRAINT [PK_DataBaseChangeLog] PRIMARY KEY CLUSTERED
(
    [ChangeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Customer]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Customer](
    [CustomerId] [int] NOT NULL,
    [Name] [varchar](20) NOT NULL,
    [Sex] [char](2) NULL,
    [BirthDay] [datetime] NULL,
    [WorkPlace] [varchar](80) NULL,
    [Address] [varchar](80) NULL,
    [CertificateName] [tinyint] NULL,
    [CertificateNo] [varchar](50) NULL,
    [Phone] [varchar](20) NULL,
    [Mobile] [varchar](20) NULL,
    [Email] [varchar](30) NULL,
    [SpellCode] [varchar](50) NULL,
    [QQ] [varchar](50) NULL,
    [Deleted] [bit] NULL,
    [ProviderId] [smallint] NULL,
    [ProviderName] [varchar](50) NULL,
    [EmbranchmentId] [int] NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [AC] [bit] NULL,
    [AP] [bit] NULL,
    [ASTHMA] [bit] NULL,
    [BRON] [bit] NULL,
    [CAH] [bit] NULL,
    [CSG] [bit] NULL,
    [CXT] [bit] NULL,
    [CXY] [bit] NULL,
    [DHZX] [bit] NULL,
    [DMC] [bit] NULL,
    [DMI] [bit] NULL,
    [DMII] [bit] NULL,
    [DQJKZX] [bit] NULL,
    [HA] [bit] NULL,
    [HP] [bit] NULL,
    [HYYHZC] [bit] NULL,
    [ICAddress] [varchar](50) NULL,
    [IGA] [bit] NULL,
    [IP] [bit] NULL,
    [IU] [bit] NULL,
    [JKJZ] [bit] NULL,
    [KC] [bit] NULL,
    [KR] [bit] NULL,
    [MI] [bit] NULL,
    [OP] [bit] NULL,
    [OTHER] [bit] NULL,
    [OtherInfo] [varchar](50) NULL,
    [PC] [bit] NULL,
    [RA] [bit] NULL,
    [RXZS] [bit] NULL,
    [SP] [bit] NULL,
    [SQFW] [bit] NULL,
    [ST] [bit] NULL,
    [SYFW] [bit] NULL,
    [TJHD] [bit] NULL,
    [TransactTime] [datetime] NULL,
    [UC] [bit] NULL,
    [WGJC] [bit] NULL,
    [WITHOUT] [bit] NULL,
    [YSZX] [bit] NULL,
    [YYDP] [bit] NULL,
    [YYTX] [bit] NULL,
    [YYXCS] [bit] NULL,
    [YZ] [bit] NULL,
    [ZQGFY] [bit] NULL,
    [ZYBJ] [bit] NULL,
CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED
(
    [CustomerId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客户Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'CustomerId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Sex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出生日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'BirthDay'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工作地点' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'WorkPlace'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'家庭住址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Address'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 身份证 1 学生证' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'CertificateName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'证书号码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'CertificateNo'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'电话号码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Phone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'手机号码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Mobile'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'依妹儿' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'Email'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Customer', @level2type=N'COLUMN',@level2name=N'SpellCode'
GO
/****** Object:  Table [dbo].[CreditFile]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CreditFile](
    [EmbranchmentId] [int] NOT NULL,
    [CreditFileId] [int] NOT NULL,
    [CreatorId] [smallint] NULL,
    [CreatorName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [EconomyKind] [varchar](20) NULL,
    [WorkMethod] [varchar](50) NULL,
    [Address] [varchar](100) NULL,
    [CreateDate] [datetime] NULL,
    [Score] [float] NULL,
    [Remark] [varchar](200) NULL,
CONSTRAINT [PK_CreditFile] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CreditFileId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Contact]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Contact](
    [ContactId] [int] NOT NULL,
    [Name] [varchar](50) NULL,
    [WorkPlace] [varchar](50) NULL,
    [Department] [varchar](50) NULL,
    [Post] [varchar](50) NULL,
    [Degree] [varchar](50) NULL,
    [Sex] [varchar](10) NULL,
    [Nation] [varchar](50) NULL,
    [MobilPhone] [varchar](50) NULL,
    [TellPhone] [varchar](50) NULL,
CONSTRAINT [PK_Contact] PRIMARY KEY CLUSTERED
(
    [ContactId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[ConserveDetail]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ConserveDetail](
    [EmbranchmentId] [smallint] NOT NULL,
    [ConserveId] [int] NOT NULL,
    [RowNum] [int] NOT NULL,
    [CreatorId] [int] NULL,
    [BusinessId] [int] NULL,
    [StockId] [int] NULL,
    [CounterId] [int] NULL,
    [CreateDate] [smalldatetime] NOT NULL,
    [BusinessDate] [smalldatetime] NULL,
    [AuditDate] [smalldatetime] NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Amount] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [StockName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [CounterName] [varchar](50) NULL,
    [Remark] [varchar](100) NULL,
    [ZLQK] [varchar](100) NULL,
    [CLYJ] [varchar](100) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
CONSTRAINT [PK_ConserveDetail] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [ConserveId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ConserveDetail', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ConserveDetail', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
/****** Object:  Table [dbo].[Conserve]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Conserve](
    [EmbranchmentId] [smallint] NOT NULL,
    [ConserveId] [int] NOT NULL,
    [ConserveCode] [varchar](50) NOT NULL,
    [ConserveFlowId] [int] NOT NULL,
    [CreateDate] [smalldatetime] NOT NULL,
    [CreatorId] [smallint] NOT NULL,
    [CreatorName] [varchar](50) NOT NULL,
    [BusinessDate] [smalldatetime] NULL,
    [BusinessId] [smallint] NULL,
    [BusinessName] [varchar](50) NULL,
    [AuditDate] [smalldatetime] NULL,
    [AuditorId] [smallint] NULL,
    [AuditorName] [varchar](50) NULL,
    [Status] [tinyint] NULL,
    [Remark] [varchar](100) NULL,
    [EmbranchmentName] [varchar](50) NULL,
CONSTRAINT [PK_Conserve] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [ConserveId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  StoredProcedure [dbo].[commonPaged_Select]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[commonPaged_Select]
(
@Tables varchar(1000),         --需要查询的表
@PrimaryKey varchar(100),      --主键名称
@Sort varchar(200) = NULL,     --排序条件
@PageIndex int = 1,            --第几页
@PageSize int = 10,            --分页大小
@Fields varchar(1000) = '*',   --需要得到的字段
@Filter varchar(1000) = NULL,  --查询条件, 不用加where关键字
@Group varchar(1000) = NULL,   --查询条件, 不用加Group by关键字
@RecordCount int = 0 output    --总记录数
)
AS
SET NOCOUNT ON
/**//*Default Sorting*/
IF @Sort IS NULL OR @Sort = ''
    SET @Sort = @PrimaryKey     --如果默认排序为空,则按照主键进行排序
 
/**//*Find the @PrimaryKey type*/
DECLARE @SortTable varchar(100)--多表联接时排序的表名
DECLARE @SortName varchar(100) --多表联接时排序的字段名
DECLARE @strSortColumn varchar(200)--排序字段,不带DESC或ASC
DECLARE @operator char(2)      --操作符???
DECLARE @type varchar(100)     --主键字段类型
DECLARE @prec int              --主键字段精度
 
/**//*Set sorting variables.*/   
IF CHARINDEX('DESC',@Sort)>0
    BEGIN
        SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
        SET @operator = '<'

    END
ELSE
    BEGIN
         IF CHARINDEX('ASC', @Sort) > 0
             SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
         ELSE
             SET @strSortColumn = @Sort

         SET @operator = '>'
    END
 
 
IF CHARINDEX('.', @strSortColumn) > 0  --多表联接时可能会按照其中某个表的某个字段排序
     BEGIN
         SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
         SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
     END
ELSE
     BEGIN
         SET @SortTable = @Tables
         SET @SortName = @strSortColumn
     END
 
SELECT @type=t.name, @prec=c.prec       --获得字段的类型和精度
FROM sysobjects o
JOIN syscolumns c on o.id=c.id
JOIN systypes t on c.xusertype=t.xusertype
WHERE o.name = @SortTable AND c.name = @SortName
 
IF CHARINDEX('char', @type) > 0
    SET @type = @type + '(' + CAST(@prec AS varchar) + ')'  --如果字段为char类型,则转换为varchar
 
DECLARE @strPageSize varchar(50)        --分页大小
DECLARE @strStartRow varchar(50)        --页起始行
DECLARE @strFilter varchar(1000)        --过滤条件
DECLARE @strSimpleFilter varchar(1000)
DECLARE @strGroup varchar(1000)         --group条件
 
/**//*Default Page Number*/
IF @PageIndex < 1
     SET @PageIndex = 1
 
/**//*Set paging variables.*/
SET @strPageSize = CAST(@PageSize AS varchar(50))
SET @strStartRow = CAST(((@PageIndex - 1)*@PageSize + 1) AS varchar(50))
 
/**//*Set filter & group variables.*/
IF @Filter IS NOT NULL AND @Filter != ''
     BEGIN
         SET @strFilter = ' WHERE ' + @Filter + ' '
         SET @strSimpleFilter = ' AND ' + @Filter + ' '
     END
ELSE
     BEGIN
        SET @strSimpleFilter = ''
        SET @strFilter = ''
    END
IF @Group IS NOT NULL AND @Group != ''
    SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
    SET @strGroup = ''

/**//*Get rows count.*/
DECLARE @str_Count_SQL nvarchar(500)
SET @str_Count_SQL= 'SELECT @TotalCount=count(*) FROM ' + @Tables + @strFilter   --根据条件获得记录数
EXEC sp_executesql @str_Count_SQL,N'@TotalCount int=0 output',@RecordCount output


   
/**//*Execute dynamic query*/   
IF @Sort = @PrimaryKey
    BEGIN
        EXEC(
        '
        DECLARE @SortColumn ' + @type + '
        SET ROWCOUNT ' + @strStartRow + '
        SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
        SET ROWCOUNT ' + @strPageSize + '
        SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + '= @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
        '
        )
    END
ELSE
    BEGIN
        if (@Sort=@PrimaryKey +' DESC')
        begin
            EXEC(
            '
            DECLARE @SortColumn ' + @type + '
            DECLARE @SortNullValue ' + @type + '
            DECLARE @PrimaryKeyStartValue int
            SET @SortNullValue=CAST('''' as '+ @type +')
            SET ROWCOUNT ' + @strStartRow + '
            SELECT @SortColumn= isNull(' + @strSortColumn + ',@SortNullValue), @PrimaryKeyStartValue = '+ @PrimaryKey +' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' +  @PrimaryKey +' Desc
            SET ROWCOUNT ' + @strPageSize + '
            SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE (isNull(' + @strSortColumn+',@SortNullValue)' + @operator + ' @SortColumn or (isNull(' + @strSortColumn+',@SortNullValue)=@SortColumn and '+ @PrimaryKey +'<=@PrimaryKeyStartValue))' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @PrimaryKey +' Desc
            '
            )
        end
        else
        begin
            EXEC(
            '
            DECLARE @SortColumn ' + @type + '
            DECLARE @SortNullValue ' + @type + '
            DECLARE @PrimaryKeyStartValue int
            SET @SortNullValue=CAST('''' as '+ @type +')
            SET ROWCOUNT ' + @strStartRow + '
            SELECT @SortColumn= isNull(' + @strSortColumn + ',@SortNullValue), @PrimaryKeyStartValue = '+ @PrimaryKey +' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ','+ @PrimaryKey +' Desc
            SET ROWCOUNT ' + @strPageSize + '
            SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE (isNull(' + @strSortColumn+',@SortNullValue)' + @operator + ' @SortColumn or (isNull(' + @strSortColumn+',@SortNullValue)=@SortColumn and '+ @PrimaryKey +'<=@PrimaryKeyStartValue))' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ','+ @PrimaryKey +' Desc
            '
            )
        end
    END
SET NOCOUNT OFF
SET QUOTED_IDENTIFIER OFF
GO
/****** Object:  StoredProcedure [dbo].[common_IsFieldsExist]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--通用判断语句,判断在指定的表里有没有存在满足条件的记录
CREATE PROCEDURE [dbo].[common_IsFieldsExist]
@TableName   varchar(255),       -- 表名
@WhereCondition  varchar(1500) = 'DELETED=1',  -- 查询条件 (注意: 不要加 where)
@ReturnValue  bit out
AS
declare @strSQL   varchar(5000)       -- 主语句
select @strSQL='DECLARE @count int  '
select @strSQL=@strSQL+'SELECT @count= Count(*) from '+@TableName+' WHERE '+@WhereCondition
Exec(@strSQL)--执行存储过程
GO
/****** Object:  Table [dbo].[CommodityUnit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityUnit](
    [UnitId] [smallint] NOT NULL,
    [UnitName] [varchar](10) NOT NULL,
CONSTRAINT [PK_CommodityUnit] PRIMARY KEY CLUSTERED
(
    [UnitId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[CommodityStockLimit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityStockLimit](
    [DepotId] [int] NOT NULL,
    [EmbranchmentId] [int] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [Amount] [decimal](18, 0) NULL,
    [UpperLimit] [decimal](18, 4) NULL,
    [LowLimit] [decimal](18, 4) NULL,
    [AdjQty] [decimal](18, 4) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [DepotName] [varchar](50) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
CONSTRAINT [PK_CommodityStockLimit] PRIMARY KEY CLUSTERED
(
    [DepotId] ASC,
    [EmbranchmentId] ASC,
    [CommodityId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'DepotId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前库存数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'库存上限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'UpperLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'库存下限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'LowLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'建议数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStockLimit', @level2type=N'COLUMN',@level2name=N'AdjQty'
GO
/****** Object:  Table [dbo].[CommodityStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityStock](
    [DepotId] [int] NOT NULL,
    [EmbranchmentId] [smallint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [InOrder] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [InstockDate] [datetime] NOT NULL,
    [CostPrice] [decimal](18, 4) NOT NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NOT NULL,
    [FactAmount] [decimal](18, 4) NULL,
    [Odds] [decimal](18, 4) NULL,
    [SumCost] [decimal](18, 4) NULL,
    [SumRetail] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [TXM] [varchar](60) NULL,
    [CustomCode] [varchar](50) NULL,
    [CurrentRetailPrice] [decimal](18, 4) NULL,
    [IsChinese] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [PreMemberPrice] [decimal](18, 4) NULL,
    [CurrentMemberPrice] [decimal](18, 4) NULL,
    [Medicare] [tinyint] NULL,
    [UpperLimit] [int] NULL,
    [LowerLimit] [int] NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
    [A] [bit] NULL,
    [B] [bit] NULL,
    [C] [bit] NULL,
    [D] [bit] NULL,
CONSTRAINT [PK_CommodityStock] PRIMARY KEY CLUSTERED
(
    [DepotId] ASC,
    [EmbranchmentId] ASC,
    [CommodityId] ASC,
    [InOrder] ASC,
    [PackingId] ASC,
    [BatchCode] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'DepotId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库顺序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'InOrder'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'InstockDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'小计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'SumCost'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'SumRetail'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前零售价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CurrentRetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是不是中药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'IsChinese'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于各社区店从服务器上根据版本号下拉库存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'DataVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'PreMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CurrentMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityStock', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
/****** Object:  Table [dbo].[CommodityStandard]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityStandard](
    [CommodityId] [int] NOT NULL,
    [CatalogId] [int] NOT NULL,
    [GeneralName] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [EnglishName] [varchar](200) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [DoseType] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [Gmp] [bit] NULL,
    [Otc] [bit] NULL,
    [Import] [bit] NULL,
    [Medicare] [tinyint] NULL,
    [TradePrice] [money] NULL,
    [RetailPrice] [money] NULL,
    [UnifyCode] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [Guid] [uniqueidentifier] NULL,
    [DataVersion] [bigint] NULL,
    [Disabled] [bit] NULL,
    [ZhongChengYao] [bit] NULL,
    [ZhongYaoCai] [bit] NULL,
    [ZhongYaoCaiContent] [varchar](100) NULL,
    [ZhongYaoYinPian] [bit] NULL,
    [ZhongYaoYinPianContent] [varchar](100) NULL,
    [HXYZJ] [bit] NULL,
    [HXYLY] [bit] NULL,
    [KSS] [bit] NULL,
    [SHYP] [bit] NULL,
    [SWZP] [bit] NULL,
    [SWZPCYM] [bit] NULL,
    [SWZPCXYYP] [bit] NULL,
    [SWZPXZDYP] [bit] NULL,
    [MZYP] [bit] NULL,
    [MZYPContent] [varchar](100) NULL,
    [JSYP] [bit] NULL,
    [JSYPContent] [varchar](100) NULL,
    [YLYDXYP] [bit] NULL,
    [YLYDXYPContent] [varchar](100) NULL,
    [FSXYP] [bit] NULL,
    [YM] [bit] NULL,
    [TXM] [varchar](60) NULL,
    [BS] [int] NULL,
    [IsCommodity] [bit] NULL,
    [RetailDataVersion] [bigint] NULL,
    [Reports] [tinyint] NULL,
    [Deleted] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [MemberPrice] [money] NULL,
    [UpperLimit] [int] NULL,
    [LowerLimit] [int] NULL,
    [SFDAId] [int] NULL,
    [TableView] [varchar](50) NULL,
    [UniCodes] [varchar](100) NULL,
    [StandCode] [varchar](100) NULL,
    [CommodityType] [varchar](50) NULL,
    [GJ] [varchar](50) NULL,
CONSTRAINT [PK_CommodityStandard] PRIMARY KEY CLUSTERED
(
    [CommodityId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[CommodityRelation]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityRelation](
    [NewCommodityId] [int] NULL,
    [NewPackingId] [int] NULL,
    [NewGeneralName] [varchar](100) NULL,
    [NewProductName] [varchar](100) NULL,
    [NewSpec] [varchar](200) NULL,
    [NewProducingArea] [varchar](100) NULL,
    [NewDoseType] [varchar](50) NULL,
    [NewAuthorizeCode] [varchar](100) NULL,
    [NewSpellCode] [varchar](100) NULL,
    [NewCustomCode] [varchar](50) NULL,
    [NewUnit] [varchar](50) NULL,
    [NewTXM] [varchar](60) NULL,
    [OldCommodityId] [int] NULL,
    [OldPackingId] [int] NULL,
    [OldGeneralName] [varchar](100) NULL,
    [OldProductName] [varchar](100) NULL,
    [OldSpec] [varchar](200) NULL,
    [OldProducingArea] [varchar](100) NULL,
    [OldDoseType] [varchar](50) NULL,
    [OldAuthorizeCode] [varchar](100) NULL,
    [OldSpellCode] [varchar](100) NULL,
    [OldCustomCode] [varchar](50) NULL,
    [OldTXM] [varchar](60) NULL,
    [OldUnit] [varchar](50) NULL,
    [OldPackingName] [varchar](50) NULL,
    [OLdRetailPrice] [money] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'NewPackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldCommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldPackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'通用名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldGeneralName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldProductName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldSpec'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产地' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldProducingArea'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'剂型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldDoseType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批准文号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldAuthorizeCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拼音码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldSpellCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldCustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'条形码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldTXM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldUnit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityRelation', @level2type=N'COLUMN',@level2name=N'OldPackingName'
GO
/****** Object:  Table [dbo].[CommodityOld]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityOld](
    [CommodityId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [CatalogId] [int] NOT NULL,
    [GeneralName] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [EnglishName] [varchar](200) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [DoseType] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [Gmp] [bit] NULL,
    [Otc] [bit] NULL,
    [Import] [bit] NULL,
    [Medicare] [tinyint] NULL,
    [TradePrice] [money] NULL,
    [RetailPrice] [money] NULL,
    [UnifyCode] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [Guid] [uniqueidentifier] NULL,
    [DataVersion] [bigint] NULL,
    [Disabled] [bit] NULL,
    [ZhongChengYao] [bit] NULL,
    [ZhongYaoCai] [bit] NULL,
    [ZhongYaoCaiContent] [varchar](100) NULL,
    [ZhongYaoYinPian] [bit] NULL,
    [ZhongYaoYinPianContent] [varchar](100) NULL,
    [HXYZJ] [bit] NULL,
    [HXYLY] [bit] NULL,
    [KSS] [bit] NULL,
    [SHYP] [bit] NULL,
    [SWZP] [bit] NULL,
    [SWZPCYM] [bit] NULL,
    [SWZPCXYYP] [bit] NULL,
    [SWZPXZDYP] [bit] NULL,
    [MZYP] [bit] NULL,
    [MZYPContent] [varchar](100) NULL,
    [JSYP] [bit] NULL,
    [JSYPContent] [varchar](100) NULL,
    [YLYDXYP] [bit] NULL,
    [YLYDXYPContent] [varchar](100) NULL,
    [FSXYP] [bit] NULL,
    [YM] [bit] NULL,
    [TXM] [varchar](60) NULL,
    [BS] [int] NULL,
    [IsCommodity] [bit] NULL,
    [RetailDataVersion] [bigint] NULL,
    [Reports] [tinyint] NULL,
    [Deleted] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [MemberPrice] [money] NULL,
    [UpperLimit] [int] NULL,
    [LowerLimit] [int] NULL,
    [SFDAId] [int] NULL,
    [TableView] [varchar](50) NULL,
    [UniCodes] [varchar](100) NULL,
    [StandCode] [varchar](100) NULL,
    [CommodityType] [varchar](50) NULL,
    [GJ] [varchar](50) NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
CONSTRAINT [PK_CommodityOld] PRIMARY KEY CLUSTERED
(
    [CommodityId] ASC,
    [PackingId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报警上限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'UpperLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报警下限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'LowerLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国药局中药品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'SFDAId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国产药品还是其它的药品' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'TableView'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'唯一编码(目前用批准文号)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'UniCodes'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'以后国家出的唯一编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'StandCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'CommodityType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'厂商国家' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'GJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityOld', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
/****** Object:  Table [dbo].[CommodityMultiUnit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityMultiUnit](
    [CommodityId] [int] NOT NULL,
    [Unit] [varchar](10) NOT NULL,
CONSTRAINT [PK_CommodityMultiUnit] PRIMARY KEY CLUSTERED
(
    [CommodityId] ASC,
    [Unit] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[CommodityExtra]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CommodityExtra](
    [CommodityId] [int] NOT NULL,
CONSTRAINT [PK_CommodityExtra] PRIMARY KEY CLUSTERED
(
    [CommodityId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CommodityChangeLog]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityChangeLog](
    [CommodityId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [Date] [datetime] NOT NULL,
    [Action] [varchar](50) NOT NULL,
    [PreCommodity] [varchar](2000) NOT NULL,
    [CurCommodity] [varchar](2000) NOT NULL,
    [Log] [varchar](5000) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityChangeLog', @level2type=N'COLUMN',@level2name=N'Date'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'操作' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityChangeLog', @level2type=N'COLUMN',@level2name=N'Action'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原商品信息' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityChangeLog', @level2type=N'COLUMN',@level2name=N'PreCommodity'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前商品信息' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityChangeLog', @level2type=N'COLUMN',@level2name=N'CurCommodity'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityChangeLog', @level2type=N'COLUMN',@level2name=N'Log'
GO
/****** Object:  Table [dbo].[CommodityBcrUser]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityBcrUser](
    [EmbranchmentId] [smallint] NOT NULL,
    [CommodityBcrUserId] [int] NOT NULL,
    [XD] [bit] NULL,
    [YZ] [bit] NULL,
    [YB] [bit] NULL,
    [YLWSJG] [bit] NULL,
    [SCQYJYQY] [bit] NULL,
    [GR] [bit] NULL,
    [BM] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [EmbranchmentBM] [varchar](50) NULL,
    [EmbranchmentPhone] [varchar](50) NULL,
    [BGDate] [datetime] NULL,
    [UserName] [varchar](50) NULL,
    [UserSex] [varchar](20) NULL,
    [CSDate] [datetime] NULL,
    [MZ] [varchar](50) NULL,
    [TZ] [float] NULL,
    [LXFS] [varchar](50) NULL,
    [JZYPBLFY] [varchar](10) NULL,
    [JWYBLFY] [varchar](10) NULL,
    [BLFYSJMC] [varchar](50) NULL,
    [BLFYSJFSSJ] [datetime] NULL,
    [BLH] [varchar](50) NULL,
    [BLFYMS] [varchar](200) NULL,
    [BLFYJG] [varchar](10) NULL,
    [BLFYJGBX] [varchar](50) NULL,
    [BLFYJGZJSY] [varchar](50) NULL,
    [BLFYJGSWDate] [datetime] NULL,
    [YHJB] [varchar](100) NULL,
    [DYHJBDYX] [varchar](20) NULL,
    [DYHJBDYXBX] [varchar](50) NULL,
    [GNYWLSBLFY] [varchar](10) NULL,
    [GWYWLSBLFY] [varchar](10) NULL,
    [GLXPJBGR] [varchar](20) NULL,
    [GLXPJBGRQM] [varchar](20) NULL,
    [GLXPJBGDW] [varchar](20) NULL,
    [GLXPJBGDWQM] [varchar](50) NULL,
    [GLXPJSJJG] [varchar](20) NULL,
    [GLXPJSJJGQM] [varchar](50) NULL,
    [GLXPJJCZX] [varchar](20) NULL,
    [GLXPJJCZXQM] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [Deleted] [bit] NULL,
CONSTRAINT [PK_CommodityBcrUser] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CommodityBcrUserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'患者ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'CommodityBcrUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'新的("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'XD'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'严重("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'YZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'一般("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'YB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医疗卫生机构("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'YLWSJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产企业经营企业("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'SCQYJYQY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'个人("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'EmbranchmentName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构部门' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'EmbranchmentBM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构电话' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'EmbranchmentPhone'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BGDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'患者姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'UserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别("男""女")' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'UserSex'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出生日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'CSDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'民族' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'MZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'体重' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'TZ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'联系方式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'LXFS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'家族药品不良反应/事件("有""无""不详")' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'JZYPBLFY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'既往药品不良反应/事件情况("有""无""不详")' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'JWYBLFY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应事件名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYSJMC'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件发生时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYSJFSSJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'病历号/门诊号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLH'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件过程描述(包括症状、体征、临床试验等)及处理情况' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYMS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件的结果:治愈、好转、有后遗症、死亡' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件的结果中的表现' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYJGBX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件的结果中的直接死因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYJGZJSY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'不良反应/事件的结果中的死亡时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'BLFYJGSWDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原患疾病' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'YHJB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'对原患疾病的影响:不明显、病程延长、病情加重、导致后遗症、导致死亡' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'DYHJBDYX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'对原患疾病的影响中的表现' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'DYHJBDYXBX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国内有无类似不良反应:有、无、不详' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GNYWLSBLFY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国外有无类似不良反应:有、无、不详' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GWYWLSBLFY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价报告人:肯定、很可能、可能、可能无关、待评价、无法评价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJBGR'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价报告人签名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJBGRQM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价报告单位:肯定、很可能、可能、可能无关、待评价、无法评价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJBGDW'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价报告单位签名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJBGDWQM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价省级药品不良反应监测机构:肯定、很可能、可能、可能无关、待评价、无法评价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJSJJG'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价省级药品不良反应监测机构签名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJSJJGQM'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价国家药品不良反应监测中心:肯定、很可能、可能、可能无关、待评价、无法评价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJJCZX'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关联性评价国家药品不良反应监测中心签名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrUser', @level2type=N'COLUMN',@level2name=N'GLXPJJCZXQM'
GO
/****** Object:  Table [dbo].[CommodityBcrRecord]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityBcrRecord](
    [EmbranchmentId] [smallint] NOT NULL,
    [CommodityBcrUserId] [int] NOT NULL,
    [RowNum] [int] NOT NULL,
    [IsHYYP] [bit] NULL,
    [CommodityId] [int] NULL,
    [GeneralName] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [ProducingArea] [varchar](100) NULL,
    [BatchCode] [varchar](50) NULL,
    [YFYL] [varchar](50) NULL,
    [YYKSSJ] [datetime] NULL,
    [YYJSSJ] [datetime] NULL,
    [YY] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [Deleted] [bit] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
CONSTRAINT [PK_CommodityBcrRecord] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CommodityBcrUserId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支机构ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'患者ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'CommodityBcrUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否是怀疑药品("1"是"0"否)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'IsHYYP'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'GeneralName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产厂商' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'ProducingArea'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用法用量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'YFYL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用药开始时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'YYKSSJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用药结束时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'YYJSSJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用药原因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'YY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CommodityBcrRecord', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
/****** Object:  Table [dbo].[CommodityAudit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CommodityAudit](
    [EmbranchmentId] [int] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [NewCommodityId] [int] NOT NULL,
    [EmbranchmentName] [varchar](100) NOT NULL,
    [CatalogId] [int] NOT NULL,
    [GeneralName] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [EnglishName] [varchar](200) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [DoseType] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [Gmp] [bit] NULL,
    [Otc] [bit] NULL,
    [Import] [bit] NULL,
    [Medicare] [tinyint] NULL,
    [TradePrice] [money] NULL,
    [RetailPrice] [money] NULL,
    [UnifyCode] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [Guid] [uniqueidentifier] NULL,
    [DataVersion] [bigint] NULL,
    [Disabled] [bit] NULL,
    [ZhongChengYao] [bit] NULL,
    [ZhongYaoCai] [bit] NULL,
    [ZhongYaoCaiContent] [varchar](100) NULL,
    [ZhongYaoYinPian] [bit] NULL,
    [ZhongYaoYinPianContent] [varchar](100) NULL,
    [HXYZJ] [bit] NULL,
    [HXYLY] [bit] NULL,
    [KSS] [bit] NULL,
    [SHYP] [bit] NULL,
    [SWZP] [bit] NULL,
    [SWZPCYM] [bit] NULL,
    [SWZPCXYYP] [bit] NULL,
    [SWZPXZDYP] [bit] NULL,
    [MZYP] [bit] NULL,
    [MZYPContent] [varchar](100) NULL,
    [JSYP] [bit] NULL,
    [JSYPContent] [varchar](100) NULL,
    [YLYDXYP] [bit] NULL,
    [YLYDXYPContent] [varchar](100) NULL,
    [FSXYP] [bit] NULL,
    [YM] [bit] NULL,
    [TXM] [varchar](60) NULL,
    [BS] [int] NULL,
    [IsCommodity] [bit] NULL,
    [RetailDataVersion] [bigint] NULL,
    [Reports] [tinyint] NULL,
    [Deleted] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
CONSTRAINT [PK_CommodityAudit] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CommodityId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Commodity]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Commodity](
    [CommodityId] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [CatalogId] [int] NOT NULL,
    [GeneralName] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [EnglishName] [varchar](200) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [DoseType] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [Gmp] [bit] NULL,
    [Otc] [bit] NULL,
    [Import] [bit] NULL,
    [Medicare] [tinyint] NULL,
    [TradePrice] [money] NULL,
    [RetailPrice] [money] NULL,
    [UnifyCode] [varchar](50) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [Guid] [uniqueidentifier] NULL,
    [DataVersion] [bigint] NULL,
    [Disabled] [bit] NULL,
    [ZhongChengYao] [bit] NULL,
    [ZhongYaoCai] [bit] NULL,
    [ZhongYaoCaiContent] [varchar](100) NULL,
    [ZhongYaoYinPian] [bit] NULL,
    [ZhongYaoYinPianContent] [varchar](100) NULL,
    [HXYZJ] [bit] NULL,
    [HXYLY] [bit] NULL,
    [KSS] [bit] NULL,
    [SHYP] [bit] NULL,
    [SWZP] [bit] NULL,
    [SWZPCYM] [bit] NULL,
    [SWZPCXYYP] [bit] NULL,
    [SWZPXZDYP] [bit] NULL,
    [MZYP] [bit] NULL,
    [MZYPContent] [varchar](100) NULL,
    [JSYP] [bit] NULL,
    [JSYPContent] [varchar](100) NULL,
    [YLYDXYP] [bit] NULL,
    [YLYDXYPContent] [varchar](100) NULL,
    [FSXYP] [bit] NULL,
    [YM] [bit] NULL,
    [TXM] [varchar](60) NULL,
    [BS] [int] NULL,
    [IsCommodity] [bit] NULL,
    [RetailDataVersion] [bigint] NULL,
    [Reports] [tinyint] NULL,
    [Deleted] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [MemberPrice] [money] NULL,
    [UpperLimit] [int] NULL,
    [LowerLimit] [int] NULL,
    [SFDAId] [int] NULL,
    [TableView] [varchar](50) NULL,
    [UniCodes] [varchar](100) NULL,
    [StandCode] [varchar](100) NULL,
    [CommodityType] [varchar](50) NULL,
    [GJ] [varchar](50) NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
    [A] [varchar](100) NULL,
    [B] [varchar](100) NULL,
    [C] [varchar](100) NULL,
    [D] [varchar](100) NULL,
CONSTRAINT [PK_Commodity] PRIMARY KEY CLUSTERED
(
    [CommodityId] ASC,
    [PackingId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报警上限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'UpperLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报警下限' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'LowerLimit'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国药局中药品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'SFDAId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'国产药品还是其它的药品' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'TableView'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'唯一编码(目前用批准文号)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'UniCodes'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'以后国家出的唯一编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'StandCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'CommodityType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'厂商国家' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'GJ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Commodity', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
/****** Object:  Table [dbo].[BillDetailChargeCard]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailChargeCard](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CardId] [int] NULL,
    [CardCode] [varchar](50) NULL,
    [CustomerId] [int] NULL,
    [CustomerName] [varchar](50) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [IsCZ] [tinyint] NULL,
    [PreBalance] [decimal](18, 4) NULL,
    [AfterBalance] [decimal](18, 4) NULL,
    [CZEmbranchmentId] [smallint] NULL,
    [CZEmbranchmentName] [varchar](50) NULL,
    [ChargeDate] [smalldatetime] NULL,
    [Status] [tinyint] NULL,
CONSTRAINT [PK_BillDetailCharge] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BillDetailBatchCodeAdjust]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailBatchCodeAdjust](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [PreBatchCode] [varchar](50) NOT NULL,
    [PreProductDate] [smalldatetime] NULL,
    [PreInvalidateDate] [smalldatetime] NULL,
    [CurBatchCode] [varchar](50) NOT NULL,
    [CurProductDate] [smalldatetime] NULL,
    [CurInvalidateDate] [smalldatetime] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](50) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
CONSTRAINT [PK_BillDetailBatchCodeAdjust] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailBatchCodeAdjust] ON [dbo].[BillDetailBatchCodeAdjust]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'PreBatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'PreProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'PreInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'现批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'CurBatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'现生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'CurProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'现有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'CurInvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBatchCodeAdjust', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
/****** Object:  Table [dbo].[ApplicationRole]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ApplicationRole](
    [ApplicationId] [int] NOT NULL,
    [RoleId] [int] NOT NULL,
CONSTRAINT [ApplicationRole_PK] PRIMARY KEY CLUSTERED
(
    [ApplicationId] ASC,
    [RoleId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ApplicationRole_IDX1] ON [dbo].[ApplicationRole]
(
    [RoleId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Application]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Application](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [varchar](255) NOT NULL,
    [LoweredName] [varchar](255) NOT NULL,
    [Description] [varchar](255) NULL,
CONSTRAINT [Application_PK] PRIMARY KEY NONCLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
CONSTRAINT [Application_UC1] UNIQUE NONCLUSTERED
(
    [LoweredName] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[Account]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Account](
    [AccountId] [int] NOT NULL,
    [ClassId] [varchar](30) NOT NULL,
    [ParentId] [varchar](30) NOT NULL,
    [ChildNumber] [int] NOT NULL,
    [ChildCount] [int] NOT NULL,
    [Name] [varchar](80) NOT NULL,
    [Alias] [varchar](30) NOT NULL,
    [SerialNumber] [varchar](26) NOT NULL,
    [Comment] [varchar](256) NOT NULL,
    [CurTotal] [numeric](18, 4) NOT NULL,
    [InitTotal] [numeric](18, 4) NOT NULL,
    [SysFlag] [char](2) NOT NULL,
    [Sysrow] [bit] NOT NULL,
    [Deleted] [bit] NOT NULL,
    [PinYin] [varchar](80) NOT NULL,
    [Total01] [numeric](18, 4) NOT NULL,
    [Total02] [numeric](18, 4) NOT NULL,
    [Total03] [numeric](18, 4) NOT NULL,
    [Total04] [numeric](18, 4) NOT NULL,
    [Total05] [numeric](18, 4) NOT NULL,
    [Total06] [numeric](18, 4) NOT NULL,
    [Total07] [numeric](18, 4) NOT NULL,
    [Total08] [numeric](18, 4) NOT NULL,
    [Total09] [numeric](18, 4) NOT NULL,
    [Total10] [numeric](18, 4) NOT NULL,
    [Total11] [numeric](18, 4) NOT NULL,
    [Total12] [numeric](18, 4) NOT NULL,
    [Bqtotal] [numeric](18, 4) NOT NULL,
    [Sumtotal] [numeric](18, 4) NOT NULL,
    [CashAudit] [bit] NOT NULL,
    [Direction] [bit] NOT NULL,
    [ModifyDate] [binary](8) NULL,
CONSTRAINT [PK_Account] PRIMARY KEY CLUSTERED
(
    [AccountId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BillDetailAdjustRetailPrice]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailAdjustRetailPrice](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NULL,
    [PreRetailPrice] [decimal](18, 4) NOT NULL,
    [CurRetailPrice] [decimal](18, 4) NOT NULL,
    [Amount] [decimal](18, 4) NOT NULL,
    [RetailPriceDifference] [decimal](18, 4) NOT NULL,
    [SumPostRetailPrice] [decimal](18, 4) NOT NULL,
    [SumCurRetailPrice] [decimal](18, 4) NOT NULL,
    [SumRetailPriceDifference] [decimal](18, 4) NOT NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [PreMemberPrice] [decimal](18, 4) NULL,
    [CurMemberPrice] [decimal](18, 4) NULL,
CONSTRAINT [PK_BillDetailAdjustRetailPrice] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE NONCLUSTERED INDEX [IX_BillDetailAdjustRetailPrice] ON [dbo].[BillDetailAdjustRetailPrice]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustRetailPrice', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustRetailPrice', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustRetailPrice', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
/****** Object:  Table [dbo].[BillDetailRetail]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailRetail](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [CostPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [Medicare] [int] NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
    [CardDiscount] [decimal](18, 4) NULL,
CONSTRAINT [PK_BillDetailRetail] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailRetail] ON [dbo].[BillDetailRetail]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'CostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetail', @level2type=N'COLUMN',@level2name=N'CardDiscount'
GO
/****** Object:  Table [dbo].[BillDetailReportSpill]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailReportSpill](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [ProducingArea] [varchar](100) NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [DoseTypeName] [varchar](50) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](50) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [SpellCode] [varchar](100) NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [IsChinese] [bit] NULL,
    [Remark] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
CONSTRAINT [PK_BillDetailReportSpill] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailReportSpill] ON [dbo].[BillDetailReportSpill]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'RowNum'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportSpill', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
/****** Object:  Table [dbo].[BillDetailReportLoss]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailReportLoss](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [ValidateDate] [datetime] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](50) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
CONSTRAINT [PK_BillDetailReportLoss] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailReportLoss] ON [dbo].[BillDetailReportLoss]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailReportLoss', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
/****** Object:  Table [dbo].[BillDetailRetailReturn]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailRetailReturn](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
CONSTRAINT [PK_BillDetailRetailReturn] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailRetailReturn] ON [dbo].[BillDetailRetailReturn]
(
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'返利' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailRetailReturn', @level2type=N'COLUMN',@level2name=N'ReturnPayCard'
GO
/****** Object:  Table [dbo].[BillDetailDemolition]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailDemolition](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [DemId] [int] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [InOrder] [int] NOT NULL,
    [PackingId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [InstockDate] [datetime] NULL,
    [CostPrice] [decimal](18, 4) NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [FactAmount] [decimal](18, 4) NULL,
    [Odds] [decimal](18, 4) NULL,
    [SumCost] [decimal](18, 4) NULL,
    [SumRetail] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [TXM] [varchar](60) NULL,
    [CustomCode] [varchar](50) NULL,
    [CurrentRetailPrice] [decimal](18, 4) NULL,
    [IsChinese] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [DataVersion] [bigint] NULL,
    [PreMemberPrice] [decimal](18, 4) NULL,
    [CurrentMemberPrice] [decimal](18, 4) NULL,
    [Medicare] [tinyint] NULL,
    [UpperLimit] [int] NULL,
    [LowerLimit] [int] NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [Dem_CommodityId] [int] NULL,
    [Dem_InOrder] [int] NULL,
    [Dem_PackingId] [int] NULL,
    [Dem_BatchCode] [varchar](50) NULL,
    [Dem_ProductDate] [datetime] NULL,
    [Dem_InvalidateDate] [datetime] NULL,
    [Dem_InstockDate] [datetime] NULL,
    [Dem_CostPrice] [decimal](18, 4) NULL,
    [Dem_RetailPrice] [decimal](18, 4) NULL,
    [Dem_Amount] [decimal](18, 4) NULL,
    [Dem_FactAmount] [decimal](18, 4) NULL,
    [Dem_Odds] [decimal](18, 4) NULL,
    [Dem_SumCost] [decimal](18, 4) NULL,
    [Dem_SumRetail] [decimal](18, 4) NULL,
    [Dem_CommodityName] [varchar](100) NULL,
    [Dem_Spec] [varchar](200) NULL,
    [Dem_DoseTypeName] [varchar](50) NULL,
    [Dem_ProducingArea] [varchar](100) NULL,
    [Dem_Unit] [varchar](50) NULL,
    [Dem_AuthorizeCode] [varchar](100) NULL,
    [Dem_SpellCode] [varchar](100) NULL,
    [Dem_TXM] [varchar](60) NULL,
    [Dem_CustomCode] [varchar](50) NULL,
    [Dem_CurrentRetailPrice] [decimal](18, 4) NULL,
    [Dem_IsChinese] [bit] NULL,
    [Dem_CounterId] [tinyint] NULL,
    [Dem_CounterName] [varchar](50) NULL,
    [Dem_DataVersion] [bigint] NULL,
    [Dem_PreMemberPrice] [decimal](18, 4) NULL,
    [Dem_CurrentMemberPrice] [decimal](18, 4) NULL,
    [Dem_Medicare] [tinyint] NULL,
    [Dem_UpperLimit] [int] NULL,
    [Dem_LowerLimit] [int] NULL,
    [Dem_PackingName] [varchar](50) NULL,
    [Dem_CustomStr] [varchar](100) NULL,
    [Dem_ProductName] [varchar](100) NULL,
    [proportion] [int] NULL,
CONSTRAINT [PK_BillDetailDemolition] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库顺序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'InOrder'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'InstockDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'小计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'SumCost'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'SumRetail'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前零售价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CurrentRetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是不是中药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'IsChinese'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于各社区店从服务器上根据版本号下拉库存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'DataVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'PreMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CurrentMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CommodityId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库顺序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_InOrder'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'商品批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_InstockDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'小计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_SumCost'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_SumRetail'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前零售价格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CurrentRetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是不是中药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_IsChinese'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于各社区店从服务器上根据版本号下拉库存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_DataVersion'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'原会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_PreMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CurrentMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保(0-非,1-市,2-矿市,3-矿)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'Dem_CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'拆零比例' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailDemolition', @level2type=N'COLUMN',@level2name=N'proportion'
GO
/****** Object:  Table [dbo].[BillDetailSaleReturn]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailSaleReturn](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [ValidateDate] [datetime] NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CustomCode] [varchar](50) NULL,
CONSTRAINT [PK_BillDetailSaleReturn] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailSaleReturn] ON [dbo].[BillDetailSaleReturn]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleReturn', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
/****** Object:  Table [dbo].[BillDetailSaleOutStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailSaleOutStock](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NULL,
    [BatchCode] [varchar](50) NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [ValidateDate] [datetime] NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CustomCode] [varchar](50) NULL,
CONSTRAINT [PK_BillDetailSaleOutStock] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailSaleOutStock] ON [dbo].[BillDetailSaleOutStock]
(
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailSaleOutStock', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
/****** Object:  Table [dbo].[Catalog]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Catalog](
    [Id] [int] NOT NULL,
    [CatalogType] [int] NOT NULL,
    [ParentId] [int] NULL,
    [CatalogCode] [varchar](50) NULL,
    [CatalogName] [varchar](50) NULL,
    [CatalogNumber] [varchar](50) NULL,
    [CatalogComment] [varchar](50) NULL,
    [Class] [int] NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
    [CatalogTypeStr] [varchar](50) NULL,
CONSTRAINT [PK_Catalog] PRIMARY KEY CLUSTERED
(
    [Id] ASC,
    [CatalogType] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1,药品 2,供应商 3,客户' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Catalog', @level2type=N'COLUMN',@level2name=N'CatalogType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Catalog', @level2type=N'COLUMN',@level2name=N'Class'
GO
/****** Object:  Table [dbo].[CardTypeDiscountAndPoints]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CardTypeDiscountAndPoints](
    [EmbranchmentId] [smallint] NOT NULL,
    [CardTypeId] [int] NOT NULL,
    [RowNum] [int] NOT NULL,
    [LogoType] [tinyint] NULL,
    [MoneyBegin] [decimal](18, 4) NULL,
    [MoneyEnd] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [PointsBase] [int] NULL,
    [Points] [int] NULL,
    [Remark] [varchar](100) NULL,
CONSTRAINT [PK_CardTypeDiscountAndPoints] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CardTypeId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用于区分折扣设置(1)还是积分设置(2)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'LogoType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'金额始' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'MoneyBegin'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'金额至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'MoneyEnd'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分基数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'PointsBase'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'Points'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardTypeDiscountAndPoints', @level2type=N'COLUMN',@level2name=N'Remark'
GO
/****** Object:  Table [dbo].[CardType]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CardType](
    [EmbranchmentId] [smallint] NOT NULL,
    [CardTypeId] [int] NOT NULL,
    [CardTypeName] [varchar](100) NULL,
    [Discount] [decimal](18, 4) NULL,
    [Remark] [varchar](100) NULL,
    [IsCumulativePoints] [smallint] NULL,
CONSTRAINT [PK_CardType] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [CardTypeId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardType', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardType', @level2type=N'COLUMN',@level2name=N'CardTypeName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardType', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardType', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否累计上次未积分金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CardType', @level2type=N'COLUMN',@level2name=N'IsCumulativePoints'
GO
/****** Object:  Table [dbo].[CardFunctionTemp]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CardFunctionTemp](
    [FuncId] [int] NOT NULL,
    [FuncName] [varchar](30) NULL,
    [DisplayOrder] [int] NULL,
    [ParentId] [int] NULL,
    [Remark] [varchar](60) NULL,
    [Flag] [int] NULL,
    [IsSelected] [bit] NULL,
    [Tag] [bit] NULL,
CONSTRAINT [PK_CardFunctionTemp] PRIMARY KEY CLUSTERED
(
    [FuncId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BulletinEmbranchment]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BulletinEmbranchment](
    [BulletinId] [int] NOT NULL,
    [EmbranchmentId] [smallint] NOT NULL,
    [DataVersion] [bigint] NOT NULL,
    [Deleted] [bit] NULL,
CONSTRAINT [PK_BulletinEmbranchment] PRIMARY KEY CLUSTERED
(
    [BulletinId] ASC,
    [EmbranchmentId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Bulletin]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Bulletin](
    [BulletinId] [int] NOT NULL,
    [Title] [varchar](100) NULL,
    [SubTitle] [varchar](100) NULL,
    [Content] [text] NULL,
    [IssueTime] [datetime] NULL,
    [Type] [varchar](20) NULL,
    [CreaterId] [smallint] NULL,
    [Deleted] [bit] NULL,
    [DataVersion] [bigint] NULL,
    [Readed] [bit] NULL,
CONSTRAINT [PK_Bulletin] PRIMARY KEY CLUSTERED
(
    [BulletinId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标题' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'Title'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'子标题' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'SubTitle'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'Content'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'发布时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'IssueTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'Type'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bulletin', @level2type=N'COLUMN',@level2name=N'CreaterId'
GO
/****** Object:  Table [dbo].[Bill]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Bill](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillId] [int] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillFlowId] [int] NULL,
    [BillCode] [varchar](50) NULL,
    [CreateDate] [smalldatetime] NULL,
    [CreatorId] [smallint] NULL,
    [BusinessDate] [smalldatetime] NULL,
    [BusinessId] [smallint] NULL,
    [AuditDate] [smalldatetime] NULL,
    [AuditorId] [smallint] NULL,
    [ProviderId] [smallint] NULL,
    [CustomerId] [int] NULL,
    [CardId] [int] NULL,
    [CardCode] [varchar](50) NULL,
    [Status] [tinyint] NULL,
    [Discount] [decimal](6, 3) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [FactSumMoney] [decimal](18, 4) NULL,
    [InStockId] [tinyint] NULL,
    [OutStockId] [tinyint] NULL,
    [Summary] [varchar](100) NULL,
    [Remark] [varchar](100) NULL,
    [ShiftId] [int] NULL,
    [Guid] [uniqueidentifier] ROWGUIDCOL  NULL,
    [ProviderName] [varchar](50) NULL,
    [InStockName] [varchar](50) NULL,
    [OutStockName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [CustomerName] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [StockName] [varchar](50) NULL,
    [ZYSID] [smallint] NULL,
    [ZYSNAME] [varchar](50) NULL,
    [FS] [int] NULL,
    [IsZY] [smallint] NULL,
    [CFQ] [bit] NULL,
    [CFF] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [IsGD] [smallint] NULL,
    [PayType] [tinyint] NULL,
    [PayCard] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [RemoteOper] [varchar](100) NULL,
    [RemoteOperStr] [varchar](100) NULL,
    [PaySYB] [decimal](18, 4) NULL,
    [PayKYB] [decimal](18, 4) NULL,
    [PayYB] [decimal](18, 4) NULL,
    [PayCardNO] [varchar](100) NULL,
    [PayCardMoneyBefore] [decimal](18, 4) NULL,
    [PayCardMoneyAfter] [decimal](18, 4) NULL,
    [CardDiscount] [decimal](18, 4) NULL,
    [CardMessage] [varchar](100) NULL,
    [PosType] [tinyint] NULL,
CONSTRAINT [PK_Bill] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillId] ASC,
    [BillType] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_Bill] ON [dbo].[Bill]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BillType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据流水Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BillFlowId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CreateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CreatorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'BusinessId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'AuditDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'AuditorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供应商Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ProviderId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客商Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CustomerId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CardId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CardCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0刚创建1草稿2复核
(1:草稿,3:待办,4:已配货,5:废弃,2 审核' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'Status'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'整单折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额(不算处方费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实际合计金额(算上处方费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'FactSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'InStockId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出库仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'OutStockId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'摘要' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'Summary'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ShiftId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药师ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ZYSID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药师名字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ZYSNAME'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'付数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'FS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'判断是否中药 "1"是中药"0"是西药"2"是POS   3 会员卡西药单 4 会员POS ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'IsZY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方权(1是有,0是无)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CFQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方费' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CFF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款(现金)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'找零(现金)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ReturnMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当单据是POS时,为“1”是挂单,为“0”不是挂单' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'IsGD'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'付款类型(0-现金;1-会员卡; 2卡市医保 3卡矿医保 4 市医保 5矿医保)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'收款(会员卡消费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayCard'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价差价返还' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'ReturnPayCard'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'远程开票者的登录name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'RemoteOper'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'远程开票者的社区名字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'RemoteOperStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'市医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PaySYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'矿医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayKYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'矿医保+市医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayYB'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'交易卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayCardNO'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡交易前余额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayCardMoneyBefore'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'卡交易后余额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'PayCardMoneyAfter'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CardDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'写卡信息' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Bill', @level2type=N'COLUMN',@level2name=N'CardMessage'
GO
/****** Object:  Table [dbo].[AppRightRole]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[AppRightRole](
    [ID] [int] IDENTITY(100,1) NOT NULL,
    [RightId] [int] NULL,
    [RoleId] [int] NULL,
CONSTRAINT [PK_AppRightRole] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[AppRight]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[AppRight](
    [ID] [int] NOT NULL,
    [LevelId] [varchar](500) NULL,
    [PID] [varchar](500) NULL,
    [RightName] [varchar](500) NULL,
    [Forder] [int] NULL,
    [ChildsMAX] [int] NULL,
    [DELETED] [varchar](500) NULL,
    [NodeType] [varchar](500) NULL,
    [URL] [varchar](500) NULL,
    [IPID] [int] NULL,
CONSTRAINT [PK_AppRight] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BillDetailAdjustCostPrice]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailAdjustCostPrice](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [PreCostPrice] [decimal](18, 4) NOT NULL,
    [CurCostPrice] [decimal](18, 4) NOT NULL,
    [Amount] [decimal](18, 4) NOT NULL,
    [CostPriceDifference] [decimal](18, 4) NOT NULL,
    [SumPostCostPrice] [decimal](18, 4) NOT NULL,
    [SumCurCostPrice] [decimal](18, 4) NOT NULL,
    [SumCostPriceDifference] [decimal](18, 4) NOT NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
CONSTRAINT [PK_BillDetailAdjustCostPrice] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailAdjustCostPrice] ON [dbo].[BillDetailAdjustCostPrice]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'PreCostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'成本价差' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'CostPriceDifference'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'前成本合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'SumPostCostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前成本合计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'SumCurCostPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailAdjustCostPrice', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
/****** Object:  Table [dbo].[BillCommunity]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillCommunity](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillId] [int] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillFlowId] [int] NOT NULL,
    [BillCode] [varchar](50) NOT NULL,
    [CreateDate] [smalldatetime] NOT NULL,
    [CreatorId] [smallint] NOT NULL,
    [BusinessDate] [smalldatetime] NULL,
    [BusinessId] [smallint] NULL,
    [AuditDate] [smalldatetime] NULL,
    [AuditorId] [smallint] NULL,
    [ProviderId] [smallint] NULL,
    [CustomerId] [int] NULL,
    [CardId] [int] NULL,
    [Status] [tinyint] NOT NULL,
    [Discount] [decimal](6, 3) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [FactSumMoney] [decimal](18, 4) NULL,
    [InStockId] [tinyint] NOT NULL,
    [OutStockId] [tinyint] NULL,
    [Summary] [varchar](100) NULL,
    [Remark] [varchar](100) NULL,
    [ShiftId] [int] NULL,
    [Guid] [uniqueidentifier] NULL,
    [ProviderName] [varchar](50) NULL,
    [InStockName] [varchar](50) NULL,
    [OutStockName] [varchar](50) NULL,
    [EmbranchmentName] [varchar](50) NULL,
    [BillCodeName] [varchar](50) NULL,
    [BusinessName] [varchar](50) NULL,
    [CustomerName] [varchar](50) NULL,
    [CreatorName] [varchar](50) NULL,
    [StockName] [varchar](50) NULL,
    [ZYSID] [smallint] NULL,
    [ZYSNAME] [varchar](50) NULL,
    [FS] [int] NULL,
    [IsZY] [smallint] NULL,
    [CFQ] [bit] NULL,
    [CFF] [decimal](18, 4) NULL,
    [PayMoney] [decimal](18, 4) NULL,
    [ReturnMoney] [decimal](18, 4) NULL,
    [IsGD] [smallint] NULL,
    [DataVersion] [bigint] NULL,
    [IsCancle] [bit] NULL,
CONSTRAINT [PK_BillCommunity] PRIMARY KEY CLUSTERED
(
    [EmbranchmentId] ASC,
    [BillId] ASC,
    [BillType] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'分支Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'EmbranchmentId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BillId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BillType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据流水Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BillFlowId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CreateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CreatorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BusinessDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'BusinessId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'AuditDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'审核者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'AuditorId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'供应商Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'ProviderId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'客商Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CustomerId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员卡号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CardId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0刚创建1草稿2复核' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'Status'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'整单折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额(不算处方费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实际合计金额(算上处方费)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'FactSumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'入库仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'InStockId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'出库仓库Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'OutStockId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'摘要' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'Summary'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'ShiftId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药师ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'ZYSID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中药师名字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'ZYSNAME'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'付数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'FS'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'判断是否中药 "1"是中药"0"是西药"2"是POS' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'IsZY'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方权(1是有,0是无)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CFQ'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处方费' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'CFF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当单据是POS时,为“1”是挂单,为“0”不是挂单' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'IsGD'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'判断这个单据是否取消“0”否“1”是' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCommunity', @level2type=N'COLUMN',@level2name=N'IsCancle'
GO
/****** Object:  Table [dbo].[BillCode]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillCode](
    [Id] [int] NOT NULL,
    [Name] [varchar](20) NOT NULL,
    [EnglishWord] [varchar](10) NOT NULL,
    [Number] [varchar](11) NOT NULL,
    [BillCode]  AS ([EnglishWord] + [Number]),
CONSTRAINT [PK_BillCode] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'英文单词' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCode', @level2type=N'COLUMN',@level2name=N'EnglishWord'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCode', @level2type=N'COLUMN',@level2name=N'Number'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillCode', @level2type=N'COLUMN',@level2name=N'BillCode'
GO
/****** Object:  Table [dbo].[BillDetailCallBack]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailCallBack](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [CostPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
    [Medicare] [int] NULL,
    [CardDiscount] [decimal](18, 4) NULL,
    [IsDiscount] [bit] NULL,
    [IsMemberPrice] [bit] NULL,
    [IsScore] [bit] NULL,
CONSTRAINT [PK_BillDetailCallBack] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[BillDetailBuyReturn]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailBuyReturn](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillId] [int] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](18, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [ProductDate] [datetime] NULL,
    [InvalidateDate] [datetime] NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
    [InOrder] [int] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [ReturnPayCard] [decimal](18, 4) NULL,
CONSTRAINT [PK_BillDetailBuyReturn] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillId] ASC,
    [BillType] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailBuyReturn] ON [dbo].[BillDetailBuyReturn]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'InvalidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyReturn', @level2type=N'COLUMN',@level2name=N'ReturnPayCard'
GO
/****** Object:  Table [dbo].[BillDetailBuyInStockPlan]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailBuyInStockPlan](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [CustomCode] [varchar](50) NULL,
CONSTRAINT [PK_BillDetailBuyInStockPlan] PRIMARY KEY NONCLUSTERED
(
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC,
    [RowNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE CLUSTERED INDEX [IX_BillDetailBuyInStockPlan] ON [dbo].[BillDetailBuyInStockPlan]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStockPlan', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStockPlan', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStockPlan', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStockPlan', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStockPlan', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
/****** Object:  Table [dbo].[BillDetailBuyInStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BillDetailBuyInStock](
    [EmbranchmentId] [smallint] NOT NULL,
    [BillType] [tinyint] NOT NULL,
    [BillId] [int] NOT NULL,
    [RowNum] [tinyint] NOT NULL,
    [CommodityId] [int] NOT NULL,
    [BatchCode] [varchar](50) NOT NULL,
    [Price] [decimal](18, 4) NULL,
    [Discount] [decimal](6, 4) NULL,
    [DiscountPrice] [decimal](18, 4) NOT NULL,
    [TaxRate] [decimal](6, 4) NULL,
    [TaxPrice] [char](10) NULL,
    [Amount] [decimal](18, 4) NULL,
    [SumMoney] [decimal](18, 4) NULL,
    [SumTaxMoney] [decimal](18, 4) NULL,
    [ProductDate] [smalldatetime] NULL,
    [ValidateDate] [smalldatetime] NULL,
    [RetailPrice] [decimal](18, 4) NULL,
    [CommodityName] [varchar](100) NULL,
    [Spec] [varchar](200) NULL,
    [DoseTypeName] [varchar](50) NULL,
    [ProducingArea] [varchar](100) NULL,
    [Unit] [varchar](50) NULL,
    [AuthorizeCode] [varchar](100) NULL,
    [SpellCode] [varchar](100) NULL,
    [TXM] [varchar](60) NULL,
    [CustomCode] [varchar](50) NULL,
    [IsChinese] [bit] NULL,
    [CounterId] [tinyint] NULL,
    [CounterName] [varchar](50) NULL,
    [MemberPrice] [decimal](18, 4) NULL,
    [Medicare] [tinyint] NULL,
    [PackingId] [int] NOT NULL,
    [PackingName] [varchar](50) NULL,
    [CustomStr] [varchar](100) NULL,
    [ProductName] [varchar](100) NULL,
    [IsMemberPrice] [bit] NULL,
    [IsDiscount] [bit] NULL,
    [IsScore] [bit] NULL,
CONSTRAINT [PK_BillDetailBuyInStock] PRIMARY KEY NONCLUSTERED
(
    [RowNum] ASC,
    [EmbranchmentId] ASC,
    [BillType] ASC,
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE NONCLUSTERED INDEX [IX_BillDetailBuyInStock] ON [dbo].[BillDetailBuyInStock]
(
    [BillId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'批号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'BatchCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Price'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折扣' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Discount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'折后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'DiscountPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'税率' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'TaxRate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'税后价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'TaxPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'数量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Amount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'合计金额' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'SumMoney'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'ProductDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'有效期至' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'ValidateDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'零售单价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'RetailPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义编码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'CustomCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是不是中药' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'IsChinese'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'CounterId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'柜台名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'CounterName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'MemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'医保' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'Medicare'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'PackingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'药品包装' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'PackingName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自定义' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'CustomStr'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否使用会员价' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'IsMemberPrice'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否打折' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'IsDiscount'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否积分' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BillDetailBuyInStock', @level2type=N'COLUMN',@level2name=N'IsScore'
GO
/****** Object:  StoredProcedure [dbo].[billDetailBatchCodeAdjust_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : myc
CreateDate : 2006-8-7
Summary    : 批号调整单的审核
Remark     :
1  将采购入库单明细中对应的商品添加到库存表(CommodityStock)中
***********************************************************************/
CREATE PROCEDURE [dbo].[billDetailBatchCodeAdjust_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Status TINYINT
    DECLARE @InStockId TINYINT
    DECLARE @OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)
   
    /*定义BillDetailBatchCodeAdjust对应的局部变量*/   
    DECLARE @RowNum    tinyint
    DECLARE @CommodityId    int
    DECLARE @PreBatchCode    varchar    (50)
    DECLARE @PreProductDate    smalldatetime
    DECLARE @PreInvalidateDate    smalldatetime
    DECLARE @CurBatchCode    varchar    (50)
    DECLARE @CurProductDate    smalldatetime
    DECLARE @CurInvalidateDate    smalldatetime
    DECLARE @CommodityName    varchar    (100)
    DECLARE @Spec    varchar    (200)
    DECLARE @DoseTypeName    varchar    (50)
    DECLARE @ProducingArea    varchar    (50)
    DECLARE @Unit    varchar    (50)
    DECLARE @AuthorizeCode    varchar    (100)
    DECLARE @CustomCode    varchar    (50)
    DECLARE @InOrder    int   
    DECLARE @PackingId    int   
    DECLARE @PackingName    varchar    (50)
    DECLARE @CustomStr    varchar    (100)
    DECLARE @ProductName    varchar    (100)

    /*定义CommodityStock对应的局部变量*/
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @CostPrice_pre_cur decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @RetailPrice_pre_cur decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @Amount_pre_cur decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumCost_pre_cur decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @SumRetail_pre decimal (18,4)
    DECLARE @SumRetail_pre_cur decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @PreMemberPrice decimal(18,4)
    DECLARE @CurMemberPrice decimal(18,4)
    DECLARE @IsChinese bit
    DECLARE @Bill_InStockId TINYINT
    DECLARE @ProductDate_pre datetime
    DECLARE @InvalidateDate_pre datetime
    DECLARE @InstockDate_pre datetime
    DECLARE @SpellCode_pre varchar    (100)
    DECLARE @IsChinese_pre bit
    DECLARE @CounterId_pre tinyint
    DECLARE @CounterName_pre varchar (50)
    DECLARE @TXM_pre varchar(60)
    DECLARE @PreMemberPrice_pre decimal(18,4)
    DECLARE @CurrentMemberPrice_pre decimal(18,4)
    DECLARE @Medicare_pre tinyint
    DECLARE @IsMemberPrice_pre bit
    DECLARE @IsDiscount_pre bit
    DECLARE @IsScore_pre bit
    DECLARE @ProductDate datetime
    DECLARE @DoseTypeName_pre varchar(50)
    DECLARE @CurrentRetailPrice decimal(18,4)
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @DataVersion bigint   

    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
   
    /*根据情况对局部变量赋初始值*/
    SELECT @BillType=7 --批号调整单的BillType为7
    SELECT   @ErrorMessage='审核成功!'
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='1.未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN 1
    END
   
        SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @BillCode=BillCode, 
           @BillCodeName=BillCodeName,
           @BusinessDate=BusinessDate,
           @AuditDate=AuditDate,
           @ProviderId=ProviderId ,
           @CustomerId =CustomerId ,
           @Bill_InStockId=InStockId,
           @OutStockId= OutStockId  ,
           @CreatorName =CustomerName,
           @BusinessName=BusinessName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName=CustomerName ,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @Remark=Remark
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
      IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='2.没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN 2
    END
     IF @@ROWCOUNT>=2
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='3.单据@BillId在批号调整单中多次出现'
         Select @ErrorInfoId =-3
        RETURN 3
    END
   
    SELECT * FROM BillDetailBatchCodeAdjust   
      where EmbranchmentId=@EmbranchmentId
      and  BillType=@BillType
      and  BillId=@BillId    
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='4.没有找到要审核的从单--批号调整单'
       Select @ErrorInfoId =-4
      ROLLBACK
      RETURN 4
   end
  
  
  DECLARE Cur_BillDetailBatchCodeAdjust CURSOR FOR /*从单--批号调整单游标*/
    SELECT RowNum,CommodityId,PreBatchCode,PreProductDate,PreInvalidateDate,CurBatchCode,CurProductDate,CurInvalidateDate,CommodityName,Spec,DoseTypeName,ProducingArea,
                            Unit,AuthorizeCode,CustomCode,InOrder,PackingId,PackingName,CustomStr,ProductName
             FROM  BillDetailBatchCodeAdjust
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
    
    
  open Cur_BillDetailBatchCodeAdjust            
  fetch next from Cur_BillDetailBatchCodeAdjust
  into  @RowNum,@CommodityId,@PreBatchCode,@PreProductDate,@PreInvalidateDate,@CurBatchCode,@CurProductDate,@CurInvalidateDate,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,
                            @Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId,@PackingName,@CustomStr,@ProductName

while @@FETCH_STATUS = 0
Begin

    
  select @CostPrice=CostPrice,@CostPrice_pre_cur=CostPrice,@Amount_cs=Amount,@Amount_pre_cur=Amount,@RetailPrice=RetailPrice,@RetailPrice_pre_cur=RetailPrice,@SumCost=SumCost,@SumCost_pre_cur=SumCost,@SumRetail=SumRetail,@SumRetail_pre_cur=SumRetail,@IsChinese=IsChinese,@PreMemberPrice=CurrentMemberPrice,@ProductDate=ProductDate,@InvalidateDate=InvalidateDate,@CurrentRetailPrice=CurrentRetailPrice
  /*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
  from CommodityStock
             where DepotId=@Bill_InStockId 
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@CurBatchCode
               and PackingId=@PackingId

  if @@rowcount<=0
  begin

       --新增一个当前批号的       
      select @CostPrice_pre=CostPrice,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost_pre=SumCost,@IsChinese=IsChinese,@PreMemberPrice=CurrentMemberPrice
                ,@SumRetail_pre=SumRetail,@ProductDate_pre=ProductDate,@InvalidateDate_pre=InvalidateDate,@InstockDate_pre=InstockDate,@SpellCode_pre=SpellCode,@IsChinese_pre=IsChinese,
               @CounterId_pre=CounterId,@CounterName_pre=CounterName,@TXM_pre=TXM,@PreMemberPrice_pre =PreMemberPrice,@CurrentMemberPrice_pre =CurrentMemberPrice,
               @Medicare_pre=Medicare,@IsMemberPrice_pre=IsMemberPrice,  @IsDiscount_pre = IsDiscount,@IsScore_pre =IsScore ,@DoseTypeName_pre=DoseTypeName,@CurrentRetailPrice=CurrentRetailPrice
      from CommodityStock
             where DepotId=@Bill_InStockId 
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@PreBatchCode
               and PackingId=@PackingId
  
      insert into CommodityStock (DepotId,    EmbranchmentId,  CommodityId,  BatchCode,  InOrder,ProductDate,  InvalidateDate,  InstockDate, CostPrice, RetailPrice,  Amount,     FactAmount, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,SpellCode,CustomCode,CurrentRetailPrice,IsChinese,CounterId,CounterName,TXM,DataVersion,PreMemberPrice,CurrentMemberPrice,Medicare,PackingId,PackingName ,CustomStr,ProductName,IsMemberPrice,IsDiscount,IsScore)
                                    values(@Bill_InStockId, @EmbranchmentId, @CommodityId, @CurBatchCode, 1, @ProductDate_pre, @InvalidateDate_pre, @InstockDate_pre, @CostPrice_pre,@RetailPrice_pre, @Amount_pre, @Amount_pre, @SumCost_pre, @SumRetail_pre,@CommodityName,@Spec,@DoseTypeName_pre,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode_pre,@CustomCode,@CurrentRetailPrice,@IsChinese_pre,@CounterId_pre,@CounterName_pre,@TXM_pre,@CommodityStockDataVersion+1,@PreMemberPrice_pre,@CurrentMemberPrice_pre,@Medicare_pre,@PackingId,@PackingName ,@CustomStr,@ProductName,@IsMemberPrice_pre,@IsDiscount_pre,@IsScore_pre)
      if @@error <>0
       begin
               SELECT @ErrorMessage='新批号插入失败!'
               Select @ErrorInfoId=-10
                ROLLBACK
                RETURN -1
        end
       --将前批号的药品在库存中置为0
       Update CommodityStock Set Amount=0,FactAmount=0,SumCost=0,SumRetail=0
            where DepotId=@Bill_InStockId
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@PreBatchCode
               and PackingId=@PackingId

      if @@error <>0
       begin
               SELECT @ErrorMessage='旧批号置0失败!'
               Select @ErrorInfoId=-11
                ROLLBACK
                RETURN -1
        end


        select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
         if @@ROWCOUNT<>1
         begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
        end 
        Update DataVersion
                   set  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

        if @@error <>0
        begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
        end


        INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount  , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @PreBatchCode,@CostPrice_pre  , @RetailPrice_pre,0  ,@RetailPrice_pre  ,1 ,@RetailPrice_pre ,@Amount_pre,@Amount_pre,@Amount_pre, 0, @SumCost_pre       ,@SumRetail_pre,    @SumRetail_pre,                    @SumRetail_pre,       @CostPrice_pre,   @RetailPrice_pre, @RetailPrice_pre, 0,        0,                    0 , @ProductDate_pre, @InvalidateDate_pre, 1,              1,               @ProviderId, @CustomerId, 0        ,      @OutStockId,      @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId_pre,@CounterName_pre,@PackingId,@PackingName,@CustomStr,@ProductName)      
       if @@error <>0
       begin
               SELECT @ErrorMessage='旧批号插入InoutStockTable表失败!'
               Select @ErrorInfoId=-12
                ROLLBACK
                RETURN -1
        end
        INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,               BatchCode,         PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,          PreAmount, ChangeAmount, InAmount,                     CurAmount  ,      PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice,     CurSalePrice,         CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,  InvalidateDate,                  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,      OutStockId, DataVersion,                                CommodityName,   Spec,Unit,         ProducingArea ,  AuthorizeCode,   DoseTypeName,   CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @CurBatchCode,0  ,                 0,                  0  ,                          @RetailPrice_pre  ,1 ,  @RetailPrice_pre ,    0,               @Amount_pre, @Amount_pre,            @Amount_pre,  0                         ,0                             ,     0,                                  @SumRetail_pre,    @CostPrice_pre,   @RetailPrice_pre, @RetailPrice_pre,   @SumCost_pre,        @SumRetail_pre,            @SumRetail_pre , @ProductDate_pre, @InvalidateDate_pre, 1,                          1,               @ProviderId, @CustomerId,         @OutStockId,  0,           @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId_pre,@CounterName_pre,@PackingId,@PackingName,@CustomStr,@ProductName)  
      if @@error <>0
       begin
               SELECT @ErrorMessage='新批号插入InoutStockTable表失败!'
               Select @ErrorInfoId=-13
                ROLLBACK
                RETURN -1
        end
  end
  else
  begin
           select @CostPrice_pre=CostPrice,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost_pre=SumCost,@IsChinese=IsChinese,@PreMemberPrice=CurrentMemberPrice
                ,@SumRetail_pre=SumRetail,@ProductDate_pre=ProductDate,@InvalidateDate_pre=InvalidateDate,@InstockDate_pre=InstockDate,@SpellCode_pre=SpellCode,@IsChinese_pre=IsChinese,
               @CounterId_pre=CounterId,@CounterName_pre=CounterName,@TXM_pre=TXM,@PreMemberPrice_pre =PreMemberPrice,@CurrentMemberPrice_pre =CurrentMemberPrice,
               @Medicare_pre=Medicare,@IsMemberPrice_pre=IsMemberPrice,  @IsDiscount_pre = IsDiscount,@IsScore_pre =IsScore
          from CommodityStock
             where DepotId=@Bill_InStockId 
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@PreBatchCode
               and PackingId=@PackingId

                select @CostPrice=(@SumCost+@SumCost_pre)/(@Amount_pre+@Amount_cs)/*计算成本价*/ 
                /*   select @CurrentRetailPrice=(@SumRetail+@SumRetail_pre)/(@Amount_pre+@Amount_cs) 计算零售价*/
                select @Amount_cs=@Amount_pre+@Amount_cs /*计算数量*/
                select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
            select @SumRetail=@CurrentRetailPrice*@Amount_cs  

                Update CommodityStock
                    set CostPrice=@CostPrice,Amount=@Amount_cs,  FactAmount=@Amount_cs,SumCost=@SumCost,SumRetail=@SumRetail   
                where DepotId=@Bill_InStockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@CommodityId
                  and BatchCode=@CurBatchCode
                  and PackingId=@PackingId

                if @@error <>0
                begin
                    SELECT @ErrorMessage='合并失败!'
                    Select @ErrorInfoId=-14
                    ROLLBACK
                    RETURN -1
               end

       --将前批号的药品在库存中置为0
       Update CommodityStock Set Amount=0,FactAmount=0,SumCost=0,SumRetail=0
            where DepotId=@Bill_InStockId
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@PreBatchCode
               and PackingId=@PackingId
      if @@error <>0
       begin
               SELECT @ErrorMessage='旧批号置0失败!'
               Select @ErrorInfoId=-15
                ROLLBACK
                RETURN -1
        end


        select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
         if @@ROWCOUNT<>1
         begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
        end 
        Update DataVersion
                   set  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

        if @@error <>0
        begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
        end


            INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount  , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @PreBatchCode,@CostPrice_pre  , @RetailPrice_pre,0  ,@RetailPrice_pre  ,1 ,@RetailPrice_pre ,@Amount_pre,@Amount_pre,@Amount_pre, 0, @SumCost_pre       ,@SumRetail_pre,    @SumRetail_pre,                    @SumRetail_pre,       @CostPrice_pre,   @RetailPrice_pre, @RetailPrice_pre, 0,        0,                    0 , @ProductDate_pre, @InvalidateDate_pre, 1,              1,               @ProviderId, @CustomerId, 0        ,      @OutStockId,      @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId_pre,@CounterName_pre,@PackingId,@PackingName,@CustomStr,@ProductName)      
           if @@error <>0
           begin
               SELECT @ErrorMessage='旧批号插入InoutStockTable表失败!'
               Select @ErrorInfoId=-12
                ROLLBACK
                RETURN -6
           end
            INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,                  BatchCode,         PreCostPrice,              PreSalePrice,                PreBatchSalePrice,     ChangePrice,           Discount,  DiscountPrice,      PreAmount,             ChangeAmount,  InAmount,      CurAmount  , PreCostSumMoney,          PreSaleSumMoney,       PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,     InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @CurBatchCode,@CostPrice_pre_cur  , @RetailPrice_pre_cur,@RetailPrice_pre_cur  ,@RetailPrice_pre  ,   1 ,           @RetailPrice_pre ,@Amount_pre_cur ,@Amount_pre,   @Amount_pre,    @Amount_cs, @SumCost_pre_cur       ,@SumRetail_pre_cur,    @SumRetail_pre_cur,      @SumRetail,           @CostPrice,   @RetailPrice, @RetailPrice,           @SumCost,              @SumRetail,                    @SumRetail ,           @ProductDate,  @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @InStockId       ,      @OutStockId,      @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId_pre,@CounterName_pre,@PackingId,@PackingName,@CustomStr,@ProductName)      
           if @@error <>0
           begin
               SELECT @ErrorMessage='新批号插入InoutStockTable表失败!'
               Select @ErrorInfoId=-13
                ROLLBACK
                RETURN -1
           end

  end

   Update Bill
                 set Status=2,AuditDate=getdate()             where EmbranchmentId=@EmbranchmentId
               and BillType=@BillType
               and BillId=@BillId
               and Status=1 

    if @@error <>0
    begin
                      SELECT @ErrorMessage='更新主单出错!'
                      Select @ErrorInfoId=-14
                      ROLLBACK
                      RETURN -1
    end 

  fetch next from Cur_BillDetailBatchCodeAdjust
  into  @RowNum,@CommodityId,@PreBatchCode,@PreProductDate,@PreInvalidateDate,@CurBatchCode,@CurProductDate,@CurInvalidateDate,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,
                            @Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId,@PackingName,@CustomStr,@ProductName

End

        SELECT @ErrorMessage='单据审核成功!'
        Select @ErrorInfoId=1
        CLOSE Cur_BillDetailBatchCodeAdjust
        DEALLOCATE Cur_BillDetailBatchCodeAdjust       
        Commit Tran
GO
/****** Object:  StoredProcedure [dbo].[billBuyReturn_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : qcj
CreateDate : 2006-8-18
Summary    : 采购退货审核
Remark     : 从库存表中将退货单明细中对应的商品删除
***********************************************************************/

CREATE PROCEDURE [dbo].[billBuyReturn_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @ProviderName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)

    /*定义BillDetailBuyReturn对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=2 --采购退货单的BillType为2
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select  @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE     BEGIN TRAN
    SET NOCOUNT ON  
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @ProviderName=ProviderName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select  @ErrorInfoId=-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT RowNum,CommodityId, BatchCode, Price, Amount, SumMoney,
                 ProductDate, InvalidateDate
    FROM BillDetailBuyReturn
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select  @ErrorInfoId=-3
      ROLLBACK
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BuyReturnDetail CURSOR FOR
    SELECT RowNum,CommodityId, BatchCode, Price, Amount, SumMoney,
        ProductDate, InvalidateDate, CommodityName, Spec,
                Unit, ProducingArea, DoseTypeName, AuthorizeCode,CustomCode,
      InOrder,CounterId,CounterName , PackingId, PackingName  ,CustomStr,ProductName
    FROM BillDetailBuyReturn
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BuyReturnDetail

    FETCH NEXT FROM Cur_BuyReturnDetail
    INTO @RowNum,@CommodityId, @BatchCode, @Price, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,
        @InOrder,@CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT @CostPrice = CostPrice,@Amount_pre=Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,@SumCost = SumCost,@SumRetail = SumRetail
        FROM CommodityStock
        WHERE DepotId=@OutStockId
         AND EmbranchmentId=@EmbranchmentId
         AND CommodityId=@CommodityId
         AND BatchCode=@BatchCode
        and  InOrder=@InOrder
        and PackingId=@PackingId
       
        /*如果库存数量大于退货数量,则更新库存表,否则,回滚*/
        SELECT @Amount_cs = @Amount_cs - @Amount
        SELECT @SumCost = @CostPrice * @Amount_cs
        SELECT @SumRetail = @RetailPrice * @Amount_cs
        IF @Amount_cs < 0
        BEGIN
            SELECT @ErrorMessage='库存数量不足,无法审核!'
            Select  @ErrorInfoId=-4
            ROLLBACK
            RETURN
        END
        ELSE
        BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/      

            /*库存表处理部分*/
    UPDATE CommodityStock
    SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail ,DataVersion=@CommodityStockDataVersion+1
    WHERE DepotId=@OutStockId
             AND EmbranchmentId=@EmbranchmentId
             AND CommodityId=@CommodityId
             AND BatchCode=@BatchCode
            and  InOrder=@InOrder
            and PackingId=@PackingId

               /*************************************在社区药店系统版本处理部分**********************************************/                
                       Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/          
            
             /*版本处理部分*/
             SELECT @CurVersion=CurVersion
             FROM DataVersion
             WHERE EmbranchmentId=@EmbranchmentId
             AND DataVersionId=1
            
             IF @@ROWCOUNT = 0
             BEGIN
                 SELECT @ErrorMessage='取版本出错!'
                 Select  @ErrorInfoId=-5
                 ROLLBACK
                 RETURN                  
             END
             ELSE
             BEGIN
                Update DataVersion
                SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                WHERE EmbranchmentId=@EmbranchmentId
                AND DataVersionId=1
             END 
            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @CurSaleSumMoney=@Amount_cs*@RetailPrice
             SELECT  @PreSaleSumMoney=@Amount_pre*@RetailPrice
             INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount           , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                  VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@Price     ,1       ,@Price       ,@Amount_pre,@Amount,     @Amount,       @Amount_cs, @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @SumMoney,       @CostPrice,   @RetailPrice, 0,                 @SumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, 0        ,      @OutStockId,      @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName)                                             
        END
       
        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        FETCH NEXT FROM Cur_BuyReturnDetail
        INTO @RowNum,@CommodityId, @BatchCode, @Price, @Amount, @SumMoney,
                     @ProductDate, @InvalidateDate, @CommodityName, @Spec,
                     @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,
            @InOrder,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName
    END
    SELECT @ErrorMessage='单据审核成功!'
    Select  @ErrorInfoId=1
    CLOSE Cur_BuyReturnDetail
    DEALLOCATE Cur_BuyReturnDetail
   
    COMMIT
GO
/****** Object:  StoredProcedure [dbo].[billBuyInStock_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : scs
CreateDate : 2006-7-26
Summary    : 采购入库单的审核
Remark     :
1  将采购入库单明细中对应的商品添加到库存表(Commodity)中
***********************************************************************/

CREATE PROCEDURE [dbo].[billBuyInStock_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS

   --set nocount on

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Bill_InStockId TINYINT
    DECLARE @Bill_OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)

 

   
    /*定义BillDetailBuyInStock对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount decimal (6,4)
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @TaxRate decimal (6,4)
    DECLARE @TaxPrice char
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)
    DECLARE @SumTaxMoney decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @ValidateDate smalldatetime
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @SpellCode varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @IsChinese bit
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @TXM varchar(60)
    DECLARE @Medicare TINYINT
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @IsMemberPrice bit
    DECLARE @IsDiscount bit
    DECLARE @IsScore bit
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InOrderLast int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @PreMemberPrice decimal(18,4)
    DECLARE @CurMemberPrice decimal(18,4)
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    select @ErrorMessage='OK!'
    SELECT @BillType=1 --采购入库单的BillType为1
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Bill_InStockId=InStockId,
           @Bill_OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName,
           @InStockName  =InStockName,
           @OutStockName = OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, ValidateDate,RowNum,RetailPrice,ValidateDate,IsMemberPrice,IsDiscount,IsScore
        FROM BillDetailBuyInStock
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   end
   
    DECLARE Cur_BuyInStockDetail CURSOR FOR /*从单游标*/
        SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, ValidateDate,RowNum,RetailPrice,BatchCode,ValidateDate,CommodityName,
                 Spec,DoseTypeName,ProducingArea,Unit, AuthorizeCode,SpellCode,CustomCode,IsChinese,
        CounterId,CounterName,TXM,MemberPrice,Medicare , PackingId, PackingName ,CustomStr,ProductName,
        IsMemberPrice,IsDiscount,IsScore
           FROM BillDetailBuyInStock
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_BuyInStockDetail  /*打开游标*/
       
        fetch next from Cur_BuyInStockDetail
            into @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                  @ProductDate, @ValidateDate,@RowNum,@RetailPrice,@BatchCode ,@InvalidateDate,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@IsChinese,
        @CounterId,@CounterName,@TXM,@CurMemberPrice,@Medicare,@PackingId, @PackingName ,@CustomStr,@ProductName,
        @IsMemberPrice,@IsDiscount,@IsScore
                
        while @@FETCH_STATUS = 0
        begin
             /*向库存(CommodityStock)中插入记录,要使用移动加权平均法来修改"成本价"*/
             /*移动加权平均法的算法:CostPrice=((CostPrice*Amount)+(DiscountPrice*Amount)/(Amount(从单)+Amount(库存)))*/
             /*SumCost=CostPrice*(Amount(从单)+Amount(库存))*/
            
             if (@Bill_InStockId is null) or (@EmbranchmentId is null) or (@CommodityId is null)
             begin
                SELECT @ErrorMessage='从单数据不完整!'
                Select @ErrorInfoId=-4
                ROLLBACK
                RETURN -1
             end

            select @InOrder=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId and  BatchCode= @BatchCode
            select @InOrderLast=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId
 

             select @CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail,@IsChinese=IsChinese,@PreMemberPrice=CurrentMemberPrice
/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
                from CommodityStock
             where DepotId=@Bill_InStockId 
               and InOrder=@InOrder
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@BatchCode
               and PackingId=@PackingId
              
           select @RowCount =@@ROWCOUNT
             if @RowCount>1
             begin
             SELECT @ErrorMessage='库存中相同记录过多!'
               Select @ErrorInfoId=-5
                ROLLBACK
              RETURN -1

             end
            
             if @RowCount<=0/*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”、“零售价”、“零售合计”*/
             begin     

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                 if @EmbranchmentId=-1
                 begin
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=-1
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
                end
               /**************************************************************************************************************************************/      

                 select @CounterId=CounterId,@CounterName=CounterName from Commodity where CommodityId=  @CommodityId and PackingId=@PackingId --柜台处理部分
                 select @CostPrice=0--CommodityStock处理部分
                 select @Amount_cs=0
                 select @CostPrice=(((@CostPrice*@Amount_cs)+(@DiscountPrice*@Amount))/(@Amount+@Amount_cs)) /*计算成本价*/
                 select @Amount_cs=@Amount+@Amount_cs /*计算数量*/  
                 select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
        select @SumRetail=@RetailPrice*@Amount_cs
                 insert into CommodityStock (DepotId,    EmbranchmentId,  CommodityId,  BatchCode,  InOrder,ProductDate,  InvalidateDate,  InstockDate, CostPrice, RetailPrice,  Amount,     FactAmount, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,SpellCode,CustomCode,CurrentRetailPrice,IsChinese,CounterId,CounterName,TXM,DataVersion,PreMemberPrice,CurrentMemberPrice,Medicare,PackingId,PackingName ,CustomStr,ProductName,IsMemberPrice,IsDiscount,IsScore)
                                      values(@Bill_InStockId, @EmbranchmentId, @CommodityId, @BatchCode, @InOrderLast+1,      @ProductDate, @InvalidateDate, @CreateDate, @CostPrice,@RetailPrice, @Amount_cs, @Amount_cs, @SumCost, @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@RetailPrice,@IsChinese,@CounterId,@CounterName,@TXM,@CommodityStockDataVersion+1,@PreMemberPrice,@CurMemberPrice,@Medicare,@PackingId,@PackingName ,@CustomStr,@ProductName,@IsMemberPrice,@IsDiscount,@IsScore)
                
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入库存失败!'
                      Select @ErrorInfoId=-6
                      ROLLBACK
                      RETURN -1
                 end

               /*************************************在社区药店系统版本处理部分**********************************************/  
                if @EmbranchmentId=-1
                begin
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=-1
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end
                end

               /***************************************************************************************************************************/    

                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
                 end
                
                 --在插入InoutStockTable前将所需数据查询出来


                 --InoutStockTable处理部分      
       select @CurSaleSumMoney=@Amount_cs*@RetailPrice;         
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId ,  BillCode,    BusinessDate,AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount, ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,    OutStockId, DataVersion, CommodityName , Spec ,
                                                             DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode,CounterId,CounterName ,PackingId,PackingName ,CustomStr,ProductName,IsMemberPrice)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,0,            0,            0, 
                                                 @Price, @Discount, @DiscountPrice, 0,         @Amount,  @Amount, @Amount_cs, 0,              0,               0,                    @SumMoney,      @CostPrice,  
                                                 @RetailPrice, 0,                 @SumCost,        0,                    @CurSaleSumMoney,    @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,   0,  
                                                 @CurVersion+1,@CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit ,@AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                 @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName ,@CustomStr,@ProductName,@IsMemberPrice )
           
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-9
                      ROLLBACK
                      RETURN -1
                 end
           
             end
             else
             begin

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                 if @EmbranchmentId=-1
                 begin
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=-1
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
                end
               /**************************************************************************************************************************************/  

               select @CounterId=CounterId,@CounterName=CounterName from Commodity where CommodityId=  @CommodityId and PackingId=@PackingId --柜台处理部分

                select @CostPrice=(((@CostPrice*@Amount_cs)+(@DiscountPrice*@Amount))/(@Amount+@Amount_cs)) /*计算成本价*/
                select @Amount_cs=@Amount+@Amount_cs /*计算数量*/
                select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
       select @SumRetail=@RetailPrice*@Amount_cs  
                Update CommodityStock
                    set ProductDate=@ProductDate,InvalidateDate=@InvalidateDate,InstockDate=@CreateDate,CostPrice=@CostPrice,Amount=@Amount_cs,
           FactAmount=@Amount_cs,SumCost=@SumCost,RetailPrice=@RetailPrice,SumRetail=@SumRetail,CurrentRetailPrice=@RetailPrice,IsChinese=@IsChinese,
           CounterId=@CounterId,CounterName=@CounterName  ,DataVersion=@CommodityStockDataVersion+1,IsMemberPrice=@IsMemberPrice,
           IsDiscount=@IsDiscount,IsScore=@IsScore,CustomCode=@CustomCode,PreMemberPrice=@PreMemberPrice,CurrentMemberPrice=@CurMemberPrice,
           Medicare=@Medicare,PackingId=@PackingId,PackingName=@PackingName ,CustomStr=@CustomStr,ProductName=@ProductName
                where DepotId=@Bill_InStockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@CommodityId
         and InOrder=@InOrder
                  and BatchCode=@BatchCode
                  and PackingId=@PackingId
               
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新库存出错!'
                      Select @ErrorInfoId=-10
                      ROLLBACK
                      RETURN -1
                 end 

               /*************************************在社区药店系统版本处理部分**********************************************/  
                if @EmbranchmentId=-1
                begin
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=-1
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end
                end

               /***************************************************************************************************************************/    
                 
                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-11
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-12
                      ROLLBACK
                      RETURN -1
                 end

                 --InoutStockTable处理部分     
       select @CurSaleSumMoney=@Amount_cs*@RetailPrice;           
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode, BusinessDate, AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice,   PreSalePrice,    
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount,   ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion, CommodityName ,Spec,
                                                             DoseTypeName,ProducingArea,Unit,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode,CounterId,CounterName,PackingId,PackingName ,CustomStr,ProductName,IsMemberPrice)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId,@BillCode,@BusinessDate,@AuditDate, @RowNum, @CommodityId, @BatchCode,@CostPrice_pre,
                                                  @RetailPrice_pre, 0,                 @Price, @Discount, @DiscountPrice, @Amount_pre, @Amount, @Amount,     @Amount_cs, @SumCost_pre,   0,      0,
                                                  @SumMoney,       @CostPrice,   @RetailPrice, 0,                 @SumCost,        0,                    @CurSaleSumMoney, @ProductDate, @InvalidateDate, 1,              1,               @ProviderId,
                                                  @CustomerId, @Bill_InStockId,  0,          @CurVersion+1, @CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,  @CreatorName ,
                                                  @BusinessName, @BillCodeName, @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName ,@CustomStr,@ProductName,@IsMemberPrice)                                             
            
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-13
                      ROLLBACK
                      RETURN -1
                 end

             end        
              
             Update Bill
                 set Status=2,AuditDate=getdate()             where EmbranchmentId=@EmbranchmentId
               and BillType=@BillType
               and BillId=@BillId
               and Status=1 

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新主单出错!'
                      Select @ErrorInfoId=-14
                      ROLLBACK
                      RETURN -1
                 end 
            
        fetch next from Cur_BuyInStockDetail
            into @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                  @ProductDate, @ValidateDate,@RowNum,@RetailPrice,@BatchCode ,@InvalidateDate,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@IsChinese, @CounterId,
                  @CounterName,@TXM,@CurMemberPrice,@Medicare,@PackingId,@PackingName ,@CustomStr,@ProductName,
        @IsMemberPrice,@IsDiscount,@IsScore
        end
        SELECT @ErrorMessage='单据审核成功!'
        Select @ErrorInfoId=1
        CLOSE Cur_BuyInStockDetail
        DEALLOCATE Cur_BuyInStockDetail       
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[bill_GetCode]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[bill_GetCode]
(
    @id  tinyint,                                                                                                                 --表SYSDATA的IDKEY列对应的值
    @szReturn varchar (50) output                                                                               --所取得的值
)
AS
    set nocount on
    SET TRANSACTION ISOLATION LEVEL Serializable                                                 --事务序列化
    begin tran
        select @szReturn=BillCode from BillCode  with(updlock)  where Id=@id  --取得行级排他锁
       if @szReturn is null
      begin
            rollback tran                                                                                                      --没有取得值
            return -1
      end
       update  BillCode set Number=right(cast((10000000001+cast(Number as bigint) ) as varchar(20)),10) where Id=@id
   commit tran
    return 0
GO
/****** Object:  Table [dbo].[ApplicationUserRole]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ApplicationUserRole](
    [ApplicationId] [int] NOT NULL,
    [UserId] [int] NOT NULL,
    [RoleId] [int] NOT NULL,
CONSTRAINT [ApplicationUserRole_PK] PRIMARY KEY CLUSTERED
(
    [ApplicationId] ASC,
    [UserId] ASC,
    [RoleId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ApplicationUser]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ApplicationUser](
    [ApplicationId] [int] NOT NULL,
    [UserId] [int] NOT NULL,
CONSTRAINT [ApplicationUser_PK] PRIMARY KEY CLUSTERED
(
    [ApplicationId] ASC,
    [UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  StoredProcedure [dbo].[billReportSpill_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : myc
CreateDate : 2006-8-7
Summary    : 报溢单的审核
Remark     :
1  将采购入库单明细中对应的商品添加到库存表(CommodityStock)中
***********************************************************************/
CREATE PROCEDURE [dbo].[billReportSpill_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Status TINYINT
    DECLARE @OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)  
    DECLARE @FactSumMoney  VARCHAR(100)
    DECLARE @Remark  VARCHAR(100)
    DECLARE @ShiftId INT
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @ProviderName  VARCHAR(100)
    DECLARE @InStockName  VARCHAR(100)
    DECLARE @OutStockName  VARCHAR(100)
    DECLARE @EmbranchmentName  VARCHAR(100)
    DECLARE @BillCodeName  VARCHAR(100)
    DECLARE @BusinessName  VARCHAR(100)
    DECLARE @CustomerName  VARCHAR(100)
    DECLARE @CreatorName  VARCHAR(100)
    DECLARE @StockName  VARCHAR(100)
   
    /*定义BillDetailReportSpill对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @Discount decimal (6,4)
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @TaxRate decimal (6,4)
    DECLARE @TaxPrice char
    DECLARE @SumMoney_ReportSpill decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @SpellCode varchar(100)
    DECLARE @CustomCode varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)

        /*定义CommodityStock对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @InOrder int
     DECLARE  @InOrderLast  int
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @CostPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Odds decimal(18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @Price decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumRetail decimal(18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @DataVersion bigint
    DECLARE @InAmount int
    DECLARE @OutAmount int
    DECLARE @CommodityName varchar(100)
    DECLARE @DoseTypeName varchar(100)
    DECLARE @Spec varchar(100)
    DECLARE @ProducingArea varchar(100)
    DECLARE @Unit varchar(100)
    DECLARE @AuthorizeCode varchar(100)

   
    /*自定义变量*/
    DECLARE @RowCount int
    DECLARE @CurVersion bigint
   
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=4 --报溢单的BillType为4
    SELECT   @ErrorMessage='审核成功!'
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='1.未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1        RETURN 1
    END
   
        SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @DisCount=Discount,
           @SumMoney=SumMoney,
           @FactSumMoney=@FactSumMoney,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @ShiftId=ShiftId,
           @Guid=Guid,
           @DisCount=DisCount,
           @ProviderName=ProviderName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @EmbranchmentName=EmbranchmentName,
           @BillCodeName=BillCodeName,
           @BusinessName=BusinessName,
           @CustomerName=CustomerName,
           @CreatorName=CreatorName,
            @StockName=StockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
     SELECT @RowCount=@@ROWCOUNT
      IF @RowCount=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='2.没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN 2
    END
     IF @RowCount>=2
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='3.单据@BillId在报溢单中多次出现'
        Select @ErrorInfoId=-3
        RETURN 3
    END
   
    SELECT * FROM BillDetailReportSpill   
      where EmbranchmentId=@EmbranchmentId
      and  BillType=@BillType
      and  BillId=@BillId    
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='4.没有找到要审核的从单--报溢单'
      Select @ErrorInfoId=-4
      ROLLBACK
      RETURN 4
   end
  
  
  DECLARE Cur_BillDetailReportSpill CURSOR FOR /*从单--报溢单游标*/
    SELECT EmbranchmentId,BillType,BillId,RowNum,Commodityid,BatchCode,
           Price,Amount,SumMoney,ProductDate,InvalidateDate,RetailPrice,CommodityName,DoseTypeName,Spec,ProducingArea,Unit,AuthorizeCode,InOrder,SpellCode,CustomCode , PackingId, PackingName  ,CustomStr,ProductName
    FROM  BillDetailReportSpill
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
    
    
  open Cur_BillDetailReportSpill             
  fetch next from Cur_BillDetailReportSpill
  into  @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId,@BatchCode,@Price,
         @Amount,@SumMoney,@ProductDate,@InvalidateDate,@RetailPrice,@CommodityName,@DoseTypeName,@Spec,
         @ProducingArea,@Unit,@AuthorizeCode,@InOrder,@SpellCode,@CustomCode,@PackingId, @PackingName  ,@CustomStr,@ProductName
  while @@FETCH_STATUS=0
   begin  
  
     select @InOrder=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId and  BatchCode= @BatchCode
     select @InOrderLast=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId

     select @CostPrice=CostPrice,@RetailPrice=RetailPrice,@Amount_cs=Amount,@FactAmount=FactAmount,@Odds=Odds,@SumCost=SumCost,@SumRetail=SumRetail  from CommodityStock
     where depotId=@InStockId
       and EmbranchmentId=@EmbranchmentId
       and CommodityId=@CommodityId
       and BatchCode=@BatchCode
      and inorder=@Inorder
      and PackingId=@PackingId
SELECT @RowCount=@@ROWCOUNT
  select @PreCostPrice=@CostPrice,  @PreSalePrice=@RetailPrice 
     if @ROWCOUNT>1
       begin
          SELECT @ErrorMessage='5.库存中相同记录过多!'
          Select @ErrorInfoId=-5
          ROLLBACK
          RETURN 5
       end
     if @ROWCOUNT<=1 
     begin
      /*向库存(CommodityStock)中插入记录*/  
    if @Rowcount<1     
               begin

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/   

       select @CostPrice=0--CommodityStock处理部分
                 select @Amount_cs=0
                 select @CostPrice=@Price/*计算成本价*/
                 select @Amount_cs=@Amount+@Amount_cs /*计算数量*/  
                 select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
        select @SumRetail=@RetailPrice*@Amount_cs

             --     select @InOrder=isnull(max(InOrder)+1,0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId

                 insert into CommodityStock (DepotId,    EmbranchmentId,  CommodityId,    BatchCode,    InOrder,          ProductDate,     InvalidateDate,      InstockDate,   CostPrice,    RetailPrice,      Amount,        FactAmount,   SumCost,       SumRetail,   CommodityName,   Spec,    DoseTypeName,    ProducingArea,     Unit,  AuthorizeCode,     SpellCode   ,DataVersion,CurrentRetailPrice,PackingId,PackingName,CustomCode ,CustomStr,ProductName)
                                      values(@InStockId,      @EmbranchmentId, @CommodityId, @BatchCode, @InOrderLast+1,      @ProductDate, @InvalidateDate, @CreateDate, @CostPrice,@RetailPrice, @Amount_cs, @Amount_cs, @SumCost, @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode  ,@CommodityStockDataVersion+1,@RetailPrice,@PackingId,@PackingName,@CustomCode ,@CustomStr,@ProductName)
                     if @@ERROR<>0
                      begin
          SELECT @ErrorMessage='7.执行存储过程billDetailReportSpill_Audit时出错,向库存(CommodityStock)中插入记录失败'
                             Select @ErrorInfoId=-7
          ROLLBACK
          RETURN 7
                       end
                     end
      else
               begin/*向库存(CommodityStock)中更新数据*/ 

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/

                select @SumCost=@CostPrice*@Amount_cs+@Price*@Amount
                select @Amount_cs=@Amount_cs+@Amount
                select @FactAmount=@FactAmount+@Amount
                select @CostPrice=@SumCost/@Amount_cs
                select @SumRetail=@RetailPrice*@Amount_cs
               update CommodityStock
                      set ProductDate=@ProductDate,InvalidateDate=@InvalidateDate,SumCost=@SumCost,Amount=@Amount_cs,FactAmount=@FactAmount,CostPrice=@CostPrice,SumRetail=@SumRetail   ,DataVersion=@CommodityStockDataVersion+1
                      where  depotId=@InStockId
                                 and  EmbranchmentId=@EmbranchmentId
                                 and  CommodityId=@CommodityId
                                 and InOrder=@InOrder
                                 and PackingId=@PackingId
                     if @@ERROR<>0
                     begin
          SELECT @ErrorMessage='7.执行存储过程billDetailReportSpill_Audit时出错,向库存(CommodityStock)中更新记录失败'
                             Select @ErrorInfoId=-7
          ROLLBACK
          RETURN 7
                       end
     
                  end
         end

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/   


          SELECT @CurVersion=CurVersion FROM DataVersion --版本处理部分
                                            WHERE EmbranchmentId=@EmbranchmentId
                                            AND DataVersionId=1
               
              IF @@ROWCOUNT<>1
                 BEGIN
                    SELECT @ErrorMessage='8.取版本出错!'
                    Select @ErrorInfoId=-8
                    ROLLBACK
                    RETURN   8               
                 END
                  
              UPDATE DataVersion
                 SET CurVersion=@CurVersion+1
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1
                  
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorMessage='9.版本更新失败,审核不成功!'
                    Select @ErrorInfoId=-9
                    ROLLBACK
                    RETURN 9
                 END
             
            --InoutStockTable处理部分        

              select @stockId=@InStockId,@ChangeAmount=@Amount,@InAmount=@Amount,@CurAmount=@Amount_cs,@InStockId=@InStockid    ,@OutAmount=0
select @ChangePrice=@Price-@CostPrice,@DisCountPrice=@RetailPrice*@DisCount,@PreAmount=@Amount_cs-@Amount,@PreCostSumMoney=@PreCostPrice*@PreAmount,@CurCostPrice=@CostPrice,@CurSalePrice=@RetailPrice,@CurCostSumMoney=@CurCostPrice*@CurAmount
               INSERT INTO InoutStockTable (Guid,   EmbranchmentId,   StockId,    BillType,     BillId,     BillCode,   BusinessDate,     AuditDate,    RowNum,    CommodityId,     BatchCode,     PreCostPrice, PreSalePrice, PreBatchSalePrice, ChangePrice,   Discount,      DiscountPrice,  PreAmount, ChangeAmount,      CurAmount,  PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice,   CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,    InvalidateDate,   IsMoneyChanged, IsAmountChanged, ProviderId,      CustomerId,   InStockId, OutStockId, DataVersion,InAmount,OutAmount,CommodityName,DoseTypeName,Spec,ProducingArea,Unit,AuthorizeCode,ProviderName,EmbranchmentName,BillCodeName,BusinessName,CustomerName,CreatorName,StockName,CustomCode,PackingId,PackingName ,CustomStr,ProductName)
                                                VALUES (newid(),@EmbranchmentId, @StockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@PreCostPrice,@PreSalePrice,        0,                 @ChangePrice,@Discount,@DiscountPrice,@PreAmount,@ChangeAmount,@CurAmount,@PreCostSumMoney,        0,                              0,                        @SumMoney,         @CurCostPrice,@CurSalePrice,              0,         @CurCostSumMoney ,                        0,                             0,          @ProductDate, @InvalidateDate,           1,                            1,              @ProviderId, @CustomerId, @StockId,        0,         @CurVersion + 1,@InAmount,@OutAmount,@CommodityName,@DoseTypeName,@Spec,@ProducingArea,@Unit,@AuthorizeCode, @ProviderName,@EmbranchmentName,@BillCodeName,@BusinessName,@CustomerName,@CreatorName,@StockName,@CustomCode,@PackingId,@PackingName ,@CustomStr,@ProductName)   
                                                       
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorMessage='10.插入InoutStockTable出错!'
                    Select @ErrorInfoId=-10
                    ROLLBACK
                    RETURN 10
                 END
    fetch next from Cur_BillDetailReportSpill
  into  @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@InvalidateDate,@RetailPrice,@CommodityName,@DoseTypeName,@Spec,@ProducingArea,@Unit,@AuthorizeCode,@InOrder,@SpellCode,@CustomCode,@PackingId,@PackingName  ,@CustomStr,@ProductName
  end    
                UPDATE Bill
                SET Status=2,AuditDate=GETDATE()
              WHERE EmbranchmentId=@EmbranchmentId
                AND BillType=@BillType
                AND BillId=@BillId
                AND Status=1 

             IF @@error <>0              BEGIN
                SELECT @ErrorMessage='8.更新主单出错!'
                Select @ErrorInfoId=-11
                ROLLBACK
                RETURN 8
              END 
   Select @ErrorInfoId=1   COMMIT   
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[billReportLoss_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : zjl
CreateDate : 2006-8-8
Summary    : 报损单的审核
Remark     :
1  将报损单明细中对应的商品添加到库存表(CommodityStock)中
***********************************************************************/
CREATE PROCEDURE [dbo].[billReportLoss_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @InDepotId TINYINT
    DECLARE @OutDepotId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @ProviderName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
   
    /*定义BillDetailReportLoss对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @InvalidateDate smalldatetime
    DECLARE @DisCount decimal(9)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
   
    /*定义Commodity对应的局部变量*/
    DECLARE @GeneralName varchar(100)
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @RetailPrice decimal(18,4)
    DECLARE @SumRetail decimal(18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @InAmount int
    DECLARE @OutAmount int
    DECLARE @DisCountPrice decimal(18,4)
   

    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    /*定义一个变量来保存行变化的情况*/
    DECLARE @RowCount int

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=3 --报损单的BillType为3
    SELECT @ErrorMessage='审核成功!'
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @InDepotId=InStockId,
           @OutDepotId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @DisCount=DisCount,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @ProviderName=ProviderName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price, Amount, SumMoney,
                 ProductDate, ValidateDate
           FROM BillDetailReportLoss
           WHERE EmbranchmentId=@EmbranchmentId
             AND  BillType=@BillType
             AND  BillId=@BillId
   
    IF @@ROWCOUNT<=0
    BEGIN
       SELECT @ErrorMessage='没有找到要审核的从单'
       Select @ErrorInfoId=-3
       ROLLBACK
       RETURN
    END
   
    DECLARE Cur_ReportLossDetail CURSOR FOR --从单游标
    SELECT CommodityId, BatchCode, Price, Amount, SumMoney,
                 ProductDate, ValidateDate,RowNum, CommodityName, Spec,
                Unit, ProducingArea, DoseTypeName, AuthorizeCode,CustomCode,
       InOrder,CounterId,CounterName, PackingId, PackingName ,CustomStr,ProductName
           FROM BillDetailReportLoss
           WHERE EmbranchmentId=@EmbranchmentId
             AND  BillType=@BillType
             AND  BillId=@BillId 
            
    OPEN Cur_ReportLossDetail   --打开游标
       
    FETCH NEXT FROM Cur_ReportLossDetail
               INTO @CommodityId, @BatchCode, @Price, @Amount, @SumMoney,
                    @ProductDate, @InvalidateDate ,@RowNum,@CommodityName, @Spec,
                    @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,
                    @InOrder,@CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName

                
    WHILE @@FETCH_STATUS = 0
    BEGIN
        /*向库存(CommodityStock)中插入记录,要使用移动加权平均法来修改"成本价"*/
        /*移动加权平均法的算法:CostPrice=((CostPrice*Amount)+(DiscountPrice*Amount)/(Amount(从单)+Amount(库存)))*/
        /*SumCost=CostPrice*Amount*/
        SELECT @GeneralName=GeneralName
           FROM Commodity
          WHERE CommodityId=@CommodityId
                         and PackingId=@PackingId
         

        SELECT @CostPrice=CostPrice,@Amount_cs=Amount,@SumCost=SumCost,@RetailPrice=RetailPrice FROM CommodityStock          /*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
          WHERE DepotId=@OutDepotId
           AND EmbranchmentId=@EmbranchmentId
           AND CommodityId=@CommodityId
           AND BatchCode=@BatchCode
           and InOrder=@InOrder
           and PackingId=@PackingId

        SELECT @RowCount=@@ROWCOUNT
        IF @RowCount>1
           BEGIN
              SELECT @ErrorMessage='数据库中相同记录过多!'
              Select @ErrorInfoId=-4
              ROLLBACK
              RETURN
           END
            
        IF @RowCount<=0 /*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”*/
           BEGIN
              SELECT @ErrorMessage='药品仓库数量不足,编号:'+ cast(@CommodityId  as varchar(100))+'品名:'+@GeneralName
              Select @ErrorInfoId=-5
              ROLLBACK
              RETURN
           END
        ELSE
           BEGIN
              SELECT @SumCost=@CostPrice*(@Amount_cs-@Amount) /*计算小计金额*/
              SELECT @Amount_cs=@Amount_cs-@Amount /*计算数量*/  
              SELECT @SumRetail=@RetailPrice*@Amount_cs
             if(@Amount_cs<0)
            BEGIN
              SELECT @ErrorMessage='药品仓库数量不足,编号:'+ cast(@CommodityId  as varchar(100)) +'品名:'+@GeneralName
              Select @ErrorInfoId=-6
              ROLLBACK
              RETURN
           END

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/
 
              UPDATE CommodityStock
                 SET Amount=@Amount_cs,FactAmount=@Amount_cs,SumCost=@SumCost ,SumRetail=@SumRetail,DataVersion=@CommodityStockDataVersion+1
                WHERE DepotId=@OutDepotId
                  AND EmbranchmentId=@EmbranchmentId
                  AND CommodityId=@CommodityId
                  AND BatchCode=@BatchCode
                  and InOrder=@InOrder
                  and PackingId=@PackingId
             
              IF @@ERROR<>0
                BEGIN
                   SELECT  @ErrorMessage='库存数据更新失败,审核不成功!'
                   Select @ErrorInfoId=-7
                   ROLLBACK
                   RETURN
                END
             

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/  

              SELECT @CurVersion=CurVersion FROM DataVersion --版本处理部分
                                            WHERE EmbranchmentId=@EmbranchmentId
                                            AND DataVersionId=1
               
              IF @@ROWCOUNT<>1
                 BEGIN
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-8
                    ROLLBACK
                    RETURN                  
                 END
                  
              UPDATE DataVersion
                 SET CurVersion=@CurVersion+1
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1
                  
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorMessage='版本更新失败,审核不成功!'
                    Select @ErrorInfoId=-9
                    ROLLBACK
                    RETURN
                 END
             
            --InoutStockTable处理部分      
select @PrecostPrice=@CostPrice,@PreSalePrice=@RetailPrice,@ChangePrice=@Price-@CostPrice,@CurCostPrice=@CostPrice,@CurSalePrice=@RetailPrice
             select @StockId=@IndepotId,@InAmount=0,@OutAmount=@Amount,@InStockId=@IndepotId ,@ChangeAmount=@Amount,@CurAmount=@Amount_cs,@DisCountPrice=@RetailPrice*@DisCount,@PreAmount=@Amount_cs+@Amount,@PreCostSumMoney=@PrecostPrice*@PreAmount,@CurCostSumMoney=@CurCostPrice*@Amount_cs

              INSERT INTO InoutStockTable (Guid,     EmbranchmentId,    StockId,     BillType,    BillId,    BillCode,     BusinessDate,   AuditDate,    RowNum,     CommodityId,     BatchCode,   PreCostPrice,    PreSalePrice, PreBatchSalePrice, ChangePrice,    Discount,    DiscountPrice,    PreAmount,    ChangeAmount,     CurAmount,    PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney, ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,     InStockId, OutStockId,  DataVersion, InAmount,   OutAmount,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                                                  VALUES (newid(),@EmbranchmentId, @StockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@PrecostPrice,@PreSalePrice,                    0,      @ChangePrice,@Discount,@DiscountPrice,@PreAmount,@ChangeAmount,  @CurAmount,@PreCostSumMoney,         0,                            0,                          @SumMoney,          @CurCostPrice, @CurSalePrice,         0,                @CurCostSumMoney,                0,                              0           ,       @ProductDate, @InvalidateDate,               1,                       1,            @ProviderId, @CustomerId, @InStockId,      0,          @CurVersion + 1,@InAmount,@OutAmount,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName)   
                                  
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorMessage='插入InoutStockTable出错!'
                    Select @ErrorInfoId=-10
                    ROLLBACK
                    RETURN
                 END
           END
        UPDATE Bill
           SET Status=2,AuditDate=GETDATE()
         WHERE EmbranchmentId=@EmbranchmentId
           AND BillType=@BillType
           AND BillId=@BillId
           AND Status=1
        
        IF @@ERROR<>0
           BEGIN
              SELECT @ErrorMessage='主单更新失败,审核不成功!'
              Select @ErrorInfoId=-11
              ROLLBACK
              RETURN
           END       
                         
             /*向InoutStockTable中插入记录*/
       FETCH NEXT FROM Cur_ReportLossDetail
               INTO @CommodityId, @BatchCode, @Price, @Amount, @SumMoney,
                    @ProductDate, @InvalidateDate ,@RowNum,@CommodityName, @Spec,
                    @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,
           @InOrder,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName
    END
    CLOSE Cur_ReportLossDetail
    DEALLOCATE Cur_ReportLossDetail
    SELECT @ErrorMessage='审核成功!'
    Select @ErrorInfoId=1
    COMMIT TRAN
GO
/****** Object:  StoredProcedure [dbo].[billNewStock_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : scs
CreateDate : 2006-7-26
Summary    : 采购入库单的审核
Remark     :
1  将采购入库单明细中对应的商品添加到库存表(Commodity)中
***********************************************************************/

CREATE PROCEDURE [dbo].[billNewStock_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS

   --set nocount on

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Bill_InStockId TINYINT
    DECLARE @Bill_OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)

 

   
    /*定义BillDetailBuyInStock对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount decimal (6,4)
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @TaxRate decimal (6,4)
    DECLARE @TaxPrice char
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)
    DECLARE @SumTaxMoney decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @ValidateDate smalldatetime
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @SpellCode varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @IsChinese bit
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @TXM varchar(60)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @IsMemberPrice bit
    DECLARE @IsDiscount bit
    DECLARE @IsScore bit
    DECLARE @Medicare TINYINT
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InOrderLast int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @PreMemberPrice decimal(18,4)
    DECLARE @CurMemberPrice decimal(18,4)
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    select @ErrorMessage='OK!'
    SELECT @BillType=10 --期初库存单的BillType为10
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Bill_InStockId=InStockId,
           @Bill_OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName,
           @InStockName  =InStockName,
           @OutStockName = OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, ValidateDate,RowNum,RetailPrice,ValidateDate
        FROM NewStock
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   end
   
    DECLARE Cur_NewStock CURSOR FOR /*从单游标*/
        SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, ValidateDate,RowNum,RetailPrice,BatchCode,ValidateDate,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,
                 AuthorizeCode,SpellCode,CustomCode , PackingId, PackingName ,IsChinese,CustomStr,ProductName,TXM,IsMemberPrice,
         IsDiscount,IsScore,CounterId,CounterName,MemberPrice,Medicare
           FROM NewStock
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_NewStock  /*打开游标*/
       
        fetch next from Cur_NewStock
            into @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                  @ProductDate, @ValidateDate,@RowNum,@RetailPrice,@BatchCode ,@InvalidateDate,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@PackingId, @PackingName,
         @IsChinese,@CustomStr,@ProductName,@TXM,@IsMemberPrice,@IsDiscount,@IsScore,@CounterId,@CounterName,@CurMemberPrice,@Medicare
                
        while @@FETCH_STATUS = 0
        begin
             /*向库存(CommodityStock)中插入记录,要使用移动加权平均法来修改"成本价"*/
             /*移动加权平均法的算法:CostPrice=((CostPrice*Amount)+(DiscountPrice*Amount)/(Amount(从单)+Amount(库存)))*/
             /*SumCost=CostPrice*(Amount(从单)+Amount(库存))*/
            
             if (@Bill_InStockId is null) or (@EmbranchmentId is null) or (@CommodityId is null)
             begin
                SELECT @ErrorMessage='从单数据不完整!'
                Select @ErrorInfoId=-4
                ROLLBACK
                RETURN -1
             end

            select @InOrder=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId and  BatchCode= @BatchCode
            select @InOrderLast=isnull(max(InOrder),0) from CommodityStock where CommodityId=@CommodityId and PackingId=@PackingId

             select @CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
                from CommodityStock
             where DepotId=@Bill_InStockId             
                and InOrder=@InOrder
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@BatchCode
               and PackingId=@PackingId
              
           select @RowCount =@@ROWCOUNT
             if @RowCount>1
             begin
                SELECT @ErrorMessage='库存中相同记录过多!'
                Select @ErrorInfoId=-5
                ROLLBACK
                RETURN -1
             end
            
             if @RowCount<=0/*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”、“零售价”、“零售合计”*/
             begin       

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/   
                 select @CounterId=CounterId,@CounterName=CounterName from Commodity where CommodityId=  @CommodityId and PackingId=@PackingId --柜台处理部分
                 select @CostPrice=0--CommodityStock处理部分
                 select @Amount_cs=0
                 select @CostPrice=(((@CostPrice*@Amount_cs)+(@DiscountPrice*@Amount))/(@Amount+@Amount_cs)) /*计算成本价*/
                 select @Amount_cs=@Amount+@Amount_cs /*计算数量*/  
                 select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
        select @SumRetail=@RetailPrice*@Amount_cs
                 insert into CommodityStock (DepotId,    EmbranchmentId,  CommodityId,  BatchCode,  InOrder,ProductDate,  InvalidateDate,  InstockDate, CostPrice, RetailPrice,  Amount,     FactAmount, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,SpellCode,CustomCode,CurrentRetailPrice,DataVersion,CounterId,CounterName,PreMemberPrice,CurrentMemberPrice,Medicare,PackingId,PackingName,IsChinese,CustomStr,ProductName,TXM,IsMemberPrice,IsDiscount,IsScore)
                                      values(@Bill_InStockId, @EmbranchmentId, @CommodityId, @BatchCode, @InOrderLast+1,      @ProductDate, @InvalidateDate, @CreateDate, @CostPrice,@RetailPrice, @Amount_cs, @Amount_cs, @SumCost, @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@RetailPrice,@CommodityStockDataVersion+1,@CounterId,@CounterName,@PreMemberPrice,@CurMemberPrice,@Medicare,@PackingId,@PackingName,@IsChinese,@CustomStr,@ProductName,@TXM,@IsMemberPrice,@IsDiscount,@IsScore)
                
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入库存失败!'
                      Select @ErrorInfoId=-6
                      ROLLBACK
                      RETURN -1
                 end

               /*************************************在社区药店系统版本处理部分**********************************************/  
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/  

                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
                 end
                
                 --在插入InoutStockTable前将所需数据查询出来


                 --InoutStockTable处理部分                
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId ,  BillCode,    BusinessDate,AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  OriginalAmount, ChangeAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,    OutStockId, DataVersion, CommodityName , Spec ,
                                                             DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode ,PackingId,PackingName,CustomStr,ProductName)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,0,            0,            0, 
                                                 @RetailPrice, @Discount, @DiscountPrice, @Amount, @Amount, @Amount_cs, 0,              0,               0,                    @SumMoney,      @CostPrice,  
                                                 @RetailPrice, 0,                 @SumCost,        0,                    1,       @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,   0,  
                                                 @CurVersion+1,@CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit ,@AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                 @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode ,@PackingId,@PackingName,@CustomStr,@ProductName)
           
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-9
                      ROLLBACK
                      RETURN -1
                 end
           
             end
             else
             begin

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/ 


               select @CounterId=CounterId,@CounterName=CounterName from Commodity where CommodityId=  @CommodityId and PackingId=@PackingId --柜台处理部分

                select @CostPrice=(((@CostPrice*@Amount_cs)+(@DiscountPrice*@Amount))/(@Amount+@Amount_cs)) /*计算成本价*/
                select @Amount_cs=@Amount+@Amount_cs /*计算数量*/
                select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
       select @SumRetail=@RetailPrice*@Amount_cs  
                Update CommodityStock
                    set ProductDate=@ProductDate,InvalidateDate=@InvalidateDate,InstockDate=@CreateDate,CostPrice=@CostPrice,Amount=@Amount_cs,FactAmount=@Amount_cs,
           SumCost=@SumCost,RetailPrice=@RetailPrice,CurrentRetailPrice=@RetailPrice,SumRetail=@SumRetail,CounterId=@CounterId,CounterName=@CounterName,
           DataVersion=@CommodityStockDataVersion+1,IsChinese=@IsChinese,IsMemberPrice=@IsMemberPrice,
           IsDiscount=@IsDiscount,IsScore=@IsScore,CustomCode=@CustomCode,PreMemberPrice=@PreMemberPrice,CurrentMemberPrice=@CurMemberPrice,
           Medicare=@Medicare,PackingId=@PackingId,PackingName=@PackingName ,CustomStr=@CustomStr,ProductName=@ProductName
                where DepotId=@Bill_InStockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@CommodityId
                  and InOrder=@InOrder
                  and BatchCode=@BatchCode                   
                  and PackingId=@PackingId
               
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新库存出错!'
                      Select @ErrorInfoId=-10
                      ROLLBACK
                      RETURN -1
                 end 

               /*************************************在社区药店系统版本处理部分**********************************************/  

                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/    
                 
                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-11
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-12
                      ROLLBACK
                      RETURN -1
                 end

                 --InoutStockTable处理部分                
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode, BusinessDate, AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice,   PreSalePrice,    
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  OriginalAmount,   ChangeAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion, CommodityName ,Spec,
                                                             DoseTypeName,ProducingArea,Unit,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode,PackingId,PackingName,CustomStr,ProductName)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId,@BillCode,@BusinessDate,@AuditDate, @RowNum, @CommodityId, @BatchCode,@CostPrice_pre,
                                                  @RetailPrice_pre, 0,                 @RetailPrice, @Discount, @DiscountPrice, @Amount, @Amount,     @Amount_cs, @SumCost_pre,   0,      0,
                                                  @SumMoney,       @CostPrice,   @RetailPrice, 0,                 @SumCost,        0,                    1, @ProductDate, @InvalidateDate, 1,              1,               @ProviderId,
                                                  @CustomerId, @Bill_InStockId,  0,          @CurVersion+1, @CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,  @CreatorName ,
                                                  @BusinessName, @BillCodeName, @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode,@PackingId,@PackingName,@CustomStr,@ProductName)                                             
            
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-13
                      ROLLBACK
                      RETURN -1
                 end

             end        
              
             Update Bill
                 set Status=2,AuditDate=getdate()
             where EmbranchmentId=@EmbranchmentId
               and BillType=@BillType
               and BillId=@BillId
               and Status=1 

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新主单出错!'
                      Select @ErrorInfoId=-14
                      ROLLBACK
                      RETURN -1
                 end 
            
        fetch next from Cur_NewStock
            into @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                  @ProductDate, @ValidateDate,@RowNum,@RetailPrice,@BatchCode ,@InvalidateDate,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@SpellCode,@CustomCode,@PackingId, @PackingName,
         @IsChinese,@CustomStr,@ProductName,@TXM,@IsMemberPrice,@IsDiscount,@IsScore,@CounterId,@CounterName,@CurMemberPrice,@Medicare
        end
        SELECT @ErrorMessage='单据审核成功!'
        Select @ErrorInfoId=1
        CLOSE Cur_NewStock
        DEALLOCATE Cur_NewStock       
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetailReturnCard_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[billDetailRetailReturnCard_Audit]
    (
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS

   SET NOCOUNT ON

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @InDepotId TINYINT
    DECLARE @OutDepotId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @ProviderName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @SumReturnPayCard decimal(18,4)
    DECLARE @SumPayCard decimal(18,4)
    DECLARE @PayCardMoneyBefore decimal(18,4)
    DECLARE @PayCardMoneyAfter decimal(18,4)
   
    /*定义BillDetailRetailReturn对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount decimal (6,4)
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @TaxRate decimal (6,4)
    DECLARE @TaxPrice char
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)
    DECLARE @SumTaxMoney decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @InvalidateDate smalldatetime
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @ReturnPayCard decimal(18,4)
    DECLARE @MemberPrice decimal(18,4)

   
    /*定义Commodity对应的局部变量*/
    DECLARE @GeneralName varchar(100)
      
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @CurrentMemberPrice decimal(18,4)
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @PayCard decimal(18,4)
    DECLARE @CostMemberPrice decimal(18,4)
  
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
    DECLARE @CardCurVersion bigint
    DECLARE @CardSynchronizeDateTime datetime

    DECLARE @RowCount int 
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=26 --零售退货单的BillType为6
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @CardId=CardId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @InDepotId=InStockId,
           @OutDepotId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @ProviderName=ProviderName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @SumPayCard=PayCard,
           @SumReturnPayCard=ReturnPayCard,
           @PayCardMoneyBefore=PayCardMoneyBefore,
           @PayCardMoneyAfter=PayCardMoneyAfter
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,RowNum,RetailPrice,CommodityName, Spec,
                 Unit, ProducingArea, DoseTypeName, AuthorizeCode
        FROM BillDetailRetailReturn
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
   IF @@ROWCOUNT<=0
   BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   END
   
   DECLARE Cur_BillDetailRetailReturn CURSOR FOR /*从单游标*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
           ProductDate, InvalidateDate,RowNum,RetailPrice,CommodityName, Spec,
                 Unit, ProducingArea, DoseTypeName, AuthorizeCode,CustomCode,
        CounterId,CounterName , PackingId, PackingName,CustomStr,ProductName,ReturnPayCard,MemberPrice
      FROM BillDetailRetailReturn
     WHERE EmbranchmentId=@EmbranchmentId
       AND  BillType=@BillType
       AND  BillId=@BillId 
            
    OPEN Cur_BillDetailRetailReturn  /*打开游标*/
       
    FETCH NEXT FROM Cur_BillDetailRetailReturn
          INTO @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
               @ProductDate, @InvalidateDate,@RowNum,@RetailPrice,@CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,@CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName,@ReturnPayCard,@MemberPrice
                
    WHILE @@FETCH_STATUS = 0
       BEGIN
         /*向库存(CommodityStock)中插入记录,要使用移动加权平均法来修改"成本价"*/
         /*移动加权平均法的算法:CostPrice=((CostPrice*Amount)+(DiscountPrice*Amount)/(Amount(从单)+Amount(库存)))*/
         /*SumCost=CostPrice*(Amount(从单)+Amount(库存))*/
            
         IF (@InDepotId IS NULL) or (@EmbranchmentId IS NULL) OR (@CommodityId IS NULL)-- OR (@BatchCode IS NULL)
           BEGIN
              SELECT @ErrorMessage='从单数据不完整!'
              Select @ErrorInfoId=-4
              ROLLBACK
              RETURN -1
           END
          
         SELECT @GeneralName=GeneralName
           FROM Commodity
          WHERE CommodityId=@CommodityId

         select * from CommodityStock--检查库存中是否有多条相同的药品记录,如果有则取DepotId、EmbranchmentId=@EmbranchmentId、CommodityId=@CommodityId、 BatchCode=@BatchCode、RetailPrice相同的药品用于更新
          WHERE  DepotId=@InDepotId
            AND EmbranchmentId=@EmbranchmentId
            AND CommodityId=@CommodityId
            AND BatchCode=@BatchCode
            and PackingId=@PackingId

          SELECT @RowCount =@@ROWCOUNT

         if @RowCount=1
         begin
             SELECT @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail,@CurrentMemberPrice=CurrentMemberPrice/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                            and PackingId=@PackingId
         end
         if @RowCount>1
         begin
               SELECT @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail,@CurrentMemberPrice=CurrentMemberPrice/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                            and CurrentRetailPrice=@RetailPrice
                            and PackingId=@PackingId
              if @@rowcount<>1--检查退货的价格和库存中的记录是否相同
              begin
               SELECT top 1 @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail,@CurrentMemberPrice=CurrentMemberPrice/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                           and PackingId=@PackingId
              end
         end

            
           IF @RowCount<=0/*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”、“零售价”、“零售合计”*/
             BEGIN                
               SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @GeneralName +' 批号为:' + @BatchCode +'的药品在库存中没有,请检查编批是否正确!'
               Select @ErrorInfoId=-5
               ROLLBACK
               RETURN -1
             END
           ELSE
             BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/

                SELECT @Amount_cs=@Amount+@Amount_cs /*计算数量*/
                SELECT @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/  
                SELECT @SumRetail=@RetailPrice_pre*@Amount_cs /*计算小计金额*/
                UPDATE CommodityStock
                   SET Amount=@Amount_cs,FactAmount=@Amount_cs,SumCost=@SumCost,SumRetail=@SumRetail  ,DataVersion=@CommodityStockDataVersion+1
                WHERE DepotId=@InDepotId
                  AND EmbranchmentId=@EmbranchmentId
                  AND CommodityId=@CommodityId
                  AND BatchCode=@BatchCode
                  and  InOrder=@InOrder
                  and PackingId=@PackingId
               
                IF @@error <>0
                 BEGIN
                    SELECT @ErrorMessage='更新库存出错!'
                    Select @ErrorInfoId=-6
                    ROLLBACK
                    RETURN -1
                 END 
               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/
                 
                SELECT @CurVersion=CurVersion FROM DataVersion --版本处理部分
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1
                IF @@ROWCOUNT<>1
                 BEGIN
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 END 
                UPDATE DataVersion
                   SET PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1

                IF @@error <>0
                 BEGIN
                    SELECT @ErrorMessage='更新版本出错!'
                    Select @ErrorInfoId=-8
                    ROLLBACK
                    RETURN -1
                 END
                SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-9
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本失败!'
                          Select @ErrorInfoId=-10
                          ROLLBACK
                          RETURN -1
                       end


                 --InoutStockTable处理部分
      SELECT @CurCostSumMoney=@Amount*@CostPrice
      SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount
          SELECT @PayCard=@DiscountPrice*@Amount  
          SELECT @CostMemberPrice=@MemberPrice*@Amount
          SELECT @ChangeSumMoney=@MemberPrice*@Amount           
                INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice,   PreSalePrice,     PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount,   ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName,CardId,CardCode,PayCard,ReturnPayCard,CostMemberPrice,SumPayCard,SumReturnPayCard,PayCardMoneyBefore,PayCardMoneyAfter,CurMemberPrice,CardDataVersion)
                       VALUES (newid(),@EmbranchmentId, @InDepotId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice_pre, @RetailPrice_pre, 0,                 @RetailPrice, @Discount, @DiscountPrice, @Amount_pre, @Amount,   @Amount, @Amount_cs, @SumCost_pre,   0,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @InDepotId,  0,          @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName,@CardId,@CardCode,@PayCard,@ReturnPayCard,@CostMemberPrice,@SumPayCard,@SumReturnPayCard,@PayCardMoneyBefore,@PayCardMoneyAfter,@MemberPrice,@CardCurVersion+1)                                             
            
                IF @@error <>0                 BEGIN
                    SELECT @ErrorMessage='插入InoutStockTable出错!'
                    Select @ErrorInfoId=-9
                    ROLLBACK
                    RETURN -1
                 END

             END        
              
             UPDATE Bill
                SET Status=2,AuditDate=GETDATE()
              WHERE EmbranchmentId=@EmbranchmentId
                AND BillType=@BillType
                AND BillId=@BillId
                AND Status=1 

             IF @@error <>0
              BEGIN
                SELECT @ErrorMessage='更新主单出错!'
                Select @ErrorInfoId=-10
                ROLLBACK
                RETURN -1
              END 
            
    FETCH NEXT FROM Cur_BillDetailRetailReturn
          INTO @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@RowNum,@RetailPrice,@CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName,@ReturnPayCard,@MemberPrice
        END
        CLOSE Cur_BillDetailRetailReturn
        DEALLOCATE Cur_BillDetailRetailReturn       
        COMMIT TRAN
        SELECT   @ErrorMessage='审核成功!'
        Select @ErrorInfoId=1
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetailReturn_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[billDetailRetailReturn_Audit]
    (
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS

   SET NOCOUNT ON

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @InDepotId TINYINT
    DECLARE @OutDepotId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @ProviderName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
   
    /*定义BillDetailRetailReturn对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount decimal (6,4)
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @TaxRate decimal (6,4)
    DECLARE @TaxPrice char
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)
    DECLARE @SumTaxMoney decimal (18,4)
    DECLARE @ProductDate smalldatetime
    DECLARE @InvalidateDate smalldatetime
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
   
    /*定义Commodity对应的局部变量*/
    DECLARE @GeneralName varchar(100)
      
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   

   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int 
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=6 --零售退货单的BillType为6
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @InDepotId=InStockId,
           @OutDepotId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @ProviderName=ProviderName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,RowNum,RetailPrice,CommodityName, Spec,
                 Unit, ProducingArea, DoseTypeName, AuthorizeCode
        FROM BillDetailRetailReturn
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
   IF @@ROWCOUNT<=0
   BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   END
   
   DECLARE Cur_BillDetailRetailReturn CURSOR FOR /*从单游标*/
    SELECT CommodityId, BatchCode, Price, Discount, DiscountPrice, Amount, SumMoney,
           ProductDate, InvalidateDate,RowNum,RetailPrice,CommodityName, Spec,
                 Unit, ProducingArea, DoseTypeName, AuthorizeCode,CustomCode,
        CounterId,CounterName , PackingId, PackingName,CustomStr,ProductName
      FROM BillDetailRetailReturn
     WHERE EmbranchmentId=@EmbranchmentId
       AND  BillType=@BillType
       AND  BillId=@BillId 
            
    OPEN Cur_BillDetailRetailReturn  /*打开游标*/
       
    FETCH NEXT FROM Cur_BillDetailRetailReturn
          INTO @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
               @ProductDate, @InvalidateDate,@RowNum,@RetailPrice,@CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,@CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName
                
    WHILE @@FETCH_STATUS = 0
       BEGIN
         /*向库存(CommodityStock)中插入记录,要使用移动加权平均法来修改"成本价"*/
         /*移动加权平均法的算法:CostPrice=((CostPrice*Amount)+(DiscountPrice*Amount)/(Amount(从单)+Amount(库存)))*/
         /*SumCost=CostPrice*(Amount(从单)+Amount(库存))*/
            
         IF (@InDepotId IS NULL) or (@EmbranchmentId IS NULL) OR (@CommodityId IS NULL)-- OR (@BatchCode IS NULL)
           BEGIN
              SELECT @ErrorMessage='从单数据不完整!'
              Select @ErrorInfoId=-4
              ROLLBACK
              RETURN -1
           END
          
         SELECT @GeneralName=GeneralName
           FROM Commodity
          WHERE CommodityId=@CommodityId

         select * from CommodityStock--检查库存中是否有多条相同的药品记录,如果有则取DepotId、EmbranchmentId=@EmbranchmentId、CommodityId=@CommodityId、 BatchCode=@BatchCode、RetailPrice相同的药品用于更新
          WHERE  DepotId=@InDepotId
            AND EmbranchmentId=@EmbranchmentId
            AND CommodityId=@CommodityId
            AND BatchCode=@BatchCode
            and PackingId=@PackingId

          SELECT @RowCount =@@ROWCOUNT

         if @RowCount=1
         begin
             SELECT @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                            and PackingId=@PackingId
         end
         if @RowCount>1
         begin
               SELECT @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                            and  RetailPrice=@RetailPrice
                            and PackingId=@PackingId
              if @@rowcount<>1--检查退货的价格和库存中的记录是否相同
              begin
               SELECT top 1 @InOrder=InOrder,@CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=CurrentRetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail/*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
               FROM CommodityStock
              WHERE  DepotId=@InDepotId
                            AND EmbranchmentId=@EmbranchmentId
                            AND CommodityId=@CommodityId
                            AND BatchCode=@BatchCode
                           and PackingId=@PackingId
              end
         end

            
           IF @RowCount<=0/*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”、“零售价”、“零售合计”*/
             BEGIN                
               SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @GeneralName +' 批号为:' + @BatchCode +'的药品在库存中没有,请检查编批是否正确!'
               Select @ErrorInfoId=-5
               ROLLBACK
               RETURN -1
             END
           ELSE
             BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/

                SELECT @Amount_cs=@Amount+@Amount_cs /*计算数量*/
                SELECT @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/  
                SELECT @SumRetail=@RetailPrice_pre*@Amount_cs /*计算小计金额*/
                UPDATE CommodityStock
                   SET Amount=@Amount_cs,FactAmount=@Amount_cs,SumCost=@SumCost,SumRetail=@SumRetail  ,DataVersion=@CommodityStockDataVersion+1
                WHERE DepotId=@InDepotId
                  AND EmbranchmentId=@EmbranchmentId
                  AND CommodityId=@CommodityId
                  AND BatchCode=@BatchCode
                  and  InOrder=@InOrder
                  and PackingId=@PackingId
               
                IF @@error <>0
                 BEGIN
                    SELECT @ErrorMessage='更新库存出错!'
                    Select @ErrorInfoId=-6
                    ROLLBACK
                    RETURN -1
                 END 
               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/
                 
                SELECT @CurVersion=CurVersion FROM DataVersion --版本处理部分
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1
                IF @@ROWCOUNT<>1
                 BEGIN
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 END 
                UPDATE DataVersion
                   SET PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 WHERE EmbranchmentId=@EmbranchmentId
                   AND DataVersionId=1

                IF @@error <>0
                 BEGIN
                    SELECT @ErrorMessage='更新版本出错!'
                    Select @ErrorInfoId=-8
                    ROLLBACK
                    RETURN -1
                 END

                 --InoutStockTable处理部分
      SELECT @CurCostSumMoney=@Amount*@CostPrice
      SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount               
                INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice,   PreSalePrice,     PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount,   ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,ProviderName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,PackingId,PackingName,CustomStr,ProductName)
                       VALUES (newid(),@EmbranchmentId, @InDepotId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice_pre, @RetailPrice_pre, 0,                 @RetailPrice, @Discount, @DiscountPrice, @Amount_pre, @Amount,   @Amount, @Amount_cs, @SumCost_pre,   0,      0,                    @SumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @InDepotId,  0,          @CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@ProviderName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName)                                             
            
                IF @@error <>0                 BEGIN
                    SELECT @ErrorMessage='插入InoutStockTable出错!'
                    Select @ErrorInfoId=-9
                    ROLLBACK
                    RETURN -1
                 END

             END        
              
             UPDATE Bill
                SET Status=2,AuditDate=GETDATE()
              WHERE EmbranchmentId=@EmbranchmentId
                AND BillType=@BillType
                AND BillId=@BillId
                AND Status=1 

             IF @@error <>0
              BEGIN
                SELECT @ErrorMessage='更新主单出错!'
                Select @ErrorInfoId=-10
                ROLLBACK
                RETURN -1
              END 
            
    FETCH NEXT FROM Cur_BillDetailRetailReturn
          INTO @CommodityId, @BatchCode, @Price, @Discount, @DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@RowNum,@RetailPrice,@CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@CustomCode,@CounterId,@CounterName,@PackingId,@PackingName,@CustomStr,@ProductName
        END
        CLOSE Cur_BillDetailRetailReturn
        DEALLOCATE Cur_BillDetailRetailReturn       
        COMMIT TRAN
        SELECT   @ErrorMessage='审核成功!'
        Select @ErrorInfoId=1
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[BillDetailChargeCard_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2010-1-17
Summary    : 会员卡充值单据审核
***********************************************************************/

CREATE PROCEDURE [dbo].[BillDetailChargeCard_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS  

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @Status TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
 
/*定义BillDetailChargeCard 对应的局部变量*/
    DECLARE @CardCode VARCHAR(50)
    DECLARE @IsCZ TINYINT
    DECLARE @RowNum TINYINT


   /*定义会员卡对应的局部变量*/
    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)
    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
    DECLARE @CardChangeMoney NUMERIC(18,4)
    DECLARE @CustomerId INT
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @Balance DECIMAL(18,4)
    DECLARE @SumConsumed DECIMAL(18,4)
    DECLARE @CardTypeId INT
    DECLARE @CardLevelId TINYINT
    DECLARE @CardLevelName VARCHAR(50)

    /*根据情况对局部变量赋初始值*/
    SELECT @ErrorMessage='OK!'
    SELECT @ErrorInfoId=1
    SELECT @BillType=16
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-5
        RETURN -5
    END
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   

   SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @Status=@Status,
           @Summary=Summary,
           @Remark=Remark,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        SELECT @ErrorMessage='没有找到要审核的主单'
        SELECT @ErrorInfoId=-1
        RETURN-1
        ROLLBACK
    END

    /*检查从单是否完整*/
    SELECT * FROM BillDetailChargeCard
     WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
    IF @@ROWCOUNT=0
    BEGIN
      
        SELECT @ErrorMessage='没有找到要审核的从单'
        SELECT @ErrorInfoId=-2
        ROLLBACK
        RETURN -2
    END
 
   
    DECLARE Cur_BillDetailChargeCard CURSOR FOR /*从单游标*/
          SELECT CardCode,IsCZ,RowNum
          FROM BillDetailChargeCard
          WHERE EmbranchmentId=@EmbranchmentId
          AND  BillType=@BillType
          AND  BillId=@BillId
          AND  Status=1
            
        OPEN Cur_BillDetailChargeCard  /*打开游标*/
       
        FETCH NEXT FROM Cur_BillDetailChargeCard
        INTO @CardCode,@IsCZ,@RowNum
        while @@FETCH_STATUS = 0
        BEGIN
            SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney,@CustomerId=CustomerId,@CustomerName=CustomerName,@CardTypeId=CardTypeId,@CardTypeId=CardLevelId from MemberCard
            WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
            IF(@@ROWCOUNT<0)
            BEGIN
                SELECT @ErrorMessage='没有找到此卡'
                SELECT @ErrorInfoId=-3
                ROLLBACK
                RETURN -3
            END
            IF(@IsCZ=2)
            BEGIN
                SELECT @ErrorMessage='此卡已经充值'
                SELECT @ErrorInfoId=-3
                ROLLBACK
                RETURN -3
            END
            UPDATE MemberCard SET IsCZ=1
            IF(@@ERROR<>0)
              BEGIN
                  SELECT @ErrorMessage='更新会员卡失败'
                  SELECT @ErrorInfoId=-4
                  ROLLBACK
                  RETURN -4
              END
            UPDATE BillDetailChargeCard
            SET Status=2
            WHERE EmbranchmentId=@EmbranchmentId
            AND BillType=@BillType
            AND BillId=@BillId
            AND RowNum=@RowNum
            AND Status=1 
                                
         FETCH NEXT FROM Cur_BillDetailChargeCard
         INTO @CardCode,@IsCZ,@RowNum
                
        END
        UPDATE Bill
        SET Status=2,AuditDate=getdate()       
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1 

        IF @@error <>0
             BEGIN
                  SELECT @ErrorMessage='更新主单出错!'
                  SELECT @ErrorInfoId=-6
                  ROLLBACK
                  RETURN -6
             END 
       
        CLOSE Cur_BillDetailChargeCard
        DEALLOCATE Cur_BillDetailChargeCard    
        SELECT @ErrorMessage='充值单据审核成功!'
        Select @ErrorInfoId=1   
        Commit TRAN
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetail_POS_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : qcj
CreateDate : 2006-8-18
Summary    : 零售单的审核
Remark     : 从库存表中将零售单明细中对应的商品删除
***********************************************************************/

CREATE PROCEDURE [dbo].[billDetailRetail_POS_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Discount DECIMAL(18,4)--整单折扣
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCard DECIMAL(18,4)--会员卡消费
    DECLARE @SumPayCard DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)

    /*定义BillDetailRetail对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount_Detail decimal (6,4)--明细单中每条记录的折扣
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CostPrice_Detail decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @MemberPrice decimal(18,4)
    DECLARE @ReturnPayCard decimal (18,4)
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @DepotId int
    DECLARE @InvalidateDate_CS  datetime
    DECLARE @Spec_CS  varchar (50)
    DECLARE @DoseTypeName_CS varchar (50)
    DECLARE @Unit_CS varchar (50)
    DECLARE @AuthorizeCode_CS  varchar (50)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @Medicare TINYINT
    DECLARE @BatchCode_CS varchar(50)

   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @CostMemberPrice decimal(18,4)
   
    DECLARE @IsMedicare int
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
    DECLARE @CardCurVersion bigint
    DECLARE @CardSynchronizeDateTime datetime

    DECLARE @SumAmount decimal (18,4)

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=5 --零售单的BillType为5
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    DECLARE @transactionCount  INT /*事务记数*/ 
    SELECT  @transactionCount  =  @@trancount 
    IF @transactionCount =  0  /*判断事务记数,根据情况确定使用保存点或者新建一个事务*/ 
    BEGIN TRAN  RETAIL
    ELSE SAVE TRAN RETAIL
    SET NOCOUNT ON  
   Select *
    FROM  Bill
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=2

    IF @@ROWCOUNT>0
    BEGIN
        ROLLBACK  TRAN RETAIL
        SELECT @ErrorMessage='单据已审核!'
        Select @ErrorInfoId =-100
        RETURN
    END

  update   Bill  set PayYB=PayKYB+PaySYB
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1


    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Discount=Discount,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @PayType=PayType,
           @PayCard=PayCard,
           @PayMoney=PayMoney,
           @ReturnMoney=ReturnMoney,
           @SumPayCard=PayCard,
           @SumReturnPayCard=ReturnPayCard,
           @PayCardMoneyBefore=PayCardMoneyBefore,
           @PayCardMoneyAfter=PayCardMoneyAfter,
           @PaySYB=PaySYB,
           @PayKYB=PayKYB,
           @PayYB=PayYB
          

    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK  TRAN RETAIL
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,CostPrice,RowNum
    FROM BillDetailRetail(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId =-3
      ROLLBACK  TRAN RETAIL
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BillDetailRetail CURSOR FOR
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
        ProductDate, InvalidateDate,CostPrice,RowNum, CommodityName, Spec,
                           Unit, ProducingArea, DoseTypeName, AuthorizeCode,InOrder,CustomCode,
                  CounterId,CounterName, PackingId, PackingName ,CustomStr,ProductName,MemberPrice,ReturnPayCard
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BillDetailRetail

    FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard

    WHILE @@FETCH_STATUS = 0
    BEGIN

    --根据从单中药品ID,检查库存中此药品的总数量是否大于或等于从单此药品开的数量
    --如果库存中的数量大于或等于从单中开的数量,则更新库存表,否则回滚
      Select  @SumAmount=Sum(Amount)       From CommodityStock(UPDLOCK)      where EmbranchmentId=@EmbranchmentId      and CommodityId=@CommodityId
      and PackingId=@PackingId

        IF @@ROWCOUNT = 0
        BEGIN
            SELECT @ErrorMessage=@CommodityName+'检测库存失败!'
            Select @ErrorInfoId =-4
            ROLLBACK  TRAN RETAIL
            RETURN
        END
       
        if @SumAmount<@Amount
        begin
            SELECT @ErrorMessage=@CommodityName+'库存不足!'
            Select @ErrorInfoId =-5
            ROLLBACK  TRAN RETAIL
            RETURN
        end

        /*库存游标*/
        DECLARE Cur_CommodityStock CURSOR FOR
        Select DepotId,InOrder,CostPrice,Amount,Amount, CurrentRetailPrice, SumCost, SumRetail ,InvalidateDate ,Spec ,DoseTypeName,Unit ,AuthorizeCode,Medicare,BatchCode
        From CommodityStock
        where EmbranchmentId=@EmbranchmentId        and CommodityId=@CommodityId
        and Amount>0
        and PackingId=@PackingId
        order by InstockDate
       
        open Cur_CommodityStock   
   
         FETCH NEXT FROM Cur_CommodityStock
         INTO   @DepotId ,@InOrder,@CostPrice,@Amount_pre,@Amount_cs ,@RetailPrice ,@SumCost ,@SumRetail,@InvalidateDate_CS ,@Spec_CS ,@DoseTypeName_CS,@Unit_CS ,@AuthorizeCode_CS,@Medicare,@BatchCode_CS
     
        WHILE ((@@FETCH_STATUS = 0) and (@Amount>0))
        begin
              if (@Amount_cs>=@Amount)
              begin
                    --SELECT @ChangeSumMoney=@Amount*@Price
                    SELECT @Amount_cs = @Amount_cs - @Amount
                    SELECT @SumCost = @CostPrice * @Amount_cs
                    SELECT @SumRetail = @RetailPrice * @Amount_cs


                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
  
               /**************************************************************************************************************************************/   

          UPDATE CommodityStock
          SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail,DataVersion=@CommodityStockDataVersion+1
           WHERE  DepotId=@OutStockId
                     AND EmbranchmentId=@EmbranchmentId
                     AND CommodityId=@CommodityId
                     and  InOrder=@InOrder
                     and PackingId=@PackingId

                      if @@error <>0
                      begin
                          SELECT @ErrorMessage=@CommodityName+'更新库存失败!'
                          Select @ErrorInfoId=-6
                          ROLLBACK
                          RETURN -1
                      end       

 


               /*************************************在社区药店系统版本处理部分**********************************************/  
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/           

                    /*版本处理部分*/
                     SELECT @CurVersion=CurVersion
                     FROM DataVersion
                     WHERE EmbranchmentId=@EmbranchmentId
                     AND DataVersionId=1
            
                     IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-7
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                    ELSE
                    BEGIN
         Update DataVersion
                           SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                           WHERE EmbranchmentId=@EmbranchmentId
                           AND DataVersionId=1

                          if @@error <>0
                          begin
                             SELECT @ErrorMessage=@CommodityName+'更新版本失败!'
                             Select @ErrorInfoId=-8
                             ROLLBACK
                            RETURN -1
                         end
                    END
             
               IF(@PayType=1 or @PayType=2 or @PayType=3)
                    BEGIN
                    SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-9
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本失败!'
                          Select @ErrorInfoId=-9
                          ROLLBACK
                          RETURN -1
                       end
               END
              
                    

                    /*出入库记录处理部分*/
          SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
          SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
          SELECT @CurCostSumMoney=@Amount*@CostPrice
          SELECT @CurSaleSumMoney=@Amount*@DiscountPrice
              SELECT @ChangeSumMoney=@Amount*@DiscountPrice*@Discount--@Discount为整单折扣,@Discount_Detail为明细单品折扣
              SELECT @CostMemberPrice=@Amount*@MemberPrice
           IF(@PayType=1 or @PayType=2 or @PayType=3)
                    BEGIN
                        SELECT @PayCard=@RetailPrice*@Amount
                        SELECT @ReturnPayCard=(@RetailPrice-@MemberPrice)*@Amount
                        SELECT @ChangeSumMoney=@MemberPrice*@Amount
                    END
             ELSE
                BEGIN
                    SELECT @PayCard=0
                    SELECT @ReturnPayCard=0
                END
           
        
          select     @IsMedicare=0
          if @PayType>=2
          begin
             select     @IsMedicare=1
          end
    
                    INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardCode,Medicare,PayCard,PackingId,PackingName,CustomStr,ProductName, IsMedicare,ReturnPayCard,CostMemberPrice,SumPayCard,SumReturnPayCard,PayMoney,ReturnMoney,PayCardMoneyBefore,PayCardMoneyAfter,CurMemberPrice,CardDataVersion,PaySYB,PayKYB,PayYB)
                                         VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode_CS,@CostPrice  , @RetailPrice,0                ,@Price     ,@Discount_Detail       ,@DiscountPrice       ,@Amount_pre,@Amount,      @Amount,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,   @ChangeSumMoney,       @CostPrice,   @Price, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate_CS, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec_CS,@Unit_CS,@ProducingArea,@AuthorizeCode_CS,@DoseTypeName_CS,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,2,@Discount,@PayType,@CardCode,@Medicare,@PayCard,@PackingId,@PackingName,@CustomStr,@ProductName,@IsMedicare,@ReturnPayCard,@CostMemberPrice,@SumPayCard,@SumReturnPayCard,@PayMoney,@ReturnMoney,@PayCardMoneyBefore,@PayCardMoneyAfter,@MemberPrice,@CardCurVersion+1,@PaySYB,@PayKYB,@PayYB)
                   
                    if @@error <>0
                    begin
                         SELECT @ErrorMessage=@CommodityName+'出入库记录处理失败!'
                         Select @ErrorInfoId=-9
                         ROLLBACK
                         RETURN -1
                    end

                    SELECT @Amount=@Amount-@Amount_pre

              end
              else
              begin
                    SELECT @Amount_cs = @Amount_cs - @Amount_cs
                    SELECT @SumCost = @CostPrice * @Amount_cs
                    SELECT @SumRetail = @RetailPrice * @Amount_cs

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/

          UPDATE CommodityStock
          SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail,DataVersion=@CommodityStockDataVersion+1
           WHERE  DepotId=@OutStockId
                     AND EmbranchmentId=@EmbranchmentId
                     AND CommodityId=@CommodityId
                     and  InOrder=@InOrder
                     and PackingId=@PackingId

                      if @@error <>0
                      begin
                          SELECT @ErrorMessage=@CommodityName+'更新库存失败!'
                          Select @ErrorInfoId=-10
                          ROLLBACK
                          RETURN -1
                      end             

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/           

                    /*版本处理部分*/
                     SELECT @CurVersion=CurVersion
                     FROM DataVersion
                     WHERE EmbranchmentId=@EmbranchmentId
                     AND DataVersionId=1
            
                     IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-11
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                    ELSE
                    BEGIN
         Update DataVersion
                           SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                           WHERE EmbranchmentId=@EmbranchmentId
                           AND DataVersionId=1

                          if @@error <>0
                          begin
                             SELECT @ErrorMessage=@CommodityName+'更新版本失败!'
                             Select @ErrorInfoId=-12
                             ROLLBACK
                            RETURN -1
                         end
                    END
           
               IF(@PayType=1 or @PayType=2 or @PayType=3)
                  BEGIN
                    SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-9
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本失败!'
                          Select @ErrorInfoId=-10
                          ROLLBACK
                          RETURN -1
                       end

               END
 
                    /*出入库记录处理部分*/
          SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
          SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
          SELECT @CurCostSumMoney=@Amount_pre*@CostPrice
          SELECT @CurSaleSumMoney=@Amount_pre*@DiscountPrice
              SELECT @ChangeSumMoney=@Amount_pre*@DiscountPrice*@Discount--@Discount为整单折扣,@Discount_Detail为明细单品折扣
              SELECT @CostMemberPrice=@MemberPrice*@Amount_pre
             IF(@PayType=1 or @PayType=2 or @PayType=3)
                    BEGIN
                        SELECT @PayCard=@RetailPrice*@Amount_pre
                        SELECT @ReturnPayCard=(@RetailPrice-@MemberPrice)*@Amount_pre
                        SELECT @ChangeSumMoney=@MemberPrice*@Amount_pre
                    END
             ELSE
                BEGIN
                    SELECT @PayCard=0
                    SELECT @ReturnPayCard=0
                END
          select     @IsMedicare=0
          if @PayType>=2
          begin
             select     @IsMedicare=1
          end
         
                    INSERT INTO InoutStockTable (Guid,   EmbranchmentId,    StockId,           BillType,     BillId,    BillCode,     BusinessDate,  AuditDate,    RowNum,    CommodityId,      BatchCode, PreCostPrice,  PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,                      DiscountPrice,PreAmount,      ChangeAmount,     OutAmount,        CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardCode,Medicare,PayCard,PackingId,PackingName,CustomStr,ProductName,IsMedicare,CostMemberPrice,ReturnPayCard,SumPayCard,SumReturnPayCard,PayMoney,ReturnMoney,PayCardMoneyBefore,PayCardMoneyAfter,CurMemberPrice,CardDataVersion,PaySYB,PayKYB,PayYB)
                                  VALUES                      (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode_CS,@CostPrice  , @RetailPrice,0                ,            @Price     ,   @Discount_Detail       ,@Price       ,  @Amount_pre,  @Amount_pre,      @Amount_pre,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @Price, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate_CS, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec_CS,@Unit_CS,@ProducingArea,@AuthorizeCode_CS,@DoseTypeName_CS,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,2,@Discount,@PayType,@CardCode,@Medicare,@PayCard,@PackingId,@PackingName,@CustomStr,@ProductName,@IsMedicare,@CostMemberPrice,@ReturnPayCard,@SumPayCard,@SumReturnPayCard,@PayMoney,@ReturnMoney,@PayCardMoneyBefore,@PayCardMoneyAfter,@MemberPrice,@CardCurVersion+1,@PaySYB,@PayKYB,@PayYB)
                   
                    if @@error <>0
                    begin
                         SELECT @ErrorMessage=@CommodityName+'出入库记录处理失败!'
                         Select @ErrorInfoId=-13
                         ROLLBACK
                         RETURN -1
                    end

                   SELECT @Amount=@Amount-@Amount_pre

              end             

              FETCH NEXT FROM Cur_CommodityStock
              INTO   @DepotId ,@InOrder,@CostPrice,@Amount_pre,@Amount_cs ,@RetailPrice ,@SumCost ,@SumRetail,@InvalidateDate_CS ,@Spec_CS ,@DoseTypeName_CS,@Unit_CS ,@AuthorizeCode_CS,@Medicare,@BatchCode_CS
        end
            

         CLOSE Cur_CommodityStock
         DEALLOCATE Cur_CommodityStock/*结束库存游标*/

        FETCH NEXT FROM Cur_BillDetailRetail
        INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName ,@PackingId, @PackingName   ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard
    END
       
    Update Bill
    SET Status=2,AuditDate=GETDATE()
    WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

    if @@error <>0
    begin
           SELECT @ErrorMessage='更新主单失败!'
           Select @ErrorInfoId=-14
           ROLLBACK
           RETURN -1
    end

    SELECT @ErrorMessage='收款成功!'
    Select @ErrorInfoId =1
    CLOSE Cur_BillDetailRetail
    DEALLOCATE Cur_BillDetailRetail
    COMMIT TRAN RETAIL
GO
/****** Object:  StoredProcedure [dbo].[billDetailDemolition_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[billDetailDemolition_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS

   --set nocount on

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Bill_InStockId TINYINT
    DECLARE @Bill_OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)

 

   
    /*定义BillDetailDemolition对应的局部变量*/
      DECLARE @RowNum tinyint    
      DECLARE @DemId int   
      DECLARE @CommodityId int   
      DECLARE @InOrder_Dem int    
      DECLARE @PackingId int    
      DECLARE @BatchCode varchar(50)   
      DECLARE @ProductDate_Dem datetime    
      DECLARE @InvalidateDate_Dem datetime    
      DECLARE @InstockDate_Dem datetime    
      DECLARE @CostPrice_Dem DECIMAL(18,4)   
      DECLARE @RetailPrice DECIMAL(18,4)     
      DECLARE @Amount DECIMAL(18,4)    
      DECLARE @FactAmount_Dem DECIMAL(18,4)    
      DECLARE @Odds DECIMAL(18,4)    
      DECLARE @SumCost_Dem DECIMAL(18,4)    
      DECLARE @SumRetail_Dem DECIMAL(18,4)     
      DECLARE @CommodityName varchar(100)    
      DECLARE @Spec varchar(200)     
      DECLARE @DoseTypeName varchar(50)   
      DECLARE @ProducingArea varchar(100)    
      DECLARE @Unit varchar(50)
      DECLARE @AuthorizeCode varchar(100)  
      DECLARE @SpellCode varchar(100)   
      DECLARE @TXM varchar(60)  
      DECLARE @CustomCode varchar(50)    
      DECLARE @CurrentRetailPrice DECIMAL(18,4)    
      DECLARE @IsChinese bit    
      DECLARE @CounterId tinyint   
      DECLARE @CounterName varchar(50) 
      DECLARE @DataVersion_Dem bigint  
      DECLARE @PreMemberPrice_Dem DECIMAL(18,4)   
      DECLARE @CurrentMemberPrice DECIMAL(18,4)  
      DECLARE @Medicare tinyint   
      DECLARE @UpperLimit int 
      DECLARE @LowerLimit int   
      DECLARE @PackingName varchar(50)   
      DECLARE @CustomStr varchar(50)   
      DECLARE @ProductName varchar(100)  
      DECLARE @Dem_CommodityId int
      DECLARE @Dem_InOrder int   
      DECLARE @Dem_PackingId int  
      DECLARE @Dem_BatchCode varchar(50)   
      DECLARE @Dem_ProductDate datetime    
      DECLARE @Dem_InvalidateDate datetime  
      DECLARE @Dem_InstockDate datetime   
      DECLARE @Dem_CostPrice DECIMAL(18,4) 
      DECLARE @Dem_RetailPrice DECIMAL(18,4)  
      DECLARE @Dem_Amount DECIMAL(18,4)  
      DECLARE @Dem_FactAmount DECIMAL(18,4) 
      DECLARE @Dem_Odds DECIMAL(18,4)  
      DECLARE @Dem_SumCost DECIMAL(18,4)   
      DECLARE @Dem_SumRetail DECIMAL(18,4) 
      DECLARE @Dem_CommodityName varchar(100)    
      DECLARE @Dem_Spec varchar(200)   
      DECLARE @Dem_DoseTypeName varchar(50)   
      DECLARE @Dem_ProducingArea varchar(100)   
      DECLARE @Dem_Unit varchar(50)  
      DECLARE @Dem_AuthorizeCode varchar(100) 
      DECLARE @Dem_SpellCode varchar(100)  
      DECLARE @Dem_TXM varchar(60)    
      DECLARE @Dem_CustomCode varchar(50)   
      DECLARE @Dem_CurrentRetailPrice DECIMAL(18,4) 
      DECLARE @Dem_IsChinese bit   
      DECLARE @Dem_CounterId tinyint
      DECLARE @Dem_CounterName varchar(50) 
      DECLARE @Dem_DataVersion bigint 
      DECLARE @Dem_PreMemberPrice DECIMAL(18,4)  
      DECLARE @Dem_CurrentMemberPrice DECIMAL(18,4)  
      DECLARE @Dem_Medicare tinyint 
      DECLARE @Dem_UpperLimit int 
      DECLARE @Dem_LowerLimit int  
      DECLARE @Dem_PackingName varchar(50)   
      DECLARE @Dem_CustomStr varchar(100)   
      DECLARE @Dem_ProductName varchar(100)    
      DECLARE @proportion int

   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InOrderLast int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @PreMemberPrice decimal(18,4)
    DECLARE @CurMemberPrice decimal(18,4)
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    select @ErrorMessage='OK!'
    SELECT @BillType=25 --药品拆零单的BillType为25
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Bill_InStockId=InStockId,
           @Bill_OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName,
           @InStockName  =InStockName,
           @OutStockName = OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT *
        FROM BillDetailDemolition
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   end

 

    DECLARE Cur_BillDetailDemolition CURSOR FOR /*从单游标*/
        SELECT RowNum,DemId,CommodityId,InOrder,PackingId,BatchCode ,ProductDate,InvalidateDate,InstockDate,CostPrice,RetailPrice,Amount,FactAmount,
                       Odds,SumCost,SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit ,AuthorizeCode ,SpellCode,TXM,CustomCode,
                       CurrentRetailPrice,IsChinese,CounterId,  CounterName,DataVersion,PreMemberPrice,CurrentMemberPrice,Medicare,UpperLimit,LowerLimit,PackingName ,
                       CustomStr,ProductName,Dem_CommodityId,Dem_InOrder,Dem_PackingId ,Dem_BatchCode,Dem_ProductDate ,Dem_InvalidateDate,
                       Dem_InstockDate,Dem_CostPrice ,Dem_RetailPrice ,Dem_Amount ,Dem_FactAmount ,Dem_Odds,Dem_SumCost ,Dem_SumRetail ,Dem_CommodityName,
                       Dem_Spec,Dem_DoseTypeName ,Dem_ProducingArea ,Dem_Unit ,Dem_AuthorizeCode ,Dem_SpellCode ,Dem_TXM ,Dem_CustomCode ,
                       Dem_CurrentRetailPrice ,Dem_IsChinese ,Dem_CounterId ,Dem_CounterName,Dem_DataVersion,Dem_PreMemberPrice,Dem_CurrentMemberPrice,
                       Dem_Medicare ,Dem_UpperLimit,Dem_LowerLimit,Dem_PackingName ,Dem_CustomStr ,Dem_ProductName,proportion
           FROM BillDetailDemolition
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_BillDetailDemolition  /*打开游标*/
       
        fetch next from Cur_BillDetailDemolition
            into   @RowNum ,@DemId ,@CommodityId,@InOrder_Dem ,@PackingId ,@BatchCode,@ProductDate_Dem ,@InvalidateDate_Dem,@InstockDate_Dem,@CostPrice_Dem,@RetailPrice,@Amount ,@FactAmount_Dem,
                     @Odds ,@SumCost_Dem ,@SumRetail_Dem,@CommodityName,@Spec ,@DoseTypeName ,@ProducingArea , @Unit , @AuthorizeCode , @SpellCode,@TXM, @CustomCode,
                     @CurrentRetailPrice,@IsChinese, @CounterId , @CounterName , @DataVersion_Dem,@PreMemberPrice_Dem ,@CurrentMemberPrice, @Medicare, @UpperLimit , @LowerLimit , @PackingName ,
                     @CustomStr , @ProductName , @Dem_CommodityId , @Dem_InOrder, @Dem_PackingId ,@Dem_BatchCode, @Dem_ProductDate,@Dem_InvalidateDate ,
                     @Dem_InstockDate ,@Dem_CostPrice , @Dem_RetailPrice,@Dem_Amount , @Dem_FactAmount ,@Dem_Odds,@Dem_SumCost, @Dem_SumRetail , @Dem_CommodityName,
                     @Dem_Spec , @Dem_DoseTypeName , @Dem_ProducingArea , @Dem_Unit , @Dem_AuthorizeCode , @Dem_SpellCode , @Dem_TXM , @Dem_CustomCode,
                     @Dem_CurrentRetailPrice , @Dem_IsChinese, @Dem_CounterId, @Dem_CounterName, @Dem_DataVersion, @Dem_PreMemberPrice , @Dem_CurrentMemberPrice,
                     @Dem_Medicare, @Dem_UpperLimit, @Dem_LowerLimit , @Dem_PackingName , @Dem_CustomStr,@Dem_ProductName,@proportion

        while @@FETCH_STATUS = 0
        begin

                SELECT @CostPrice = CostPrice,@Amount_pre = Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,
                 @SumCost = SumCost,@SumRetail = SumRetail,@Medicare = Medicare
       FROM CommodityStock
       WHERE  DepotId=@Bill_OutStockId
                               AND EmbranchmentId=@EmbranchmentId
                               AND CommodityId=@CommodityId
                               AND BatchCode=@BatchCode
                               and  InOrder=@InOrder_Dem
                               and PackingId=@PackingId

               IF @@ROWCOUNT = 0
               BEGIN
                     SELECT @ErrorMessage='检测库存失败!'
                     Select @ErrorInfoId =-10
                     ROLLBACK  TRAN RETAIL
                     RETURN
               END

              SELECT @Amount_cs = @Amount_cs - @Amount
              SELECT @SumCost = @CostPrice * @Amount_cs
              SELECT @SumRetail = @RetailPrice * @Amount_cs

            /*如果库存数量大于销售数量,则更新库存表,否则,回滚*/
            IF @Amount_cs  < 0
            BEGIN
                SELECT @ErrorMessage='库存数量不足,无法审核!'
                Select @ErrorInfoId =-4
                ROLLBACK  TRAN RETAIL
                RETURN
            END       
            ELSE
            BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/       

            /*库存表处理部分*/
    UPDATE CommodityStock
    SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail ,DataVersion=@CommodityStockDataVersion+1
    WHERE  DepotId=@Bill_OutStockId
             AND EmbranchmentId=@EmbranchmentId
             AND CommodityId=@CommodityId
             AND BatchCode=@BatchCode
             and  InOrder=@InOrder_Dem
             and PackingId=@PackingId

               /*************************************在社区药店系统版本处理部分**********************************************/
                       Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/
            
             /*版本处理部分*/
             SELECT @CurVersion=CurVersion
             FROM DataVersion
             WHERE EmbranchmentId=@EmbranchmentId
             AND DataVersionId=1
            
             IF @@ROWCOUNT = 0
             BEGIN
                 SELECT @ErrorMessage='取版本出错!'
                 Select @ErrorInfoId =-5
                 ROLLBACK  TRAN RETAIL
                 RETURN                  
             END
             ELSE
             BEGIN
                Update DataVersion
                SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                WHERE EmbranchmentId=@EmbranchmentId
                AND DataVersionId=1
             END 
            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
    SELECT @CurCostSumMoney=@Amount_cs*@CostPrice
    SELECT @CurSaleSumMoney=@Amount_cs*@RetailPrice
    SELECT @ChangeSumMoney=@Amount*@RetailPrice
             INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardCode,Medicare,PayCard,PackingId,PackingName,CustomStr,ProductName)
                                  VALUES (newid(),@EmbranchmentId, @Bill_OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@RetailPrice     ,1       ,@RetailPrice      ,@Amount_pre,@Amount,      @Amount,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate_Dem, @InvalidateDate_Dem, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,0,1,0,'',@Medicare,0,@PackingId,@PackingName,@CustomStr,@ProductName)                                                                            
      

 

        --拆零药品增加

            --如果有相同编批的,就在库存中找相同编批最大号,在上面加数量
            --如果没有相同编批的,就在库存中找此药的最大order号,insert到库存中

            select @InOrder=isnull(max(InOrder),0) from CommodityStock where CommodityId=@Dem_CommodityId and PackingId=@Dem_PackingId and  BatchCode= @Dem_BatchCode
            select @InOrderLast=isnull(max(InOrder),0) from CommodityStock where CommodityId=@Dem_CommodityId and PackingId=@Dem_PackingId

             select @CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail,@IsChinese=IsChinese,@PreMemberPrice=CurrentMemberPrice,@PreSaleSumMoney=SumRetail
            /*从库存中找相同的记录,用来做移动加权平均法来修改"成本价"*/
                from CommodityStock
             where DepotId=@Bill_OutStockId 
               and InOrder=@InOrder
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@Dem_CommodityId
               and BatchCode=@Dem_BatchCode
               and PackingId=@Dem_PackingId


           select @RowCount =@@ROWCOUNT
             if @RowCount>1
             begin
             SELECT @ErrorMessage='库存中相同记录过多!'
               Select @ErrorInfoId=-5
                ROLLBACK
              RETURN -1
             end

             if @RowCount<=0/*库存中没有对应的记录就插入,有则修改“成本价”、“数量”、“FactAmount”、“生产日期”、“有效期至”、“入库时间”、“零售价”、“零售合计”*/
             begin     

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                 if @EmbranchmentId=-1
                 begin
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=-1
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
                end
               /**************************************************************************************************************************************/      

                 select @CostPrice=0--CommodityStock处理部分
                 select @Amount_cs=0
                 select @CostPrice=(((@CostPrice*@Amount_cs)+(@Dem_CostPrice*@Dem_Amount))/(@Dem_Amount+@Amount_cs)) /*计算成本价*/
                 select @Amount_cs=@Dem_Amount+@Amount_cs /*计算数量*/  
                 select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
        select @SumRetail=@Dem_RetailPrice*@Amount_cs
                 insert into CommodityStock (DepotId,    EmbranchmentId,  CommodityId,  BatchCode,  InOrder,ProductDate,  InvalidateDate,  InstockDate, CostPrice, RetailPrice,  Amount,     FactAmount, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,SpellCode,CustomCode,CurrentRetailPrice,IsChinese,CounterId,CounterName,TXM,DataVersion,PreMemberPrice,CurrentMemberPrice,Medicare,PackingId,PackingName ,CustomStr,ProductName)
                                      values(@Bill_OutStockId, @EmbranchmentId, @Dem_CommodityId, @Dem_BatchCode, @InOrderLast+1,      @Dem_ProductDate, @Dem_InvalidateDate, @CreateDate, @CostPrice,@Dem_RetailPrice, @Amount_cs, @Amount_cs, @SumCost, @SumRetail,@Dem_CommodityName,@Dem_Spec,@Dem_DoseTypeName,@Dem_ProducingArea,@Dem_Unit,@Dem_AuthorizeCode,@Dem_SpellCode,@Dem_CustomCode,@Dem_RetailPrice,@Dem_IsChinese,@Dem_CounterId,@Dem_CounterName,@Dem_TXM,@CommodityStockDataVersion+1,@Dem_PreMemberPrice,@Dem_CurrentMemberPrice,@Dem_Medicare,@Dem_PackingId,@Dem_PackingName ,@Dem_CustomStr,@Dem_ProductName)
                
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入库存失败!'
                      Select @ErrorInfoId=-6
                      ROLLBACK
                      RETURN -1
                 end

               /*************************************在社区药店系统版本处理部分**********************************************/  
                if @EmbranchmentId=-1
                begin
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=-1
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end
                end

               /***************************************************************************************************************************/    

                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
                 end
                
                 --在插入InoutStockTable前将所需数据查询出来


                 --InoutStockTable处理部分      
       select @CurSaleSumMoney=@Amount_cs*@Dem_RetailPrice;         
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId ,  BillCode,    BusinessDate,AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount, ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,    OutStockId, DataVersion, CommodityName , Spec ,
                                                             DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode,CounterId,CounterName ,PackingId,PackingName ,CustomStr,ProductName)
                                      values (newid(),@EmbranchmentId, @Bill_OutStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @Dem_CommodityId, @Dem_BatchCode,0,            0,            0, 
                                                 @Dem_RetailPrice, 1, @Dem_RetailPrice, 0,         @Dem_Amount,  @Dem_Amount, @Amount_cs, 0,              0,               0,                    @SumMoney,      @CostPrice,  
                                                 @Dem_RetailPrice, 0,                 @SumCost,        0,                    @CurSaleSumMoney,    @Dem_ProductDate, @Dem_InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,   0,  
                                                 @CurVersion+1,@Dem_CommodityName ,@Dem_Spec,@Dem_DoseTypeName,@Dem_ProducingArea,@Dem_Unit ,@Dem_AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                 @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@Dem_CustomCode,@Dem_CounterId,@Dem_CounterName,@Dem_PackingId,@Dem_PackingName ,@Dem_CustomStr,@Dem_ProductName )
           
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-9
                      ROLLBACK
                      RETURN -1
                 end
           
             end
             else
             begin

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                 if @EmbranchmentId=-1
                 begin
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=-1
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
                end
               /**************************************************************************************************************************************/  

                select @CostPrice=(((@CostPrice*@Amount_cs)+(@Dem_CostPrice*@Dem_Amount))/(@Dem_Amount+@Amount_cs)) /*计算成本价*/
                select @Amount_cs=@Dem_Amount+@Amount_cs /*计算数量*/
                select @SumCost=@CostPrice*@Amount_cs /*计算小计金额*/
       select @SumRetail=@Dem_RetailPrice*@Amount_cs  
                Update CommodityStock
                    set ProductDate=@Dem_ProductDate,InvalidateDate=@InvalidateDate,InstockDate=@CreateDate,CostPrice=@CostPrice,Amount=@Amount_cs,FactAmount=@Amount_cs,SumCost=@SumCost,RetailPrice=@Dem_RetailPrice,SumRetail=@SumRetail,CurrentRetailPrice=@Dem_RetailPrice,IsChinese=@Dem_IsChinese,CounterId=@Dem_CounterId,CounterName=@Dem_CounterName  ,DataVersion=@CommodityStockDataVersion+1
                where DepotId=@Bill_InStockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@Dem_CommodityId
         and InOrder=@InOrder
                  and BatchCode=@Dem_BatchCode
                  and PackingId=@Dem_PackingId
               
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新库存出错!'
                      Select @ErrorInfoId=-10
                      ROLLBACK
                      RETURN -1
                 end 

               /*************************************在社区药店系统版本处理部分**********************************************/  
                if @EmbranchmentId=-1
                begin
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=-1
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end
                end

               /***************************************************************************************************************************/    
                 
                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-11
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-12
                      ROLLBACK
                      RETURN -1
                 end

                 --InoutStockTable处理部分     
       select @CurSaleSumMoney=@Amount_cs*@Dem_RetailPrice;           
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId ,  BillCode,    BusinessDate,AuditDate,RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,
                                                             PreBatchSalePrice, ChangePrice,  Discount,  DiscountPrice,  PreAmount, ChangeAmount, InAmount,CurAmount,  PreCostSumMoney,PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney, CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,
                                                             ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,    OutStockId, DataVersion, CommodityName , Spec ,
                                                             DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName, EmbranchmentName ,
                                                             ProviderName,CustomerName,InStockName,OutStockName,CustomCode,CounterId,CounterName ,PackingId,PackingName ,CustomStr,ProductName)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @Dem_CommodityId, @Dem_BatchCode,@CostPrice_pre, @RetailPrice_pre,  @RetailPrice_pre, 
                                                 @Dem_RetailPrice, 1, @Dem_RetailPrice, @Amount_pre,  @Dem_Amount,  @Dem_Amount, @Amount_cs,@SumCost_pre,  @PreSaleSumMoney,   0,  @SumMoney,      @CostPrice,  
                                                 @Dem_RetailPrice, 0,   @SumCost,  0,  @CurSaleSumMoney,    @Dem_ProductDate, @Dem_InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,   0,  
                                                 @CurVersion+1,@Dem_CommodityName ,@Dem_Spec,@Dem_DoseTypeName,@Dem_ProducingArea,@Dem_Unit ,@Dem_AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                 @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@Dem_CustomCode,@Dem_CounterId,@Dem_CounterName,@Dem_PackingId,@Dem_PackingName ,@Dem_CustomStr,@Dem_ProductName )                                
            
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-13
                      ROLLBACK
                      RETURN -1
                 end
            end

       
        END

        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        fetch next from Cur_BillDetailDemolition
            into   @RowNum ,@DemId ,@CommodityId,@InOrder_Dem ,@PackingId ,@BatchCode,@ProductDate_Dem ,@InvalidateDate_Dem,@InstockDate_Dem,@CostPrice_Dem,@RetailPrice,@Amount ,@FactAmount_Dem,
                     @Odds ,@SumCost_Dem ,@SumRetail_Dem,@CommodityName,@Spec ,@DoseTypeName ,@ProducingArea , @Unit , @AuthorizeCode , @SpellCode,@TXM, @CustomCode,
                     @CurrentRetailPrice,@IsChinese, @CounterId , @CounterName , @DataVersion_Dem,@PreMemberPrice_Dem ,@CurrentMemberPrice, @Medicare, @UpperLimit , @LowerLimit , @PackingName ,
                     @CustomStr , @ProductName , @Dem_CommodityId , @Dem_InOrder, @Dem_PackingId ,@Dem_BatchCode, @Dem_ProductDate,@Dem_InvalidateDate ,
                     @Dem_InstockDate ,@Dem_CostPrice , @Dem_RetailPrice,@Dem_Amount , @Dem_FactAmount ,@Dem_Odds,@Dem_SumCost, @Dem_SumRetail , @Dem_CommodityName,
                     @Dem_Spec , @Dem_DoseTypeName , @Dem_ProducingArea , @Dem_Unit , @Dem_AuthorizeCode , @Dem_SpellCode , @Dem_TXM , @Dem_CustomCode,
                     @Dem_CurrentRetailPrice , @Dem_IsChinese, @Dem_CounterId, @Dem_CounterName, @Dem_DataVersion, @Dem_PreMemberPrice , @Dem_CurrentMemberPrice,
                     @Dem_Medicare, @Dem_UpperLimit, @Dem_LowerLimit , @Dem_PackingName , @Dem_CustomStr,@Dem_ProductName,@proportion
       end

   SELECT @ErrorMessage='药品拆零成功!'
   Select @ErrorInfoId =1
    CLOSE Cur_BillDetailDemolition
    DEALLOCATE Cur_BillDetailDemolition
    COMMIT TRAN
GO
/****** Object:  StoredProcedure [dbo].[BillDetailAdjustCostPrice_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BillDetailAdjustCostPrice_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS

   set nocount on

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Bill_InStockId TINYINT
    DECLARE @Bill_OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)
   
    /*定义BillDetailAdjustCostPrice对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @PreCostPrice_b decimal (18,4)
    DECLARE @CurCostPrice_b decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @CostPriceDifference decimal (18,4)
    DECLARE @SumPostCostPrice decimal (18,4)
    DECLARE @SumCurCostPrice decimal (18,4)
    DECLARE @SumCostPriceDifference decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)

   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @CostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumCost_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int

  
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    select @ErrorMessage='单据已审核!'
    SELECT @BillType=8 --成本调价单的BillType为8
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Bill_InStockId=InStockId,
           @Bill_OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName,
           @InStockName  =InStockName,
           @OutStockName = OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN-1
    END
   
    /*检查从单是否完整*/
    SELECT *
        FROM BillDetailAdjustCostPrice
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   end
   
    DECLARE Cur_BillDetailAdjustCostPrice CURSOR FOR /*从单游标*/
        SELECT RowNum,CommodityId, BatchCode, PreCostPrice, CurCostPrice,Amount,CostPriceDifference,SumPostCostPrice,SumCurCostPrice,SumCostPriceDifference,CommodityName,Spec,DoseTypeName,ProducingArea,Unit, AuthorizeCode,CustomCode,InOrder , PackingId, PackingName ,CustomStr,ProductName
           FROM BillDetailAdjustCostPrice
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_BillDetailAdjustCostPrice  /*打开游标*/
       
        fetch next from Cur_BillDetailAdjustCostPrice
            into @RowNum,@CommodityId, @BatchCode, @PreCostPrice_b, @CurCostPrice_b, @Amount, @CostPriceDifference,
                 @SumPostCostPrice, @SumCurCostPrice,@SumCostPriceDifference ,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId, @PackingName ,@CustomStr,@ProductName
                
        while @@FETCH_STATUS = 0
        begin
           
             if (@Bill_InStockId is null) or (@EmbranchmentId is null) or (@CommodityId is null)
             begin
                SELECT @ErrorMessage='从单数据不完整!'
               Select @ErrorInfoId=-4
                ROLLBACK
                RETURN -1
             end

             select @CostPrice=CostPrice,@CostPrice_pre=CostPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumCost=SumCost,@SumCost_pre=SumCost,@SumRetail=SumRetail
                from CommodityStock
             where DepotId=@Bill_InStockId
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and BatchCode=@BatchCode
               and InOrder=@InOrder
               and PackingId=@PackingId
              
            select @RowCount =@@ROWCOUNT
             if @RowCount<>1
             begin
                SELECT @ErrorMessage='无法在库存中定位记录!'
                Select @ErrorInfoId=-5
                ROLLBACK
                RETURN -1
             end

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  

                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/    

            Update CommodityStock     /*修改库存中对应的记录*/
                    set CostPrice=@CurCostPrice_b ,SumCost=Amount*@CurCostPrice_b,DataVersion=@CommodityStockDataVersion+1
                where DepotId=@Bill_InStockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@CommodityId
                  and BatchCode=@BatchCode
                  and InOrder=@InOrder
                  and PackingId=@PackingId
               
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新库存出错!'
                      Select @ErrorInfoId=-6
                      ROLLBACK
                      RETURN -1
                 end 

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end

               /***************************************************************************************************************************/  
                 
                 select @CurVersion=CurVersion from DataVersion --版本处理部分
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1
                 if @@ROWCOUNT<>1
                 begin
                    SELECT @ErrorMessage='取版本出错!'
                    Select @ErrorInfoId=-7
                    ROLLBACK
                    RETURN -1                 
                 end 
                 Update DataVersion
                   set PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
                 where EmbranchmentId=@EmbranchmentId
                   and DataVersionId=1

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新版本出错!'
                      Select @ErrorInfoId=-8
                      ROLLBACK
                      RETURN -1
                 end

                 --InoutStockTable处理部分                
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice,    PreSalePrice,   
                                                             PreBatchSalePrice, ChangePrice,      Discount,  DiscountPrice,    PreAmount,   ChangeAmount, CurAmount,  PreCostSumMoney,     PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney,   CurCostPrice,      CurSalePrice,     CurBatchSalePrice, CurCostSumMoney,     CurBatchSaleSumMoney,
                                                             CurSaleSumMoney,            InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion,
                                                             CommodityName , Spec ,   DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName,
                                                             EmbranchmentName , ProviderName,CustomerName,InStockName,OutStockName,CustomCode,PackingId,PackingName,CustomStr,ProductName)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,
                                                  @PreCostPrice_b, @RetailPrice_pre, 0,                 @RetailPrice_pre, 1,         @RetailPrice_pre, @Amount,     @Amount,      @Amount,    @SumPostCostPrice, 
                                                  @SumRetail,      0,                    @CurCostPrice_b,  @CurCostPrice_b,   @RetailPrice_pre, 0,                 @SumPostCostPrice,   0,                   
                                                  @RetailPrice_pre*@Amount ,  @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,  0,          @CurVersion + 1,
                                                  @CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit ,@AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                  @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode,@PackingId,@PackingName,@CustomStr,@ProductName)                                             
            
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-9
                      ROLLBACK
                      RETURN -1
                 end

             Update Bill
                 set Status=2,AuditDate=getdate()
             where EmbranchmentId=@EmbranchmentId
               and BillType=@BillType
               and BillId=@BillId
               and Status=1 

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新主单出错!'
                      Select @ErrorInfoId=-10
                      ROLLBACK
                      RETURN -1
                 end 
            
        fetch next from Cur_BillDetailAdjustCostPrice
            into @RowNum,@CommodityId, @BatchCode, @PreCostPrice_b, @CurCostPrice_b, @Amount, @CostPriceDifference,
                 @SumPostCostPrice, @SumCurCostPrice,@SumCostPriceDifference ,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId,@PackingName,@CustomStr,@ProductName
        end
        CLOSE Cur_BillDetailAdjustCostPrice
        DEALLOCATE Cur_BillDetailAdjustCostPrice
        Select @ErrorInfoId=1      
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[BillDetailAdjustRetailPrice_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BillDetailAdjustRetailPrice_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT ,
    @ErrorInfoId  int OUTPUT
)
AS

   set nocount on

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    --DECLARE @CardId INT
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)
    DECLARE @Bill_InStockId TINYINT
    DECLARE @Bill_OutStockId TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @StockName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
    DECLARE @CustomerName varchar(50)
    DECLARE @InStockName  varchar(50)
    DECLARE @OutStockName varchar(50)
   
    /*定义BillDetailAdjustRetailPrice对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @PreRetailPrice_b decimal (18,4)
    DECLARE @CurRetailPrice_b decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @RetailPriceDifference decimal (18,4)
    DECLARE @SumPostRetailPrice decimal (18,4)
    DECLARE @SumCurRetailPrice decimal (18,4)
    DECLARE @SumRetailPriceDifference decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @PreMemberPrice decimal(18,4)
    DECLARE @CurMemberPrice decimal(18,4)
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @RetailCostPrice_pre decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @RetailPrice_pre decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @Amount_pre decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @SumRetail_pre decimal (18,4)
    DECLARE @Current_RetailPrice decimal(18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreRetailPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreRetailSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurRetailPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurRetailSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    DECLARE @RowCount int

  
 
    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    select @ErrorMessage='单据已审核!'
    SELECT @BillType=11 --成本调价单的BillType为8
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId=-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           --@CardId=CardId,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Bill_InStockId=InStockId,
           @Bill_OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @StockName =StockName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName,
           @InStockName  =InStockName,
           @OutStockName = OutStockName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-2
        RETURN-1
    END
   
    /*检查从单是否完整*/
    SELECT *
        FROM BillDetailAdjustRetailPrice
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   end
   
    DECLARE Cur_BillDetailAdjustRetailPrice CURSOR FOR /*从单游标*/
        SELECT RowNum,CommodityId, BatchCode, PreRetailPrice, CurRetailPrice,Amount,RetailPriceDifference,SumPostRetailPrice,SumCurRetailPrice,SumRetailPriceDifference,
                      CommodityName,Spec,DoseTypeName,ProducingArea,Unit, AuthorizeCode,CustomCode,InOrder, PackingId, PackingName ,CustomStr,ProductName,PreMemberPrice,CurMemberPrice
           FROM BillDetailAdjustRetailPrice
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_BillDetailAdjustRetailPrice  /*打开游标*/
       
        fetch next from Cur_BillDetailAdjustRetailPrice
            into @RowNum,@CommodityId, @BatchCode, @PreRetailPrice_b, @CurRetailPrice_b, @Amount, @RetailPriceDifference,
                 @SumPostRetailPrice, @SumCurRetailPrice,@SumRetailPriceDifference ,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId, @PackingName ,
                   @CustomStr,@ProductName,@PreMemberPrice,@CurMemberPrice
                
        while @@FETCH_STATUS = 0
        begin
           
             if (@Bill_InStockId is null) or (@EmbranchmentId is null) or (@CommodityId is null)
             begin
                SELECT @ErrorMessage='从单数据不完整!'
               Select @ErrorInfoId=-4
                ROLLBACK
                RETURN -1
             end

             select @RetailPrice=RetailPrice,@RetailPrice_pre=RetailPrice,@Amount_cs=Amount,@Amount_pre=Amount,@RetailPrice_pre=RetailPrice,@SumRetail=SumRetail,@SumRetail_pre=SumRetail,@Current_RetailPrice=CurrentRetailPrice
                from CommodityStock
             where DepotId=@Bill_InStockId
               and EmbranchmentId=@EmbranchmentId
               and CommodityId=@CommodityId
               and PackingId=@PackingId
              
            select @RowCount =@@ROWCOUNT
             if @RowCount>0
             begin

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/ 

                    Update CommodityStock     /*修改库存中对应的记录*/
                           set CurrentRetailPrice=@CurRetailPrice_b,SumRetail=@CurRetailPrice_b*Amount,RetailPrice=@Current_RetailPrice,DataVersion=@CommodityStockDataVersion+1,PreMemberPrice=@PreMemberPrice,CurrentMemberPrice=@CurMemberPrice
                      where EmbranchmentId=@EmbranchmentId
                          and CommodityId=@CommodityId
                          and PackingId=@PackingId
                   
                    if @@error <>0
                    begin
                        SELECT @ErrorMessage='更新库存价格出错!'
                        Select @ErrorInfoId=-6
                        ROLLBACK
                        RETURN -1
                   end 

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/
             end

            Update Commodity    /*修改商品中对应的记录*/
                    set RetailPrice=@CurRetailPrice_b,MemberPrice=@CurMemberPrice
                where CommodityId=@CommodityId
                and PackingId=@PackingId
               
                if @@error<>0
                begin
                      SELECT @ErrorMessage='更新商品价格出错!'
                      Select @ErrorInfoId=-6
                      ROLLBACK
                      RETURN -1
                 end

                 --InoutStockTable处理部分                
                 insert into InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId, BillCode,BusinessDate,AuditDate, RowNum,  CommodityId, PreCostPrice,    PreSalePrice,   
                                                             PreBatchSalePrice, ChangePrice,      Discount,  DiscountPrice,    PreAmount,   ChangeAmount, CurAmount,  PreCostSumMoney,     PreSaleSumMoney,
                                                             PreBatchSaleSumMoney, ChangeSumMoney,   CurCostPrice,      CurSalePrice,     CurBatchSalePrice, CurCostSumMoney,     CurBatchSaleSumMoney,
                                                             CurSaleSumMoney,            InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId,   OutStockId, DataVersion,
                                                             CommodityName , Spec ,   DoseTypeName , ProducingArea , Unit ,AuthorizeCode,CreatorName ,BusinessName , BillCodeName ,StockName,
                                                             EmbranchmentName , ProviderName,CustomerName,InStockName,OutStockName,CustomCode ,PackingId,PackingName,CustomStr,ProductName,PreMemberPrice,CurMemberPrice)
                                      values (newid(),@EmbranchmentId, @Bill_InStockId, @BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId,
                                                  @PreRetailPrice_b, @RetailPrice_pre, 0,                 @RetailPrice_pre, 1,         @RetailPrice_pre, @Amount,     @Amount,      @Amount,    @SumPostRetailPrice, 
                                                  @SumRetail,      0,                    @CurRetailPrice_b,  @CurRetailPrice_b,   @RetailPrice_pre, 0,                 @SumPostRetailPrice,   0,                   
                                                  @RetailPrice_pre*@Amount ,  @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, @Bill_InStockId,  0,          @CurVersion + 1,
                                                  @CommodityName ,@Spec,@DoseTypeName,@ProducingArea,@Unit ,@AuthorizeCode,  @CreatorName ,@BusinessName, @BillCodeName,
                                                  @StockName, @EmbranchmentName , @ProviderName , @CustomerName, @InStockName , @OutStockName,@CustomCode ,@PackingId,@PackingName,
                                                   @CustomStr,@ProductName,@PreMemberPrice,@CurMemberPrice)                                             
            
                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='插入InoutStockTable出错!'
                      Select @ErrorInfoId=-9
                      ROLLBACK
                      RETURN -1
                 end

             Update Bill
                 set Status=2,AuditDate=getdate()
             where EmbranchmentId=@EmbranchmentId
               and BillType=@BillType
               and BillId=@BillId
               and Status=1 

                 if @@error <>0
                 begin
                      SELECT @ErrorMessage='更新主单出错!'
                      Select @ErrorInfoId=-10
                      ROLLBACK
                      RETURN -1
                 end 
            
        fetch next from Cur_BillDetailAdjustRetailPrice
            into @RowNum,@CommodityId, @BatchCode, @PreRetailPrice_b, @CurRetailPrice_b, @Amount, @RetailPriceDifference,
                 @SumPostRetailPrice, @SumCurRetailPrice,@SumRetailPriceDifference ,@CommodityName,@Spec,
                  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,@CustomCode,@InOrder,@PackingId,@PackingName,@CustomStr,@ProductName,
        @PreMemberPrice,@CurMemberPrice
        end
        CLOSE Cur_BillDetailAdjustRetailPrice
        DEALLOCATE Cur_BillDetailAdjustRetailPrice
        Select @ErrorInfoId=1      
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[CleanRetailBill]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CleanRetailBill] AS
/*此存储过程的功能*/
/*1、在开始盘点前把零售单和零售退货单没有审核的删除(零售挂单除外)*/

declare @EmbranchmentId SMALLINT
declare @BillType tinyint
declare @BillId int
declare @IsGD SMALLINT

SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
BEGIN TRAN

declare Cur_bill cursor for
    select  EmbranchmentId,BillId,BillType,IsGD
    from bill
    where (BillType=5 or BillType=6 ) and   Status=1

    open Cur_bill  /*打开游标*/
       
     fetch next from Cur_bill
            into @EmbranchmentId ,@BillId,@BillType,@IsGD

    while @@FETCH_STATUS = 0
    begin
         if (@BillType=5)/*零售单必须检查是否是挂单,如果是挂单就不删除,如果不是挂单就删除*/
         begin
              if (@IsGD=0)
              begin
                   Delete bill where  EmbranchmentId=@EmbranchmentId and BillId=@BillId and BillType=@BillType/*删除主单*/
                   if  @@error <>0
                   begin
                           ROLLBACK
                           RETURN -1
                   end

                   Delete BillDetailRetail where  EmbranchmentId=@EmbranchmentId and BillId=@BillId and BillType=@BillType/*删除从单*/
                   if  @@error <>0
                   begin
                           ROLLBACK
                           RETURN -1
                   end
              end
         end

        if (@BillType=6)
        begin
              Delete bill where  EmbranchmentId=@EmbranchmentId and BillId=@BillId and BillType=@BillType/*删除主单*/
               if  @@error <>0
               begin
                      ROLLBACK
                      RETURN -1
               end

              Delete BillDetailRetailReturn where  EmbranchmentId=@EmbranchmentId and BillId=@BillId and BillType=@BillType/*删除从单*/
              if  @@error <>0
              begin
                     ROLLBACK
                     RETURN -1
              end
        end

     fetch next from Cur_bill
            into @EmbranchmentId ,@BillId,@BillType,@IsGD
    end

CLOSE Cur_bill
DEALLOCATE Cur_bill       
Commit Tran
RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[CreaterSuperviseEmbranchment]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CreaterSuperviseEmbranchment]
(
    @embranchmentId int,
    @economyKind varchar(20),
    @workMethod   varchar(50),
    @enterpriseKind varchar(10),
    @guid uniqueidentifier,
    @dataVersion  bigint
)  AS
  --取得每个版本号的最大值
   DECLARE @DoseType BIGINT
   DECLARE @WorkScope BIGINT
   DECLARE @Catalog BIGINT
   DECLARE @Bulletin BIGINT
   DECLARE @BulletinEmbranchment BIGINT
   DECLARE @Commodity BIGINT
   DECLARE @Provider BIGINT

   SELECT @DoseType=MAX(DataVersion)
   FROM  DoseType

   SELECT @WorkScope=MAX(DataVersion)
   FROM  WorkScope

   SELECT @Catalog=MAX(DataVersion)
   FROM   Catalog

   SELECT @Bulletin=MAX(DataVersion)
   FROM    Bulletin

   SELECT @BulletinEmbranchment=MAX(DataVersion)
   FROM    BulletinEmbranchment

   SELECT @Commodity=MAX(DataVersion)
   FROM  Commodity

   SELECT @Provider=MAX(DataVersion)
   FROM  Provider

SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN
    SET NOCOUNT ON
begin
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,1,'InoutStockTable',0,0,3,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,2,'DoseType',0,@DoseType,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,3,'Embranchment',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,4,'WorkScope',0,@WorkScope,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
     values (@embranchmentId,5,'Catalog',0,@Catalog,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,6,'Bulletin',0,@Bulletin,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
     values (@embranchmentId,7,'BulletinEmbranchment',0,@BulletinEmbranchment,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,8,'Commodity',0,@Commodity,20,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,9,'Provider',0,@Provider,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)
    values (@embranchmentId,10,'RetailCommodity',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END

    insert into Embranchment (EmbranchmentId,EconomyKind,WorkMethod,EnterpriseKind,Guid,DataVersion)
             values(@embranchmentId,@economyKind,@workMethod,@enterpriseKind,@guid,0)
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END

end
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[CreaterEmbranchment2]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================

-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[CreaterEmbranchment2]
(
   @EmbranchmentId int OUTPUT,
   @Name varchar(50),
   @Guid uniqueidentifier
)
AS
Declare @Sequence_NextId int
BEGIN
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN
    select @Sequence_NextId=Sequence_NextId from Sequences(UPDLOCK) where Sequence_Name like 'Embranchment'
    IF @@ROWCOUNT=0 /*在Sequences表中未找到Embranchment这条记录*/
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END
    select @EmbranchmentId=@Sequence_NextId+1
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,1,'InoutStockTable',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,3,'Embranchment',0,1,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,10,'RetailCommodity',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,11,'EmbranchmentEmployee',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END

    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,12,'CommodityBcrUser',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END


    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,13,'KyylqxEvent',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END

    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@EmbranchmentId,14,'Shift',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END


    insert into Embranchment (EmbranchmentId,Code,Name,DataVersion,Guid,Enable)
             values(@EmbranchmentId,@EmbranchmentId,@Name,1,@Guid,1)
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END

    Update Sequences Set Sequence_NextId=@EmbranchmentId where Sequence_Name like 'Embranchment'
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
        SELECT @EmbranchmentId=0
        RETURN
    END
   
    commit tran
   
END
GO
/****** Object:  StoredProcedure [dbo].[CreaterEmbranchment]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[CreaterEmbranchment]
(
    @EmbranchmentId int,
    @EconomyKind varchar(20),
    @WorkMethod   varchar(50),
    @EnterpriseKind varchar(10),
    @Guid uniqueidentifier,
    @DataVersion  bigint
)  AS

SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN
    SET NOCOUNT ON  
begin
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,1,'InoutStockTable',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,3,'Embranchment',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,10,'RetailCommodity',0,0,100,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END
    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,11,'EmbranchmentEmployee',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END

    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,12,'CommodityBcrUser',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END


    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,13,'KyylqxEvent',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END

    insert into dataversion (EmbranchmentId,DataVersionId,Name,PreviousVersion,CurVersion,MaxSenderRecord,OriginDateTime,SynchronizeDateTime,Remark)values (@embranchmentId,14,'Shift',0,0,10,getDate(),getDate(),'初始数据')
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END


    /*insert into Embranchment (EmbranchmentId,EconomyKind,WorkMethod,EnterpriseKind,Guid,DataVersion)
             values(@embranchmentId,@economyKind,@workMethod,@enterpriseKind,@guid,0)
    IF @@ERROR<>0
    BEGIN
        ROLLBACK
    END*/
   
end
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[DeleteCommodityConvert]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[DeleteCommodityConvert]
(
     @NewCommodityId    int,
    @NewPackingId    int,
    @NewGeneralName    varchar    (100),
    @NewProductName    varchar    (100),
    @NewSpec    varchar    (200),
    @NewProducingArea    varchar    (100),
    @NewDoseType    varchar    (50),
    @NewAuthorizeCode    varchar    (100),
    @NewSpellCode    varchar    (100),
    @NewCustomCode    varchar    (50),
    @NewUnit varchar(50),
    @NewTXM    varchar    (60),
    @OldCommodityId    int,
    @OldPackingId    int,
    @OldGeneralName    varchar    (100),
    @OldProductName    varchar    (100),
    @OldSpec    varchar    (200),
    @OldProducingArea    varchar    (100),
    @OldDoseType    varchar    (50),
    @OldAuthorizeCode    varchar    (100),
    @OldSpellCode    varchar    (100),
    @OldCustomCode    varchar    (50),
    @OldUnit varchar(50),
    @OldTXM    varchar    (60),
    @OldPackingName    varchar    (60),
    @OldRetailPrice    decimal(18,4),
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    BEGIN TRAN
    --删除CommodityRelation中的对应关系
    delete from  CommodityRelation where NewCommodityId=@NewCommodityId and NewPackingId=@NewPackingId and OldCommodityId=@OldCommodityId and OldPackingId=@OldPackingId
    if @@error <>0
    begin
          select @ErrorMessage='删除CommodityRelation失败!'
          select @ErrorInfoId=-1
          rollback
          return -1
     end

    --删除Commodity中的药品
    if (@NewCommodityId>0)
    begin
        delete from Commodity where CommodityId=@NewCommodityId and PackingId=@NewPackingId
        if @@error <>0
        begin
             select @ErrorMessage='删除Commodity失败!'
             select @ErrorInfoId=-1
             rollback
             return -1
        end
    end
    else
    begin
        delete from Commodity where CommodityId=@OldCommodityId and PackingId=@OldPackingId    
        if @@error <>0
        begin
             select @ErrorMessage='删除Commodity失败!'
             select @ErrorInfoId=-1
             rollback
             return -1
        end
    end
  
    --将CommodityOld中的Deleted设为'0'
    Update CommodityOld Set Deleted=0 where CommodityId=@OldCommodityId and PackingId=@OldPackingId
    if @@error <>0
    begin
          select @ErrorMessage='更新CommodityOld失败!'
          select @ErrorInfoId=-1
          rollback
          return -1
     end

 

    select @ErrorMessage='删除成功!'
    select @ErrorInfoId=1   
    Commit Tran
    return 0
GO
/****** Object:  StoredProcedure [dbo].[dataVersionIni]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[dataVersionIni] AS
declare @sql varchar(300)
declare @TableName varchar(50)
declare @NextTableName varchar(50)
select Name from DataVersion
declare SelectTableCursor cursor for
select Name from dataVersion
open SelectTableCursor
select @TableName='@TableName'
fetch next from selectTableCursor into @TableName
while(@@fetch_Status=0)
begin
select @sql='update dataVersion set PreviousVersion=CurVersion,CurVersion=(select isnull(max(dataVersion),0) from '+@TableName+') where name='+char(39)+@TableName+char(39)

update dataversion set synchronizedatetime = getdate() where dataversionid = 1

if(@TableName='RetailCommodity')
begin
update dataVersion set PreviousVersion=CurVersion,CurVersion=isnull((select max(RetailDataVersion) from Commodity ),0)-1 where name='RetailCommodity'
end
else
begin
if(@TableName='Commodity')
begin
update dataVersion set PreviousVersion=CurVersion,CurVersion=isnull((select max(DataVersion) from CommodityStandard),0)+1  where name='Commodity'
end
else
begin
if (@TableName<>'SynchronizePrice')
begin
exec(@sql)
end
end
end
print @TableName
print @sql
select @sql=replace(@sql,@TableName,@NextTableName)
select @NextTableName=@TableName
fetch next from selectTableCursor into @TableName
end
close selectTableCursor
deallocate selectTableCursor
GO
/****** Object:  StoredProcedure [dbo].[catalog_Update]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[catalog_Update]
    (
   @CatalogType  int,
   @catalogCode varchar(50),
   @CatalogName varchar(50),
   @CatalogComment varchar(50),
   @CatalogNumber  varchar(50),
   @Id int
    )
   
AS
BEGIN
   DECLARE @DataVersion bigint
   DECLARE @PreviousVersion BIGINT
   DECLARE @SynchronizeDateTime datetime
   DECLARE @OriginDateTime datetime
   SELECT @DataVersion=CurVersion ,
                  @PreviousVersion=CurVersion ,
                  @OriginDateTime=SynchronizeDateTime,
                  @SynchronizeDateTime=GETDATE()
   FROM  DataVersion  WHERE  DataVersionId=5
   SET @DataVersion=@DataVersion+1
END
  
BEGIN TRAN
   UPDATE Catalog
   SET
   CatalogCode=@catalogCode,
   CatalogName=@CatalogName,
   CatalogNumber=@CatalogNumber,
   CatalogComment=@CatalogComment,
   DataVersion=@DataVersion
   WHERE Id = @Id and CatalogType=@CatalogType
  
    IF  @@ERROR!=0  --成功执行,返回0
    BEGIN
        ROLLBACK TRAN
        RETURN 1
    END
  
  
   UPDATE CatalogPedigree
   SET
   DataVersion=@DataVersion
   WHERE ChildId=@Id AND CatalogType=@CatalogType
  
    IF  @@ERROR!=0  --成功执行,返回0
    BEGIN
        ROLLBACK TRAN
        RETURN 1
    END
  
   UPDATE DataVersion
   SET
   PreviousVersion=@PreviousVersion,
   CurVersion=@DataVersion,
   OriginDateTime=@OriginDateTime,
   SynchronizeDateTime=@SynchronizeDateTime
   WHERE DataVersionId=5
  
   IF  @@ERROR!=0  --成功执行,返回0
   BEGIN
      ROLLBACK TRAN
      RETURN 1
   END
  
COMMIT TRAN
GO
/****** Object:  StoredProcedure [dbo].[catalog_Insert]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  [dbo].[catalog_Insert]
(
   @CatalogType  int,
   @ParentId int,
   @Deleted  int,
   @catalogCode varchar(50),
   @CatalogName varchar(50),
   @CatalogComment varchar(50),
   @CatalogNumber  varchar(50),
   @Id int output
)
AS
BEGIN
  DECLARE @iMaxId int
  DECLARE @PreviousVersion bigint
  DECLARE @SynchronizeDateTime datetime
  DECLARE @OriginDateTime datetime
  DECLARE @DataVersion bigint
  DECLARE @iMaxDataVersion bigint      --find out max Id in table Catalog according to CatalogType
  DECLARE @Class int     --当前插入数据的层次
  /*设置事务隔离级别*/
  SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
  /*开始事务*/
  BEGIN TRANSACTION
  /*取得当前最大的Id*/
  SELECT
    @iMaxId=ISnULL(MAX(Id),0),
    @iMaxDataVersion=ISnUll(MAX(DataVersion),0)
  FROM Catalog
--WHERE CatalogType=@CatalogType

  SELECT @Class=0
  SELECT @iMaxId=@iMaxId+1
  SELECT @iMaxDataVersion=@iMaxDataVersion+1
  /*返回当前的Id*/
  SET @Id=@iMaxId
  SET @DataVersion=@iMaxDataVersion
 
  /*向表Catalog插入数据*/
  insert into Catalog
    (
     Id,
     CatalogType,
     ParentId,
     Class,
     Deleted,
     CatalogCode,
     CatalogName,
     CatalogNumber,
     CatalogComment,
     DataVersion
    )
  VALUES
    (
     @Id,
     @CatalogType,
     @ParentId,
     @Class,
     @Deleted,
     @CatalogCode,
     @CatalogName,
     @CatalogNumber,
     @CatalogComment,
     @DataVersion
    )
  /*取得当前数据所在级别Class*/
  SELECT
    @Class=ISnULL(MAX(ParentClass),0)
  FROM  CatalogPedigree
  WHERE ParentId=@ParentId
    AND CatalogType=@CatalogType
  SET @Class=@Class+1
    /*向CatalogPedigree表中插入直接父层数据*/
    INSERT INTO CatalogPedigree
    (
     CatalogType,
     ParentId,
     Deleted,
     ChildId,
     ParentClass,
     ChildClass,
     DataVersion
     )
     VALUES
     (
      @CatalogType,
      @ParentId,
      @Deleted,
      @iMaxId,
      @Class-1,
      @Class,
      @DataVersion
     )
    
    IF  @@ERROR!=0
    BEGIN
        ROLLBACK TRAN
    END
   
     /*向CatalogPedigree表中插入间接父层数据*/
     INSERT INTO CatalogPedigree
     (
     CatalogType,
     ParentId,
     ChildId,
     ParentClass,
     ChildClass,
     DataVersion
     )
     SELECT
       CatalogType,
       ParentId,
       @iMaxId,
       ParentClass,
       @Class,
       @iMaxDataVersion
     FROM CatalogPedigree
     WHERE  ChildId=@ParentId
       AND CatalogType=@CatalogType
       AND ParentId!=0
      
     IF  @@ERROR!=0
     BEGIN
        ROLLBACK TRAN
     END
      
     SELECT  @PreviousVersion=CurVersion,
                     @OriginDateTime=SynchronizeDateTime 
     FROM    DataVersion
     WHERE   DataVersionId=5
     SET @SynchronizeDateTime=GetDate()
    
     UPDATE DataVersion
     SET
     PreviousVersion=@PreviousVersion,
     CurVersion=@iMAXDataVersion,
     OriginDateTime=@OriginDateTime,
     SynchronizeDateTime=@SynchronizeDateTime
     WHERE DataVersionId=5
    
     IF  @@ERROR!=0
     BEGIN
        ROLLBACK TRAN
     END
    
     /*提交事务*/
     COMMIT TRANSACTION
END
GO
/****** Object:  StoredProcedure [dbo].[catalog_Delete]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[catalog_Delete]
(
      @Id int,
      @CatalogType int,
      @RetValue int    OUTPUT  --0  成功删除 -1 不是最底级
)
AS
DECLARE  @iMAXDataVersion  bigint
DECLARE   @PreviousVersion  bigint
DECLARE  @selfChildCount INT
DECLARE @SynchronizeDateTime datetime
DECLARE @OriginDateTime datetime
SELECT  @selfChildCount=COUNT(*) from CatalogPedigree WHERE  ParentId=@Id AND ParentClass!=ChildClass
IF @selfChildCount>0
BEGIN
   SET @retValue=-1
    RETURN -1
END

SELECT  @iMAXDataVersion=ISnUll(MAX(DataVersion),0)
FROM Catalog
WHERE Id=@Id And CatalogType=@CatalogType
SET @iMAXDataVersion=@iMAXDataVersion+1

SELECT  @PreviousVersion=CurVersion,
                @OriginDateTime=SynchronizeDateTime,
                @SynchronizeDateTime=GETDATE()
FROM      DataVersion
WHERE   DataVersionId=5

BEGIN TRAN
    UPDATE CatalogPedigree
    SET
    Deleted=1,
    DataVersion=@iMAXDataVersion
    WHERE ChildId=@Id and CatalogType=@CatalogType

    IF  @@ERROR!=0  --成功执行,返回0
    BEGIN
        ROLLBACK TRAN
        RETURN 1
    END

    UPDATE Catalog
    SET
    Deleted=1,
    DataVersion=@iMAXDataVersion
    WHERE Id=@Id  And CatalogType=@CatalogType

    IF  @@ERROR!=0
    BEGIN
        ROLLBACK TRAN
        RETURN 1
    END
   
    UPDATE DataVersion
    SET
    PreviousVersion=@PreviousVersion,
    CurVersion=@iMAXDataVersion,
    OriginDateTime=@OriginDateTime,
    SynchronizeDateTime=@SynchronizeDateTime
    WHERE DataVersionId=5

    IF  @@ERROR!=0
    BEGIN
        ROLLBACK TRAN
        RETURN 1
    END
COMMIT TRAN
SET @retValue=0
GO
/****** Object:  StoredProcedure [dbo].[ConversionData_Ini_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ConversionData_Ini_Audit]
(
    @CommodityId_Old_pra INT,
    @CommodityId_New_pra INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    DECLARE @CommodityId_Z INT
    DECLARE @CommodityId_Old INT
    DECLARE @CommodityName_Old varchar(100)
    DECLARE @Spec_Old varchar(200)
    DECLARE @ProducingArea_Old varchar(100)
    DECLARE @AuthorizeCode_Old varchar(100)
    DECLARE @RetailPrice_Old  decimal (18,4)
    DECLARE @DoseTypeName_Old varchar(50)
    DECLARE @Unit_Old varchar(50)
    DECLARE @SpellCode_Old varchar(100)
    DECLARE @CustomCode_Old varchar(50)

    DECLARE @CommodityId_New INT

    Delete CommodityStock where Amount<=0 and FactAmount<=0

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN

    DECLARE Cur_CommodityStock CURSOR FOR
    SELECT distinct c1.CommodityId
     FROM CommodityStock c1 INNER JOIN CommodityStock c2
       ON c1.CommodityId = c2.Commodityid AND
              (c1.CommodityName != c2.CommodityName or c1.Spec!=c2.Spec
              or c1.ProducingArea!=c2.ProducingArea
               or c1.AuthorizeCode!=c2.AuthorizeCode)

    open Cur_CommodityStock
    fetch next from Cur_CommodityStock
             into @CommodityId_Z

    while @@FETCH_STATUS = 0
    begin
         DECLARE Cur_CommodityStock_child CURSOR FOR
         Select CommodityId,CommodityName,Spec,ProducingArea,AuthorizeCode from CommodityStock
         where CommodityId=@CommodityId_Z group by CommodityId,CommodityName,Spec,ProducingArea,AuthorizeCode

        open Cur_CommodityStock_child
        fetch next from Cur_CommodityStock_child
                         into  @CommodityId_Old , @CommodityName_Old ,@Spec_Old , @ProducingArea_Old ,@AuthorizeCode_Old
        while @@FETCH_STATUS = 0
        begin
            Select * from Commodity
            where  CommodityId=@CommodityId_Old and GeneralName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
          
            if @@rowcount<=0
            begin
                Select @CommodityId_New=Sequence_NextId from Sequences where Sequence_Name='RetailCommodity'
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='取CommodityId失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end
  
               --新建基本信息
               Select @RetailPrice_Old=RetailPrice,@DoseTypeName_Old=DoseTypeName,@Unit_Old=Unit,@SpellCode_Old=SpellCode,@CustomCode_Old=CustomCode from CommodityStock
               where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old                
              
               Insert into Commodity (CommodityId,CatalogId,GeneralName,ProductName,Spec,ProducingArea,DoseType,AuthorizeCode,Unit,RetailPrice,SpellCode, CustomCode)
               values(@CommodityId_New,1,@CommodityName_Old,@CommodityName_Old,@Spec_Old,@ProducingArea_Old,@DoseTypeName_Old,@AuthorizeCode_Old,
                         @Unit_Old,@RetailPrice_Old,@SpellCode_Old,@CustomCode_Old)
                --更新各从单
                Update BillDetailAdjustCostPrice Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailAdjustCostPrice失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end

                Update BillDetailAdjustRetailPrice Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailAdjustRetailPrice失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


                Update BillDetailBatchCodeAdjust Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailBatchCodeAdjust失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


                Update BillDetailBuyInStock Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新 BillDetailBuyInStockt失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


                Update BillDetailBuyInStockPlan Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailBuyInStockPlan失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


                Update BillDetailBuyReturn Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailBuyReturn失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


               Update BillDetailReportLoss Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailReportLoss失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


               Update BillDetailReportSpill Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailReportSpill失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end

 

               Update BillDetailRetail Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailRetail失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


               Update BillDetailRetailReturn Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新BillDetailRetailReturn失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


               --转换库存
               Update CommodityStock Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新CommodityStock失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end


              --转换InoutStock
               Update InoutStockTable Set CommodityId=@CommodityId_New
                 where  CommodityId=@CommodityId_Old and CommodityName=@CommodityName_Old and Spec=@Spec_Old
                        and ProducingArea=@ProducingArea_Old  and AuthorizeCode=@AuthorizeCode_Old
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新InoutStockTable失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end
       
                Update Sequences Set Sequence_NextId =Sequence_NextId-1 from Sequences where Sequence_Name='RetailCommodity'
                if @@error <>0
                 begin
                     SELECT @ErrorMessage='更新Sequences失败!'
                     Select @ErrorInfoId=-1
                      ROLLBACK
                      RETURN -1
                 end

            end


            fetch next from Cur_CommodityStock_child
                     into @CommodityId_Old , @CommodityName_Old ,@Spec_Old , @ProducingArea_Old ,@AuthorizeCode_Old
        end

        Close Cur_CommodityStock_child

        fetch next from Cur_CommodityStock
                 into @CommodityId_Z
    end

        Delete CommodityStandard where CommodityId<1000000
        if @@error <>0
        begin
             SELECT @ErrorMessage='删除CommodityStandard失败!'
             Select @ErrorInfoId=-1
             ROLLBACK
              RETURN -1
        end
        Update SysData Set Intvalue=1 where Name='ConversionData_Ini'
        if @@error <>0
        begin
             SELECT @ErrorMessage='更新SysData失败!'
             Select @ErrorInfoId=-1
             ROLLBACK
              RETURN -1
        end
        Close Cur_CommodityStock
        SELECT @ErrorMessage='初始化成功!'
        Select @ErrorInfoId=0
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[ConversionData_Auto_Child2_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ConversionData_Auto_Child2_Audit]
(
    @CommodityId             int,
    @CommodityName    varchar(100),
    @DoseTypeName               varchar(50),
    @Spec                     varchar(200),
    @Unit                           varchar(50),
    @ProducingArea          varchar(100),
    @RetailPrice                    decimal (18,4),
    @AuthorizeCode          varchar(50),
    @SpellCode                varchar(100),
    @CustomCode                  varchar (50),
    @TXM                           varchar (60) ,
    @PackingId INT

)
as

    DECLARE @CommodityId_Old             int
    DECLARE @GeneralName_Old    varchar(100)
    DECLARE @ProductName_Old           varchar(100)
    DECLARE @Spec_Old                     varchar(200)
    DECLARE @DoseType_Old                varchar(50)
    DECLARE @ProducingArea_Old          varchar(100)
    DECLARE @Unit_Old                           varchar(50)
    DECLARE @AuthorizeCode_Old          varchar(50)
    DECLARE @SpellCode_Old                varchar(100)
    DECLARE @TXM_Old                           varchar (60)
    DECLARE @CustomCode_Old                  varchar (50)
    DECLARE @RetailPrice_Old                    decimal (18,4)


    DECLARE @CommodityId_New             int
    DECLARE @GeneralName_New           varchar(100)
    DECLARE @ProductName_New           varchar(100)
    DECLARE @EnglishName_New            varchar(200)
    DECLARE @Spec_New                         varchar(200)
    DECLARE @ProducingArea_New          varchar(100)
    DECLARE @DoseType_New                 varchar(50)
    DECLARE @AuthorizeCode_New           varchar(50)
    DECLARE @Unit_New                            varchar(50)
    DECLARE @SpellCode_New                  varchar(100)
    DECLARE @CustomCode_New              varchar(50)
    DECLARE @TXM_New                          varchar(60)
    DECLARE @ZhongChengYao_New        bit
    DECLARE @ZhongYaoCai_New             bit
    DECLARE @ZhongYaoCaiContent_New varchar(100)
    DECLARE @ZhongYaoYinPian_New      bit
    DECLARE @ZhongYaoYinPianContent_New  varchar(100)
    DECLARE @HXYZJ_New                    bit
    DECLARE @HXYLY_New                       bit
    DECLARE @KSS_New                            bit
    DECLARE @SHYP_New                         bit
    DECLARE @SWZP_New                    bit
    DECLARE @SWZPCYM_New                 bit
    DECLARE @SWZPCXYYP_New             bit
    DECLARE @SWZPXZDYP_New            bit
    DECLARE @MZYP_New                        bit
    DECLARE @MZYPContent_New             varchar (100)
    DECLARE @JSYP_New                          bit
    DECLARE @JSYPContent_New             varchar(100)
    DECLARE @YLYDXYP_New                   bit
    DECLARE @YLYDXYPContent_New      varchar(100)
    DECLARE @FSXYP_New                         bit
    DECLARE @YM_New                               bit
    DECLARE @Import_New                           bit
    DECLARE @DataVersion_New                bigint
    DECLARE @SFDAId_New                       int
    DECLARE @TableView_New         varchar(50)
    DECLARE @UniCodes_New                    varchar(100)
    DECLARE @StandCode_New                  varchar(100)
    DECLARE @CommodityType_New           varchar(50)
    DECLARE @GJ_New                                varchar(50)
    DECLARE @PackingId_Max                    int
    DECLARE @PackingId_Old                    int

 

         Select  @CommodityId_Old =@CommodityId       
         Select  @GeneralName_Old=@CommodityName   
         Select  @ProductName_Old= @CommodityName        
         Select  @Spec_Old=@Spec           
         Select  @DoseType_Old =@DoseTypeName            
         Select  @ProducingArea_Old=@ProducingArea       
         Select  @Unit_Old=@Unit                         
         Select  @AuthorizeCode_Old=@AuthorizeCode      
         Select  @SpellCode_Old=@SpellCode               
         Select  @TXM_Old=@TXM                       
         Select  @CustomCode_Old=@CustomCode                
         Select  @RetailPrice_Old= @RetailPrice
         Select  @PackingId_Old=@PackingId


          Begin tran
          Select  @CommodityId_New=CommodityId, @GeneralName_New=GeneralName, @ProductName_New=ProductName, @EnglishName_New=EnglishName,
                @Spec_New=Spec, @ProducingArea_New=ProducingArea,@DoseType_New=DoseType, @AuthorizeCode_New=AuthorizeCode, @Unit_New=Unit,
                @SpellCode_New=SpellCode, @CustomCode_New=CustomCode,@TXM_New=TXM,@ZhongChengYao_New=ZhongChengYao,
                @ZhongYaoCai_New=ZhongYaoCai,  @ZhongYaoCaiContent_New =ZhongYaoCaiContent,@ZhongYaoYinPian_New=ZhongYaoYinPian,
                @ZhongYaoYinPianContent_New=ZhongYaoYinPianContent, @HXYZJ_New=HXYZJ,  @HXYLY_New =HXYLY,  @KSS_New =KSS,
                @SHYP_New =SHYP,   @SWZP_New     =SWZP,  @SWZPCYM_New=SWZPCYM,  @SWZPCXYYP_New=SWZPCXYYP,
                @SWZPXZDYP_New=SWZPXZDYP, @MZYP_New=MZYP ,  @MZYPContent_New=MZYPContent, @JSYP_New=JSYP,
                @JSYPContent_New=JSYPContent,  @YLYDXYP_New=YLYDXYP,  @YLYDXYPContent_New=YLYDXYPContent,
                @FSXYP_New=FSXYP, @YM_New=YM,@Import_New=Import,@DataVersion_New=DataVersion,@SFDAId_New=SFDAId,
                @TableView_New=TableView,@UniCodes_New=UniCodes,@StandCode_New=StandCode,@CommodityType_New=CommodityType,
                @GJ_New=GJ
          from CommodityStandard where CommodityId>1000000 and AuthorizeCode=@AuthorizeCode_Old

         if @@RowCount>0
          begin
          Select @PackingId_Max=isnull(max(PackingId),-1) +1  from Commodity where CommodityId=@CommodityId_New

               Select CommodityId from Commodity where CommodityId=@CommodityId_Old
               if @@RowCount >0
               begin
                    Update Commodity Set CommodityId=@CommodityId_New,GeneralName=@GeneralName_New,ProductName=@ProductName_New,EnglishName=@EnglishName_New,
                                                         Spec= @Spec_New ,  ProducingArea= @ProducingArea_New ,DoseType= @DoseType_New,  AuthorizeCode =@AuthorizeCode_New, SpellCode= @SpellCode_New,                    
                                                          ZhongChengYao=@ZhongChengYao_New , ZhongYaoCai=@ZhongYaoCai_New,  ZhongYaoCaiContent=@ZhongYaoCaiContent_New ,
                                                          ZhongYaoYinPian=@ZhongYaoYinPian_New,ZhongYaoYinPianContent=@ZhongYaoYinPianContent_New, HXYZJ=@HXYZJ_New, 
                                                          HXYLY= @HXYLY_New ,  KSS=@KSS_New , SHYP=@SHYP_New ,   SWZP=@SWZP_New    ,  SWZPCYM=@SWZPCYM_New,
                                                          SWZPCXYYP=@SWZPCXYYP_New, SWZPXZDYP=@SWZPXZDYP_New, MZYP=@MZYP_New ,  MZYPContent=@MZYPContent_New,
                                                          JSYP=@JSYP_New, JSYPContent=@JSYPContent_New,  YLYDXYP=@YLYDXYP_New,  YLYDXYPContent=@YLYDXYPContent_New,
                                                          FSXYP=@FSXYP_New, YM=@YM_New,Import=@Import_New,DataVersion=@DataVersion_New,SFDAId=@SFDAId_New,
                                                          TableView=@TableView_New,UniCodes=@UniCodes_New,StandCode=@StandCode_New,CommodityType=@CommodityType_New,
                                                          GJ=@GJ_New,PackingId=@PackingId_Max
                    where   CommodityId=@CommodityId_Old
                    if @@error <>0
                    begin
                        ROLLBACK
                        RETURN
                   end
               end
               else
               begin
                     Insert into Commodity (CommodityId,CatalogId,GeneralName,ProductName,EnglishName,Spec,ProducingArea,DoseType,AuthorizeCode,Unit,Gmp,Otc,Import,
                                                TradePrice,RetailPrice,SpellCode,CustomCode,DataVersion,Disabled,ZhongChengYao,    ZhongYaoCai,ZhongYaoCaiContent,
                                                ZhongYaoYinPian,ZhongYaoYinPianContent,HXYZJ,HXYLY,KSS,SHYP,SWZP,SWZPCYM,SWZPCXYYP,SWZPXZDYP,MZYP,
                                                MZYPContent,JSYP,JSYPContent,YLYDXYP,YLYDXYPContent,FSXYP,YM,TXM,BS,Reports,Deleted,SFDAId,TableView,
                                                UniCodes,StandCode,CommodityType, GJ,PackingId)
                                  values(@CommodityId_New,1,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,@ProducingArea_New,
                                                @DoseType_New, @AuthorizeCode_New,@Unit_Old,0,0,@Import_New,0,@RetailPrice_Old,@SpellCode_New,@CustomCode_Old,
                                                @DataVersion_New,0 , @ZhongChengYao_New,    @ZhongYaoCai_New,@ZhongYaoCaiContent_New,
                                                @ZhongYaoYinPian_New , @ZhongYaoYinPianContent_New  ,@HXYZJ_New , @HXYLY_New , @KSS_New , @SHYP_New,
                                                @SWZP_New , @SWZPCYM_New , @SWZPCXYYP_New ,@SWZPXZDYP_New , @MZYP_New, @MZYPContent_New,
                                                @JSYP_New , @JSYPContent_New , @YLYDXYP_New , @YLYDXYPContent_New ,@FSXYP_New ,@YM_New,@TXM_Old,1,0,0,
                                                @SFDAId_New,@TableView_New,@UniCodes_New,@StandCode_New,@CommodityType_New,@GJ_New,@PackingId_Max)
                     if @@error <>0
                     begin
                           ROLLBACK
                          RETURN
                      end 
               end

                --转换各从单
                 Update BillDetailAdjustCostPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                      ROLLBACK
                      RETURN
                 end 

                 Update BillDetailAdjustRetailPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                     ROLLBACK
                     RETURN
                 end 

                 Update BillDetailBatchCodeAdjust Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                      ROLLBACK
                      RETURN
                 end 

                Update BillDetailBuyInStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                    ROLLBACK
                    RETURN
               end 

               Update BillDetailBuyInStockPlan Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                    ROLLBACK
                    RETURN
               end

               Update BillDetailBuyReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                   ROLLBACK
                   RETURN
              end

              Update BillDetailReportLoss Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end

              Update BillDetailReportSpill Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end


              Update BillDetailRetail Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end

              Update BillDetailRetailReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                   ROLLBACK
                   RETURN
              end

              --转换库存
              Update CommodityStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                   ROLLBACK
                   RETURN
              end

              --转换InoutStock
              Update InoutStockTable Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
               end


              --插入ConversionDataTable
               insert into ConversionDataTable(CommodityId_Old,GeneralName_Old,ProductName_Old,Spec_Old,
                   ProducingArea_Old,DoseType_Old,AuthorizeCode_Old,Unit_Old,SpellCode_Old,CustomCode_Old,
                   TXM_Old,CommodityId_New,GeneralName_New,ProductName_New,EnglishName_New,Spec_New,
                   ProducingArea_New,DoseType_New,    AuthorizeCode_New,Unit_New,SpellCode_New,CustomCode_New,
                   TXM_New,PackingId_Old,PackingId_New)
             values(@CommodityId_Old,@GeneralName_Old,@ProductName_Old,@Spec_Old,
                   @ProducingArea_Old,@DoseType_Old,@AuthorizeCode_Old,@Unit_Old,@SpellCode_Old,@CustomCode_Old,
                   @TXM_Old,@CommodityId_New,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,
                   @ProducingArea_New,@DoseType_New,@AuthorizeCode_New,@Unit_New,@SpellCode_New,@CustomCode_New,
                   @TXM_New,@PackingId_Old,@PackingId_Max)
              if @@error <>0
              begin
                  ROLLBACK
                   RETURN
               end


          end

         Commit tran
         return 0
GO
/****** Object:  StoredProcedure [dbo].[ConversionData_Auto_Child_Audit]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ConversionData_Auto_Child_Audit]
(
    @CommodityId_Old              int,
    @GeneralName_Old    varchar(100),
    @ProductName_Old            varchar(100),
    @Spec_Old                         varchar(200),
    @DoseType_Old                 varchar(50),
    @ProducingArea_Old          varchar(100),
    @Unit_Old                            varchar(50),
    @AuthorizeCode_Old           varchar(50),
    @SpellCode_Old                  varchar(100),
    @TXM_Old                           varchar (60) ,
    @CustomCode_Old                  varchar (50),
    @RetailPrice_Old                    decimal (18,4)
)
as
    DECLARE @CommodityId_New             int
    DECLARE @GeneralName_New           varchar(100)
    DECLARE @ProductName_New           varchar(100)
    DECLARE @EnglishName_New            varchar(200)
    DECLARE @Spec_New                         varchar(200)
    DECLARE @ProducingArea_New          varchar(100)
    DECLARE @DoseType_New                 varchar(50)
    DECLARE @AuthorizeCode_New           varchar(50)
    DECLARE @Unit_New                            varchar(50)
    DECLARE @SpellCode_New                  varchar(100)
    DECLARE @CustomCode_New              varchar(50)
    DECLARE @TXM_New                          varchar(60)
    DECLARE @ZhongChengYao_New        bit
    DECLARE @ZhongYaoCai_New             bit
    DECLARE @ZhongYaoCaiContent_New varchar(100)
    DECLARE @ZhongYaoYinPian_New      bit
    DECLARE @ZhongYaoYinPianContent_New  varchar(100)
    DECLARE @HXYZJ_New                    bit
    DECLARE @HXYLY_New                       bit
    DECLARE @KSS_New                            bit
    DECLARE @SHYP_New                         bit
    DECLARE @SWZP_New                    bit
    DECLARE @SWZPCYM_New                 bit
    DECLARE @SWZPCXYYP_New             bit
    DECLARE @SWZPXZDYP_New            bit
    DECLARE @MZYP_New                        bit
    DECLARE @MZYPContent_New             varchar (100)
    DECLARE @JSYP_New                          bit
    DECLARE @JSYPContent_New             varchar(100)
    DECLARE @YLYDXYP_New                   bit
    DECLARE @YLYDXYPContent_New      varchar(100)
    DECLARE @FSXYP_New                         bit
    DECLARE @YM_New                               bit
    DECLARE @Import_New                           bit
    DECLARE @DataVersion_New                bigint
    DECLARE @SFDAId_New                       int
    DECLARE @TableView_New         varchar(50)
    DECLARE @UniCodes_New                    varchar(100)
    DECLARE @StandCode_New                  varchar(100)
    DECLARE @CommodityType_New           varchar(50)
    DECLARE @GJ_New                                varchar(50)

 

          Begin tran
          Select  @CommodityId_New=CommodityId, @GeneralName_New=GeneralName, @ProductName_New=ProductName, @EnglishName_New=EnglishName,
                @Spec_New=Spec, @ProducingArea_New=ProducingArea,@DoseType_New=DoseType, @AuthorizeCode_New=AuthorizeCode, @Unit_New=Unit,
                @SpellCode_New=SpellCode, @CustomCode_New=CustomCode,@TXM_New=TXM,@ZhongChengYao_New=ZhongChengYao,
                @ZhongYaoCai_New=ZhongYaoCai,  @ZhongYaoCaiContent_New =ZhongYaoCaiContent,@ZhongYaoYinPian_New=ZhongYaoYinPian,
                @ZhongYaoYinPianContent_New=ZhongYaoYinPianContent, @HXYZJ_New=HXYZJ,  @HXYLY_New =HXYLY,  @KSS_New =KSS,
                @SHYP_New =SHYP,   @SWZP_New     =SWZP,  @SWZPCYM_New=SWZPCYM,  @SWZPCXYYP_New=SWZPCXYYP,
                @SWZPXZDYP_New=SWZPXZDYP, @MZYP_New=MZYP ,  @MZYPContent_New=MZYPContent, @JSYP_New=JSYP,
                @JSYPContent_New=JSYPContent,  @YLYDXYP_New=YLYDXYP,  @YLYDXYPContent_New=YLYDXYPContent,
                @FSXYP_New=FSXYP, @YM_New=YM,@Import_New=Import,@DataVersion_New=DataVersion,@SFDAId_New=SFDAId,
                @TableView_New=TableView,@UniCodes_New=UniCodes,@StandCode_New=StandCode,@CommodityType_New=CommodityType,
                @GJ_New=GJ
          from CommodityStandard where CommodityId>1000000 and AuthorizeCode=@AuthorizeCode_Old

         if @@RowCount>0
          begin
          Select CommodityId  from Commodity where CommodityId=@CommodityId_New
          if @@rowcount<=0
          begin
               Select CommodityId from Commodity where CommodityId=@CommodityId_Old
               if @@RowCount >0
               begin
                    Update Commodity Set CommodityId=@CommodityId_New,GeneralName=@GeneralName_New,ProductName=@ProductName_New,EnglishName=@EnglishName_New,
                                                         Spec= @Spec_New ,  ProducingArea= @ProducingArea_New ,DoseType= @DoseType_New,  AuthorizeCode =@AuthorizeCode_New, SpellCode= @SpellCode_New,                    
                                                          ZhongChengYao=@ZhongChengYao_New , ZhongYaoCai=@ZhongYaoCai_New,  ZhongYaoCaiContent=@ZhongYaoCaiContent_New ,
                                                          ZhongYaoYinPian=@ZhongYaoYinPian_New,ZhongYaoYinPianContent=@ZhongYaoYinPianContent_New, HXYZJ=@HXYZJ_New, 
                                                          HXYLY= @HXYLY_New ,  KSS=@KSS_New , SHYP=@SHYP_New ,   SWZP=@SWZP_New    ,  SWZPCYM=@SWZPCYM_New,
                                                          SWZPCXYYP=@SWZPCXYYP_New, SWZPXZDYP=@SWZPXZDYP_New, MZYP=@MZYP_New ,  MZYPContent=@MZYPContent_New,
                                                          JSYP=@JSYP_New, JSYPContent=@JSYPContent_New,  YLYDXYP=@YLYDXYP_New,  YLYDXYPContent=@YLYDXYPContent_New,
                                                          FSXYP=@FSXYP_New, YM=@YM_New,Import=@Import_New,DataVersion=@DataVersion_New,SFDAId=@SFDAId_New,
                                                          TableView=@TableView_New,UniCodes=@UniCodes_New,StandCode=@StandCode_New,CommodityType=@CommodityType_New,
                                                          GJ=@GJ_New
                    where   CommodityId=@CommodityId_Old
                    if @@error <>0
                    begin
                        ROLLBACK
                        RETURN
                   end
               end
               else
               begin
                     Insert into Commodity (CommodityId,CatalogId,GeneralName,ProductName,EnglishName,Spec,ProducingArea,DoseType,AuthorizeCode,Unit,Gmp,Otc,Import,
                                                TradePrice,RetailPrice,SpellCode,CustomCode,DataVersion,Disabled,ZhongChengYao,    ZhongYaoCai,ZhongYaoCaiContent,
                                                ZhongYaoYinPian,ZhongYaoYinPianContent,HXYZJ,HXYLY,KSS,SHYP,SWZP,SWZPCYM,SWZPCXYYP,SWZPXZDYP,MZYP,
                                                MZYPContent,JSYP,JSYPContent,YLYDXYP,YLYDXYPContent,FSXYP,YM,TXM,BS,Reports,Deleted,SFDAId,TableView,
                                                UniCodes,StandCode,CommodityType, GJ)
                                  values(@CommodityId_New,1,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,@ProducingArea_New,
                                                @DoseType_New, @AuthorizeCode_New,@Unit_Old,0,0,@Import_New,0,@RetailPrice_Old,@SpellCode_New,@CustomCode_Old,
                                                @DataVersion_New,0 , @ZhongChengYao_New,    @ZhongYaoCai_New,@ZhongYaoCaiContent_New,
                                                @ZhongYaoYinPian_New , @ZhongYaoYinPianContent_New  ,@HXYZJ_New , @HXYLY_New , @KSS_New , @SHYP_New,
                                                @SWZP_New , @SWZPCYM_New , @SWZPCXYYP_New ,@SWZPXZDYP_New , @MZYP_New, @MZYPContent_New,
                                                @JSYP_New , @JSYPContent_New , @YLYDXYP_New , @YLYDXYPContent_New ,@FSXYP_New ,@YM_New,@TXM_Old,1,0,0,
                                                @SFDAId_New,@TableView_New,@UniCodes_New,@StandCode_New,@CommodityType_New,@GJ_New)
                     if @@error <>0
                     begin
                           ROLLBACK
                          RETURN
                      end 
               end

                --转换各从单
                 Update BillDetailAdjustCostPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                      ROLLBACK
                      RETURN
                 end 

                 Update BillDetailAdjustRetailPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                     ROLLBACK
                     RETURN
                 end 

                 Update BillDetailBatchCodeAdjust Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
                 where  CommodityId=@CommodityId_Old
                 if @@error <>0
                 begin
                      ROLLBACK
                      RETURN
                 end 

                Update BillDetailBuyInStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                    ROLLBACK
                    RETURN
               end 

               Update BillDetailBuyInStockPlan Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                    ROLLBACK
                    RETURN
               end

               Update BillDetailBuyReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
               where  CommodityId=@CommodityId_Old
               if @@error <>0
               begin
                   ROLLBACK
                   RETURN
              end

              Update BillDetailReportLoss Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end

              Update BillDetailReportSpill Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,


                                                              SpellCode=@SpellCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end


              Update BillDetailRetail Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
              end

              Update BillDetailRetailReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                   ROLLBACK
                   RETURN
              end

              --转换库存
              Update CommodityStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                   ROLLBACK
                   RETURN
              end

              --转换InoutStock
              Update InoutStockTable Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New
              where  CommodityId=@CommodityId_Old
              if @@error <>0
              begin
                  ROLLBACK
                  RETURN
               end


              --插入ConversionDataTable
               insert into ConversionDataTable(CommodityId_Old,GeneralName_Old,ProductName_Old,Spec_Old,
                   ProducingArea_Old,DoseType_Old,AuthorizeCode_Old,Unit_Old,SpellCode_Old,CustomCode_Old,
                   TXM_Old,CommodityId_New,GeneralName_New,ProductName_New,EnglishName_New,Spec_New,
                   ProducingArea_New,DoseType_New,    AuthorizeCode_New,Unit_New,SpellCode_New,CustomCode_New,
                   TXM_New)
             values(@CommodityId_Old,@GeneralName_Old,@ProductName_Old,@Spec_Old,
                   @ProducingArea_Old,@DoseType_Old,@AuthorizeCode_Old,@Unit_Old,@SpellCode_Old,@CustomCode_Old,
                   @TXM_Old,@CommodityId_New,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,
                   @ProducingArea_New,@DoseType_New,@AuthorizeCode_New,@Unit_New,@SpellCode_New,@CustomCode_New,
                   @TXM_New)
              if @@error <>0
              begin
                  ROLLBACK
                   RETURN
               end

          end
          end

         Commit tran
         return 0
GO
/****** Object:  StoredProcedure [dbo].[sequencesIni]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[sequencesIni]  AS
declare @sql nvarchar(500)
declare @IdName varchar(50)
declare @TableName varchar(50)
declare @colValue varchar(50)
declare @NextId int
declare upSequencesCursor cursor for select Sequence_Name,Sequence_NextId from sequences for update of sequence_NextId
open upSequencesCursor
fetch upSequencesCursor into @TableName,@NextId
while(@@fetch_status=0)
begin
--字符串处理部分
select @TableName=ltrim(@TableName)
select @TableName=rtrim(@TableName)
if(@TableName like '%Id')
begin
set @TableName=substring(@TableName,1,len(@TableName)-2)
end
select * from Sequences
declare @count int
select @IdName ='%Id'
select   @Count=count(*) from syscolumns where id=object_id(@TableName) and name like @IdName
if(@count>0)
begin
select @IdName =@TableName+'Id'
select @count=count(*) from syscolumns where id=object_id(@TableName) and name like @IdName
if(@count>0)
begin
if(@count=1)
begin
select @IdName=name from syscolumns where id=object_id(@TableName) and name like @IdName
set @sql='set @colValue= (select '+'isnull(max('+@IdName+'),1)  from '+@TableName+')'
print @TableName
print @colValue
print @sql
exec sp_executesql @sql,N'@colValue int output',@colValue output
set @sql='update Sequences set sequence_NextId='+@colValue+'+1 where current of upSequencesCursor'
print @TableName
print @colValue
print @sql
exec(@sql)
end
end
else
begin
print '在'+@TableName+'中没有找到对应的ID号'
exec('update Sequences set sequence_NextId=1 where current of upSequencesCursor')
end
end
else
begin
print '在'+@TableName+'中没有找到对应的ID号'
exec('update Sequences set sequence_NextId=1 where current of upSequencesCursor')
end
print '------------------------------------------------------------------------------------'
fetch upSequencesCursor into @TableName,@NextId
end
close upSequencesCursor
deallocate upSequencesCursor
update Sequences set sequence_NextId=(select isnull(min(commodityId),0)-1 from commodity) where sequence_Name='RetailCommodity'
GO
/****** Object:  StoredProcedure [dbo].[medicineMis]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[medicineMis]
(
   @CatalogType  int,
   @ParentId int,
   @CatalogName varchar(50),
   @CatalogComment varchar(50),
   @CatalogNumber  varchar(50),
   @Id int output
)
AS
BEGIN

  DECLARE @iMaxId int      --find out max Id in table Catalog according to CatalogType
  DECLARE @Class int       --当前插入数据的层次

  /*设置事务隔离级别*/
  SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

  /*开始事务*/
  BEGIN TRANSACTION

  /*取得当前最大的Id*/
  SELECT
    @iMaxId=ISnULL(MAX(Id),0)
  FROM Catalog
  WHERE CatalogType=@CatalogType
    
  SELECT @iMaxId=@iMaxId+1

  /*返回当前的Id*/
  SET @Id=@iMaxId

  /*向表Catalog插入数据*/
  insert into Catalog
    (
     Id,
     CatalogType,
     ParentId,
     CatalogName,
     CatalogNumber,
     CatalogComment
    )
  VALUES
    (
     @Id,
     @CatalogType,
     @ParentId,
     @CatalogName,
     @CatalogNumber,
     @CatalogComment
    )

  /*取得当前数据所在级别Class*/
  SELECT
    @Class=ISnULL(MAX(ParentClass),0)
  FROM  CatalogPedigree
  WHERE ParentId=@ParentId
    AND CatalogType=@CatalogType

  SET @Class=@Class+1

 

    /*向CatalogPedigree表中插入直接父层数据*/
    INSERT INTO CatalogPedigree
    (
     CatalogType,
     ParentId,
     ChildId,
     ParentClass,
     ChildClass
     )
     VALUES
     (
      @CatalogType,
      @ParentId,
      @iMaxId,
      @Class-1,
      @Class
     )
     /*向CatalogPedigree表中插入间接父层数据*/
     INSERT INTO CatalogPedigree
     (
     CatalogType,
     ParentId,
     ChildId,
     ParentClass,
     ChildClass
     )
     SELECT
       CatalogType,
       ParentId,
       @iMaxId,
       ParentClass,
       @Class
     FROM CatalogPedigree
     WHERE  ChildId=@ParentId
       AND CatalogType=@CatalogType
       AND ParentId!=0

     /*提交事务*/
     COMMIT TRANSACTION
END
GO
/****** Object:  StoredProcedure [dbo].[GetNewSequenceId]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[GetNewSequenceId] 

@Name  varchar(50),                                                                                                                 --表SYSDATA的IDKEY列对应的值 
@NextId int output                                                                               --所取得的值 

AS 
BEGIN 
    set nocount on 
    SET TRANSACTION ISOLATION LEVEL Serializable                                                 --事务序列化 
    begin tran 
      select @NextId=Sequence_NextId from Sequences  with(updlock)  where Sequence_Name=@Name  --取得行级排他锁 
      if @NextId is null 
      begin 
            rollback tran                                                                                                      --没有取得值 
            return -1 
      end 
       update  Sequences set Sequence_NextId=Sequence_NextId+1  where Sequence_Name=@Name 
   commit tran 
    return 0 
END
GO
/****** Object:  StoredProcedure [dbo].[GetNewBill]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetNewBill]
(
    @BillType  TINYINT, 
        @Sequence_Name VARCHAR(50),                                                                                                          
    @BillCode VARCHAR(50) OUTPUT ,
        @BillCode_Name VARCHAR(50) OUTPUT,
        @BillId INT OUTPUT ,
        @ErrorInfoId INT OUTPUT ,
        @ErrorMessage VARCHAR(100) OUTPUT                                                                        --所取得的值
)
AS
    SELECT ErrorMessage=''
    SET NOCOUNT ON
    SET TRANSACTION ISOLATION LEVEL Serializable                                                 --事务序列化
    BEGIN TRAN
     SELECT @BillId=Sequence_NextId FROM Sequences WITH (UPDLOCK) WHERE Sequence_Name=@Sequence_Name
     IF @@ROWCOUNT=0
     BEGIN
          SELECT @ErrorInfoId=-1
          SELECT @ErrorMessage='没有找到'+@Sequence_Name+'对应的记录'
          ROLLBACK TRAN
          RETURN -1
     END
     UPDATE Sequences SET Sequence_NextId=Sequence_NextId+1 WHERE Sequence_Name=@Sequence_Name
     IF @@ERROR<>0
     BEGIN
          SELECT @ErrorInfoId=-2
          SELECT @ErrorMessage='更新Sequence出错'
          ROLLBACK TRAN
          RETURN -2
      END
      SELECT @BillCode=BillCode, @BillCode_Name=Name FROM BillCode  WITH (UPDLOCK)  WHERE Id=@BillType  --取得行级排他锁
      IF @BillCode IS NULL
      BEGIN
          SELECT @ErrorInfoId=-3
          SELECT @ErrorMessage='没有找到单据类型'+@BillType+'对应的BillCode记录'
          ROLLBACK TRAN
          RETURN -3
     END
    UPDATE  BillCode SET Number=RIGHT(CAST((100000000001+CAST(Number AS BIGINT) ) AS VARCHAR(20)),11) WHERE Id=@BillType
    IF @@ERROR<>0
    BEGIN
          SELECT @ErrorInfoId=-4
          SELECT @ErrorMessage='更新BillCode出错'
          ROLLBACK TRAN
          RETURN -4
    END
    COMMIT TRAN
    SELECT @ErrorInfoId=1
    SELECT @ErrorMessage='初始化单据成功'
    RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[ConvertInOutStock]    Script Date: 03/02/2011 16:53:46 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ConvertInOutStock]
(
      @EmbranchmentId int,
      @BillType tinyint,
      @BillId int,
      @BillCode varchar(50),
      @BusinessDate smalldatetime,
      @AuditDate smalldatetime,
      @RowNum tinyint,
      @CommodityId int,
      @BatchCode varchar(50),
      @PreAmount decimal(18,4),
      @ChangeAmount decimal(18,4),
      @InAmount decimal(18,4),
      @OutAmount decimal(18,4),
      @CurAmount decimal(18,4),
      @PreCostSumMoney decimal(18,4),
      @PreSaleSumMoney decimal(18,4),
      @ChangeSumMoney decimal(18,4),
      @CurCostPrice decimal(18,4),
      @CurSalePrice decimal(18,4),
      @ProductDate smalldatetime,
      @InvalidateDate smalldatetime,
      @ProviderId int,
      @InStockId int,
      @OutStockId int,
      @CommodityName varchar(100),
      @Spec varchar(200),
      @DoseTypeName varchar(50),
      @ProducingArea varchar(100),
      @Unit varchar(50),
      @CreatorName varchar(50),
      @BusinessName varchar(50),
      @BillCodeName varchar(50),
      @EmbranchmentName varchar(50),
      @ProviderName varchar(50),
      @InStockName varchar(50),
      @OutStockName varchar(50),
      @AuthorizeCode varchar(100),
      @CustomCode varchar(50),
      @PackingId int,
      @PackingName varchar(50),
      @ErrorMessage VARCHAR(300) OUTPUT,
      @ErrorInfoId  int OUTPUT
)
AS
DECLARE @NewCommodityId    int
DECLARE @NewPackingId    int
DECLARE @CurVersion               bigint
DECLARE @NewGeneralName    varchar    (100)
DECLARE @NewSpec    varchar    (200)
DECLARE @NewDoseType    varchar    (50)
DECLARE @NewProducingArea    varchar    (100)
DECLARE @NewUnit varchar(50)
DECLARE @OldPackingName    varchar    (60)

SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
BEGIN TRAN

    --根据CommodityId、PackingId在CommodityRelation中查找对应的记录,如果有就转换,没有则不转
    Select  @NewCommodityId=NewCommodityId,@NewPackingId=NewPackingId,@NewGeneralName=NewGeneralName,@NewSpec=NewSpec,@NewDoseType=NewDoseType,@NewProducingArea=NewProducingArea,@OldPackingName=OldPackingName from CommodityRelation where OldCommodityId=@CommodityId and OldPackingId=@PackingId
    if @@ROWCOUNT>0
    begin
         Select @EmbranchmentId=EmbranchmentId,@EmbranchmentName=Name from Embranchment
         select @CurVersion=CurVersion from DataVersion --版本处理部分
         where EmbranchmentId=@EmbranchmentId
         and DataVersionId=1
         if @@ROWCOUNT<>1
         begin
              select @ErrorMessage='品名:'+@CommodityName+' 规格:'+@Spec+' 产地:'+@ProducingArea+' 包装:'+@PackingName+'取版本出错!'
              select @ErrorInfoId=-1
              rollback
              return -1                 
         end 

         if (@NewCommodityId>0)--通过对应关系转换来的
         begin
              insert into InoutStockTable(EmbranchmentId,BillType,BillId,BillCode,PreCostPrice,BusinessDate,AuditDate,RowNum,CommodityId,BatchCode,PreAmount,ChangeAmount,InAmount,OutAmount,CurAmount,PreCostSumMoney,PreSaleSumMoney,ChangeSumMoney,CurCostPrice,CurSalePrice,ProductDate,InvalidateDate,ProviderId,InStockId,OutStockId,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,CreatorName,BusinessName,BillCodeName, EmbranchmentName,ProviderName,InStockName,OutStockName,AuthorizeCode,CustomCode,PackingId,PackingName,DataVersion)
                                 values(@EmbranchmentId,@BillType,@BillId,@BillCode,'0',@BusinessDate,@AuditDate,@RowNum,@NewCommodityId,@BatchCode,@PreAmount,@ChangeAmount,@InAmount,@OutAmount,@CurAmount,@PreCostSumMoney,@PreSaleSumMoney,@ChangeSumMoney,@CurCostPrice,@CurSalePrice,@ProductDate,@InvalidateDate,@ProviderId,@InStockId,@OutStockId,@NewGeneralName,@NewSpec,@NewDoseType,@NewProducingArea,@NewUnit,@CreatorName,@BusinessName,@BillCodeName, @EmbranchmentName,@ProviderName,@InStockName,@OutStockName,@AuthorizeCode,@CustomCode,@NewPackingId,@OldPackingName,@CurVersion+1)

              if @@error <>0
              begin
                   select @ErrorMessage='品名:'+@CommodityName+' 规格:'+@Spec+' 产地:'+@ProducingArea+' 包装:'+@PackingName+'插入库存出错'
                   select @ErrorInfoId=-1
                   rollback
                   return -1
                 end

        end
        else--直接转换来的
        begin
              insert into InoutStockTable(EmbranchmentId,BillType,BillId,BillCode,PreCostPrice,BusinessDate,AuditDate,RowNum,CommodityId,BatchCode,PreAmount,ChangeAmount,InAmount,OutAmount,CurAmount,PreCostSumMoney,PreSaleSumMoney,ChangeSumMoney,CurCostPrice,CurSalePrice,ProductDate,InvalidateDate,ProviderId,InStockId,OutStockId,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,CreatorName,BusinessName,BillCodeName, EmbranchmentName,ProviderName,InStockName,OutStockName,AuthorizeCode,CustomCode,PackingId,PackingName,DataVersion)
                                 values(@EmbranchmentId,@BillType,@BillId,@BillCode,'0',@BusinessDate,@AuditDate,@RowNum,@CommodityId,@BatchCode,@PreAmount,@ChangeAmount,@InAmount,@OutAmount,@CurAmount,@PreCostSumMoney,@PreSaleSumMoney,@ChangeSumMoney,@CurCostPrice,@CurSalePrice,@ProductDate,@InvalidateDate,@ProviderId,@InStockId,@OutStockId,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,@Unit,@CreatorName,@BusinessName,@BillCodeName, @EmbranchmentName,@ProviderName,@InStockName,@OutStockName,@AuthorizeCode,@CustomCode,@PackingId,@PackingName,@CurVersion+1)

              if @@error <>0
              begin
                   select @ErrorMessage='品名:'+@CommodityName+' 规格:'+@Spec+' 产地:'+@ProducingArea+' 包装:'+@PackingName+'插入库存出错'
                   select @ErrorInfoId=-1
                   rollback
                   return -1
                 end
        end

        Update DataVersion
        set PreviousVersion=@CurVersion,CurVersion=@CurVersion+1
        where EmbranchmentId=@EmbranchmentId
                  and DataVersionId=1

         if @@error <>0
         begin
               select @ErrorMessage='更新版本出错!'
                select @ErrorInfoId=-1
                rollback
                return -1
         end

    end
    else
    begin
       select @ErrorMessage='品名:'+@CommodityName+' 规格:'+@Spec+' 产地:'+@ProducingArea+' 包装:'+@PackingName+'无法找到对应关系'
       select @ErrorInfoId=-1
       rollback
       return -1
    end

select @ErrorMessage='转换成功!'
select @ErrorInfoId=1   
commit Tran
return 0
GO
/****** Object:  StoredProcedure [dbo].[ConvertCommodity]    Script Date: 03/02/2011 16:53:47 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ConvertCommodity]
(
    @NewCommodityId    int,
    @NewPackingId    int,
    @NewGeneralName    varchar    (100),
    @NewProductName    varchar    (100),
    @NewSpec    varchar    (200),
    @NewProducingArea    varchar    (100),
    @NewDoseType    varchar    (50),
    @NewAuthorizeCode    varchar    (100),
    @NewSpellCode    varchar    (100),
    @NewCustomCode    varchar    (50),
    @NewUnit varchar(50),
    @NewTXM    varchar    (60),
    @OldCommodityId    int,
    @OldPackingId    int,
    @OldGeneralName    varchar    (100),
    @OldProductName    varchar    (100),
    @OldSpec    varchar    (200),
    @OldProducingArea    varchar    (100),
    @OldDoseType    varchar    (50),
    @OldAuthorizeCode    varchar    (100),
    @OldSpellCode    varchar    (100),
    @OldCustomCode    varchar    (50),
    @OldUnit varchar(50),
    @OldTXM    varchar    (60),
    @OldPackingName    varchar    (60),
    @OldRetailPrice    decimal(18,4),
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
   DECLARE @MaxPackingId    int

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN

    Select * from CommodityRelation where OldCommodityId=@OldCommodityId and OldPackingId=@OldPackingId
    if @@ROWCOUNT>0
    begin
       select @ErrorMessage='此药品之前已被转换,无法转换此药品!'
       select @ErrorInfoId=-1
       rollback
       return -1
    end


    if (@NewCommodityId>0)--对应转换
    begin
          select * from CommodityRelation where NewCommodityId=@NewCommodityId--取最大PackingId
          if  @@ROWCOUNT>0
          begin
              select @MaxPackingId=isnull(max(NewPackingId),0)+1 from CommodityRelation(UPDLOCK) where NewCommodityId=@NewCommodityId
          end
          else
          begin
               select @MaxPackingId=0
          end  

           --插入CommodityRelation
          insert into CommodityRelation(NewCommodityId,NewPackingId,NewGeneralName,NewProductName,NewSpec,NewProducingArea,NewDoseType,NewAuthorizeCode,NewSpellCode,NewCustomCode,NewUnit,NewTXM,OldCommodityId,OldPackingId,OldGeneralName,OldProductName,OldSpec,OldProducingArea,OldDoseType,OldAuthorizeCode,OldSpellCode,OldCustomCode,OldUnit,OldTXM,OldPackingName,OldRetailPrice)
          values(@NewCommodityId,@MaxPackingId,@NewGeneralName,@NewProductName,@NewSpec,@NewProducingArea,@NewDoseType,@NewAuthorizeCode,@NewSpellCode,@NewCustomCode,@NewUnit,@NewTXM,@OldCommodityId,@OldPackingId,@OldGeneralName,@OldProductName,@OldSpec,@OldProducingArea,@OldDoseType,@OldAuthorizeCode,@OldSpellCode,@OldCustomCode,@OldUnit,@OldTXM,@OldPackingName,@OldRetailPrice)
          if @@error <>0
          begin
               select @ErrorMessage='插入CommodityRelation失败!'
               select @ErrorInfoId=-2
               rollback
               return -1
          end
          --插入Commodity     
          insert into Commodity(CommodityId,PackingId,CatalogId,GeneralName,ProductName,Spec,ProducingArea,DoseType,AuthorizeCode,SpellCode,CustomCode,Unit,TXM,PackingName,RetailPrice,Deleted)
          values(@NewCommodityId,@MaxPackingId,'1',@NewGeneralName,@NewProductName,@NewSpec,@NewProducingArea,@NewDoseType,@NewAuthorizeCode,@NewSpellCode,@OldCustomCode,@OldUnit,@OldTXM,@OldPackingName,@OldRetailPrice,0)
          if @@error <>0
          begin
               select @ErrorMessage='插入Commodity失败!'
               select @ErrorInfoId=-2
               rollback
               return -1
          end        
          --将CommodityOld中的记录删除
          Update CommodityOld Set Deleted=1 where CommodityId=@OldCommodityId and PackingId=@OldPackingId
          if @@error <>0
          begin
               select @ErrorMessage='更新CommodityOld失败!'
               select @ErrorInfoId=-2
               rollback
               return -1
          end
    end
    else
    begin--直接转换
           --插入CommodityRelation
          insert into CommodityRelation(NewCommodityId,NewPackingId,NewGeneralName,NewProductName,NewSpec,NewProducingArea,NewDoseType,NewAuthorizeCode,NewSpellCode,NewCustomCode,NewUnit,NewTXM,OldCommodityId,OldPackingId,OldGeneralName,OldProductName,OldSpec,OldProducingArea,OldDoseType,OldAuthorizeCode,OldSpellCode,OldCustomCode,OldUnit,OldTXM,OldPackingName,OldRetailPrice)
          values(@NewCommodityId,@NewPackingId,@NewGeneralName,@NewProductName,@NewSpec,@NewProducingArea,@NewDoseType,@NewAuthorizeCode,@NewSpellCode,@NewCustomCode,@NewUnit,@NewTXM,@OldCommodityId,@OldPackingId,@OldGeneralName,@OldProductName,@OldSpec,@OldProducingArea,@OldDoseType,@OldAuthorizeCode,@OldSpellCode,@OldCustomCode,@OldUnit,@OldTXM,@OldPackingName,@OldRetailPrice)
          if @@error <>0
          begin
               select @ErrorMessage='插入CommodityRelation失败!'
               select @ErrorInfoId=-3
               rollback
               return -1
          end
          --插入Commodity     
          insert into Commodity(CommodityId,PackingId,CatalogId,GeneralName,ProductName,Spec,ProducingArea,DoseType,AuthorizeCode,SpellCode,CustomCode,Unit,TXM,PackingName,RetailPrice,Deleted)
          values(@OldCommodityId,@OldPackingId,'1',@OldGeneralName,@OldProductName,@OldSpec,@OldProducingArea,@OldDoseType,@OldAuthorizeCode,@OldSpellCode,@OldCustomCode,@OldUnit,@OldTXM,@OldPackingName,@OldRetailPrice,0)
          if @@error <>0
          begin
               select @ErrorMessage='插入Commodity失败!'
               select @ErrorInfoId=-3
               rollback
               return -1
          end
           --将CommodityOld中的记录删除
          Update CommodityOld Set Deleted=1 where CommodityId=@OldCommodityId and PackingId=@OldPackingId
          if @@error <>0
          begin
               select @ErrorMessage='更新CommodityOld失败!'
               select @ErrorInfoId=-3
               rollback
               return -1
          end
    end

 


    select @ErrorMessage='转换成功!'
    select @ErrorInfoId=1   
    commit Tran
    return 0
GO
/****** Object:  StoredProcedure [dbo].[getData]    Script Date: 03/02/2011 16:53:47 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE procedure [dbo].[getData] as
DECLARE @EmbranchmentId int
DECLARE @Sypzspbid int
DECLARE @Gspbh varchar(50)
DECLARE @Zdrid smallint
DECLARE @Zdrmc varchar(50)
DECLARE @Rq datetime
DECLARE @Spid int
DECLARE @Spm varchar(50)
DECLARE @Tymc varchar(50)
DECLARE @Jx varchar(50)
DECLARE @Py varchar(50)
DECLARE @Gg varchar(50)
DECLARE @Dw varchar(50)
DECLARE @Cctj varchar(50)
DECLARE @Zycf varchar(50)
DECLARE @Zlbz varchar(50)
DECLARE @Yxq varchar(50)
DECLARE @Pzwh varchar(50)
DECLARE @Sccs varchar(50)
DECLARE @Scxkzh varchar(50)
DECLARE @Xxdz varchar(50)
DECLARE @Yyzzh varchar(50)
DECLARE @Gmpzsh varchar(50)
DECLARE @Rzsj datetime
DECLARE @Zsyxq datetime
DECLARE @Sdkhrid smallint
DECLARE @Sdkhrmc varchar(50)
DECLARE @Wtsyxq datetime
DECLARE @Kcjl varchar(50)
DECLARE @Cpph varchar(50)
DECLARE @Ccjybgsh varchar(50)
DECLARE @Syjyjl varchar(50)
DECLARE @Syjybgsh varchar(50)
DECLARE @Ccj decimal(9)
DECLARE @Ghj decimal(9)
DECLARE @Pfj decimal(9)
DECLARE @Lsj decimal(9)
DECLARE @SFYPZZMWJ bit
DECLARE @SFYBZ bit
DECLARE @Sqly char(30)
DECLARE @Sqrid smallint
DECLARE @Sqrmc varchar(50)
DECLARE @Sqrrq datetime
DECLARE @Scbyj char(30)
DECLARE @Scbjlid smallint
DECLARE @Scbjlmc varchar(50)
DECLARE @Scbjlrq datetime
DECLARE @Zgbyj char(30)
DECLARE @Zgbjlid smallint
DECLARE @Zgbjlmc varchar(50)
DECLARE @Zgbjlrq datetime
DECLARE @Zjlyj char(30)
DECLARE @Zjlid smallint
DECLARE @Zjlmc varchar(50)
DECLARE @Zjlrq datetime 
select @EmbranchmentId=1
select @SypzspbID=isnull((select max(SypzspbID)+1 from Sypzspb ),0)
select @Gspbh=Null
select @Zdrid=76
select @Zdrmc='明永成'
select @Rq='2006-10-30 11:41:56'
select @Spid=0
select @Spm=''
select @Tymc=''
select @Jx=''
select @Py=''
select @Gg=''
select @Dw=''
select @Cctj=''
select @Zycf=''
select @Zlbz=''
select @Yxq='2006-10-30 11:41:56'
select @Pzwh=''
select @Sccs=''
select @Scxkzh=''
select @Xxdz=''
select @Yyzzh=''
select @Gmpzsh=''
select @Rzsj='2007-06-22'
select @Zsyxq='2006-10-30 11:41:56'
select @Sdkhrid=0
select @Sdkhrmc='乔长君'
select @Wtsyxq='2006-10-30 14:06:34'
select @Kcjl=''
select @Cpph=''
select @Ccjybgsh=0
select @Syjyjl='合格'
select @Syjybgsh=''
select @Ccj=0
select @Ghj=0
select @Pfj=0
select @Lsj=0
select @SFYPZZMWJ=0
select @SFYBZ=0
select @Sqly=''
select @Sqrid=0
select @Sqrmc=''
select @Sqrrq=''
select @Scbyj=''
select @Scbjlid=0
select @Scbjlmc=''
select @Scbjlrq='2006-10-30 14:06:34'
select @Zgbyj=''
select @Zgbjlid=0
select @Zgbjlmc=''
select @Zgbjlrq='2006-10-30 14:06:34'
select @Zjlyj=''
select @Zjlid=0
select @Zjlmc=0
select @Zjlrq='2006-10-30 14:06:34'

DECLARE Cur_CommodityStock cursor for
SELECT Commodity.CommodityId,Commodity.ProductName, Commodity.GeneralName,Commodity.DoseType,Commodity.SpellCode,Commodity.Spec,Commodity.Unit,CommodityStock.InvalidateDate,Commodity.AuthorizeCode,Commodity.ProducingArea,CommodityStock.BatchCode,Commodity.RetailPrice
FROM Commodity  INNER JOIN    CommodityStock on Commodity.CommodityId=CommodityStock.CommodityId

open Cur_CommodityStock
fetch next  from Cur_CommodityStock into @Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Yxq,@Pzwh,@Sccs,@Cpph,@Lsj
while @@fetch_status=0
begin
select @SypzspbID=isnull((select max(SypzspbID)+1 from Sypzspb ),0)
INSERT INTO Sypzspb(EmbranchmentId,SypzspbID,GSPBH,ZDRID,ZDRMC,RQ,SPID,SPM,TYMC,JX,PY,GG,DW,CCTJ,ZYCF,ZLBZ,YXQ,PZWH,SCCS,SCXKZH,XXDZ,YYZZH,GMPZSH,RZSJ,ZSYXQ,SDKHRID,SDKHRMC,WTSYXQ,KCJL,CPPH,CCJYBGSH,SYJYJL,SYJYBGSH,CCJ,GHJ,PFJ,LSJ,SFYPZZMWJ,SFYBZ,SQLY,SQRID,SQRMC,SQRRQ,SCBYJ,SCBJLID,SCBJLMC,SCBJLRQ,ZGBYJ,ZGBJLID,ZGBJLMC,ZGBJLRQ,ZJLYJ,ZJLID,ZJLMC,ZJLRQ)
      VALUES(@EmbranchmentId,@Sypzspbid,@Gspbh,@Zdrid,@Zdrmc,@Rq,@Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Cctj,@Zycf,@Zlbz,@Yxq,@Pzwh,@Sccs,@Scxkzh,@Xxdz,@Yyzzh,@Gmpzsh,@Rzsj,@Zsyxq,@Sdkhrid,@Sdkhrmc,@Wtsyxq,@Kcjl,@Cpph,@Ccjybgsh,@Syjyjl,@Syjybgsh,@Ccj,@Ghj,@Pfj,@Lsj,@SFYPZZMWJ,@SFYBZ,@Sqly,@Sqrid,@Sqrmc,@Sqrrq,@Scbyj,@Scbjlid,@Scbjlmc,@Scbjlrq,@Zgbyj,@Zgbjlid,@Zgbjlmc,@Zgbjlrq,@Zjlyj,@Zjlid,@Zjlmc,@Zjlrq)
fetch next  from Cur_CommodityStock into @Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Yxq,@Pzwh,@Sccs,@Cpph,@Lsj
end
GO
/****** Object:  UserDefinedFunction [dbo].[GetCertificateNo]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GetCertificateNo]
(@CustomerId int)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @CertificateNo VARCHAR(50)
SELECT @CertificateNo=CertificateNo FROM Customer

where CustomerId=@CustomerId
RETURN @CertificateNo
END
GO
/****** Object:  UserDefinedFunction [dbo].[GetCardTypeName]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GetCardTypeName]
(@CardTypeId int )
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @CardTypeName VARCHAR(50)
SELECT  @CardTypeName=CardTypeName FROM CardType

where CardTypeId=@CardTypeId
RETURN  @CardTypeName
END
GO
/****** Object:  StoredProcedure [dbo].[foo]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE procedure [dbo].[foo]
  @fs smallint,    --实际的付数
  @billId int
as
declare @commodityId int,        --內部變量
    @batchCode char(50),
    @Amount int,
    @Amounta int
 
begin
  --先嚐試從調課表中搜索資料並對實時課表進行更新操作
select @Amount=Amount from billDetailRetail
where BillId=@billId
    update billDetailRetail
    set Amount=@Amount* @fs
    where billId=@billId
select @Amount =Amount from billDetailRetail
where billId=8733
  --如果返回結果為0,說明調課表中沒有相關記錄,這時就從課程表中搜尋相關記錄進行插入操作
   --if @@RowCount=0 
   begin
    DECLARE my_cursor CURSOR FOR    --定義一個游標,用於循環處理
 
    select commodityid,batchCode,Amount from billDetailRetail
    where billId =@billId
    
    OPEN my_cursor            --打開游標
 
    FETCH NEXT FROM my_cursor    --將查尋結果存放在變量中以便處理
    INTO @commodityId,@batchCode,@Amount

    WHILE @@FETCH_STATUS = 0    --Fetch語句順利執行時循環處理
    BEGIN
        --執行更新操作
 
select  @Amounta=Amount from commodityStock
where commodityId=@commodityId
        and batchCode=@batchCode
        --and Amount<>0
print cast(@Amount as char)
        update commodityStock
        set Amount=@Amounta-@Amount+1
        where commodityId=@commodityId
        and batchCode=@batchCode
        --and Amount<>0
        update commodityStock
        set FactAmount=Amount,
        SumCost=CostPrice*Amount,
        SumRetail=RetailPrice*Amount
        where commodityId=@commodityId
        and batchCode=@batchCode
       -- and Amount<>0

        if @@error<>0
        begin
            raiserror('error',16,1)        --異常處理
            rollback transaction
        end
        FETCH NEXT FROM my_cursor    --繼續處理下一條記錄
        INTO @commodityId,@batchCode,@Amount
    end

    CLOSE my_cursor                --關閉遊標
    DEALLOCATE my_cursor            --釋放遊標
    end
end
  Print   'already  create'
GO
/****** Object:  StoredProcedure [dbo].[CheckMonthReckoning_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CheckMonthReckoning_Audit]
(
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
as
  DECLARE @IYear  smallint
  DECLARE @IMonth  smallint

  SELECT @IYear = DATEPART(yy, GETDATE())
  SELECT @IMonth = DATEPART(mm, GETDATE())

  Select * from MonthReckoning where IYear=@IYear and IMonth=@IMonth
  if @@rowcount>0
  begin
         Select @ErrorMessage='本月已经月结!'
        Select @ErrorInfoId=-1
        RETURN -1
  end

  Select * from MonthReckoning where (IYear=@IYear and IMonth>@IMonth) or (IYear>@IYear )
  if @@rowcount>0
  begin
         Select @ErrorMessage='本月后面的月份已经月结!'
        Select @ErrorInfoId=-2
        RETURN -2
  end

  Select @ErrorMessage='可以月结!'
  Select @ErrorInfoId=1
   RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[CheckCard]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[CheckCard]
(
        @CardCode VARCHAR(50),
    @BillType TINYINT,
    @BillId INT,
        @EmbranchmentId INT,
        @ChangeMoney DECIMAL(18,4),
    @ErrorInfoId INT OUTPUT,
    @ErrorInfoMessage VARCHAR(100) OUTPUT
)
AS
    
    DECLARE @EmbranchmentChangeMoney DECIMAL(18,4)
    DECLARE @DiffMoney DECIMAL(18,4)
    DECLARE @SubValue DECIMAL(18,4)
    DECLARE @Shadiness BIT
    DECLARE @Remark VARCHAR(50)
    DECLARE @CheckOut BIT
    SELECT  @Shadiness=0
    SELECT  @ErrorInfoId=1
    SELECT  @ErrorInfoMessage=''
    SELECT  @Remark=''
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN
    SELECT EmbranchmentId,BillType,BillId,CardCode,ChangeMoney FROM MemberCardChangeLogTemp
          WHERE EmbranchmentId=@EmbranchmentId
          AND BillId=@BillId
          AND BillType=@BillType
          AND CardCode=@CardCode

    SELECT @EmbranchmentChangeMoney=ChangeMoney FROM MemberCardChangeLog
          WHERE EmbranchmentId=@EmbranchmentId
          AND BillId=@BillId
          AND BillType=@BillType
          AND CardCode=@CardCode
    IF @@ROWCOUNT=0
    BEGIN
          IF @BillType=5
          BEGIN
               --计算总消费额
               UPDATE MemberCard
               SET SumConsumed = ISNULL(SumConsumed,0)+@ChangeMoney
           WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
           --余额
               UPDATE MemberCard
               SET  Balance=ISNULL(Balance,0)+@ChangeMoney
           WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
          END
          IF @BillType=31
          BEGIN
              --累计返利总额
          UPDATE MemberCard
              SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+@ChangeMoney
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
          --余额
          UPDATE MemberCard
              SET  Balance=ISNULL(Balance,0)+@ChangeMoney
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

           END

          IF (@BillType=26)
          BEGIN
           --计算总退货额
             UPDATE MemberCard
             SET ReturnCard = ISNULL(ReturnCard,0) + @ChangeMoney
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
             --余额
             UPDATE MemberCard
             SET  Balance=ISNULL(Balance,0)+@ChangeMoney
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

          END
          IF(@BillType=32)
          BEGIN
             --累计取消返利总额
          UPDATE MemberCard
              SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+@ChangeMoney
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
             --余额
          UPDATE MemberCard
              SET  Balance=ISNULL(Balance,0)+@ChangeMoney
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1        
       END 
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorInfoId=-2
                    SELECT @ErrorInfoMessage='更新会员卡失败'
                    ROLLBACK
                    RETURN -2
                 END
    END
    ELSE
    BEGIN
      IF @ChangeMoney!=@EmbranchmentChangeMoney
      BEGIN
         SELECT @DiffMoney=@EmbranchmentChangeMoney-@ChangeMoney
         SELECT @SubValue=abs(@EmbranchmentChangeMoney)-abs(@ChangeMoney)
         SELECT @Remark='次条消费记录卡内改变金额和终端不一致'
         SELECT @Shadiness=1
         SELECT @CheckOut=1
      IF @BillType=5
          BEGIN
               --计算总消费额
               UPDATE MemberCard
               SET SumConsumed = ISNULL(SumConsumed,0)-@SubValue
           WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
           --余额
               UPDATE MemberCard
               SET  Balance=ISNULL(Balance,0)+@SubValue
           WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
          END
          IF @BillType=31
          BEGIN
              --累计返利总额
          UPDATE MemberCard
              SET  ReturnPayCard=ISNULL(ReturnPayCard,0)-@SubValue
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
          --余额
          UPDATE MemberCard
              SET  Balance=ISNULL(Balance,0)-@SubValue
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

           END

          IF (@BillType=26)
          BEGIN
           --计算总退货额
             UPDATE MemberCard
             SET ReturnCard = ISNULL(ReturnCard,0) -@SubValue
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
             --余额
             UPDATE MemberCard
             SET  Balance=ISNULL(Balance,0)-@SubValue
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

          END
          IF(@BillType=32)
          BEGIN
             --累计取消返利总额
          UPDATE MemberCard
              SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)-@SubValue
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
             --余额
          UPDATE MemberCard
              SET  Balance=ISNULL(Balance,0)+@SubValue
          WHERE Code = @CardCode and ISNULL( Deleted,0)<>1        
       END 
              IF @@ERROR<>0
                 BEGIN
                    SELECT @ErrorInfoId=-3
                    SELECT @ErrorInfoMessage='更新会员卡失败'
                    ROLLBACK
                    RETURN -3
                 END
      END
      ELSE
      BEGIN
        SELECT @Remark='卡中改变金额和终端一致'   
        SELECT @Shadiness=0
        SELECT @DiffMoney=0
        SELECT @CheckOut=1
      END
     UPDATE MemberCardChangeLog SET CheckOut=@CheckOut, CardChangeMoney=@ChangeMoney,DiffMoney=@DiffMoney,Shadiness=@Shadiness,Remark=@Remark
     IF @@ERROR<>0
        BEGIN
            SELECT @ErrorInfoId=-4
            SELECT @ErrorInfoMessage='更新终端库失败'
            ROLLBACK
            RETURN -4
        END
   END        
   INSERT INTO MemberCardChangeLogTemp(Guid,EmbranchmentId,BillId,BillType,CardCode,ChangeMoney,DiffMoney,Shadiness,Remark)
   VALUES(NEWID(),@EmbranchmentId,@BillId,@BillType,@CardCode,@ChangeMoney,@DiffMoney,@Shadiness,@Remark)

    IF @@ERROR<>0
        BEGIN
            SELECT @ErrorInfoId=-5
            SELECT @ErrorInfoMessage='写卡库失败'
            ROLLBACK
            RETURN -5
        END
           -- Success. Commit the transaction.
    SELECT @ErrorInfoMessage = '会员卡更新成功'
    SELECT @ErrorInfoId=1
       COMMIT TRAN
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[ChargeCard_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2010-1-17
Summary    : 会员卡充值单据审核
***********************************************************************/

CREATE PROCEDURE [dbo].[ChargeCard_Audit]
(
    @CardCode VARCHAR(50) ,
    @CZEmbranchmentId SMALLINT,
    @CZEmbranchmentName VARCHAR(50),
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS  

    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillId INT
    DECLARE @BillType TINYINT
    DECLARE @BillCode varchar(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @Status TINYINT
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName varchar(50)
    DECLARE @BusinessName varchar(50)
    DECLARE @BillCodeName varchar(50)
    DECLARE @EmbranchmentName varchar(50)
    DECLARE @ProviderName  varchar(50)
 
/*定义BillDetailChargeCard 对应的局部变量*/
    DECLARE @ChangeMoney DECIMAL(18,4)
    DECLARE @SumMoney DECIMAL(18,4)


   /*定义会员卡对应的局部变量*/
    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)
    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
    DECLARE @CardChangeMoney NUMERIC(18,4)
    DECLARE @CustomerId INT
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @Balance DECIMAL(18,4)
    DECLARE @SumConsumed DECIMAL(18,4)
    DECLARE @CardTypeId INT
    DECLARE @CardLevelId TINYINT
    DECLARE @CardLevelName VARCHAR(50)
   

    DECLARE @RowCount int
    /*根据情况对局部变量赋初始值*/
    SELECT @ErrorMessage='OK!'
    SELECT @ErrorInfoId=1
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   

    /*检查从单是否完整*/
    SELECT * FROM BillDetailChargeCard
    WHERE CardCode=@CardCode
    AND IsCZ=1
    AND Status=2
   
   IF @@ROWCOUNT<=0
   BEGIN
      SELECT @ErrorMessage='没有找到要充值的从单'
      SELECT @ErrorInfoId=-1
      ROLLBACK
      RETURN -1
   END

   SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @Status=@Status,
           @Summary=Summary,
           @Remark=Remark,
           @CreatorName =CreatorName,
           @BusinessName =BusinessName,
           @BillCodeName =BillCodeName,
           @EmbranchmentName =EmbranchmentName,
           @ProviderName =ProviderName,
           @CustomerName =CustomerName
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=2

    IF @@ROWCOUNT=0
    BEGIN
      
        SELECT @ErrorMessage='没有找到要审核的主单'
        SELECT @ErrorInfoId=-2
        ROLLBACK
        RETURN -2
    END
 
    SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney,@CustomerId=CustomerId,@CustomerName=CustomerName,@CardTypeId=CardTypeId,@CardTypeId=CardLevelId from MemberCard
    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
    IF(@@ROWCOUNT<0)
         BEGIN
             SELECT @ErrorMessage='没有找到此卡'
             SELECT @ErrorInfoId=-3
             ROLLBACK
             RETURN -3
          END
   
    DECLARE Cur_BillDetailChargeCard CURSOR FOR /*从单游标*/
          SELECT SumMoney
          FROM BillDetailChargeCard
           WHERE CardCode=@CardCode
           AND IsCZ=1
           AND Status=2
            
        OPEN Cur_BillDetailChargeCard  /*打开游标*/
       
        FETCH NEXT FROM Cur_BillDetailChargeCard
        INTO @ChangeMoney
        while @@FETCH_STATUS = 0
        BEGIN
    
           SELECT @row_Balance=@row_old_Balance+@ChangeMoney
           IF(@BillType=16)
                BEGIN
                   UPDATE MemberCard
                   SET SumAllMoney=SumAllMoney+@ChangeMoney
               WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
               UPDATE MemberCard
                   SET  Balance=Balance+abs(@ChangeMoney)
               WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                  IF(@@ERROR<>0)
                      BEGIN
                         SELECT @ErrorMessage='会员卡更新失败'
                         SELECT @ErrorInfoId=-4
                         ROLLBACK
                         RETURN -4
                       END

                      INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard)
                                  VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,0,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,@ChangeMoney,@row_Balance,@CustomerId,@CustomerName,@BusinessId,@BusinessName,GETDATE(),@Remark,0,0,0)    
               
                  IF(@@ERROR<>0)
                      BEGIN
                          SELECT @ErrorMessage='会员卡日志插入失败'
                          SELECT @ErrorInfoId=-5
                          ROLLBACK
                          RETURN -5
                       END
                END
              
         
             
         FETCH NEXT FROM Cur_BillDetailChargeCard
         INTO @ChangeMoney
                
        END

        UPDATE BillDetailChargeCard SET IsCZ=2,CZEmbranchmentId=@CZEmbranchmentId,CZEmbranchmentName=@CZEmbranchmentName,ChargeDate=GETDATE()
        WHERE  CardCode=@CardCode AND IsCZ=1
       
        IF(@@ERROR<>0)
              BEGIN
                  SELECT @ErrorMessage='更新充值记录失败'
                  SELECT @ErrorInfoId=-6
                  ROLLBACK
                  RETURN -6
              END

        CLOSE Cur_BillDetailChargeCard
        DEALLOCATE Cur_BillDetailChargeCard    
        SELECT @ErrorMessage='数据同步成功!'
        Select @ErrorInfoId=1   
        Commit TRAN
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[ChangeValue]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ChangeValue]
AS
Declare @CommodityId int
Declare @T int
Declare @DataVersion bigint

select @CommodityId=0,@DataVersion=0
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
Declare Cur_ChangeValue Cursor for
select CommodityId from Commodity
open Cur_ChangeValue
fetch next from Cur_ChangeValue
into @T
while @@Fetch_status=0
begin
  Update Commodity
         set CommodityId=@CommodityId,DataVersion=@DataVersion
where CommodityId=@T
select @CommodityId=@CommodityId+1,@DataVersion=@DataVersion+1
fetch next from Cur_ChangeValue
into @T
end

Commit Tran
GO
/****** Object:  StoredProcedure [dbo].[ChangeDataVersion]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ChangeDataVersion]
AS
Declare @T int
Declare @DataVersion bigint

select @DataVersion=0
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
Declare Cur_ChangeValue Cursor for
select CommodityId from Commodity
open Cur_ChangeValue
fetch next from Cur_ChangeValue
into @T
while @@Fetch_status=0
begin
  Update Commodity
         set DataVersion=@DataVersion
where CommodityId=@T
select @DataVersion=@DataVersion+1
fetch next from Cur_ChangeValue
into @T
end

Commit Tran
GO
/****** Object:  StoredProcedure [dbo].[FoodBillBuyInStock_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[FoodBillBuyInStock_Audit]
(
    @EmbranchmentId smallint,
    @BillId INT,
    @BillType tinyint,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
/*定义FoodBill对应的局部变量*/
DECLARE @EmbranchmentName varchar(50)
DECLARE @BillCode  varchar(50)
DECLARE @CreateDate  smalldatetime
DECLARE @CreatorId  int
DECLARE @BusinessDate  smalldatetime
DECLARE @BusinessId  int
DECLARE @AuditDate  smalldatetime
DECLARE @AuditorId  int
DECLARE @ProviderId  int
DECLARE @Status  tinyint
DECLARE @SumMoney  decimal(18, 4)
DECLARE @Remark  varchar(100)
DECLARE @ProviderName  varchar(50)
DECLARE @BillCodeName  varchar(50)
DECLARE @BusinessName  varchar(50)
DECLARE @CreatorName  varchar(50)
DECLARE @AuditorName  varchar(50)
DECLARE @AccepttorId int
DECLARE @AccepttorName varchar(50)
DECLARE @ProviderTel varchar(50)
/*定义FoodBillDetailBuyInStock对应的局部变量*/
DECLARE @RowNum  tinyint
DECLARE @FoodId  int
DECLARE @BatchCode  varchar(50)
DECLARE @Price  decimal(18, 4)
DECLARE @PackingId  int
DECLARE @PackingName  varchar(50)
DECLARE @ProductName  varchar(100)
DECLARE @Spec  varchar(200)
DECLARE @ProducingArea  varchar(100)
DECLARE @SpellCode  varchar(100)
DECLARE @CustomCode  varchar(50)
DECLARE @TXM  varchar(60)
DECLARE @RetailPrice  money
DECLARE @Amount  decimal(18, 4)
DECLARE @SumMoneyDetail  decimal(18, 4)
DECLARE @ProductDate  smalldatetime
DECLARE @ValidateDate  smalldatetime
DECLARE @QualityStatus varchar(50)
DECLARE @HasBill bit
DECLARE @BuyTime smalldatetime

/*业务处理*/
SELECT
  @BillCode = BillCode,
  @CreateDate = CreateDate,
  @CreatorId =CreatorId ,
  @BusinessDate =BusinessDate,
  @BusinessId =BusinessId ,
  @AuditDate =AuditDate ,
  @AuditorId =AuditorId ,
  @ProviderId = ProviderId,
  @Status =Status,
  @SumMoney =SumMoney,
  @Remark =Remark,
  @ProviderName =ProviderName ,
  @BillCodeName =BillCodeName,
  @BusinessName =BusinessName ,
  @CreatorName =CreatorName,
  @AuditorName =AuditorName,
  @AccepttorId=AccepttorId,
  @AccepttorName=AccepttorName,
  @ProviderTel=ProviderTel
  FROM  FoodBill
  WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1

    IF @@ROWCOUNT=0
    BEGIN
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId=-1
        RETURN -1
    END

    /*检查从单是否完整*/
    SELECT *
        FROM FoodBillDetailBuyInStock
    where EmbranchmentId=@EmbranchmentId
     and  BillType=@BillType
     and  BillId=@BillId
   
   if @@ROWCOUNT<=0
   begin
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId=-2
      RETURN -1
   end

DECLARE Cur_FoodBillDetailBuyInStock CURSOR FOR /*从单游标*/
        SELECT RowNum,FoodId ,BatchCode,Price,PackingId ,PackingName,ProductName,Spec,ProducingArea ,SpellCode,
               CustomCode,TXM ,RetailPrice,Amount,SumMoney,ProductDate,ValidateDate,QualityStatus,HasBill,BuyTime
           FROM FoodBillDetailBuyInStock
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_FoodBillDetailBuyInStock  /*打开游标*/
       
        fetch next from Cur_FoodBillDetailBuyInStock
            into @RowNum,@FoodId ,@BatchCode,@Price,@PackingId ,@PackingName,@ProductName,@Spec,@ProducingArea ,@SpellCode,
               @CustomCode,@TXM ,@RetailPrice,@Amount,@SumMoneyDetail,@ProductDate,@ValidateDate,@QualityStatus,@HasBill,@BuyTime
                
while @@FETCH_STATUS = 0
begin
  Insert into FoodInoutStockTable(Guid,EmbranchmentId,EmbranchmentName,BillId,BillCode,RowNum,FoodId,PackingId,
              PackingName,BusinessId,BusinessDate,BusinessName,ProductName,Spec,Amout,BatchCode,ProductDate,
              ValidateDate,ProviderName,Remark,SumMoney,CreatorId,CreatorName,CreatorDate,AccepttorId,AccepttorName,
              QualityStatus,HasBill,BuyTime,ProviderTel)
         values(newid(),@EmbranchmentId,@EmbranchmentName,@BillId,@BillCode,@RowNum,@FoodId,@PackingId,
              @PackingName,@BusinessId,@BusinessDate,@BusinessName,@ProductName,@Spec,@Amount,@BatchCode,@ProductDate,
              @ValidateDate,@ProviderName,@Remark,@SumMoney,@CreatorId,@CreatorName,@CreateDate,@AccepttorId,@AccepttorName,
              @QualityStatus,@HasBill,@BuyTime,@ProviderTel)
  if @@error <>0
   begin
       SELECT @ErrorMessage='插入库存失败!'
       Select @ErrorInfoId=-3
       RETURN -1
   end

  Update FoodBill Set Status=2
  where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
   if @@error <>0
   begin
       SELECT @ErrorMessage='修改单据失败!'
       Select @ErrorInfoId=-3
       RETURN -1
   end
 
fetch next from Cur_FoodBillDetailBuyInStock
            into @RowNum,@FoodId ,@BatchCode,@Price,@PackingId ,@PackingName,@ProductName,@Spec,@ProducingArea ,@SpellCode,
               @CustomCode,@TXM ,@RetailPrice,@Amount,@SumMoneyDetail,@ProductDate,@ValidateDate,@QualityStatus,@HasBill,@BuyTime
end
SELECT @ErrorMessage='审核成功!'
Select @ErrorInfoId=0   
RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[ConversionData_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ConversionData_Audit]
(
    @CommodityId_Old_pra INT,
    @CommodityId_New_pra INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS

    DECLARE @CommodityId_Old              int
    DECLARE @GeneralName_Old    varchar(100)
    DECLARE @ProductName_Old            varchar(100)
    DECLARE @EnglishName_Old             varchar(200)
    DECLARE @Spec_Old                         varchar(200)
    DECLARE @ProducingArea_Old          varchar(100)
    DECLARE @DoseType_Old                 varchar(50)
    DECLARE @AuthorizeCode_Old           varchar(50)
    DECLARE @Unit_Old                            varchar(50)
    DECLARE @SpellCode_Old                  varchar(100)
    DECLARE @CustomCode_Old                  varchar (50)
    DECLARE @TXM_Old                           varchar (60)
    DECLARE @ZhongChengYao_Old        bit
    DECLARE @ZhongYaoCai_Old             bit
    DECLARE @ZhongYaoCaiContent_Old  varchar(100)
    DECLARE @ZhongYaoYinPian_Old      bit
    DECLARE @ZhongYaoYinPianContent_Old  varchar(100)
    DECLARE @HXYZJ_Old                     bit
    DECLARE @HXYLY_Old                        bit
    DECLARE @KSS_Old                             bit
    DECLARE @SHYP_Old                          bit
    DECLARE @SWZP_Old                     bit
    DECLARE @SWZPCYM_Old                 bit
    DECLARE @SWZPCXYYP_Old              bit
    DECLARE @SWZPXZDYP_Old              bit
    DECLARE @MZYP_Old                           bit
    DECLARE @MZYPContent_Old              varchar (100)
    DECLARE @JSYP_Old                            bit
    DECLARE @JSYPContent_Old               varchar(100)
    DECLARE @YLYDXYP_Old                    bit
    DECLARE @YLYDXYPContent_Old        varchar(100)
    DECLARE @FSXYP_Old                          bit
    DECLARE @YM_Old                                bit
    DECLARE @Import_Old                           bit
    DECLARE @RetailPrice_Old                    decimal (18,4)
    DECLARE @PackingId_Old                    int
    DECLARE @PackingId_Max                    int

    DECLARE @CommodityId_New             int
    DECLARE @GeneralName_New           varchar(100)
    DECLARE @ProductName_New           varchar(100)
    DECLARE @EnglishName_New            varchar(200)
    DECLARE @Spec_New                         varchar(200)
    DECLARE @ProducingArea_New          varchar(100)
    DECLARE @DoseType_New                 varchar(50)
    DECLARE @AuthorizeCode_New           varchar(50)
    DECLARE @Unit_New                            varchar(50)
    DECLARE @SpellCode_New                  varchar(100)
    DECLARE @CustomCode_New              varchar(50)
    DECLARE @TXM_New                          varchar(60)
    DECLARE @ZhongChengYao_New        bit
    DECLARE @ZhongYaoCai_New             bit
    DECLARE @ZhongYaoCaiContent_New varchar(100)
    DECLARE @ZhongYaoYinPian_New      bit
    DECLARE @ZhongYaoYinPianContent_New  varchar(100)
    DECLARE @HXYZJ_New                    bit
    DECLARE @HXYLY_New                       bit
    DECLARE @KSS_New                            bit
    DECLARE @SHYP_New                         bit
    DECLARE @SWZP_New                    bit
    DECLARE @SWZPCYM_New                 bit
    DECLARE @SWZPCXYYP_New             bit
    DECLARE @SWZPXZDYP_New            bit
    DECLARE @MZYP_New                        bit
    DECLARE @MZYPContent_New             varchar (100)
    DECLARE @JSYP_New                          bit
    DECLARE @JSYPContent_New             varchar(100)
    DECLARE @YLYDXYP_New                   bit
    DECLARE @YLYDXYPContent_New      varchar(100)
    DECLARE @FSXYP_New                         bit
    DECLARE @YM_New                               bit
    DECLARE @Import_New                           bit
    DECLARE @DataVersion_New                bigint
    DECLARE @SFDAId_New                       int
    DECLARE @TableView_New         varchar(50)
    DECLARE @UniCodes_New                    varchar(100)
    DECLARE @StandCode_New                  varchar(100)
    DECLARE @CommodityType_New           varchar(50)
    DECLARE @GJ_New                                varchar(50)

 

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN

   Select  CommodityId  from CommodityStock (UPDLOCK) where CommodityId=@CommodityId_Old_pra
    if @@RowCount<=0
    Begin
            RollBack
            Select @ErrorMessage='没有找到要转换的库存数据'
            Select @ErrorInfoId=-1
            Return
    end

    Select  @CommodityId_New=CommodityId, @GeneralName_New=GeneralName, @ProductName_New=ProductName, @EnglishName_New=EnglishName,
                @Spec_New=Spec, @ProducingArea_New=ProducingArea,@DoseType_New=DoseType, @AuthorizeCode_New=AuthorizeCode, @Unit_New=Unit,
                @SpellCode_New=SpellCode, @CustomCode_New=CustomCode,@TXM_New=TXM,@ZhongChengYao_New=ZhongChengYao,
                @ZhongYaoCai_New=ZhongYaoCai,  @ZhongYaoCaiContent_New =ZhongYaoCaiContent,@ZhongYaoYinPian_New=ZhongYaoYinPian,
                @ZhongYaoYinPianContent_New=ZhongYaoYinPianContent, @HXYZJ_New=HXYZJ,  @HXYLY_New =HXYLY,  @KSS_New =KSS,
                @SHYP_New =SHYP,   @SWZP_New     =SWZP,  @SWZPCYM_New=SWZPCYM,  @SWZPCXYYP_New=SWZPCXYYP,
                @SWZPXZDYP_New=SWZPXZDYP, @MZYP_New=MZYP ,  @MZYPContent_New=MZYPContent, @JSYP_New=JSYP,
                @JSYPContent_New=JSYPContent,  @YLYDXYP_New=YLYDXYP,  @YLYDXYPContent_New=YLYDXYPContent,
                @FSXYP_New=FSXYP, @YM_New=YM,@Import_New=Import,@DataVersion_New=DataVersion,@SFDAId_New=SFDAId,
                @TableView_New=TableView,@UniCodes_New=UniCodes,@StandCode_New=StandCode,@CommodityType_New=CommodityType,
                @GJ_New=GJ
     from CommodityStandard (UPDLOCK) where CommodityId=@CommodityId_New_pra
    if @@RowCount<=0
    Begin
            RollBack
            Select @ErrorMessage='没有找到要转换的新数据'
            Select @ErrorInfoId=-2
            Return
    end

   --转换基本信息
     Select @PackingId_Max=isnull(max(PackingId),-1) +1  from Commodity where CommodityId=@CommodityId_New_pra


     Select  @CommodityId_Old=CommodityId, @GeneralName_Old=GeneralName, @ProductName_Old=ProductName, @EnglishName_Old=EnglishName,
                @Spec_Old=Spec, @ProducingArea_Old=ProducingArea,@DoseType_Old=DoseType, @AuthorizeCode_Old=AuthorizeCode, @Unit_Old=Unit,
                @SpellCode_Old=SpellCode, @CustomCode_Old=CustomCode,@TXM_Old=TXM,@RetailPrice_Old=RetailPrice
     from Commodity where CommodityId=@CommodityId_Old_pra
     if @@rowcount <=0
     begin
          Select   @Unit_Old=Unit, @RetailPrice_Old=RetailPrice,@CustomCode_Old=CustomCode,@TXM_Old=TXM
          from CommodityStock where CommodityId=@CommodityId_Old_pra
     end

     Delete Commodity where CommodityId=@CommodityId_Old_pra

     Insert into Commodity (CommodityId,CatalogId,GeneralName,ProductName,EnglishName,Spec,ProducingArea,DoseType,AuthorizeCode,Unit,Gmp,Otc,Import,
                                                TradePrice,RetailPrice,SpellCode,CustomCode,DataVersion,Disabled,ZhongChengYao,    ZhongYaoCai,ZhongYaoCaiContent,
                                                ZhongYaoYinPian,ZhongYaoYinPianContent,HXYZJ,HXYLY,KSS,SHYP,SWZP,SWZPCYM,SWZPCXYYP,SWZPXZDYP,MZYP,
                                                MZYPContent,JSYP,JSYPContent,YLYDXYP,YLYDXYPContent,FSXYP,YM,TXM,BS,Reports,Deleted,SFDAId,TableView,
                                                UniCodes,StandCode,CommodityType, GJ,PackingId)
                           values(@CommodityId_New,1,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,@ProducingArea_New,
                                                @DoseType_New, @AuthorizeCode_New,@Unit_Old,0,0,@Import_New,0,@RetailPrice_Old,@SpellCode_New,@CustomCode_Old,
                                                @DataVersion_New,0 , @ZhongChengYao_New,    @ZhongYaoCai_New,@ZhongYaoCaiContent_New,
                                                @ZhongYaoYinPian_New , @ZhongYaoYinPianContent_New  ,@HXYZJ_New , @HXYLY_New , @KSS_New , @SHYP_New,
                                                @SWZP_New , @SWZPCYM_New , @SWZPCXYYP_New ,@SWZPXZDYP_New , @MZYP_New, @MZYPContent_New,
                                                @JSYP_New , @JSYPContent_New , @YLYDXYP_New , @YLYDXYPContent_New ,@FSXYP_New ,@YM_New,@TXM_Old,1,0,0,
                                                @SFDAId_New,@TableView_New,@UniCodes_New,@StandCode_New,@CommodityType_New,@GJ_New,@PackingId_Max)
       if @@error <>0
       begin
              SELECT @ErrorMessage='插入Commodity失败!'
              Select @ErrorInfoId=-4
              ROLLBACK
              RETURN
       end 
 
    --转换各从单
    Update BillDetailAdjustCostPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailAdjustCostPrice失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end 

    Update BillDetailAdjustRetailPrice Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailAdjustRetailPrice失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end 

    Update BillDetailBatchCodeAdjust Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailBatchCodeAdjust失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end 

    Update BillDetailBuyInStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailBuyInStock失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end 

    Update BillDetailBuyInStockPlan Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailBuyInStockPlan失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end

    Update BillDetailBuyReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailBuyReturn失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end

    Update BillDetailReportLoss Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailReportLoss失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end

    Update BillDetailReportSpill Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailReportSpill失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end


    Update BillDetailRetail Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailRetail失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end

    Update BillDetailRetailReturn Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新BillDetailRetailReturn失败!'
        Select @ErrorInfoId=-7
        ROLLBACK
        RETURN
    end

    --转换库存
    Update CommodityStock Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,
                                                              SpellCode=@SpellCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新CommodityStock失败!'
        Select @ErrorInfoId=-8
        ROLLBACK
        RETURN
    end

    --转换InoutStock
    Update InoutStockTable Set CommodityId=@CommodityId_New,CommodityName=@GeneralName_New,Spec=@Spec_New,
                                                              DoseTypeName=@DoseType_New,ProducingArea=@ProducingArea_New,AuthorizeCode=@AuthorizeCode_New,PackingId=@PackingId_Max
    where  CommodityId=@CommodityId_Old_pra
    if @@error <>0
    begin
        SELECT @ErrorMessage='更新InoutStockTable失败!'
        Select @ErrorInfoId=-10
        ROLLBACK
        RETURN
    end


    --插入ConversionDataTable
   insert into ConversionDataTable(CommodityId_Old,GeneralName_Old,ProductName_Old,EnglishName_Old,Spec_Old,
                   ProducingArea_Old,DoseType_Old,AuthorizeCode_Old,Unit_Old,SpellCode_Old,CustomCode_Old,
                   TXM_Old,CommodityId_New,GeneralName_New,ProductName_New,EnglishName_New,Spec_New,
                   ProducingArea_New,DoseType_New,    AuthorizeCode_New,Unit_New,SpellCode_New,CustomCode_New,
                   TXM_New,PackingId_Old,PackingId_New)
             values(@CommodityId_Old,@GeneralName_Old,@ProductName_Old,@EnglishName_Old,@Spec_Old,
                   @ProducingArea_Old,@DoseType_Old,@AuthorizeCode_Old,@Unit_Old,@SpellCode_Old,@CustomCode_Old,
                   @TXM_Old,@CommodityId_New,@GeneralName_New,@ProductName_New,@EnglishName_New,@Spec_New,
                   @ProducingArea_New,@DoseType_New,@AuthorizeCode_New,@Unit_New,@SpellCode_New,@CustomCode_New,
                   @TXM_New,0,@PackingId_Max)
    if @@error <>0
    begin
        SELECT @ErrorMessage='插入ConversionDataTable失败!'
        Select @ErrorInfoId=-11
        ROLLBACK
        RETURN
    end

    SELECT @ErrorMessage='数据转换成功!'
    Select @ErrorInfoId=0
    Commit Tran
    RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateCommodity_TXM]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateCommodity_TXM]  AS

DECLARE @TXM varchar(100)
DECLARE @CommodityId int
DECLARE @PackingId int

BEGIN TRAN
DECLARE C_TXM cursor for Select CommodityId,PackingId from Commodity
open C_TXM

fetch next from C_TXM
into @CommodityId,@PackingId

while @@FETCH_STATUS = 0
begin

  select @TXM = TXM from CommodityStock where CommodityId = @CommodityId and PackingId = @PackingId

  Update Commodity set TXM=@TXM where CommodityId = @CommodityId and PackingId = @PackingId
 
  fetch next from C_TXM
  into @CommodityId,@PackingId
end
CLOSE C_TXM
DEALLOCATE C_TXM
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateCardTemp]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCardTemp]
(
        @Code VARCHAR(50),
    @BillType TINYINT,
           @EmbranchmentId INT,
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT

)
AS
    DECLARE @UPDATECARD_ERROE INT
    DECLARE @INSERTLOG_ERROR INT
    DECLARE @guid uniqueidentifier
    DECLARE @BillCodeName VARCHAR(50)   

    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)


    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)

    IF(@BillType=5)
         BEGIN
            SELECT @BillCodeName='会员卡消费'
         END
    IF(@BillType=26)
        BEGIN
           SELECT @BillCodeName='会员卡退货'
        END
    IF(@BillType=31)
       BEGIN
          SELECT @BillCodeName='会员卡返利'
       END
    IF(@BillType=32)
       BEGIN
          SELECT @BillCodeName='会员卡取消返利'
       END
    SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney from MemberCard
    WHERE Code = @Code and ISNULL( Deleted,0)<>1

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

    IF (@BillType=5)
         BEGIN
           --余额
             UPDATE MemberCard
             SET  Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
         WHERE Code = @Code and ISNULL( Deleted,0)<>1
               
             --计算总消费额
             UPDATE MemberCard
             SET    SumConsumed = ISNULL(SumConsumed,0)+abs( @ChangeMoney)
         WHERE Code = @Code and ISNULL( Deleted,0)<>1
        
         END
   IF(@BillType=31)
         BEGIN
            --返利
        UPDATE MemberCard
            SET  Balance=ISNULL(Balance,0)+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
             --累计返利总额
        UPDATE MemberCard
            SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
         END 
   IF(@BillType=32)
        BEGIN
           --取消返利
           UPDATE MemberCard
           SET  Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
           --累计取消返利总额
       UPDATE MemberCard
           SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@ChangeMoney)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
                    
        END

   IF (@BillType=26)
        BEGIN
           --余额
           UPDATE MemberCard
           SET  Balance=ISNULL(Balance,0)+abs(@ChangeMoney)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
         --计算总退货额
           UPDATE MemberCard
           SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@ChangeMoney)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1              
        END

    SELECT @row_Balance=Balance,@row_SumConsumed=SumConsumed,@row_SumAllMoney=SumAllMoney from MemberCard
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
    SELECT @UPDATECARD_ERROE = @@ERROR


    SELECT  @guid=NEWID()
               
         IF ( @BillType=5 )
         BEGIN
             INSERT INTO MemberCardChangeLogTemp(Guid, EmbranchmentId, CardCode, BillType, BillCodeName,PreMoney,            ChangeMoney,            Balance,BusinessDate)
                                  VALUES(@guid,@EmbranchmentId,@Code,@BillType,@BillCodeName,@row_old_Balance,   -abs(@ChangeMoney),            @row_old_Balance-abs(@ChangeMoney),@BusinessDate)

         END
         IF ( @BillType=26 )
          BEGIN
             INSERT INTO MemberCardChangeLogTemp(Guid, EmbranchmentId, CardCode, BillType, BillCodeName,PreMoney,            ChangeMoney,            Balance,BusinessDate)
                                  VALUES(@guid,@EmbranchmentId,@Code,@BillType,@BillCodeName,@row_old_Balance,   abs(@ChangeMoney),            @row_old_Balance-abs(@ChangeMoney),@BusinessDate)

         END
         IF(@BillType=31)
             BEGIN
             INSERT INTO MemberCardChangeLogTemp(Guid, EmbranchmentId, CardCode, BillType, BillCodeName,PreMoney,            ChangeMoney,            Balance,BusinessDate)
                                  VALUES(@guid,@EmbranchmentId,@Code,@BillType,@BillCodeName,@row_old_Balance,   abs(@ChangeMoney),            @row_old_Balance-abs(@ChangeMoney),@BusinessDate)

             END
        IF ( @BillType=32 )
             BEGIN
             INSERT INTO MemberCardChangeLogTemp(Guid, EmbranchmentId, CardCode, BillType, BillCodeName,PreMoney,            ChangeMoney,            Balance,BusinessDate)
                                  VALUES(@guid,@EmbranchmentId,@Code,@BillType,@BillCodeName,@row_old_Balance,   -abs(@ChangeMoney),            @row_old_Balance-abs(@ChangeMoney),@BusinessDate)

             END
                 

    SELECT @INSERTLOG_ERROR = @@ERROR
    -- Test the error values.
    IF @UPDATECARD_ERROE = 0 AND @INSERTLOG_ERROR = 0
    BEGIN
           -- Success. Commit the transaction.
        SELECT @ErrorMessage = '会员卡消费成功' --cast(@guid as varchar(60))
        SELECT @ErrorInfoId=1
           COMMIT TRAN
    END
    ELSE
    BEGIN
           -- An error occurred. Indicate which operation(s) failed and roll back the transaction.
           IF @UPDATECARD_ERROE <> 0
             SELECT @ErrorMessage = '会员卡更新失败'
        SELECT @ErrorInfoId=-2

           IF @INSERTLOG_ERROR <> 0
              SELECT @ErrorMessage = '写日志失败'
        SELECT @ErrorInfoId=-3

           ROLLBACK TRAN
    END
GO
/****** Object:  StoredProcedure [dbo].[UpdateCardByMoneyTransferred_PT]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCardByMoneyTransferred_PT]
(
    @BillType TINYINT,
    --@CardId INT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @SumConsumed DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @Status TINYINT,
    @Password VARCHAR(20),
    @Foregift DECIMAL(18,4),
    @Discount DECIMAL(18,4),
    @BeginTime DATETIME,
    @CancelTime DATETIME,
    @SuspendTime DATETIME,
    @LimitCount INT,
    @UsedCount INT,
    @PreMoney DECIMAL(18,4),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @Deleted BIT,
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @SpellCode VARCHAR(50),
    @DataVersion BIGINT,
    @SumAllMoney DECIMAL(18,4),
    @orderno INT OUTPUT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @ReturnMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
    @PayCardMoneyBefore    DECIMAL(18,4),
    @PayCardMoneyAfter    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
             @Code_CZ VARCHAR(50)
   
)
AS
    DECLARE @old_Balance NUMERIC(18,4)


    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

              select *
              from MemberCard
              where Code=@Code_CZ

              if @@ROWCOUNT<=0
              begin
                   SELECT @ErrorMessage='没有找到储值卡!'
                   Select @ErrorInfoId=-1
                   ROLLBACK
                   RETURN -1
              end


              Update MemberCard Set IsTransferred=0
              where Code=@Code_CZ


              select @old_Balance=Balance
              from MemberCard
              where Code = @Code

              if @@ROWCOUNT<=0
              begin
                   SELECT @ErrorMessage='没有找到此卡!'
                   Select @ErrorInfoId=-1
                   ROLLBACK
                   RETURN -1
              end
   
        UPDATE MemberCard
        SET  Balance=@Balance+@ChangeMoney,SumAllMoney=@SumAllMoney
        WHERE Code = @Code

              if @@error <>0
              begin
                     SELECT @ErrorMessage='更新此卡出错!'
                     Select @ErrorInfoId=-2                 
                     ROLLBACK
                     RETURN -1
               end

            Update MemberCardChangeLog Set IsTransferred=0
            where  CardCode=@Code_CZ and BillId=@BillId and CardTypeId=91 and BillType=27 and IsCZ=1

             INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard ,IsTransferred,IsHC,IsCZ)
                                  VALUES(newid(),@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@old_Balance,@ChangeMoney,@Balance+@ChangeMoney,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,@PayMoney,@DataVersion,0,0,0,0)


              if @@error <>0
              begin
                     SELECT @ErrorMessage='插入MemberCardChangeLog出错!'
                     Select @ErrorInfoId=-3
                     ROLLBACK
                     RETURN -1
               end

    SELECT @ErrorMessage='操作成功!'
    Select @ErrorInfoId=1
    Commit Tran
    RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateCardByMoneyTransferred_HC]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCardByMoneyTransferred_HC]
(
      @BillId int,
      @EmbranchmentId int,
      @EmbranchmentName varchar(50),
      @CardCode  varchar(50),
      @CardTypeId int,
      @BillType tinyint,
      @BillCode  varchar(50),
      @BillCodeName varchar(50),
      @PreMoney decimal(18,4),
      @ChangeMoney decimal (18,4),
      @Balance decimal(18,4),
      @CustomerId int,
      @CustomerName varchar(50),
      @BusinessId int,
      @BusinessName varchar(50),
      @BusinessDate smalldatetime,
      @Remark varchar(255),
      @IsTransferred bit,
      @IsHC bit,
      @IsCZ bit,
      @PreBillId int,
      @PreEmbranchmentId int,
      @ErrorInfoId INT OUTPUT,
      @ErrorMessage VARCHAR(100) OUTPUT
)
AS

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN
              Update MemberCard Set IsTransferred=0,Balance=@Balance
              where Code = @CardCode

              if @@error <>0
              begin
                   SELECT @ErrorMessage='更新MemberCard出错!'
                   Select @ErrorInfoId=-1
                   ROLLBACK
                   RETURN -1
              end           

            Update MemberCardChangeLog Set IsHC=1,PreBillId=@BillId,PreEmbranchmentId=@EmbranchmentId
            where BillId=@PreBillId and EmbranchmentId =@PreEmbranchmentId and CardCode =@CardCode AND CardTypeId = 91 AND BillType = 27 AND IsTransferred = 1 AND IsHC = 0 AND  IsCZ = 1


             INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId,  BillType, BillCode, BillCodeName,                       PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard,IsTransferred,IsHC,IsCZ,PreBillId,PreEmbranchmentId)
                                                            VALUES(newid(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode ,@CardTypeId,@BillType,@BillCode,@BillCodeName,@PreMoney,@ChangeMoney,@Balance,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,0,      0,                  0,                    0,                  0,          1,@PreBillId, @PreEmbranchmentId)


              if @@error <>0
              begin
                     SELECT @ErrorMessage='插入MemberCardChangeLog出错!'
                     Select @ErrorInfoId=-3
                     ROLLBACK
                     RETURN -1
               end

    SELECT @ErrorMessage='操作成功!'
    Select @ErrorInfoId=1
    Commit Tran
    RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateCardByMoneyTransferred_CZ]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCardByMoneyTransferred_CZ]
(
    @BillType TINYINT,
    --@CardId INT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @SumConsumed DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @Status TINYINT,
    @Password VARCHAR(20),
    @Foregift DECIMAL(18,4),
    @Discount DECIMAL(18,4),
    @BeginTime DATETIME,
    @CancelTime DATETIME,
    @SuspendTime DATETIME,
    @LimitCount INT,
    @UsedCount INT,
    @PreMoney DECIMAL(18,4),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @Deleted BIT,
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @SpellCode VARCHAR(50),
    @DataVersion BIGINT,
    @SumAllMoney DECIMAL(18,4),
    @orderno INT OUTPUT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @ReturnMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
    @PayCardMoneyBefore    DECIMAL(18,4),
    @PayCardMoneyAfter    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
             @Code_CZ VARCHAR(50)
   
)
AS
    DECLARE @old_Balance NUMERIC(18,4)


    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN
              select @old_Balance=Balance
              from MemberCard
              where Code = @Code

              if @@ROWCOUNT<=0
              begin
                   SELECT @ErrorMessage='没有找到此卡!'
                   Select @ErrorInfoId=-1
                   ROLLBACK
                   RETURN -1
              end
   
        UPDATE MemberCard
        SET  Balance=@Balance-@ChangeMoney,IsTransferred=1
        WHERE Code = @Code

              if @@error <>0
              begin
                     SELECT @ErrorMessage='更新此卡出错!'
                     Select @ErrorInfoId=-2                 
                     ROLLBACK
                     RETURN -1
               end

             INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard,IsTransferred,IsHC,IsCZ)
                                  VALUES(newid(),@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@old_Balance,@ChangeMoney,@Balance-@ChangeMoney,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,@PayMoney,@DataVersion,0,1,0,1)


              if @@error <>0
              begin
                     SELECT @ErrorMessage='插入MemberCardChangeLog出错!'
                     Select @ErrorInfoId=-3
                     ROLLBACK
                     RETURN -1
               end

    SELECT @ErrorMessage='操作成功!'
    Select @ErrorInfoId=1
    Commit Tran
    RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateCard]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCard]
(
    @BillType TINYINT,
        @CardId INT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @SumConsumed DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @Status TINYINT,
    @Password VARCHAR(20),
    @Foregift DECIMAL(18,4),
    @Discount DECIMAL(18,4),
    @BeginTime DATETIME,
    @CancelTime DATETIME,
    @SuspendTime DATETIME,
    @LimitCount INT,
    @UsedCount INT,
    @PreMoney DECIMAL(18,4),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @Deleted BIT,
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @SpellCode VARCHAR(50),
    @DataVersion BIGINT,
    @SumAllMoney DECIMAL(18,4),
    @orderno INT OUTPUT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @ReturnMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
    @PayCardMoneyBefore    DECIMAL(18,4),
    @PayCardMoneyAfter    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
        @Code_CZ VARCHAR(50),
        @ReturnCard DECIMAL(18,4),
        @CancelReturnPayCard DECIMAL(18,4),
        @MissCash DECIMAL(18,4),
        @YBConsumed DECIMAL(18,4),
        @ProviderId  INT
   
)
AS

    DECLARE @UPDATECARD_ERROE INT
    DECLARE @INSERTLOG_ERROR INT
    DECLARE @guid UNIQUEIDENTIFIER

    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId INT
    DECLARE @Name VARCHAR(20)
    DECLARE @PreviousVersion BIGINT
    DECLARE @CurVersion BIGINT
    DECLARE @OriginDateTime DATETIME
    DECLARE @SynchronizeDateTime DATETIME
 
    SELECT @row_old_Balance=0
    SELECT @Remark='卡中改变金额与终端库中一致'

    IF(@BillType=17 OR @BillType=22)
    BEGIN
        SELECT @ChangeMoney=-abs(@ChangeMoney)
    END
    ELSE
    BEGIN
        SELECT @ChangeMoney=abs(@ChangeMoney)
    END
 
    IF( @BillType!=29)
    BEGIN
        SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney from MemberCard
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
        IF @@ROWCOUNT=0
        BEGIN
            SELECT @ErrorInfoId=-1
            SELECT @ErrorMessage='此卡尚未发出'
            RETURN -1
        END
       IF @@ROWCOUNT>0
       BEGIN
           SELECT @ErrorInfoId=-2
           SELECT @ErrorMessage='此卡多次发出'
           RETURN -2
       END
    END
     
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

    IF (@BillType=14)
    BEGIN
        UPDATE MemberCard
        SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score, SumConsumed = @Sumconsumed,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF(@BillType=15)
    BEGIN
        UPDATE MemberCard SET Password = @Password
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF(@BillType=18)
    BEGIN
        UPDATE MemberCard SET Status=@Status
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    
    IF(@BillType=19)
    BEGIN
        UPDATE MemberCard SET Status=@Status
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END      
    IF (@BillType=20)
    BEGIN
        UPDATE MemberCard
        SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score, SumConsumed = @Sumconsumed,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
        UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF (@BillType=16)
    BEGIN
        UPDATE MemberCard
        SET  SumAllMoney=SumAllMoney+abs(@ChangeMoney)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
   IF(@BillType=33)
       BEGIN
           UPDATE MemberCard
           SET Balance=0,Foregift=0,Deleted=1
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END

     IF(@BillType=17)
       BEGIN
           UPDATE MemberCard
           SET DrawCard=ISNULL(DrawCard,0)+abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
           UPDATE MemberCard
           SET Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END
     IF(@BillType=22)
     BEGIN
     UPDATE MemberCard
         SET deleted=1
         WHERE Code = @Code and ISNULL( Deleted,0)<>1
         UPDATE MembercardChangeLog SET Deleted=1
         WHERE CardCode=@Code and ISNULL( Deleted,0)<>1
         UPDATE  InoutStockTableCard SET Deleted=1
         WHERE CardCode=@Code and ISNULL(Deleted,0)<>1
     END

    IF (@BillType=5)
    BEGIN
   
       --计算总消费额
        UPDATE MemberCard
        SET SumConsumed = ISNULL(SumConsumed,0)+abs( @PayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
     --余额
        UPDATE MemberCard
        SET  Balance=ISNULL(Balance,0)-abs(@PayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
        --累计返利总额
       UPDATE MemberCard
       SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@ReturnPayCard)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
       --返利
       UPDATE MemberCard
       SET  Balance=ISNULL(Balance,0)+abs(@ReturnPayCard)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
       --累计透支消费时,补的现金
       UPDATE MemberCard
       SET  MissCash=ISNULL(MissCash,0)+abs(@PayMoney-@ReturnMoney)
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
       --累计医保消费
       UPDATE MemberCard
       SET  YBConsumed=ISNULL(YBConsumed,0)+ ( @PayKYB+@PaySYB )
       WHERE Code = @Code and ISNULL( Deleted,0)<>1

    END

   IF (@BillType=26)
    BEGIN
       --计算总退货额
        UPDATE MemberCard
        SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@PayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    --余额
        UPDATE MemberCard
        SET  Balance=ISNULL(Balance,0)+abs(@PayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
      --累计取消返利总额
    UPDATE MemberCard
        SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@ReturnPayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
    --取消返利
        UPDATE MemberCard
        SET  Balance=ISNULL(Balance,0)-abs(@ReturnPayCard)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    
    END

    SELECT @UPDATECARD_ERROE=@@ERROR
    IF @UPDATECARD_ERROE<>0
         BEGIN
             SELECT @ErrorInfoId=-3
             SELECT @ErrorMessage=-3
             ROLLBACK
             RETURN -3
         END
    SELECT @guid=NEWID()
    SELECT @CurVersion=CurVersion,
           @SynchronizeDateTime = SynchronizeDateTime
           FROM DataVersion(UPDLOCK)
           WHERE EmbranchmentId=@EmbranchmentId
           AND DataVersionId=18
           IF @@ROWCOUNT = 0
           BEGIN
              SELECT @ErrorMessage='取版本出错!'
              SELECT @ErrorInfoId =-15
              ROLLBACK
              RETURN -15                
           END
   
    IF(@BillType!=33 AND @BillType!=5 AND @BillType!=26)
    BEGIN
        SELECT @CurVersion=@CurVersion+1
        INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,PayCard,ReturnPayCard,PaySYB,PayKYB,PayYB,PayTypeStr,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
        VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,@ChangeMoney,@row_old_Balance+@ChangeMoney,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,0,0,0,0,0,0,'',@ProviderId,@CurVersion,1,@ChangeMoney,0,0)
    END
    ELSE
    BEGIN
    IF(@BillType=33)
         BEGIN 
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney, ChangeMoney, Balance,  CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,  PayCard ,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出押金',@Balance,   -abs(@Foregift),@Balance, @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,  0,    0,0,@ProviderId, @CurVersion,1,-abs(@Foregift),0,0)
                     
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney, Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,  ReturnMoney,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出余额',@Balance,   -abs(@Balance),  0,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, 0,    0,    0,0,@ProviderId,@CurVersion,1, -abs(@Balance),0,0)
           
         END
               
   IF ( @BillType=5 )
         BEGIN
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney,  Balance,CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayKYB,PaySYB    ,PayYB,    PayTypeStr,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   -abs(@PayCard),    @row_old_Balance-abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,  abs(@ReturnPayCard),    @PayCard,@PayKYB,@PaySYB,@PayKYB+@PaySYB,@PayTypeStr,@PayMoney-@ReturnMoney,@ProviderId,@CurVersion,1,-abs(@PayCard),0,0)
            
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,  ChangeMoney,Balance,CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,     ReturnPayCard, PayCard ,PayKYB,PaySYB,PayYB, PayTypeStr,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,31,@BillCode,   '返利',   @row_old_Balance-abs(@PayCard),  abs(@ReturnPayCard),@row_old_Balance-abs(@PayCard)+abs(@ReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,  0,    0,0,0,    0,@PayTypeStr,0,@ProviderId,@CurVersion,1,abs(@ReturnPayCard),0,0)
           
         END
    IF( @BillType=26 )
         BEGIN
              --记录销退
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney,  Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayKYB,PaySYB    ,PayYB,  PayTypeStr,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   +abs(@PayCard), @row_old_Balance+abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, abs(@ReturnPayCard),    -abs(@PayCard),    0,0,0,@PayTypeStr,0,@ProviderId,@CurVersion,1,+abs(@PayCard),0,0)

             --取消返利
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney, ChangeMoney, Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,  ReturnPayCard, PayCard,     PayKYB,PaySYB    ,PayYB,  PayTypeStr,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,32,@BillCode,   '取消返利', @row_old_Balance+abs(@PayCard),    -abs(@ReturnPayCard), @row_old_Balance+abs(@PayCard)-abs(@ReturnPayCard),  @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,0,0,0,0,0,@PayTypeStr,0,@ProviderId,@CurVersion,1,-abs(@ReturnPayCard),0,0)
           
         END
   END

   SELECT @INSERTLOG_ERROR = @@ERROR

   IF @INSERTLOG_ERROR <> 0
   BEGIN
       SELECT @ErrorMessage = '写日志失败'
       SELECT @ErrorInfoId=-14
       ROLLBACK TRAN
       RETURN -14
   END
   UPDATE DataVersion
   SET  PreviousVersion=@CurVersion,CurVersion=@CurVersion,
        OriginDateTime=@SynchronizeDateTime, SynchronizeDateTime=getDate()
        WHERE EmbranchmentId=@EmbranchmentId
        AND DataVersionId=18
        IF @@ERROR <>0
            BEGIN
               SELECT @ErrorMessage='更新版本失败!'
               SELECT @ErrorInfoId=-16
               ROLLBACK
               RETURN -16
           END

       -- Success. Commit the transaction.
   SELECT @ErrorMessage = '会员卡更新成功'
   SELECT @ErrorInfoId=1
   COMMIT TRAN
   RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateBillDetailRetail]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateBillDetailRetail]
AS
    DECLARE @EmbranchmentId smallint
    DECLARE @BillType tinyint
    DECLARE @BillId int
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)


BEGIN TRAN
SET NOCOUNT ON

DECLARE Cur_BillDetailBuyInStock cursor for
SELECT EmbranchmentId,BillType,BillId,RowNum,CommodityId
FROM  BillDetailRetail

open Cur_BillDetailBuyInStock
FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId

while @@FETCH_STATUS=0
begin
    select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode
    from Commodity
    where CommodityId=@CommodityId
    if @@ROWCOUNT=0
    begin
        select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode
        from CommodityStandard
        where CommodityId=@CommodityId
    end

    Update BillDetailRetail set  CommodityName=@CommodityName,Spec=@Spec,DoseTypeName=@DoseTypeName,ProducingArea=@ProducingArea,Unit=@Unit , AuthorizeCode=@AuthorizeCode
    where  EmbranchmentId=@EmbranchmentId  and BillType=@BillType  and BillId=@BillId and RowNum=@RowNum

     if @@ERROR<>0
      begin
          ROLLBACK
          RETURN
      end
    FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId
end


CLOSE Cur_BillDetailBuyInStock
DEALLOCATE Cur_BillDetailBuyInStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateBillDetailBuyReturn]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateBillDetailBuyReturn]
AS
    DECLARE @EmbranchmentId smallint
    DECLARE @BillType tinyint
    DECLARE @BillId int
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)


BEGIN TRAN
SET NOCOUNT ON

DECLARE Cur_BillDetailBuyInStock cursor for
SELECT EmbranchmentId,BillType,BillId,RowNum,CommodityId
FROM  BillDetailBuyReturn

open Cur_BillDetailBuyInStock
FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId

while @@FETCH_STATUS=0
begin
    select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode
    from Commodity
    where CommodityId=@CommodityId
    if @@ROWCOUNT=0
    begin
        select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode
        from CommodityStandard
        where CommodityId=@CommodityId
    end

    Update BillDetailBuyReturn set  CommodityName=@CommodityName,Spec=@Spec,DoseTypeName=@DoseTypeName,ProducingArea=@ProducingArea,Unit=@Unit , AuthorizeCode=@AuthorizeCode
    where  EmbranchmentId=@EmbranchmentId  and BillType=@BillType  and BillId=@BillId and RowNum=@RowNum

     if @@ERROR<>0
      begin
          ROLLBACK
          RETURN
      end
    FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId
end


CLOSE Cur_BillDetailBuyInStock
DEALLOCATE Cur_BillDetailBuyInStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateBillDetailBuyInStock]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateBillDetailBuyInStock]
AS
    DECLARE @EmbranchmentId smallint
    DECLARE @BillType tinyint
    DECLARE @BillId int
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @SpellCode varchar(50)

BEGIN TRAN
SET NOCOUNT ON

DECLARE Cur_BillDetailBuyInStock cursor for
SELECT EmbranchmentId,BillType,BillId,RowNum,CommodityId
FROM  BillDetailBuyInStock

open Cur_BillDetailBuyInStock
FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId

while @@FETCH_STATUS=0
begin
    select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode,@SpellCode=SpellCode
    from Commodity
    where CommodityId=@CommodityId
    if @@ROWCOUNT=0
    begin
        select @CommodityName=GeneralName,@Spec=Spec,@DoseTypeName=DoseType,@ProducingArea=ProducingArea,@Unit=Unit,@AuthorizeCode=AuthorizeCode,@SpellCode=SpellCode
        from CommodityStandard
        where CommodityId=@CommodityId
    end

    Update BillDetailBuyInStock set  CommodityName=@CommodityName,Spec=@Spec,DoseTypeName=@DoseTypeName,ProducingArea=@ProducingArea,Unit=@Unit , AuthorizeCode=@AuthorizeCode,SpellCode=@SpellCode
    where  EmbranchmentId=@EmbranchmentId  and BillType=@BillType  and BillId=@BillId and RowNum=@RowNum

     if @@ERROR<>0
      begin
          ROLLBACK
          RETURN
      end
    FETCH NEXT FROM Cur_BillDetailBuyInStock into @EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId
end


CLOSE Cur_BillDetailBuyInStock
DEALLOCATE Cur_BillDetailBuyInStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[updateBill1]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[updateBill1]  AS
declare @BillId bigint
declare @ProviderName Varchar(50)
declare @ProviderId int
declare @BillType int
declare @BillCodeName varchar(50)
declare @BusinessName varchar(50)
declare @BusinessId int

set transaction isolation level serializable
begin tran
declare Cur_UpdateBillForProvide cursor for
select ProviderId,BillId,BillType,BusinessId from bill
open Cur_UpdateBillForProvide
fetch next from Cur_UpdateBillForProvide
into @ProviderId,@BillId,@BillType,@BusinessId
while @@Fetch_status=0
begin

select @ProviderName=Name from provider
where ProviderId=@ProviderId
select @BillCodeName=Name from BillCode
where  id =@BillType
select @BusinessName=Name from Employee
where EmployeeId=@BusinessId

update bill
set ProviderName=@ProviderName ,InStockName='仓库1',outStockName='仓库1',EmbranchmentName='康睛',BillCodeName=@BillCodeName,BusinessName=@BusinessName,CustomerName='No',creatorName='SA',StockName='康睛'
where BillId=@BillId
fetch next from Cur_UpdateBillForProvide
into  @ProviderId,@BillId,@BillType,@BusinessId
end
close Cur_UpdateBillForProvide
commit tran
select ProviderName,InStockName,OutStockName,EmbranchmentName,BillCodeName,BusinessName,CustomerName,creatorName,StockName from bill

select * from bill
GO
/****** Object:  StoredProcedure [dbo].[UpdateBill]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateBill]
AS
    DECLARE @CommodityName    VARCHAR(100)
    DECLARE @Spec    VARCHAR(50)
    DECLARE @ProducingArea    VARCHAR(50)
    DECLARE @DoseTypeName    VARCHAR(50)
    DECLARE @Unit   VARCHAR(50)
    DECLARE @BussinessName    VARCHAR(50)
    DECLARE @BillCodeName    VARCHAR(50)
    DECLARE @StockName    VARCHAR(50)
    DECLARE @EmbranchmentName   VARCHAR(50)
    DECLARE @ProviderName    VARCHAR(50)
    DECLARE @Remark   VARCHAR(100)
    DECLARE @AuthorizeCode VARCHAR(50)


    DECLARE @CommodityId   INT
    DECLARE @StockId    INT
    DECLARE @ProviderId    INT
    DECLARE @BillType   INT
    DECLARE @EmbranchmentId     INT
    DECLARE  @BillId  INT
    DECLARE @Guid  uniqueidentifier

    DECLARE  @BussinessId  int


BEGIN TRAN
SET NOCOUNT ON

DECLARE UpdateInOutStock cursor for
SELECT ProviderId,CommodityId,BillType,StockId,EmbranchmentId,BillId,Guid
FROM  InoutStockTable

open UpdateInOutStock
fetch next from UpdateInOutStock
into @ProviderId,@CommodityId,@BillType,@StockId,@EmbranchmentId,@BillId,@Guid

while @@FETCH_STATUS = 0
begin

SELECT @CommodityName=GeneralName,@Spec=Spec,@ProducingArea=ProducingArea,@DoseTypeName=DoseType,@Unit=Unit,@AuthorizeCode=AuthorizeCode
FROM Commodity
WHERE CommodityId=@CommodityId

SELECT @BussinessId=BusinessId,@Remark=Summary FROM Bill
WHERE BillId=@BillId AND BillType=@BillType

SELECT @BussinessName=Name
FROM Employee
WHERE  EmployeeId=@BussinessId

SELECT @BillCodeName=Name
FROM BillCode
WHERE Id=@BillType

SELECT @StockName=Name
FROM Depot
WHERE DepotId=@StockId

SELECT @EmbranchmentName=Name
FROM Embranchment
WHERE EmbranchmentId=@EmbranchmentId

SELECT @ProviderName=Name
FROM Provider
WHERE ProviderId=@ProviderId

UPDATE InoutStockTable
SET  CommodityName=@CommodityName,Spec=@Spec, ProducingArea=@ProducingArea,DoseTypeName=@DoseTypeName,Unit=@Unit,BusinessName=@BussinessName,BillCodeName=@BillCodeName,StockName=@StockName,EmbranchmentName=@EmbranchmentName,ProviderName=@ProviderName,Remark=@Remark,AuthorizeCode=@AuthorizeCode
WHERE Guid=@Guid
fetch next from UpdateInOutStock
into @ProviderId,@CommodityId,@BillType,@StockId,@EmbranchmentId,@BillId,@Guid

end
CLOSE UpdateInOutStock
DEALLOCATE UpdateInOutStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[updataBillForProvider]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[updataBillForProvider] AS
declare @BillId bigint
declare @ProviderName Varchar(50)
declare @ProviderId int
set transaction isolation level serializable
begin tran
declare Cur_UpdateBillForProvider2 cursor for
select ProviderId,BillId from bill
open Cur_UpdateBillForProvider2
fetch next from Cur_UpdateBillForProvider2
into @ProviderId,@BillId
while @@Fetch_status=0
begin
select @ProviderName=Name from provider
where ProviderId=@ProviderId

update bill
set ProviderName=@ProviderName
where BillId=@BillId
fetch next from Cur_UpdateBillForProvider2
into @ProviderId,@BillId
end
close Cur_UpdateBillForProvider2
commit tran
select ProviderName from bill
GO
/****** Object:  StoredProcedure [dbo].[upCommodityid]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE procedure [dbo].[upCommodityid](@commodityId int)
as
begin
set rowcount 1
update commodity set commodityId=(select min(commodityId)-1 from commodity) where commodityid=@commodityid and ProductName is null
end
GO
/****** Object:  StoredProcedure [dbo].[LOGCONTROL]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
--重复登录的控制管理
CREATE procedure [dbo].[LOGCONTROL]
@par_compute varchar(100),
@par_usedbname varchar(100),
@par_userid varchar(20),
@par_hostProcess varchar(100),
@par_hostERROR varchar(100) output

as

select @par_hostERROR = ''
declare @usedbid smallint
select @usedbid=[dbid] from master.dbo.sysdatabases where [name]=@par_usedbname
if @usedbid is null
begin
   return -1
end

select * from master.dbo.sysobjects where name like '%tempXXHLOG%'
if @@rowcount=0          --如果未创建全局临时表
begin
    create table master.dbo.tempXXHLOG
    (
      [标识] [bigint] IDENTITY (1, 1) NOT NULL ,
      [dbid] smallint ,
      [hostname]  nvarchar(100),
      [hostProcess] nvarchar(100),
      [userid] varchar(20)
    )
end


--登录时将缓存表中,已经失效的行删除

declare
      @local_id bigint,            --[标识] [bigint],  -- IDENTITY (1, 1) NOT NULL ,
      @local_dbid smallint,      -- smallint ,
      @local_hostname  nvarchar(100),
      @local_hostProcess nvarchar(100),
      @local_userid varchar(20)


--第一步将主表中没有,但是在缓存表中有的记录给删除
      declare cd_cursor1 cursor local   for
      select 标识,dbid,hostname,hostProcess,userid from master.dbo.tempXXHLOG
      open cd_cursor1
      fetch next from cd_cursor1 into  @local_id,@local_dbid,@local_hostname,@local_hostProcess,@local_userid
      while @@fetch_status=0
      begin    
            --看一看自已的缓存表,一行进程对象,到SQL的全局表一查看,竟然没有,则肯定是失效行,删!
            select * from master.dbo.sysprocesses where hostname = @local_hostname and hostprocess=@local_hostProcess   and dbid =@local_dbid                  
            if @@rowcount=0
            begin
               delete from master.dbo.tempXXHLOG where current of  cd_cursor1
            end
            fetch next from cd_cursor1 into  @local_id,@local_dbid,@local_hostname,@local_hostProcess,@local_userid
      end   
      close  cd_cursor1
      deallocate cd_cursor1

--将用户的登录信息写入缓存表中
---有一种特殊情况,一个连接进程断掉后,在缓存表留下信息,这时他正巧以同机同进程ID登录SQL,SQL主表会记下一模一样的与缓存表相同的行(用户名可能不同),因此用以上语句闪不掉它,
      begin tran

      select * from master.dbo.tempXXHLOG where hostname=@par_compute and  hostProcess=@par_hostProcess
      if @@rowcount=0
      begin
         insert into master.dbo.tempXXHLOG(dbid,    hostname ,   hostProcess,     userid)
                          values(@usedbid,@par_compute,@par_hostProcess,@par_userid)
      end
      else
      begin
         update master.dbo.tempXXHLOG set userid=@par_userid  where hostname=@par_compute and  hostProcess=@par_hostProcess
      end

----进行登录许可管理
      select  *   from  master.dbo.tempXXHLOG where dbid=@usedbid and userid=@par_userid
      if @@rowcount>1
      begin   
         select  @par_hostERROR=hostname    from  master.dbo.tempXXHLOG where dbid=@usedbid and userid=@par_userid and 标识=(  select min( 标识)   from  master.dbo.tempXXHLOG where dbid=@usedbid and userid=@par_userid)
         rollback tran
         return -2
      end

      commit tran
      return 0
GO
/****** Object:  StoredProcedure [dbo].[lastTimeBusiness_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2010-1-12
Summary    : 上次交易单审核
***********************************************************************/

CREATE PROCEDURE [dbo].[lastTimeBusiness_Audit]
(
    @CardCode VARCHAR(50) ,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS  
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillId INT
    DECLARE @BillType TINYINT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @Status TINYINT
    DECLARE @CurSaleSumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @DiscountPrice DECIMAL(18,4)  
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @SumPayCard DECIMAL(18,4)
    DECLARE @ReturnPayCard DECIMAL(18,4)
    DECLARE @CurMemberPrice DECIMAL(18,4)
    DECLARE @CostMemberPrice DECIMAL(18,4)
    DECLARE @MaxBusinessDate SMALLDATETIME
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)
    DECLARE @DataVersion BIGINT
    DECLARE @ChangeAmount INT

    /*定义检验卡金额增减对应的局部变量*/
    DECLARE @CheckReturnPayCard DECIMAL(18,4)
    DECLARE @CheckSumPayCard DECIMAL(18,4)
    DECLARE @CheckSumReturnPayCard DECIMAL(18,4)


   /*定义会员卡对应的局部变量*/
    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)
    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
    DECLARE @CardChangeMoney NUMERIC(18,4)
    DECLARE @CustomerId INT
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @Balance DECIMAL(18,4)
    DECLARE @SumConsumed DECIMAL(18,4)
    DECLARE @CardTypeId INT
    DECLARE @CardLevelId TINYINT
    DECLARE @CardLevelName VARCHAR(50)
   

    DECLARE @RowCount int
    /*根据情况对局部变量赋初始值*/
    SELECT @ErrorMessage='OK!'
    SELECT @ErrorInfoId=1
    SELECT @CheckReturnPayCard=0
    SELECT @CheckSumPayCard=0
    SELECT @CheckSumReturnPayCard=0
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT @MaxBusinessDate=  Max(BusinessDate) 
    FROM InOutStockTableCard(UPDLOCK)
    WHERE  CardCode=@CardCode AND Deleted<>1
        
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到上次交易的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT * FROM InoutStockTableCard
    WHERE BusinessDate>=@MaxBusinessDate
   
   IF @@ROWCOUNT<=0
   BEGIN
      SELECT @ErrorMessage='没有找到上次交易的单据'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   END
    SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney,@CustomerId=CustomerId,@CustomerName=CustomerName,@CardTypeId=CardTypeId,@CardTypeId=CardLevelId from MemberCard
    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
    IF(@@ROWCOUNT<0)
         BEGIN
             SELECT @ErrorMessage='没有找到此卡'
             Select @ErrorInfoId=-7
             ROLLBACK
             RETURN -7
          END
   
    DECLARE Cur_InOutStockDetail CURSOR FOR /*从单游标*/
        SELECT EmbranchmentId, BillId, BillCode,BillCodeName, BusinessDate,BusinessName, DiscountPrice,CurMemberPrice, ChangeAmount, PaySYB,PayKYB,PayYB,
               ReturnPayCard,SumPayCard,SumReturnPayCard,PayCardMoneyBefore,PayCardMoneyAfter,PayMoney,ReturnMoney,CostMemberPrice,CurSaleSumMoney,DataVersion
           FROM InoutStockTableCard
        where EmbranchmentId=@EmbranchmentId
             and  BillType=@BillType
             and  BillId=@BillId 
            
        open Cur_InOutStockDetail  /*打开游标*/
       
        fetch next from Cur_InOutStockDetail
            into @EmbranchmentId, @BillId, @BillCode, @BillCodeName,@BusinessDate, @BusinessName,@DiscountPrice, @CurMemberPrice, @ChangeAmount,@PaySYB,@PayKYB,@PayYB,
                  @ReturnPayCard, @SumPayCard,@SumReturnPayCard,@PayCardMoneyBefore,@PayCardMoneyAfter ,@PayMoney,@ReturnMoney,@CostMemberPrice,@CurSaleSumMoney,@DataVersion
                
        while @@FETCH_STATUS = 0
        BEGIN
    
            
             IF(@ReturnPayCard=@DiscountPrice-@CurMemberPrice)
                    BEGIN
                       SELECT @CheckSumReturnPayCard=@CheckSumReturnPayCard+@ReturnPayCard
                    END
             ELSE
                    BEGIN
                        SELECT @ErrorMessage='返利计算错误!'
                        SELECT @ErrorInfoId=-4
                        ROLLBACK
                        RETURN -4
                    END

                               
         fetch next from Cur_InOutStockDetail
             into @EmbranchmentId, @BillId, @BillCode, @BillCodeName,@BusinessDate, @BusinessName,@DiscountPrice, @CurMemberPrice, @ChangeAmount,@PaySYB,@PayKYB,@PayYB,
                  @ReturnPayCard, @SumPayCard,@SumReturnPayCard,@PayCardMoneyBefore,@PayCardMoneyAfter ,@PayMoney,@ReturnMoney,@CostMemberPrice,@CurSaleSumMoney,@DataVersion
                
        END
     
         IF( @row_old_Balance!=@PayCardMoneyBefore)
             BEGIN
                 SELECT @ErrorMessage='没有找到上次交易的单据!'
                 SELECT @ErrorInfoId=-8
                 ROLLBACK
                 RETURN -8
              END

                 
        IF(@SumPayCard!=@CurSaleSumMoney-@PayMoney+@ReturnMoney)
              BEGIN
                   SELECT @ErrorMessage='卡消费金额计算错误!'
                   SELECT @ErrorInfoId=-5
                   ROLLBACK
                   RETURN -5
              END
        IF(@CheckSumReturnPayCard!=@SumReturnPayCard)
                BEGIN
                      
                    SELECT @ErrorMessage='返利计算错误!'
                    SELECT @ErrorInfoId=-6
                    ROLLBACK
                    RETURN -6
                END

 
        CLOSE Cur_InOutStockDetail
        DEALLOCATE Cur_InOutStockDetail   
        IF (@BillType=5)
               BEGIN

   
                    --计算总消费额
                    UPDATE MemberCard
                    SET    SumConsumed = ISNULL(SumConsumed,0)+abs( @SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)-abs(@SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --返利
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@SumReturnPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
                    --累计返利总额
                    UPDATE MemberCard
                    SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@SumReturnPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --累计透支消费时,补的现金
                    UPDATE MemberCard
                    SET  MissCash=ISNULL(MissCash,0)+abs(@PayMoney-@ReturnMoney)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --累计医保消费
                    UPDATE MemberCard
                    SET  YBConsumed=ISNULL(YBConsumed,0)+ ( @PayKYB+@PaySYB )
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

           END

   IF (@BillType=26)
    BEGIN

   
                    --计算总退货额
                     UPDATE MemberCard
                     SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@SumPayCard) --, Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion
                     WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --取消返利
                     UPDATE MemberCard
                     SET  Balance=ISNULL(Balance,0)-abs(@SumReturnPayCard)
                      WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
                    --累计取消返利总额
                    UPDATE MemberCard
                  SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@SumReturnPayCard)
                   WHERE Code = @CardCode and ISNULL( Deleted,0)<>1


    END
        IF ( @BillType=5 )
         BEGIN
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  PayCardMoneyAfter, PayCardMoneyBefore,    PayKYB,PaySYB    ,    PayYB    ,PayMoney)
                                  VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   -abs(@SumPayCard),  @row_old_Balance-abs(@SumPayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,               abs(@SumReturnPayCard),    @SumPayCard, @PayCardMoneyAfter,@PayCardMoneyBefore,    @PayKYB,@PaySYB    ,    @PayKYB+@PaySYB,@PayMoney-@ReturnMoney)

             INSERT INTO MemberCardChangeLog(guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,PayMoney)
                                 VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '返利',         @row_old_Balance-abs(@SumPayCard),    abs(@SumReturnPayCard),       @row_old_Balance-abs(@SumPayCard)+abs(@SumReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0)  
         END
         IF ( @BillType=26 )
         BEGIN
              --记录销退
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  PayCardMoneyAfter, PayCardMoneyBefore,    PayKYB,PaySYB    ,    PayYB,                ReturnMoney    ,PayMoney)
                                  VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   +abs(@SumPayCard),            @row_old_Balance+abs(@SumPayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,    abs(@SumReturnPayCard),    -abs(@SumPayCard), @PayCardMoneyAfter,@PayCardMoneyBefore,    0,0    ,    0,    0,0)
              --取消返利
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney,PayMoney)
                                 VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '取消返利',         @row_old_Balance+abs(@SumPayCard),    -abs(@SumReturnPayCard),       @row_old_Balance+abs(@SumPayCard)-abs(@SumReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,0)
         END     
                
        SELECT @ErrorMessage='数据同步成功!'
        Select @ErrorInfoId=1   
        Commit Tran
        RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[LastBill_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2010-1-12
Summary    : 上次交易单据审核
***********************************************************************/

CREATE PROCEDURE [dbo].[LastBill_Audit]
(
    @CardCode VARCHAR(50) ,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
AS  
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillId INT
    DECLARE @BillType TINYINT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @Status TINYINT
    DECLARE @CurSaleSumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @DiscountPrice DECIMAL(18,4)  
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @SumPayCard DECIMAL(18,4)
    DECLARE @ReturnPayCard DECIMAL(18,4)
    DECLARE @CurMemberPrice DECIMAL(18,4)
    DECLARE @CostMemberPrice DECIMAL(18,4)
    DECLARE @MaxBusinessDate SMALLDATETIME
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)
    DECLARE @DataVersion BIGINT
    DECLARE @ChangeAmount INT

    /*定义检验卡金额增减对应的局部变量*/
    DECLARE @CheckSumReturnPayCard DECIMAL(18,4)
    DECLARE @ReturnPayCard_Detail DECIMAL(18,4)
    DECLARE @TotalSumSale DECIMAL(18,4)


   /*定义会员卡对应的局部变量*/
    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)
    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
    DECLARE @CardChangeMoney NUMERIC(18,4)
    DECLARE @CustomerId INT
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @Balance DECIMAL(18,4)
    DECLARE @SumConsumed DECIMAL(18,4)
    DECLARE @CardTypeId INT
    DECLARE @CardLevelId TINYINT
    DECLARE @CardLevelName VARCHAR(50)
    DECLARE @PayTypeStr VARCHAR(50)
   

    DECLARE @RowCount int
    /*根据情况对局部变量赋初始值*/
    SELECT @ErrorMessage='OK!'
    SELECT @ErrorInfoId=1
    SELECT @CheckSumReturnPayCard=0
    SELECT @TotalSumSale=0
    SELECT @ReturnPayCard_Detail=0
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN   
    SELECT @MaxBusinessDate=  Max(BusinessDate) 
    FROM InOutStockTableCard(UPDLOCK)
    WHERE  CardCode=@CardCode AND Deleted<>1
        
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到上次交易的单据'
        Select @ErrorInfoId=-2
        RETURN
    END
   
    /*检查从单是否完整*/
    SELECT * FROM InoutStockTableCard
    WHERE BusinessDate=@MaxBusinessDate
    AND CardCode=@CardCode AND Deleted<>1
   
   IF @@ROWCOUNT<=0
   BEGIN
      SELECT @ErrorMessage='没有找到上次交易的单据'
      Select @ErrorInfoId=-3
      ROLLBACK
      RETURN -1
   END
    SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney,@CustomerId=CustomerId,@CustomerName=CustomerName,@CardTypeId=CardTypeId,@CardTypeId=CardLevelId from MemberCard
    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
    IF(@@ROWCOUNT<0)
         BEGIN
             SELECT @ErrorMessage='没有找到此卡'
             Select @ErrorInfoId=-7
             ROLLBACK
             RETURN -7
          END
   
    DECLARE Cur_InOutStockDetail CURSOR FOR /*从单游标*/
        SELECT EmbranchmentId,EmbranchmentName, BillId,BillType, BillCode,BillCodeName, BusinessDate,BusinessName, DiscountPrice,CurMemberPrice, ChangeAmount, PaySYB,PayKYB,PayYB,PayType,
               ReturnPayCard,SumPayCard,SumReturnPayCard,PayCardMoneyBefore,PayCardMoneyAfter,PayMoney,ReturnMoney,CostMemberPrice,CurSaleSumMoney,DataVersion
           FROM InoutStockTableCard
           WHERE BusinessDate=@MaxBusinessDate
           AND CardCode=@CardCode AND Deleted<>1
            
        open Cur_InOutStockDetail  /*打开游标*/
       
        fetch next from Cur_InOutStockDetail
            into @EmbranchmentId,@EmbranchmentName, @BillId,@BillType, @BillCode, @BillCodeName,@BusinessDate, @BusinessName,@DiscountPrice, @CurMemberPrice, @ChangeAmount,@PaySYB,@PayKYB,@PayYB,@PayType,
                  @ReturnPayCard, @SumPayCard,@SumReturnPayCard,@PayCardMoneyBefore,@PayCardMoneyAfter ,@PayMoney,@ReturnMoney,@CostMemberPrice,@CurSaleSumMoney,@DataVersion
                
        while @@FETCH_STATUS = 0
        BEGIN
    
             SELECT @ReturnPayCard_Detail=(@DiscountPrice-@CurMemberPrice)*@ChangeAmount
             IF(@ReturnPayCard=@ReturnPayCard_Detail)
                    BEGIN
                       SELECT @CheckSumReturnPayCard=@CheckSumReturnPayCard+@ReturnPayCard
                       SELECT @TotalSumSale=@TotalSumSale+@CurSaleSumMoney
                    END
             ELSE
                    BEGIN
                        SELECT @ErrorMessage='返利计算错误!'
                        SELECT @ErrorInfoId=-4
                        ROLLBACK
                        RETURN -4
                    END

                               
         fetch next from Cur_InOutStockDetail
             into @EmbranchmentId,@EmbranchmentName, @BillId,@BillType, @BillCode, @BillCodeName,@BusinessDate, @BusinessName,@DiscountPrice, @CurMemberPrice, @ChangeAmount,@PaySYB,@PayKYB,@PayYB,@PayType,
                  @ReturnPayCard, @SumPayCard,@SumReturnPayCard,@PayCardMoneyBefore,@PayCardMoneyAfter ,@PayMoney,@ReturnMoney,@CostMemberPrice,@CurSaleSumMoney,@DataVersion
                
        END
     
         IF( @row_old_Balance!=@PayCardMoneyBefore)
             BEGIN
                 SELECT @ErrorMessage='没有找到上次交易的单据!'
                 SELECT @ErrorInfoId=-8
                 ROLLBACK
                 RETURN -8
              END

                 
        IF(@SumPayCard!=@TotalSumSale-@PayMoney+@ReturnMoney)
              BEGIN
                   SELECT @ErrorMessage='卡消费金额计算错误!'
                   SELECT @ErrorInfoId=-5
                   ROLLBACK
                   RETURN -5
              END
        IF(@CheckSumReturnPayCard!=@SumReturnPayCard)
                BEGIN
                      
                    SELECT @ErrorMessage='返利计算错误!'
                    SELECT @ErrorInfoId=-6
                    ROLLBACK
                    RETURN -6
                END
       IF(@PayType=1)
           BEGIN
               SELECT @PayTypeStr='会员卡'
           END
 
        CLOSE Cur_InOutStockDetail
        DEALLOCATE Cur_InOutStockDetail
         
        IF (@BillType=5)
               BEGIN

   
                    --计算总消费额
                    UPDATE MemberCard
                    SET    SumConsumed = ISNULL(SumConsumed,0)+abs( @SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)-abs(@SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --返利
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@SumReturnPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
                    --累计返利总额
                    UPDATE MemberCard
                    SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@SumReturnPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --累计透支消费时,补的现金
                    UPDATE MemberCard
                    SET  MissCash=ISNULL(MissCash,0)+abs(@PayMoney-@ReturnMoney)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --累计医保消费
                    UPDATE MemberCard
                    SET  YBConsumed=ISNULL(YBConsumed,0)+ ( @PayKYB+@PaySYB )
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

           END

   IF (@BillType=26)
    BEGIN

   
                    --计算总退货额
                     UPDATE MemberCard
                     SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@SumPayCard) --, Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion
                     WHERE Code = @CardCode and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@SumPayCard)
                    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    --取消返利
                     UPDATE MemberCard
                     SET  Balance=ISNULL(Balance,0)-abs(@SumReturnPayCard)
                      WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
                    --累计取消返利总额
                    UPDATE MemberCard
                  SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@SumReturnPayCard)
                   WHERE Code = @CardCode and ISNULL( Deleted,0)<>1


    END
        IF(@@ERROR<>0)
                BEGIN
                 SELECT @ErrorMessage='会员卡更新失败!'
                 SELECT @ErrorInfoId=-9
                 ROLLBACK
                 RETURN -9
              END
                  
        IF ( @BillType=5 )
         BEGIN
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  PayCardMoneyAfter, PayCardMoneyBefore,    PayKYB,PaySYB    ,    PayYB    ,PayMoney,PayTypeStr)
                                  VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   -abs(@SumPayCard),  @row_old_Balance-abs(@SumPayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,               abs(@SumReturnPayCard),    @SumPayCard, @PayCardMoneyAfter,@PayCardMoneyBefore,    @PayKYB,@PaySYB    ,    @PayKYB+@PaySYB,@PayMoney-@ReturnMoney,@PayTypeStr)

             INSERT INTO MemberCardChangeLog(guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,PayMoney,PayTypeStr)
                                 VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '返利',         @row_old_Balance-abs(@SumPayCard),    abs(@SumReturnPayCard),       @row_old_Balance-abs(@SumPayCard)+abs(@SumReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0,@PayTypeStr)  
         END
         IF ( @BillType=26 )
         BEGIN
              --记录销退
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  PayCardMoneyAfter, PayCardMoneyBefore,    PayKYB,PaySYB    ,    PayYB,                ReturnMoney    ,PayMoney,PayTypeStr)
                                  VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   +abs(@SumPayCard),            @row_old_Balance+abs(@SumPayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,    abs(@SumReturnPayCard),    -abs(@SumPayCard), @PayCardMoneyAfter,@PayCardMoneyBefore,    0,0    ,    0,    0,0,@PayTypeStr)
              --取消返利
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney,PayMoney,PayTypeStr)
                                 VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '取消返利',         @row_old_Balance+abs(@SumPayCard),    -abs(@SumReturnPayCard),       @row_old_Balance+abs(@SumPayCard)-abs(@SumReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,0,@PayTypeStr)
         END
            IF(@@ERROR<>0)
                BEGIN
                 SELECT @ErrorMessage='插入会员卡日志失败!'
                 SELECT @ErrorInfoId=-10
                 ROLLBACK
                 RETURN -10
              END    
                
        SELECT @ErrorMessage='数据同步成功!'
        Select @ErrorInfoId=1   
        Commit Tran
        RETURN 0
GO
/****** Object:  UserDefinedFunction [dbo].[getSumPayCard]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[getSumPayCard](@CardCode varchar(50),@BusinessDateFrom smalldatetime,@BusinessDateTo smalldatetime )   
returns decimal(18,4)   
as   
begin   
    declare @SumPayCard decimal(18,4)
    set @SumPayCard=0
     select @SumPayCard=sum(ISNULL(PayCard,0))
     from
     (
     select BillCode,PayCard from InoutStockTableCard where BillType=5 and  CardCode =@CardCode and BusinessDate>@BusinessDateFrom and BusinessDate!>@BusinessDateTo
     group by BillCode,PayCard
     )
     as TempTable
     return @SumPayCard
end
GO
/****** Object:  StoredProcedure [dbo].[GetShift]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[GetShift]
(
    @EmbranchmentId  INT,                                                                                                          
    @EmployeeId INT,
    @ShiftId INT OUTPUT,
    @StartTime DateTime  OUTPUT                                                                     
)
AS
    --DECLARE @StartTime DATETIME
        SET NOCOUNT ON
        SET TRANSACTION ISOLATION LEVEL Serializable                                                 --事务序列化
        BEGIN TRAN
                     SELECT @ShiftId = ShiftId,@StartTime = StartTime FROM Shift(UPDLOCK)
        WHERE EmbranchmentId = @EmbranchmentId AND EmployeeId = @EmployeeId  AND EndTime IS NULL
              IF @@ROWCOUNT=0
              BEGIN
                        SELECT @StartTime = getdate(),@ShiftId = Sequence_NextId + 1 FROM Sequences WHERE Sequence_Name = 'ShiftID'
            UPDATE Sequences SET Sequence_NextId = @ShiftId WHERE Sequence_Name = 'ShiftID'
            INSERT INTO Shift(EmbranchmentId,ShiftId,EmployeeId,StartTime,EndTime,InMoney,OutMoney,InBillCount,OutBillCount,FactMoney)
            VALUES(@EmbranchmentId,@ShiftId,@EmployeeId,@StartTime,NULL,0,0,0,0,0)
              END
       COMMIT TRAN
GO
/****** Object:  StoredProcedure [dbo].[pro_InsertSypzspb]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE procedure [dbo].[pro_InsertSypzspb] as

DECLARE @SypzspbID int
DECLARE @Gspbh varchar(50)
DECLARE @Zdrid smallint
DECLARE @Zdrmc varchar(50)
DECLARE @Rq datetime
DECLARE @Spid int
DECLARE @Spm varchar(50)
DECLARE @Tymc varchar(50)
DECLARE @Jx varchar(50)
DECLARE @Py varchar(50)
DECLARE @Gg varchar(50)
DECLARE @Dw varchar(50)
DECLARE @Cctj varchar(50)
DECLARE @Zycf varchar(50)
DECLARE @Zlbz varchar(50)
DECLARE @Yxq varchar(50)
DECLARE @Pzwh varchar(50)
DECLARE @Sccs varchar(50)
DECLARE @Scxkzh varchar(50)
DECLARE @Xxdz varchar(50)
DECLARE @Yyzzh varchar(50)
DECLARE @Gmpzsh varchar(50)
DECLARE @Rzsj datetime
DECLARE @Zsyxq datetime
DECLARE @Sdkhrid smallint
DECLARE @Sdkhrmc varchar(50)
DECLARE @Wtsyxq datetime
DECLARE @Kcjl varchar(50)
DECLARE @Cpph varchar(50)
DECLARE @Ccjybgsh varchar(50)
DECLARE @Syjyjl varchar(50)
DECLARE @Syjybgsh varchar(50)
DECLARE @Ccj decimal(9)
DECLARE @Ghj decimal(9)
DECLARE @Pfj decimal(9)
DECLARE @Lsj decimal(9)
DECLARE @SFYPZZMWJ bit
DECLARE @SFYBZ bit
DECLARE @Sqly char(30)
DECLARE @Sqrid smallint
DECLARE @Sqrmc varchar(50)
DECLARE @Sqrrq datetime
DECLARE @Scbyj char(30)
DECLARE @Scbjlid smallint
DECLARE @Scbjlmc varchar(50)
DECLARE @Scbjlrq datetime
DECLARE @Zgbyj char(30)
DECLARE @Zgbjlid smallint
DECLARE @Zgbjlmc varchar(50)
DECLARE @Zgbjlrq datetime
DECLARE @Zjlyj char(30)
DECLARE @Zjlid smallint
DECLARE @Zjlmc varchar(50)
DECLARE @Zjlrq datetime 

BEGIN TRAN
SET NOCOUNT ON

DECLARE Cur_CommodityStock cursor for
SELECT c.CommodityId,c.ProductName,c.GeneralName,c.DoseType,c.SpellCode,c.Spec,c.Unit,cs.InvalidateDate,c.AuthorizeCode,c.ProducingArea,cs.BatchCode,c.RetailPrice
FROM Commodity c left join commoditystock cs
on c.commodityid = cs.commodityid

open Cur_CommodityStock

fetch next from Cur_CommodityStock
into @Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Yxq,@Pzwh,@Sccs,@Cpph,@Lsj

while @@FETCH_STATUS = 0
begin
SELECT @SypzspbID=ISnULL(MAX(SypzspbID),0) from sypzspb
select @SypzspbID = @SypzspbID + 1

INSERT INTO Sypzspb
      (EmbranchmentId,SypzspbID,ZDRID,ZDRMC,RQ,      SPID,SPM,TYMC,    JX,PY,   GG,DW,  YXQ,PZWH,SCCS,  CPPH,LSJ)
      VALUES
      (1             ,@SypzspbID,76,'明永成',getdate(),@Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Yxq,@Pzwh,@Sccs,@Cpph,@Lsj)

fetch next from Cur_CommodityStock
into @Spid,@Spm,@Tymc,@Jx,@Py,@Gg,@Dw,@Yxq,@Pzwh,@Sccs,@Cpph,@Lsj
end
CLOSE Cur_CommodityStock
DEALLOCATE Cur_CommodityStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[updateRetailPrice]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[updateRetailPrice]  AS

DECLARE @RetailPrice Money
Declare @CommodityId int

BEGIN TRAN
DECLARE CS cursor for Select CommodityId from CommodityStock
open cs

fetch next from CS
into @CommodityId

while @@FETCH_STATUS = 0
begin
  Select @RetailPrice=RetailPrice from Commodity
  where CommodityId=@CommodityId

  Update CommodityStock set RetailPrice=@RetailPrice
  where CommodityId=@CommodityId
 
  fetch next from CS
  into @CommodityId
end
CLOSE CS
DEALLOCATE CS
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateMemberCardAndLog]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateMemberCardAndLog]
(
@BillId INT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @BillType TINYINT--单据类型
    DECLARE @BillCode VARCHAR(50)--单据编号
    DECLARE @BillCodeName VARCHAR(50)--处理动作
    DECLARE @BusinessDate SMALLDATETIME--单据日期
    DECLARE @CreatorId SMALLINT--操作员ID
    DECLARE @CreatorName VARCHAR(50)--操作员姓名
    DECLARE @CardCode VARCHAR(50)--卡号
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Remark  VARCHAR(100)

    /*定义MemberCard对应的局部变量*/
    DECLARE @CardId INT
    DECLARE @Score INT--积分
    DECLARE @CustomerId INT--客户ID
    DECLARE @CustomerName VARCHAR(50)--客户姓名
    DECLARE @SumConsumed DECIMAL(18,4)--累计总消费额        不参加积分的商品也合计
    DECLARE @CardTypeId INT--卡类型ID
    DECLARE @SpareMoney DECIMAL(18,4)--最后一次未参加积分金额
    DECLARE @IsScore BIT--是否会员积分
    DECLARE @IsCumulativePoints SMALLINT--是否累计最后一次未参加积分金额

    /*定义MemberCardChangeLog对应的局部变量*/
    DECLARE @PreScore INT--原积分
    DECLARE @ChangeScore INT--改变积分
    DECLARE @SumMoneyScore DECIMAL(18,4)--总消费额中参加积分的合计金额
    DECLARE @PointsBase INT--积分基数
    DECLARE @Points INT--积分

    /*临时变量*/
    DECLARE @intvalue INT
    DECLARE @update_error INT
    DECLARE @insert_error INT

    SELECT
           @Guid=Guid,
           @EmbranchmentId=EmbranchmentId,
           @EmbranchmentName=EmbranchmentName,
           @BillType=BillType,
           @BillCode=BillCode,
           @BillCodeName=BillCodeName,
           @BusinessDate=BusinessDate,
           @CreatorId=CreatorId,
           @CreatorName=CreatorName,
           @CardId=CardId,
           @CardCode=CardCode,
           @SumMoney=SumMoney, 
       @Remark=Remark
    FROM  Bill(UPDLOCK)
    WHERE BillId=@BillId AND Status=2

    SELECT @SumMoneyScore=SUM(SumMoney) FROM BillDetailRetail
    WHERE BIllId=@BillId AND IsScore=1

    IF @SumMoneyScore IS NULL
    BEGIN
    SELECT @SumMoneyScore=0
    END

    SELECT
       @Score=Score,
       @CustomerId=CustomerId,
       @CustomerName=CustomerName,
       @SumConsumed=SumConsumed,
       @CardTypeId=CardTypeId,
       @SpareMoney=SpareMoney,
       @IsScore=IsScore,
       @IsCumulativePoints=IsCumulativePoints
    FROM MemberCard
    WHERE CardId=@CardId

    IF @@ROWCOUNT = 0
    BEGIN
    UPDATE Bill SET CardMessage='CardId is not find' WHERE BillId=@BillId
    RETURN
    END

    SELECT @SumConsumed=@SumConsumed+@SumMoney

    IF @IsScore=1
    BEGIN
    IF @IsCumulativePoints=1
    BEGIN
        SELECT @SumMoneyScore=@SumMoneyScore+@SpareMoney
    END
   
    SELECT
    @PointsBase=PointsBase,
    @Points=Points                          
    FROM CardTypeDiscountAndPoints                         
    WHERE LogoType = 2 and @SumMoneyScore >= MoneyBegin AND @SumMoneyScore <= MoneyEnd

    --默认积分基数如何取? 
    IF @@ROWCOUNT = 0
        BEGIN
        SELECT @PointsBase=1,@Points=1            
        END

    SELECT @PreScore=@Score
    SELECT @intvalue=@SumMoneyScore
    SELECT @SpareMoney=ABS(@SumMoneyScore-@intvalue)
    SELECT @SpareMoney=@SpareMoney+@intvalue%@PointsBase
    SELECT @ChangeScore=@intvalue/@PointsBase*@Points
    SELECT @Score=@Score+@ChangeScore

    UPDATE MemberCard
    SET Score=@Score,SumConsumed=@SumConsumed,SpareMoney=@SpareMoney
    WHERE CardId=@CardId

    SELECT @update_error=@@ERROR
   
    IF @@ERROR <> 0
    BEGIN
        UPDATE Bill SET CardMessage='Error when update card(score)' WHERE BillId=@BillId
        RETURN
    END

    INSERT INTO MemberCardChangeLog(Guid,BillId,CardId,EmbranchmentId,EmbranchmentName,CardCode,PreScore,ChangeScore,Score,CardTypeId,BillType,BillCode,BillCodeName,CustomerId,CustomerName,BusinessId,BusinessName,BusinessDate,Remark,SumMoney,SumMoneyScore,PointsBase,Points)
        VALUES(@Guid,@BillId,@CardId,@EmbranchmentId,@EmbranchmentName,@CardCode,@PreScore,@ChangeScore,@Score,@CardTypeId,@BillType,@BillCode,@BillCodeName,@CustomerId,@CustomerName,@CreatorId,@CreatorName,@BusinessDate,@Remark,@SumMoney,@SumMoneyScore,@PointsBase,@Points)
       
    SELECT @insert_error=@@ERROR

    IF @@ERROR <> 0
    BEGIN
        UPDATE Bill SET CardMessage='Error when insert cardchangelog(score)' WHERE BillId=@BillId
        RETURN
    END
    END
    ELSE
    BEGIN
    UPDATE MemberCard
    SET SumConsumed=@SumConsumed,SpareMoney=0
    WHERE CardId=@CardId

    SELECT @update_error=@@ERROR

    IF @@ERROR <> 0
    BEGIN
        UPDATE Bill SET CardMessage='Error when update card' WHERE BillId=@BillId
        RETURN
    END

    INSERT INTO MemberCardChangeLog(Guid,BillId,CardId,EmbranchmentId,EmbranchmentName,CardCode,PreScore,ChangeScore,Score,CardTypeId,BillType,BillCode,BillCodeName,CustomerId,CustomerName,BusinessId,BusinessName,BusinessDate,Remark,SumMoney,SumMoneyScore,PointsBase,Points)
        VALUES(@Guid,@BillId,@CardId,@EmbranchmentId,@EmbranchmentName,@CardCode,@Score,0,@Score,@CardTypeId,@BillType,@BillCode,@BillCodeName,@CustomerId,@CustomerName,@CreatorId,@CreatorName,@BusinessDate,@Remark,@SumMoney,@SumMoneyScore,@PointsBase,@Points)
   
    SELECT @insert_error=@@ERROR

    IF @@ERROR <> 0
    BEGIN
        UPDATE Bill SET CardMessage='Error when insert cardchangelog' WHERE BillId=@BillId
        RETURN
    END
    END

    IF @update_error = 0 AND @insert_error = 0
    UPDATE Bill SET CardMessage='Successful' WHERE BillId=@BillId
GO
/****** Object:  StoredProcedure [dbo].[UpdateMemberCard]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateMemberCard]
(
    @BillType TINYINT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @Status TINYINT,
    @Password VARCHAR(20),
    @Discount DECIMAL(18,4),
    @CancelTime DATETIME,
    @SuspendTime DATETIME,
    @LimitCount INT,
    @UsedCount INT,
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @SpellCode VARCHAR(50),
    @DataVersion BIGINT,
    @orderno INT OUTPUT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @ReturnMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
        @Code_CZ VARCHAR(50)

   
)
AS
    DECLARE @UPDATECARD_ERROE INT
    DECLARE @INSERTLOG_ERROR INT
    DECLARE @guid uniqueidentifier
    /*定义会员卡对应的局部变量*/
    DECLARE @Sumconsumed NUMERIC(18,4)
    DECLARE @row_Balance NUMERIC(18,4)
    DECLARE @row_SumConsumed NUMERIC(18,4)
    DECLARE @row_SumAllMoney NUMERIC(18,4)
    DECLARE @Foregift NUMERIC(18,4)
    DECLARE @BeginTime DATETIME
    DECLARE @SumAllMoney NUMERIC(18,4)
    DECLARE @ProviderId INT
    DECLARE @Balance NUMERIC(18,4)

    DECLARE @row_old_Balance NUMERIC(18,4)
    DECLARE @row_old_row_SumConsumed NUMERIC(18,4)
    DECLARE @row_old_SumAllMoney NUMERIC(18,4)
    DECLARE @afterMoney NUMERIC(18,4)
    DECLARE @CardChangeMoney NUMERIC(18,4)
   
    SELECT  SumConsumed = @Sumconsumed,Foregift = @Foregift,BeginTime = @BeginTime,SumAllMoney=@SumAllMoney,ProviderId=@ProviderId
    FROM MemberCard
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    SELECT @row_old_Balance=Balance,@row_old_row_SumConsumed=SumConsumed,@row_old_SumAllMoney=SumAllMoney from MemberCard
    WHERE Code = @Code and ISNULL( Deleted,0)<>1

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

    IF (@BillType!=5 and   @BillType!=16 and  @BillType!=20 and  @BillType!=21 and @BillType!=30 and @BillType!=17 and @BillType!=29 )
    BEGIN
       UPDATE MemberCard
       SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score, SumConsumed = @Sumconsumed,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
       WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF (@BillType=20)
    BEGIN
        UPDATE MemberCard
        SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score, SumConsumed = @Sumconsumed,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF (@BillType=16)
    BEGIN
        UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
   IF(@BillType=21)
       BEGIN
           UPDATE MemberCard
           SET Balance=0,Foregift=0,Deleted=1
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END
      IF(@BillType=30)
       BEGIN
           UPDATE MemberCard
           SET CallBackReturnPayCard=ISNULL(CallBackReturnPayCard,0)+abs(@ReturnPayCard)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
           UPDATE MemberCard
           SET Balance=ISNULL(Balance,0)+abs(@ReturnPayCard)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END
     IF(@BillType=17)
       BEGIN
           UPDATE MemberCard
           SET DrawCard=ISNULL(DrawCard,0)+abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
           UPDATE MemberCard
           SET Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END
     IF(@BillType=29)
       BEGIN
     UPDATE MemberCard
         SET deleted=1
         WHERE Code = @Code and ISNULL( Deleted,0)<>1
         UPDATE MembercardChangeLog SET Deleted=1
         where CardCode=@Code and ISNULL( Deleted,0)<>1
         UPDATE  InoutStockTableCard SET Deleted=1
         where CardCode=@Code and ISNULL(Deleted,0)<>1
       END

    IF (@BillType=5)
    BEGIN

   
                    --计算总消费额
                    UPDATE MemberCard
                    SET    SumConsumed = ISNULL(SumConsumed,0)+abs( @PayCard)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)-abs(@PayCard)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1
                    --返利
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@ReturnPayCard)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
                    --累计返利总额
                    UPDATE MemberCard
                    SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@ReturnPayCard)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1
                    --累计透支消费时,补的现金
                    UPDATE MemberCard
                    SET  MissCash=ISNULL(MissCash,0)+abs(@PayMoney-@ReturnMoney)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1
                    --累计医保消费
                    UPDATE MemberCard
                    SET  YBConsumed=ISNULL(YBConsumed,0)+ ( @PayKYB+@PaySYB )
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1

    END

   IF (@BillType=26)
    BEGIN

   
                    --计算总退货额
                     UPDATE MemberCard
                     SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@PayCard)
                     WHERE Code = @Code and ISNULL( Deleted,0)<>1

                    --余额
                    UPDATE MemberCard
                    SET  Balance=ISNULL(Balance,0)+abs(@PayCard)
                    WHERE Code = @Code and ISNULL( Deleted,0)<>1
                    --取消返利
                     UPDATE MemberCard
                     SET  Balance=ISNULL(Balance,0)-abs(@ReturnPayCard)
                      WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
                    --累计取消返利总额
                    UPDATE MemberCard
                  SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@ReturnPayCard)
                   WHERE Code = @Code and ISNULL( Deleted,0)<>1


    END
    SELECT @row_Balance=Balance,@row_SumConsumed=SumConsumed,@row_SumAllMoney=SumAllMoney FROM MemberCard
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
   
    SELECT @UPDATECARD_ERROE = @@ERROR


    SELECT @guid=NEWID()
   
    IF (@BillType!=5 and @BillType!=26 and @BillType!=23 and @BillType!=21 and @BillType!=30 and @BillType!=17 and @BillType!=29)
    BEGIN
        INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard,ProviderId)
                                  VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,@ChangeMoney,@row_Balance,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,@PayMoney,@DataVersion,0,@ProviderId)
    END
    ELSE
    BEGIN
        IF(@BillType=21)
             BEGIN
                   INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  ReturnMoney,PayMoney,ProviderId)
                   VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出押金',@Balance,   -abs(@Foregift),            @Balance,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,    0,    0,    0,0,@ProviderId)
                   INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  ReturnMoney,PayMoney,ProviderId)
                   VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出余额',@Balance,   -abs(@Balance),            0,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,    0,    0,    0,0,@ProviderId)
               END
               
       IF ( @BillType=5 )
           BEGIN
               INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,    PayKYB,PaySYB    ,    PayYB,                ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                  VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   -abs(@PayCard),            @row_old_Balance-abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,               abs(@ReturnPayCard),    @PayCard,    @PayKYB,@PaySYB    ,    @PayKYB+@PaySYB,    0    ,    @PayTypeStr,@PayMoney-@ReturnMoney,@ProviderId)

                INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                 VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,31,@BillCode,   '返利',         @row_old_Balance-abs(@PayCard),    abs(@ReturnPayCard),       @row_old_Balance-abs(@PayCard)+abs(@ReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,    @PayTypeStr,0,@ProviderId)
           END
         IF ( @BillType=26 )
         BEGIN
              --记录销退
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,    PayKYB,PaySYB    ,    PayYB,                ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                  VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,   +abs(@PayCard),            @row_old_Balance+abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @DataVersion,    abs(@ReturnPayCard),    -abs(@PayCard),0,0    ,    0,    0    ,    @PayTypeStr,0,@ProviderId)
              --取消返利
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                 VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,32,@BillCode,   '取消返利',         @row_old_Balance+abs(@PayCard),    -abs(@ReturnPayCard),       @row_old_Balance+abs(@PayCard)-abs(@ReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,    @PayTypeStr,0,@ProviderId)
         END
         IF(@BillType=30)
               BEGIN
                                INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                 VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '召回返利',         @row_old_Balance,    abs(@ReturnPayCard),       @row_old_Balance+abs(@ReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,    @PayTypeStr,0,@ProviderId)
               END
         IF(@BillType=17)
               BEGIN
                                INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,                         ChangeMoney,               Balance,                                               CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,          ReturnPayCard, PayCard, PayCardMoneyAfter,PayCardMoneyBefore,            PayKYB,PaySYB    ,    PayYB,    ReturnMoney    ,        PayTypeStr,PayMoney,ProviderId)
                                 VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,   @BillCodeName,         @row_old_Balance,    -abs(@ChangeMoney),       @row_old_Balance-abs(@ChangeMoney),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,@DataVersion,        abs(0),            0, 0,0,    0,0    ,    0,    0    ,    @PayTypeStr,0,@ProviderId)
               END
        IF(@BillType=29)
               BEGIN
                                INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard,ProviderId)
                                  VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@row_old_Balance,@ChangeMoney,@row_Balance,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,@PayMoney,@DataVersion,0,@ProviderId)
       
               END
                  
                 
    END

    SELECT @INSERTLOG_ERROR = @@ERROR
    -- Test the error values.
    IF @UPDATECARD_ERROE = 0 AND @INSERTLOG_ERROR = 0
    BEGIN
           -- Success. Commit the transaction.
        SELECT @ErrorMessage = '会员卡更新成功' --cast(@guid as varchar(60))
        SELECT @ErrorInfoId=1
           COMMIT TRAN
    END
    ELSE
    BEGIN
           -- An error occurred. Indicate which operation(s) failed and roll back the transaction.
           IF @UPDATECARD_ERROE <> 0
                     BEGIN
                     SELECT @ErrorMessage = '会员卡更新失败'
                SELECT @ErrorInfoId=-2
                      END

           IF @INSERTLOG_ERROR <> 0
                     BEGIN
                      SELECT @ErrorMessage = '写日志失败'
                SELECT @ErrorInfoId=-3
                     END
           ROLLBACK TRAN
    END
GO
/****** Object:  StoredProcedure [dbo].[updateInoutStockTalleCurSalePrice]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[updateInoutStockTalleCurSalePrice]  AS

DECLARE @BillId int
DECLARE @BillType int
DECLARE @CommodityId int
DECLARE @BatchCode varchar(50)
DECLARE @CurSalePrice Money
DECLARE @CurSaleSumMoney Money
DECLARE @ChangeAmount Decimal

BEGIN TRAN
DECLARE CS cursor for
    Select BillId,BillType,CommodityId,BatchCode,CurSalePrice,ChangeAmount from InoutStockTable
where CurSalePrice is null Or CurSalePrice = 0
open cs

fetch next from CS
into @BillId,@BillType,@CommodityId,@BatchCode,@CurSalePrice,@ChangeAmount

while @@FETCH_STATUS = 0
begin
  Select @CurSalePrice=Price from BillDetailRetail
  where BillId=@BillId
  AND BillType=@BillType
  AND CommodityId=@CommodityId
  AND BatchCode=@BatchCode

  Select @CurSaleSumMoney = @CurSalePrice * @ChangeAmount

  Update InoutStockTable
  set CurSalePrice=@CurSalePrice,CurSaleSumMoney=@CurSaleSumMoney
  where BillId=@BillId
  AND BillType=@BillType
  AND CommodityId=@CommodityId
  AND BatchCode=@BatchCode
 
fetch next from CS
into @BillId,@BillType,@CommodityId,@BatchCode,@CurSalePrice,@ChangeAmount
end
CLOSE CS
DEALLOCATE CS
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateInOutStock]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateInOutStock]
AS
    DECLARE @CommodityName    VARCHAR(100)
    DECLARE @Spec    VARCHAR(50)
    DECLARE @ProducingArea    VARCHAR(50)
    DECLARE @DoseTypeName    VARCHAR(50)
    DECLARE @Unit   VARCHAR(50)
    DECLARE @BussinessName    VARCHAR(50)
    DECLARE @BillCodeName    VARCHAR(50)
    DECLARE @StockName    VARCHAR(50)
    DECLARE @EmbranchmentName   VARCHAR(50)
    DECLARE @ProviderName    VARCHAR(50)
    DECLARE @Remark   VARCHAR(100)
    DECLARE @AuthorizeCode VARCHAR(50)


    DECLARE @CommodityId   INT
    DECLARE @StockId    INT
    DECLARE @ProviderId    INT
    DECLARE @BillType   INT
    DECLARE @EmbranchmentId     INT
    DECLARE  @BillId  INT
    DECLARE @Guid  uniqueidentifier

    DECLARE  @BussinessId  int


BEGIN TRAN
SET NOCOUNT ON

DECLARE UpdateInOutStock cursor for
SELECT ProviderId,CommodityId,BillType,StockId,EmbranchmentId,BillId,Guid
FROM  InoutStockTable

open UpdateInOutStock
fetch next from UpdateInOutStock
into @ProviderId,@CommodityId,@BillType,@StockId,@EmbranchmentId,@BillId,@Guid

while @@FETCH_STATUS = 0
begin

SELECT @CommodityName=GeneralName,@Spec=Spec,@ProducingArea=ProducingArea,@DoseTypeName=DoseType,@Unit=Unit,@AuthorizeCode=AuthorizeCode
FROM Commodity
WHERE CommodityId=@CommodityId

SELECT @BussinessId=BusinessId,@Remark=Summary FROM Bill
WHERE BillId=@BillId AND BillType=@BillType

SELECT @BussinessName=Name
FROM Employee
WHERE  EmployeeId=@BussinessId

SELECT @BillCodeName=Name
FROM BillCode
WHERE Id=@BillType

SELECT @StockName=Name
FROM Depot
WHERE DepotId=@StockId

SELECT @EmbranchmentName=Name
FROM Embranchment
WHERE EmbranchmentId=@EmbranchmentId

SELECT @ProviderName=Name
FROM Provider
WHERE ProviderId=@ProviderId

UPDATE InoutStockTable
SET  CommodityName=@CommodityName,Spec=@Spec, ProducingArea=@ProducingArea,DoseTypeName=@DoseTypeName,Unit=@Unit,BusinessName=@BussinessName,BillCodeName=@BillCodeName,StockName=@StockName,EmbranchmentName=@EmbranchmentName,ProviderName=@ProviderName,Remark=@Remark,AuthorizeCode=@AuthorizeCode
WHERE Guid=@Guid
fetch next from UpdateInOutStock
into @ProviderId,@CommodityId,@BillType,@StockId,@EmbranchmentId,@BillId,@Guid

end
CLOSE UpdateInOutStock
DEALLOCATE UpdateInOutStock
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateEntireDiscount]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UpdateEntireDiscount]
AS

DECLARE @BillId INT
DECLARE @EntireDiscount DECIMAL(6,3)

BEGIN TRAN
DECLARE ed CURSOR FOR
SELECT BillId
FROM InoutStockTable
WHERE EntireDiscount IS NULL
AND BillType = 5

OPEN ed
FETCH NEXT FROM ed INTO @BillId

WHILE @@FETCH_STATUS = 0
begin
SELECT @EntireDiscount = Discount FROM Bill
WHERE BillId = @BillId

UPDATE InoutStockTable
SET EntireDiscount = @EntireDiscount
WHERE BillId = @BillId

IF @@ROWCOUNT = 0
   print 'ERROR!'

FETCH NEXT FROM ed INTO @BillId
end
CLOSE ed
DEALLOCATE ed
COMMIT TRAN
GO
/****** Object:  StoredProcedure [dbo].[updateDataVersion]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
--目的,是传送时的dataVersion,sequences表能够反应实际要传送表的情况.

CREATE PROCEDURE [dbo].[updateDataVersion]
(@pra varchar(50))
AS
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from InoutStockTable)
where Name='InoutStockTable'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from DoseType)
where Name='DoseType'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from Embranchment
)
where Name='Embranchment'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from WorkScope)
where Name='WorkScope'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from Catalog)
where Name='Catalog'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from Bulletin)
where Name='Bulletin'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from BulletinEmbranchment)
where Name='BulletinEmbranchment'
update dataVersion
set CurVersion=(select isnull(max(dataVersion),0) from Commodity)
where Name='Commodity'
update dataVersion
set CurVersion=(select isnull(min(RetailDataVersion),-1) from Commodity)
where Name='RetailCommodity'

update Sequences
set Sequence_NextId=(select Isnull(Max(DoseTypeId)+1,1) from DoseType)
where Sequence_Name='DoseType'
update Sequences
set Sequence_NextId=(select Isnull(Max(EmbranchmentId)+1,1) from Embranchment)
where Sequence_Name='Embranchment'
update Sequences
set Sequence_NextId=(select Isnull(Max(WorkScopeId)+1,1) from WorkScope)
where Sequence_Name='WorkScope'

update Sequences
set Sequence_NextId=(select Isnull(Max(Id)+1,1) from Catalog)
where Sequence_Name='Catalog'
update Sequences
set Sequence_NextId=(select Isnull(Max(BulletinId)+1,1) from Bulletin)
where Sequence_Name='Bulletin'
update Sequences
set Sequence_NextId=(select Isnull(Max(CommodityId)+1,1) from Commodity)
where Sequence_Name='Commodity'
update Sequences
set Sequence_NextId=(select Isnull(Min(CommodityId)-1,-1) from Commodity)
where Sequence_Name='RetailCommodity'
GO
/****** Object:  StoredProcedure [dbo].[updateCommodityStockCurrentRetailPrice]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[updateCommodityStockCurrentRetailPrice]  AS

DECLARE @RetailPrice Money
DECLARE @CurrentRetailPrice Money
Declare @CommodityId int

BEGIN TRAN
DECLARE CS cursor for Select CommodityId from CommodityStock
where CurrentRetailPrice is null
open cs

fetch next from CS
into @CommodityId

while @@FETCH_STATUS = 0
begin
  Select @RetailPrice=RetailPrice from Commodity
  where CommodityId=@CommodityId

  Update CommodityStock set RetailPrice=CurrentRetailPrice,CurrentRetailPrice = @RetailPrice
  where CommodityId=@CommodityId
 
  fetch next from CS
  into @CommodityId
end
CLOSE CS
DEALLOCATE CS
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UpdateCommodityStock_Web]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
根据各零售店的InoutStockTable表中记录来改变服务器中各店的库存(用于连锁版本),先查有无此批号的药,有则修改数量和金额,无则插入
***********************************************************************/

CREATE PROCEDURE [dbo].[UpdateCommodityStock_Web]
(
@Guid    uniqueidentifier,
@EmbranchmentId    smallint,
@StockId    tinyint,
@CommodityId    int,
@BatchCode    varchar    (50),
@CurAmount    decimal    (18,4),
@CurCostPrice    decimal    (18,4),
@CurSalePrice    decimal    (18,4),
@CurBatchSalePrice    decimal    (18,4),
@CurCostSumMoney    decimal    (18,4),
@CurSaleSumMoney    decimal    (18,4),
@ProductDate    datetime,
@InvalidateDate    datetime,
@CommodityName    varchar    (100),
@Spec    varchar    (200),
@DoseTypeName    varchar    (50),
@ProducingArea    varchar    (100),
@Unit    varchar    (50),
@BusinessName    varchar    (50),
@AuthorizeCode    varchar    (100),
@CustomCode    varchar    (50),
@CounterId    tinyint    ,
@CounterName    varchar    (50),
@IsZY    smallint    ,
@PackingId    int    ,
@PackingName    varchar    (50),
@CustomStr    varchar    (100),
@ProductName    varchar    (100),
--@IsMedicare    int    ,
@IsMemberPrice    bit,
@AuditDate datetime,
@BillType tinyint


)
AS


    /*定义CommodityStock对应的局部变量*/

    DECLARE @CostPrice decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)
    DECLARE @SumCost decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @SumRetail decimal (18,4)

 

    DECLARE @RowCount int

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
 

    if @BillType=11--零售调价单
    begin
          Update CommodityStock     /*修改库存中对应的记录*/
           set CurrentRetailPrice=@CurSalePrice,SumRetail=@CurSalePrice*Amount,RetailPrice=CurrentRetailPrice
              where EmbranchmentId=@EmbranchmentId
                          and CommodityId=@CommodityId
                          and PackingId=@PackingId
                         and DepotId= @StockId
    end
    else
    begin
    SELECT @CostPrice=CostPrice,@Amount_cs=Amount,@RetailPrice=RetailPrice
    FROM  CommodityStock(UPDLOCK)
    where  DepotId= @StockId and EmbranchmentId=@EmbranchmentId and CommodityId=@CommodityId and  PackingId=@PackingId and  BatchCode=@BatchCode
    select @RowCount =@@ROWCOUNT
    IF @RowCount=0 --库存中无此药品则插入
    BEGIN
        Insert into CommodityStock(DepotId,        EmbranchmentId,   CommodityId,    InOrder,PackingId,    BatchCode,     ProductDate,   InvalidateDate,     InstockDate,  CostPrice,         RetailPrice,             Amount,     FactAmount,Odds,   SumCost,                              SumRetail,                                 CommodityName,     Spec,     DoseTypeName,    ProducingArea, Unit,     AuthorizeCode,   SpellCode,    TXM,   CustomCode,     CurrentRetailPrice,IsChinese,CounterId,     CounterName,DataVersion,PreMemberPrice,CurrentMemberPrice,UpperLimit,LowerLimit,PackingName,    CustomStr,   ProductName,IsMemberPrice,         IsDiscount,IsScore)
                                       values(@StockId, @EmbranchmentId,@CommodityId,  1,        @PackingId, @BatchCode ,@ProductDate,@InvalidateDate,   @AuditDate  ,@CurCostPrice,@CurSalePrice,@CurAmount,@CurAmount,null,     @CurAmount*@CurCostPrice, @CurAmount*@CurSalePrice,@CommodityName,    @Spec,  @DoseTypeName,@ProducingArea,@Unit,@AuthorizeCode,null,              null,   @CustomCode,@CurSalePrice,    @IsZY,     @CounterId,                   @CounterName,1,                      0,                         0,                     null,    null,           @PackingName ,@CustomStr,@ProductName ,@IsMemberPrice ,null,          null)
        if @@error <>0
        begin
             RETURN -1
        end

        Update InoutStockTable Set  Status=1 where Guid=@Guid
    END
    else
    begin--库存中有此药品则根据InoutStockTable中的CurAmount等修改库存

                Update CommodityStock
                    set CostPrice=@CurCostPrice,Amount=@CurAmount,  FactAmount=@CurAmount,SumCost=@CurAmount*@CurCostPrice,RetailPrice=@CurSalePrice,SumRetail=@CurAmount*@CurSalePrice,CurrentRetailPrice=@CurSalePrice          
               where DepotId=@StockId
                  and EmbranchmentId=@EmbranchmentId
                  and CommodityId=@CommodityId
                  and BatchCode=@BatchCode
                  and PackingId=@PackingId
               if @@error <>0
               begin
                   RETURN -1
               end

              Update InoutStockTable Set  Status=1 where Guid=@Guid
    end
    end

   RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[UpdateCommodityStock]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateCommodityStock]  AS

DECLARE @CommodityId INT
DECLARE @CommodityName VARCHAR(100)
DECLARE @Spec VARCHAR(50)
DECLARE @DoseTypeName VARCHAR(50)
DECLARE @ProducingArea VARCHAR(50)
DECLARE @Unit VARCHAR(50)
DECLARE @AuthorizeCode VARCHAR(50)
DECLARE @SpellCode VARCHAR(50)
DECLARE @RetailPrice money
DECLARE @Amount decimal(18,4)
DECLARE @TXM varchar(60)
BEGIN TRAN
DECLARE CS cursor for
Select CommodityId,Amount from CommodityStock
open cs

fetch next from CS
into @CommodityId,@Amount

while @@FETCH_STATUS = 0
begin
  Select @CommodityName=GeneralName,
         @Spec=Spec,
         @DoseTypeName=DoseType,
         @ProducingArea=ProducingArea,
@Unit=Unit,
@SpellCode=SpellCode,
@AuthorizeCode=AuthorizeCode,
@RetailPrice=RetailPrice,
@TXM=TXM
  from Commodity
  where CommodityId=@CommodityId

  if @@ROWCOUNT =0
  begin
         Select @CommodityName=GeneralName,
         @Spec=Spec,
         @DoseTypeName=DoseType,
         @ProducingArea=ProducingArea,
         @Unit=Unit,
         @SpellCode=SpellCode,
         @AuthorizeCode=AuthorizeCode,
         @RetailPrice=RetailPrice,
         @TXM=TXM
         from CommodityStandard
  where CommodityId=@CommodityId
      
  end

  Update CommodityStock
  set CommodityName=@CommodityName,
         Spec=@Spec,
         DoseTypeName=@DoseTypeName,
         ProducingArea=@ProducingArea,
Unit=@Unit,
SpellCode=@SpellCode,
AuthorizeCode=@AuthorizeCode,
RetailPrice=@RetailPrice,
SumRetail=@RetailPrice*@Amount,
TXM=@TXM
  where CommodityId=@CommodityId
 
  fetch next from CS
  into @CommodityId,@Amount
end
CLOSE CS
DEALLOCATE CS
COMMIT
GO
/****** Object:  StoredProcedure [dbo].[UploadMemberCardChangeLog]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UploadMemberCardChangeLog]
(
    @BillType TINYINT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @CardCode VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @PreMoney DECIMAL(18,4),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @DataVersion BIGINT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
        @ProviderId  INT
   
)
AS

    DECLARE @UPDATECARD_ERROE INT
    DECLARE @INSERTLOG_ERROR INT
    DECLARE @guid UNIQUEIDENTIFIER
    DECLARE @CardChangeMoney DECIMAL(18,4)
    DECLARE @CheckOut BIT
    DECLARE @DiffMoney DECIMAL(18,4)
    DECLARE @Shadiness BIT
    DECLARE @SubValue DECIMAL(18,4)
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId INT
    DECLARE @Name VARCHAR(20)
    DECLARE @PreviousVersion BIGINT
    DECLARE @CurVersion BIGINT
    DECLARE @OriginDateTime DATETIME
    DECLARE @SynchronizeDateTime DATETIME
 
    SELECT * FROM MemberCard
    WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
    IF @@ROWCOUNT=0
    BEGIN
        SELECT @ErrorInfoId=-1
        SELECT @ErrorMessage='此卡尚未发出'
        RETURN -1
    END
    IF @@ROWCOUNT>0
    BEGIN
        SELECT @ErrorInfoId=-2
        SELECT @ErrorMessage='此卡多次发出'
        RETURN -2
     END
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN
 
  SELECT @CardChangeMoney=ChangeMoney FROM MemberCardChangeLogTemp
  WHERE  EmbranchmentId=@EmbranchmentId
  AND BillId=@BillId
  AND BillType=@BillType
  AND CardCode=@CardCode
  IF @@ROWCOUNT=0
  BEGIN
/*
IF (@BillType=14)
    BEGIN
        UPDATE MemberCard
        SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF(@BillType=15)
    BEGIN
        UPDATE MemberCard SET Password = @Password
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF(@BillType=18)
    BEGIN
        UPDATE MemberCard SET Status=@Status
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    
    IF(@BillType=19)
    BEGIN
        UPDATE MemberCard SET Status=@Status
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END      
    IF (@BillType=20)
    BEGIN
        UPDATE MemberCard
        SET CustomerId = @CustomerId,CustomerName = @CustomerName,Score = @Score, SumConsumed = @Sumconsumed,CardTypeId = @CardTypeId,CardLevelId = @CardLevelId,CardLevelName = @CardLevelName,Status = @Status,Password = @Password,Foregift = @Foregift,Discount = 1,BeginTime = @BeginTime,CancelTime = @CancelTime,SuspendTime = @SuspendTime,LimitCount = @LimitCount,UsedCount = @UsedCount,Remark = @Remark,Deleted = @Deleted,SpellCode=@SpellCode,DataVersion=@DataVersion,SumAllMoney=@SumAllMoney
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
        UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
        WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
    IF (@BillType=16)
    BEGIN
        UPDATE MemberCard
        SET  SumAllMoney=SumAllMoney+abs(@ChangeMoney)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    UPDATE MemberCard
        SET  Balance=Balance+abs(@ChangeMoney)
    WHERE Code = @Code and ISNULL( Deleted,0)<>1
    END
   IF(@BillType=33)
       BEGIN
           UPDATE MemberCard
           SET Balance=0,Foregift=0,Deleted=1
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END

     IF(@BillType=17)
       BEGIN
           UPDATE MemberCard
           SET DrawCard=ISNULL(DrawCard,0)+abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
           UPDATE MemberCard
           SET Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
           WHERE Code=@Code AND ISNULL(Deleted,0)<>1
       END
     IF(@BillType=22)
     BEGIN
     UPDATE MemberCard
         SET deleted=1
         WHERE Code = @Code and ISNULL( Deleted,0)<>1
         UPDATE MembercardChangeLog SET Deleted=1
         WHERE CardCode=@Code and ISNULL( Deleted,0)<>1
         UPDATE  InoutStockTableCard SET Deleted=1
         WHERE CardCode=@Code and ISNULL(Deleted,0)<>1
     END
*/

     IF (@BillType=5)
         BEGIN
           --余额
             UPDATE MemberCard
             SET  Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
               
             --计算总消费额
             UPDATE MemberCard
             SET    SumConsumed = ISNULL(SumConsumed,0)+abs( @ChangeMoney)
         WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
        
         END
   IF (@BillType=26)
        BEGIN
           --余额
           UPDATE MemberCard
           SET  Balance=ISNULL(Balance,0)+abs(@ChangeMoney)
       WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
         --计算总退货额
           UPDATE MemberCard
           SET    ReturnCard = ISNULL(ReturnCard,0) + abs(@ChangeMoney)
       WHERE Code = @CardCode and ISNULL( Deleted,0)<>1              
        END
   IF(@BillType=31)
         BEGIN
            --返利
        UPDATE MemberCard
            SET  Balance=ISNULL(Balance,0)+abs(@ChangeMoney)
        WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
             --累计返利总额
        UPDATE MemberCard
            SET  ReturnPayCard=ISNULL(ReturnPayCard,0)+abs(@ChangeMoney)
        WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
         END 
   IF(@BillType=32)
        BEGIN
           --取消返利
           UPDATE MemberCard
           SET  Balance=ISNULL(Balance,0)-abs(@ChangeMoney)
       WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
   
           --累计取消返利总额
       UPDATE MemberCard
           SET  CancelReturnPayCard=ISNULL(CancelReturnPayCard,0)+abs(@ChangeMoney)
       WHERE Code = @CardCode and ISNULL( Deleted,0)<>1
                    
        END

         
      SELECT @UPDATECARD_ERROE=@@ERROR
      IF @@ERROR <>0
            BEGIN
               SELECT @ErrorMessage='更新会员卡失败!'
               SELECT @ErrorInfoId=-13
               ROLLBACK
               RETURN -13
            END
      SELECT @DiffMoney=0
      SELECT @CardChangeMoney=0
      SELECT @CheckOut=0
      SELECT @Shadiness=0
      SELECT @Remark='卡中改变金额与终端库尚未比对'
   END
   ELSE
   BEGIN
      SELECT @CheckOut=1
      SELECT @DiffMoney=@ChangeMoney-@CardChangeMoney
      IF @DiffMoney=0
      BEGIN
          SELECT @Shadiness=0
          SELECT @Remark='卡中改变金额与终端库中一致'
      END
      ELSE
      BEGIN
         SELECT @Shadiness=1
         SELECT @Remark='卡中改变金额与终端库中不一致'
      END  
    END
      
       SELECT @guid=NEWID()

       INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney,  Balance,CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard, PayCard,  PayKYB,PaySYB    ,PayYB,        PayTypeStr,PayMoney,ProviderId,DataVersion,CheckOut,CardChangeMoney,DiffMoney,Shadiness)
       VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@CardCode,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@PreMoney,   @ChangeMoney,  @Balance,   @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @ReturnPayCard,    @PayCard,@PayKYB,@PaySYB    ,@PayYB,@PayTypeStr,@PayMoney,@ProviderId,@DataVersion,@CheckOut,@CardChangeMoney,@DiffMoney,@Shadiness)
             IF @@ERROR <>0
                     BEGIN
                          SELECT @ErrorMessage='插入会员卡日志失败!'
                          SELECT @ErrorInfoId=-14
                          ROLLBACK
                          RETURN -14
                     END
              SELECT @CurVersion=CurVersion,
               @SynchronizeDateTime = SynchronizeDateTime
               FROM DataVersion(UPDLOCK)
               WHERE EmbranchmentId=@EmbranchmentId
               AND DataVersionId=18
               IF @@ROWCOUNT = 0
                     BEGIN
                         SELECT @ErrorMessage='取版本出错!'
                         SELECT @ErrorInfoId =-15
                         ROLLBACK
                         RETURN -15                
                    END
                 UPDATE DataVersion
                 SET  PreviousVersion=@CurVersion,CurVersion=@CurVersion+1,
                 OriginDateTime=@SynchronizeDateTime, SynchronizeDateTime=getDate()
                 WHERE EmbranchmentId=@EmbranchmentId
                 AND DataVersionId=18
                 IF @@ERROR <>0
                     BEGIN
                          SELECT @ErrorMessage='更新版本失败!'
                          SELECT @ErrorInfoId=-16
                          ROLLBACK
                          RETURN -16
                     END
 
               -- Success. Commit the transaction.
        SELECT @ErrorMessage = '会员卡更新成功' --cast(@guid as varchar(60))
        SELECT @ErrorInfoId=1
           COMMIT TRAN
                RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[InsertLocalMemberCardChangeLog]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[InsertLocalMemberCardChangeLog]
(
    @BillType TINYINT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
        @ReturnMoney DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
        @Foregift DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
        @ReturnCard DECIMAL(18,4),
        @PreMoney DECIMAL(18,4),
        @ProviderId  INT
   
)
AS

    DECLARE @INSERTLOG_ERROR INT
    DECLARE @guid uniqueidentifier
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId INT
    DECLARE @Name VARCHAR(20)
    DECLARE @PreviousVersion BIGINT
    DECLARE @CurVersion BIGINT
    DECLARE @OriginDateTime DATETIME
    DECLARE @SynchronizeDateTime DATETIME
    IF(@BillType=17 OR @BillType=22 )
        BEGIN
           SELECT @ChangeMoney=-abs(@ChangeMoney)
        END
    ELSE
        BEGIN
           SELECT @ChangeMoney=abs(@ChangeMoney)
        END
 
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

    SELECT @guid=NEWID()
    SELECT @CurVersion=CurVersion,
           @SynchronizeDateTime = SynchronizeDateTime
           FROM DataVersion(UPDLOCK)
           WHERE EmbranchmentId=@EmbranchmentId
           AND DataVersionId=18
           IF @@ROWCOUNT = 0
               BEGIN
                  SELECT @ErrorMessage='取版本出错!'
                  SELECT @ErrorInfoId =-15
                  ROLLBACK
                  RETURN -15                
               END
   
    IF (@BillType!=5 AND  @BillType!=26 AND @Billtype!=21 AND @BillType!=33  )
    BEGIN
        SELECT @CurVersion=@CurVersion+1
        INSERT INTO MemberCardChangeLog (Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,PayCard,ReturnPayCard,PaySYB,PayKYB,PayYB,ProviderId,DataVersion)
        VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@PreMoney,@ChangeMoney,@PreMoney+@ChangeMoney,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,0,0,0,0,0,0,@ProviderId,@CurVersion)
     
    END
    ELSE
    BEGIN

    IF(@BillType=21)
         BEGIN 
               SELECT @CurVersion=@CurVersion+1
               INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney, ChangeMoney, Balance,  CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,  PayCard ,PayMoney,PaySYB,PayKYB,PayYB,ProviderId,DataVersion)
               VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转入押金',0,   -abs(@Foregift),0, @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,  0,    0,0,0,0,0,@ProviderId, @CurVersion)
            
               SELECT @CurVersion=@CurVersion+1
               INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney, Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayMoney,PaySYB,PayKYB,PayYB,ProviderId,DataVersion)
               VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转入余额',0,   +abs(@Balance),@Balance,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, 0, 0,0,   0,    0,0,@ProviderId,@CurVersion)
           
         END

    IF(@BillType=33)
         BEGIN 
               SELECT @CurVersion=@CurVersion+1
               INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney, ChangeMoney, Balance,  CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,  PayCard ,PayMoney,PaySYB,PayKYB,PayYB,ProviderId,DataVersion)
               VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出押金',@Balance,   -abs(@Foregift),@Balance, @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,  0,    0,0,0,0,0,@ProviderId, @CurVersion)
            
               SELECT @CurVersion=@CurVersion+1
               INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney, Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayMoney,PaySYB,PayKYB,PayYB,ProviderId,DataVersion)
               VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转出余额',@Balance, -@Balance, 0,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, 0, 0,0,   0,    0,0,@ProviderId,@CurVersion)
           
         END
               
   IF ( @BillType=5 )
         BEGIN
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney,  Balance,CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayKYB,PaySYB    ,PayYB,    PayTypeStr,PayMoney,ProviderId,DataVersion)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@PreMoney,   -abs(@PayCard),    @PreMoney-abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,  abs(@ReturnPayCard),    @PayCard,@PayKYB,@PaySYB,@PayKYB+@PaySYB,@PayTypeStr,@PayMoney-@ReturnMoney,@ProviderId,@CurVersion)
          
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney,  ChangeMoney,Balance,CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,     ReturnPayCard, PayCard ,PayKYB,PaySYB,PayYB, PayTypeStr,PayMoney,ProviderId,DataVersion)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '返利',   @PreMoney-abs(@PayCard),  abs(@ReturnPayCard),@PreMoney-abs(@PayCard)+abs(@ReturnPayCard),    @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,  0,    0,0,0,    0,@PayTypeStr,0,@ProviderId,@CurVersion)
           
         END
    IF( @BillType=26 )
         BEGIN

             SELECT @CurVersion=@CurVersion+1
              --记录销退
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,  ChangeMoney,  Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,ReturnPayCard,     PayCard,PayKYB,PaySYB    ,PayYB,  PayTypeStr,PayMoney,ProviderId,DataVersion)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@PreMoney,   +abs(@PayCard), @PreMoney+abs(@PayCard),      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, abs(@ReturnPayCard),    -abs(@PayCard),    0,0,0,@PayTypeStr,0,@ProviderId,@CurVersion)

             --取消返利
             SELECT @CurVersion=@CurVersion+1
             INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,   PreMoney, ChangeMoney, Balance, CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,  ReturnPayCard, PayCard,     PayKYB,PaySYB    ,PayYB,  PayTypeStr,PayMoney,ProviderId,DataVersion)
             VALUES(@guid,@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,   '取消返利', @PreMoney+abs(@PayCard),    -abs(@ReturnPayCard), @PreMoney+abs(@PayCard)-abs(@ReturnPayCard),  @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark  ,0,0,0,0,0,@PayTypeStr,0,@ProviderId,@CurVersion)
           
         END


    END

   SELECT @INSERTLOG_ERROR = @@ERROR

   IF @INSERTLOG_ERROR <> 0
   BEGIN
       SELECT @ErrorMessage = '写日志失败'
       SELECT @ErrorInfoId=-14
       ROLLBACK TRAN
       RETURN -14
   END

   UPDATE DataVersion
   SET  PreviousVersion=@CurVersion,CurVersion=@CurVersion,
   OriginDateTime=@SynchronizeDateTime, SynchronizeDateTime=getDate()
   WHERE EmbranchmentId=@EmbranchmentId
   AND DataVersionId=18
   IF @@ERROR <>0
        BEGIN
           SELECT @ErrorMessage='更新版本失败!'
           SELECT @ErrorInfoId=-16
           ROLLBACK
           RETURN -16
        END

       -- Success. Commit the transaction.
   SELECT @ErrorMessage = '会员卡更新成功'
   SELECT @ErrorInfoId=1
   COMMIT TRAN
   RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[NewCard]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[NewCard]
(
    @BillType TINYINT,
        @CardId INT,
    @BillCode VARCHAR(50),
    @BillCodeName VARCHAR(50),
    @Code VARCHAR(50),
    @Score INT,
    @CustomerId INT,
    @CustomerName VARCHAR(50),
    @Balance DECIMAL(18,4),
    @SumConsumed DECIMAL(18,4),
    @CardTypeId INT,
    @CardLevelId TINYINT,
    @CardLevelName VARCHAR(50),
    @Status TINYINT,
    @Password VARCHAR(20),
    @Foregift DECIMAL(18,4),
    @Discount DECIMAL(18,4),
    @BeginTime DATETIME,
    @CancelTime DATETIME,
    @SuspendTime DATETIME,
    @LimitCount INT,
    @UsedCount INT,
    @PreMoney DECIMAL(18,4),
    @ChangeMoney DECIMAL(18,4),--消费时为实收款
    @Remark VARCHAR(255),
    @Deleted BIT,
    @BusinessId INT,
    @BusinessName VARCHAR(50),
    @BusinessDate DATETIME,
    @ErrorInfoId INT OUTPUT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @BillId INT,
    @EmbranchmentId INT,
    @EmbranchmentName VARCHAR(50),
    @SpellCode VARCHAR(50),
    @DataVersion BIGINT,
    @SumAllMoney DECIMAL(18,4),
    @orderno INT OUTPUT,
    @PayCard    DECIMAL(18,4),
    @ReturnPayCard DECIMAL(18,4),
    @PayMoney    DECIMAL(18,4),
    @ReturnMoney    DECIMAL(18,4),
    @PayKYB    DECIMAL(18,4),
    @PaySYB    DECIMAL(18,4),
    @PayYB    DECIMAL(18,4),
    @PayCardMoneyBefore    DECIMAL(18,4),
    @PayCardMoneyAfter    DECIMAL(18,4),
    @PayTypeStr VARCHAR(50),
        @Code_CZ VARCHAR(50),
        @ReturnCard DECIMAL(18,4),
        @CancelReturnPayCard DECIMAL(18,4),
        @MissCash DECIMAL(18,4),
        @YBConsumed DECIMAL(18,4),
        @ProviderId INT

)
AS

    DECLARE @INSERTCARD_ERROE INT
    DECLARE @INSERTLOG_ERROR INT
/*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId INT
    DECLARE @Name VARCHAR(20)
    DECLARE @PreviousVersion BIGINT
    DECLARE @CurVersion BIGINT
    DECLARE @OriginDateTime DATETIME
    DECLARE @SynchronizeDateTime DATETIME

    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE                                    --事务序列化
    BEGIN TRAN

    DECLARE @new_balance NUMERIC(18,4)
    SELECT @new_balance=@Balance
    IF (@new_balance IS NULL)
    BEGIN
       SELECT @new_balance=0
    END

        SELECT * FROM MemberCard WHERE Code=@Code AND ISNULL( Deleted,0)<>1
        IF(@@ROWCOUNT<>0)
             BEGIN
                 SELECT @ErrorMessage = '此卡已发出,不允许重复发卡'
             SELECT @ErrorInfoId=-5
                 ROLLBACK
                 RETURN
             END
    -- Execute the INSERTCARD statement.
        SELECT * FROM MemberCard WHERE Code=@Code AND Deleted=0 AND CustomerId=@CustomerId
        IF(@@ROWCOUNT=0)
        BEGIN
            IF(@BillType=21)
                 BEGIN
                      INSERT INTO MemberCard(CardId,EmbranchmentId,EmbranchmentName,Code,Score,CustomerId,CustomerName,SumConsumed,CardTypeId,CardLevelId,CardLevelName,Status,Password,Foregift,Discount,BeginTime,CancelTime,SuspendTime,LimitCount,UsedCount,Remark,Deleted,SpellCode,DataVersion,SumAllMoney,Balance,MissCash,YBConsumed,CancelReturnPayCard,ReturnCard,ReturnPayCard,ProviderId)
                  VALUES(@CardId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CustomerId,@CustomerName,@SumConsumed,@CardTypeId,@CardLevelId,@CardLevelName,@Status,@Password,@Foregift,1,@BeginTime,@CancelTime,@SuspendTime,@LimitCount,@UsedCount,@Remark,@Deleted,@SpellCode,@DataVersion,@SumAllMoney,@Balance,@MissCash,@YBConsumed,@CancelReturnPayCard,@ReturnCard,@ReturnPayCard,@ProviderId)
                 END
            ELSE
               BEGIN
               INSERT INTO MemberCard(CardId,EmbranchmentId,EmbranchmentName,Code,Score,CustomerId,CustomerName,SumConsumed,CardTypeId,CardLevelId,CardLevelName,Status,Password,Foregift,Discount,BeginTime,CancelTime,SuspendTime,LimitCount,UsedCount,Remark,Deleted,SpellCode,DataVersion,SumAllMoney,Balance,MissCash,YBConsumed,ProviderId)
               VALUES(@CardId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CustomerId,@CustomerName,@SumConsumed,@CardTypeId,@CardLevelId,@CardLevelName,@Status,@Password,@Foregift,1,@BeginTime,@CancelTime,@SuspendTime,@LimitCount,@UsedCount,@Remark,@Deleted,@SpellCode,@DataVersion,@SumAllMoney,0,0,0,@ProviderId)
                END
    END
        ELSE
         BEGIN 
             SELECT @ErrorMessage = '该顾客已经办理了会员卡业务,不允许再次办理'
         SELECT @ErrorInfoId=-1
             ROLLBACK
             RETURN
          END
             /*
             UPDATE MemberCard
             SET Deleted=0,
             EmbranchmentId=@EmbranchmentId,
             EmbranchmentName=@EmbranchmentName,
             Code=@Code,
             Score=@Score,
             CustomerId=@CustomerId,
             CustomerName=@CustomerName,
             SumConsumed=@SumConsumed,
             CardTypeId=@CardTypeId,
             CardLevelId=@CardLevelId,
             CardLevelName=@CardLevelName,
             Status=@Status,
             Password=@Password,
             Foregift=@Foregift,
             Discount=1,
             BeginTime=@BeginTime,
             CancelTime=@CancelTime,
             SuspendTime=@SuspendTime,
             LimitCount=@LimitCount,
             UsedCount=@UsedCount,
             Remark=@Remark,
             SpellCode=@SpellCode,
             DataVersion=@DataVersion,
             SumAllMoney=@SumAllMoney,
             Balance=0,
             MissCash=0,
             YBConsumed=0
             WHERE Code=@Code
*/

       
    -- Set a variable to the error value for the INSERTCARD statement.
    SELECT @INSERTCARD_ERROE = @@ERROR
        SELECT @CurVersion=CurVersion,
           @SynchronizeDateTime = SynchronizeDateTime
           FROM DataVersion(UPDLOCK)
           WHERE EmbranchmentId=@EmbranchmentId
           AND DataVersionId=18
           IF @@ROWCOUNT = 0
           BEGIN
              SELECT @ErrorMessage='取版本出错!'
              SELECT @ErrorInfoId =-15
              ROLLBACK
              RETURN -15                
           END
   

    -- Execute the INSERTLOG statement.
        IF(@BillType=21 )
              BEGIN
                   SELECT @CurVersion=@CurVersion+1
                   INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  ReturnMoney,PayMoney,ProviderId)
                   VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转入押金',0,   abs(@Foregift),            0,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @CurVersion,    0,    0,    0,0,@ProviderId)
                   SELECT @CurVersion=@CurVersion+1
                   INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,            ChangeMoney,            Balance,                             CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark, DataVersion,ReturnPayCard,     PayCard,  ReturnMoney,PayMoney,ProviderId)
                   VALUES(NEWID(),@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,'转入余额',0,   abs(@Balance),            @Balance,      @CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark, @CurVersion,    0,    0,    0,0,@ProviderId)
               END
       
        ELSE
           BEGIN
               SELECT @CurVersion=@CurVersion+1
           INSERT INTO MemberCardChangeLog(Guid, BillId, EmbranchmentId, EmbranchmentName, CardCode,Score, CardTypeId, CardLevelId, BillType, BillCode, BillCodeName,PreMoney,         ChangeMoney,      Balance,     CustomerId,  CustomerName,BusinessId,BusinessName,BusinessDate,Remark,PayMoney,DataVersion,ReturnPayCard,ProviderId)
               VALUES(newid(),@BillId,@EmbranchmentId,@EmbranchmentName,@Code,@Score,@CardTypeId,@CardLevelId,@BillType,@BillCode,@BillCodeName,@PreMoney,@ChangeMoney,@new_balance,@CustomerId,@CustomerName,@BusinessId,@BusinessName,@BusinessDate,@Remark,@PayMoney,@CurVersion,@ReturnPayCard,@ProviderId)
        END
    -- Set a variable to the error value for the INSERTLOG statement.
    SELECT @INSERTLOG_ERROR = @@ERROR
        UPDATE DataVersion
        SET  PreviousVersion=@CurVersion,CurVersion=@CurVersion,
        OriginDateTime=@SynchronizeDateTime, SynchronizeDateTime=getDate()
        WHERE EmbranchmentId=@EmbranchmentId
        AND DataVersionId=18
        IF @@ERROR <>0
            BEGIN
               SELECT @ErrorMessage='更新版本失败!'
               SELECT @ErrorInfoId=-16
               ROLLBACK
               RETURN -16
           END

    -- Test the error values.
    IF @INSERTCARD_ERROE = 0 AND @INSERTLOG_ERROR = 0
    BEGIN
           -- Success. Commit the transaction. 
        SELECT @ErrorMessage = '会员卡保存成功'
        SELECT @ErrorInfoId=1
           COMMIT TRAN
    END
    ELSE
    BEGIN
           -- An error occurred. Indicate which operation(s) failed and roll back the transaction.
           IF @INSERTCARD_ERROE <> 0
                BEGIN
                 SELECT @ErrorMessage = '会员卡保存失败'
            SELECT @ErrorInfoId=-2
                    ROLLBACK
                    RETURN -2
                END

           IF @INSERTLOG_ERROR <> 0
                BEGIN
                  SELECT @ErrorMessage = '写日志失败'
            SELECT @ErrorInfoId=-3
                    ROLLBACK
                    RETURN -3
                END

           ROLLBACK TRAN
    END
GO
/****** Object:  StoredProcedure [dbo].[MonthReckoning_Audit]    Script Date: 03/02/2011 16:53:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[MonthReckoning_Audit]
(
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS

  DECLARE @Sequence_NextId int

  DECLARE @EmbranchmentId SMALLINT
  DECLARE @InOrder int
  DECLARE @InvalidateDate datetime
  DECLARE @InstockDate datetime
  DECLARE @CostPrice decimal (18,4)
  DECLARE @CostPrice_pre decimal (18,4)
  DECLARE @FactAmount decimal (18,4)
  DECLARE @RetailPrice_pre decimal (18,4)
  DECLARE @Amount_cs decimal (18,4)
  DECLARE @Amount_pre decimal (18,4)
  DECLARE @SumCost decimal (18,4)
  DECLARE @SumCost_pre decimal (18,4)
  DECLARE @SumRetail decimal (18,4)
  DECLARE @DepotId int
  DECLARE @CommodityId int
  DECLARE @BatchCode varchar(50)
  DECLARE @ProductDate datetime
  DECLARE @RetailPrice decimal(18,4)
  DECLARE @Amount decimal(18,4)
  DECLARE @Odds  decimal(18,4)
  DECLARE @CommodityName varchar (100)
  DECLARE @Spec varchar (50)
  DECLARE @DoseTypeName varchar(50)
  DECLARE @ProducingArea varchar(50)
  DECLARE @Unit varchar(50)
  DECLARE @AuthorizeCode varchar(50)
  DECLARE @SpellCode varchar(50)
  DECLARE @TXM varchar(60)
  DECLARE @CustomCode varchar(50)
  DECLARE @CurrentRetailPrice decimal (18,4)
  DECLARE @IsChinese bit
  DECLARE @CounterId tinyint
  DECLARE @IYear  smallint
  DECLARE @IMonth  smallint

  SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
  BEGIN TRAN

--取分支机构
SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'

Select DepotId,    EmbranchmentId,  CommodityId,  InOrder, BatchCode, ProductDate,  InvalidateDate,  InstockDate, CostPrice,
                   RetailPrice,  Amount,     FactAmount,Odds, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,
                   SpellCode,TXM,CustomCode,CurrentRetailPrice,IsChinese,CounterId
        from CommodityStock
        where  Amount >0  and EmbranchmentId=@EmbranchmentId

--检查当前库存(CmmodityStock)中有没有记录,有则月结,没有就不用月结
if @@rowcount>0
begin
--从Sequence中取最大月结ID
  Select  @Sequence_NextId=Sequence_NextId from Sequences where Sequence_Name like 'MonthReckoning'
  if @Sequence_NextId <1
  begin
        SELECT @ErrorMessage='没有找到月结ID!'
        Select @ErrorInfoId=-1
        ROLLBACK
        RETURN -1
  end

--将本店当前库存(CmmodityStock)中所有的
--数量大于零的记录插入到月结库存(MonthReckoning)中
  DECLARE Cur CURSOR FOR
        Select DepotId,    EmbranchmentId,  CommodityId,  InOrder, BatchCode, ProductDate,  InvalidateDate,  InstockDate, CostPrice,
                   RetailPrice,  Amount,     FactAmount,Odds, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,AuthorizeCode,
                   SpellCode,TXM,CustomCode,CurrentRetailPrice,IsChinese,CounterId
        from CommodityStock
        where  Amount >0  and EmbranchmentId=@EmbranchmentId

  open Cur

  fetch next from Cur
            into @DepotId,    @EmbranchmentId,  @CommodityId,  @InOrder, @BatchCode, @ProductDate,  @InvalidateDate,  @InstockDate, @CostPrice,
                   @RetailPrice, @Amount,     @FactAmount,@Odds, @SumCost,  @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,
                   @Unit , @AuthorizeCode,@SpellCode,@TXM,@CustomCode,@CurrentRetailPrice,@IsChinese,@CounterId
  while @@FETCH_STATUS = 0
  Begin
        insert  into  MonthCommodityStock (DepotId,  EmbranchmentId,  CommodityId,  InOrder, MonthReckoningID , BatchCode, ProductDate,  InvalidateDate,  InstockDate, CostPrice,
                   RetailPrice, Amount,     FactAmount,Odds, SumCost,  SumRetail,CommodityName,Spec,DoseTypeName,ProducingArea,
                   Unit , AuthorizeCode,SpellCode,TXM,CustomCode,CurrentRetailPrice,IsChinese,CounterId)
        values (@DepotId,    @EmbranchmentId,  @CommodityId,  @InOrder,@Sequence_NextId ,@BatchCode, @ProductDate,  @InvalidateDate,  @InstockDate, @CostPrice,
                   @RetailPrice, @Amount,     @FactAmount,@Odds, @SumCost,  @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,
                   @Unit , @AuthorizeCode,@SpellCode,@TXM,@CustomCode,@CurrentRetailPrice,@IsChinese,@CounterId)

        if @@error <>0
        begin
               SELECT @ErrorMessage='插入月结库存出错!'
               Select @ErrorInfoId=-2
               ROLLBACK
               RETURN -2
        end

        fetch next from Cur
                  into @DepotId,    @EmbranchmentId,  @CommodityId,  @InOrder, @BatchCode, @ProductDate,  @InvalidateDate,  @InstockDate, @CostPrice,
                        @RetailPrice, @Amount,     @FactAmount,@Odds, @SumCost,  @SumRetail,@CommodityName,@Spec,@DoseTypeName,@ProducingArea,
                        @Unit , @AuthorizeCode,@SpellCode,@TXM,@CustomCode,@CurrentRetailPrice,@IsChinese,@CounterId
  End


  SELECT @IYear = DATEPART(yy, GETDATE())
  SELECT @IMonth = DATEPART(mm, GETDATE())

  --插入月结表
  Insert into MonthReckoning (MonthReckoningID, IYear,IMonth,RecckonTime,Remark)
  Values (@Sequence_NextId ,@IYear, @IMonth,GETDATE(),'')
  if @@error <>0
  begin
         SELECT @ErrorMessage='插入月结出错!'
         Select @ErrorInfoId=-3
         ROLLBACK
         RETURN -3
  end

  --更新InoutStockTable表,把本月的所有发生的记录的"MonthReckoningID"设置为本次的"MonthReckoningID"
Update InoutStockTable
Set MonthReckoningID=@Sequence_NextId
  WHERE (DATEPART(yy, BusinessDate) = @IYear) AND (DATEPART(mm, BusinessDate) =@IMonth)
  if @@error <>0
  begin
         SELECT @ErrorMessage='更新InoutStockTable出错!'
         Select @ErrorInfoId=-4
         ROLLBACK
         RETURN -4
  end

  Update Sequences
      Set Sequence_NextId=@Sequence_NextId+1
   where Sequence_Name like 'MonthReckoning'

  if @@error <>0
  begin
         SELECT @ErrorMessage='更新Sequences出错!'
         Select @ErrorInfoId=-5
         ROLLBACK
         RETURN -5
  end
 
  SELECT @ErrorMessage='月结成功!'
  Select @ErrorInfoId=1
  CLOSE Cur
  DEALLOCATE Cur   
  Commit Tran
  RETURN 0
end
else
begin
         SELECT @ErrorMessage='无库存!'
         Select @ErrorInfoId=-6
         ROLLBACK
         RETURN -6
end
GO
/****** Object:  View [dbo].[V_InoutStockTable]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_InoutStockTable]
                     AS
                     SELECT                dbo.InoutStockTable.Guid,            dbo.InoutStockTable.EmbranchmentId,            dbo.InoutStockTable.StockId,            dbo.InoutStockTable.BillType,            dbo.InoutStockTable.BillId,            dbo.InoutStockTable.BillCode,            dbo.InoutStockTable.BusinessDate,            dbo.InoutStockTable.AuditDate,            dbo.InoutStockTable.RowNum,            dbo.InoutStockTable.CommodityId,            dbo.InoutStockTable.BatchCode,            dbo.InoutStockTable.PreCostPrice,            dbo.InoutStockTable.PreSalePrice,            dbo.InoutStockTable.PreBatchSalePrice,            dbo.InoutStockTable.ChangePrice,            dbo.InoutStockTable.Discount,            dbo.InoutStockTable.DiscountPrice,            dbo.InoutStockTable.OriginalAmount,            dbo.InoutStockTable.PreAmount,            dbo.InoutStockTable.ChangeAmount,            dbo.InoutStockTable.InAmount,            dbo.InoutStockTable.OutAmount,            dbo.InoutStockTable.CurAmount,            dbo.InoutStockTable.PreCostSumMoney,            dbo.InoutStockTable.PreSaleSumMoney,            dbo.InoutStockTable.PreBatchSaleSumMoney,            dbo.InoutStockTable.ChangeSumMoney,            dbo.InoutStockTable.CurCostPrice,            dbo.InoutStockTable.CurSalePrice,            dbo.InoutStockTable.CurBatchSalePrice,            dbo.InoutStockTable.CurCostSumMoney,            dbo.InoutStockTable.CurSaleSumMoney,            dbo.InoutStockTable.CurBatchSaleSumMoney,            dbo.InoutStockTable.ProductDate,            dbo.InoutStockTable.InvalidateDate,            dbo.InoutStockTable.IsAmountChanged,            dbo.InoutStockTable.IsMoneyChanged,            dbo.InoutStockTable.ProviderId,            dbo.InoutStockTable.CustomerId,            dbo.InoutStockTable.InStockId,            dbo.InoutStockTable.OutStockId,            dbo.InoutStockTable.DataVersion,            dbo.InoutStockTable.CommodityName,            dbo.InoutStockTable.Spec,            dbo.InoutStockTable.DoseTypeName,            dbo.InoutStockTable.ProducingArea,            dbo.InoutStockTable.Unit,            dbo.InoutStockTable.CreatorName,            dbo.InoutStockTable.BusinessName,            dbo.InoutStockTable.BillCodeName,            dbo.InoutStockTable.StockName,            dbo.InoutStockTable.EmbranchmentName,            dbo.InoutStockTable.ProviderName,            dbo.InoutStockTable.CustomerName,            dbo.InoutStockTable.InStockName,            dbo.InoutStockTable.OutStockName,            dbo.InoutStockTable.Remark,            dbo.InoutStockTable.AuthorizeCode,            dbo.InoutStockTable.CustomCode,            dbo.InoutStockTable.EntireDisCount,            dbo.InoutStockTable.MonthReckoningID,            dbo.InoutStockTable.CounterId,            dbo.InoutStockTable.CounterName,            dbo.InoutStockTable.IsZY,            dbo.InoutStockTable.PayType,            dbo.InoutStockTable.CardId,            dbo.InoutStockTable.CardCode,            dbo.InoutStockTable.Medicare,            dbo.InoutStockTable.PayCard,            dbo.InoutStockTable.PackingId,            dbo.InoutStockTable.PackingName,            dbo.InoutStockTable.CustomStr,            dbo.InoutStockTable.ProductName,            dbo.InoutStockTable.IsMedicare,            dbo.InoutStockTable.MedicareFlag1,            dbo.InoutStockTable.MedicareFlag2,            dbo.InoutStockTable.MedicareFlag3,            dbo.InoutStockTable.MedicareFlag4,            dbo.InoutStockTable.MedicareFlag5Date,            dbo.InoutStockTable.PaySYB,            dbo.InoutStockTable.PayKYB,            dbo.InoutStockTable.PayYB,            dbo.InoutStockTable.PayCardNO,            dbo.InoutStockTable.PayCardMoneyBefore,            dbo.InoutStockTable.PayCardMoneyAfter,            dbo.InoutStockTable.ReturnPayCard,            dbo.InoutStockTable.PayMoney,            dbo.InoutStockTable.ReturnMoney,            dbo.InoutStockTable.IsMemberPrice,            dbo.InoutStockTable.Status,            dbo.InoutStockTable.CostMemberPrice,            dbo.InoutStockTable.CurMemberPrice,            dbo.InoutStockTable.PreMemberPrice,            dbo.InoutStockTable.SumPayCard,            dbo.InoutStockTable.SumReturnPayCard,            dbo.InoutStockTable.CardDataVersion,            dbo.InoutStockTable.IsLottery,            dbo.InoutStockTable.CompanyId,            dbo.InoutStockTable.CFF,
                        dbo.Commodity.A,
                        dbo.Commodity.B,
                        dbo.Commodity.C,
                        dbo.Commodity.D               FROM dbo.InoutStockTable INNER JOIN dbo.Commodity ON InoutStockTable.CommodityId=Commodity.CommodityId AND InoutStockTable.PackingId=Commodity.PackingId
GO
/****** Object:  View [dbo].[V_EmployeeFunction]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_EmployeeFunction]
AS
SELECT em.EmployeeId, empost.PostId, pf.FunctionId, ft.FuncName, ft.Tag
FROM dbo.Employee em INNER JOIN
      dbo.EmployeePost empost ON em.EmployeeId = empost.EmployeeId INNER JOIN
      dbo.PostFunc pf ON empost.PostId = pf.PostId INNER JOIN
      dbo.FunctionTree ft ON ft.FuncId = pf.FunctionId
GO
/****** Object:  View [dbo].[v_EmployeeAndExamination]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[v_EmployeeAndExamination]
AS
SELECT     dbo.FoodEmbranchmentEmployee.Name AS EmployeeName, dbo.FoodEmbranchmentEmployee.Sex AS EmployeeSex,
                      dbo.FoodEmbranchmentEmployeeExamination.EmbranchmentId, dbo.FoodEmbranchmentEmployeeExamination.EmployeeId,
                      dbo.FoodEmbranchmentEmployeeExamination.CheckDate, dbo.FoodEmbranchmentEmployeeExamination.HealthStatus,
                      dbo.FoodEmbranchmentEmployeeExamination.Additional
FROM         dbo.FoodEmbranchmentEmployee INNER JOIN
                      dbo.FoodEmbranchmentEmployeeExamination ON
                      dbo.FoodEmbranchmentEmployee.EmbranchmentId = dbo.FoodEmbranchmentEmployeeExamination.EmbranchmentId AND
                      dbo.FoodEmbranchmentEmployee.EmployeeId = dbo.FoodEmbranchmentEmployeeExamination.EmployeeId
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
   Begin PaneConfigurations =
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane =
      Begin Origin =
         Top = 0
         Left = 0
      End
      Begin Tables =
         Begin Table = "FoodEmbranchmentEmployee"
            Begin Extent =
               Top = 6
               Left = 38
               Bottom = 121
               Right = 217
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "FoodEmbranchmentEmployeeExamination"
            Begin Extent =
               Top = 6
               Left = 255
               Bottom = 121
               Right = 417
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane =
   End
   Begin DataPane =
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane =
      Begin ColumnWidths = 11
         Column = 5085
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'v_EmployeeAndExamination'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'v_EmployeeAndExamination'
GO
/****** Object:  View [dbo].[V_CommodityPedigree]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_CommodityPedigree]
AS
SELECT dbo.CatalogPedigree.CatalogType, dbo.CatalogPedigree.ParentId,
      dbo.CatalogPedigree.ChildId, dbo.CatalogPedigree.ParentClass,
      dbo.CatalogPedigree.ChildClass, dbo.CatalogPedigree.DataVersion,
      dbo.CatalogPedigree.Deleted, dbo.Commodity.CatalogId,
      dbo.Commodity.CommodityId, dbo.Commodity.ProductName,
      dbo.Commodity.GeneralName, dbo.Commodity.EnglishName,
      dbo.Commodity.ProducingArea, dbo.Commodity.Spec, dbo.Commodity.DoseType,
      dbo.Commodity.AuthorizeCode, dbo.Commodity.Unit, dbo.Commodity.Gmp,
      dbo.Commodity.Otc, dbo.Commodity.Import, dbo.Commodity.Medicare,
      dbo.Commodity.TradePrice, dbo.Commodity.RetailPrice, dbo.Commodity.UnifyCode,
      dbo.Commodity.SpellCode, dbo.Commodity.CustomCode, dbo.Commodity.Guid,
      dbo.Commodity.DataVersion AS Expr1,
      dbo.Commodity.Disabled
FROM dbo.CatalogPedigree RIGHT OUTER JOIN
      dbo.Commodity ON dbo.CatalogPedigree.ChildId = dbo.Commodity.CatalogId AND
      dbo.CatalogPedigree.CatalogType = 2
GO
/****** Object:  View [dbo].[v_cardinout]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[v_cardinout]   
AS   
SELECT   
  dbo.InoutStockTableCard.Guid,   
  dbo.InoutStockTableCard.EmbranchmentId,   
  dbo.InoutStockTableCard.StockId,   
  dbo.InoutStockTableCard.BillType,   
  dbo.InoutStockTableCard.BillId,   
  dbo.InoutStockTableCard.BillCode,   
  dbo.InoutStockTableCard.BusinessDate,   
  dbo.InoutStockTableCard.AuditDate,   
  dbo.InoutStockTableCard.RowNum,   
  dbo.InoutStockTableCard.CommodityId,   
  dbo.InoutStockTableCard.BatchCode,   
  dbo.InoutStockTableCard.PreCostPrice,   
  dbo.InoutStockTableCard.PreSalePrice,   
  dbo.InoutStockTableCard.PreBatchSalePrice,   
  dbo.InoutStockTableCard.ChangePrice,   
  dbo.InoutStockTableCard.Discount,   
  dbo.InoutStockTableCard.DiscountPrice,   
  dbo.InoutStockTableCard.OriginalAmount,   
  dbo.InoutStockTableCard.PreAmount,   
  dbo.InoutStockTableCard.ChangeAmount,   
  dbo.InoutStockTableCard.InAmount,   
  dbo.InoutStockTableCard.OutAmount,   
  dbo.InoutStockTableCard.CurAmount,   
  dbo.InoutStockTableCard.PreCostSumMoney,   
  dbo.InoutStockTableCard.PreSaleSumMoney,   
  dbo.InoutStockTableCard.PreBatchSaleSumMoney,   
  dbo.InoutStockTableCard.ChangeSumMoney,   
  dbo.InoutStockTableCard.CurCostPrice,   
  dbo.InoutStockTableCard.CurSalePrice,   
  dbo.InoutStockTableCard.CurBatchSalePrice,   
  dbo.InoutStockTableCard.CurCostSumMoney,   
  dbo.InoutStockTableCard.CurSaleSumMoney,   
  dbo.InoutStockTableCard.CurBatchSaleSumMoney,   
  dbo.InoutStockTableCard.ProductDate,   
  dbo.InoutStockTableCard.InvalidateDate,   
  dbo.InoutStockTableCard.IsAmountChanged,   
  dbo.InoutStockTableCard.IsMoneyChanged,   
  dbo.InoutStockTableCard.ProviderId,   
  dbo.InoutStockTableCard.CustomerId,   
  dbo.InoutStockTableCard.InStockId,   
  dbo.InoutStockTableCard.OutStockId,   
  dbo.InoutStockTableCard.DataVersion,   
  dbo.InoutStockTableCard.CommodityName,   
  dbo.InoutStockTableCard.Spec,   
  dbo.InoutStockTableCard.DoseTypeName,   
  dbo.InoutStockTableCard.ProducingArea,   
  dbo.InoutStockTableCard.Unit,   
  dbo.InoutStockTableCard.CreatorName,   
  dbo.InoutStockTableCard.BusinessName,   
  dbo.InoutStockTableCard.BillCodeName,   
  dbo.InoutStockTableCard.StockName,   
  dbo.Embranchment.Name as EmbranchmentName,   
  dbo.InoutStockTableCard.ProviderName,   
  dbo.InoutStockTableCard.CustomerName,   
  dbo.InoutStockTableCard.InStockName,   
  dbo.InoutStockTableCard.OutStockName,   
  dbo.InoutStockTableCard.Remark,   
  dbo.InoutStockTableCard.AuthorizeCode,   
  dbo.InoutStockTableCard.CustomCode,   
  dbo.InoutStockTableCard.EntireDisCount,   
  dbo.InoutStockTableCard.MonthReckoningID,   
  dbo.InoutStockTableCard.CounterId,   
  dbo.InoutStockTableCard.CounterName,   
  dbo.InoutStockTableCard.IsZY,   
  dbo.InoutStockTableCard.PayType,   
  dbo.InoutStockTableCard.CardCode,   
  dbo.InoutStockTableCard.PayCard,   
  dbo.InoutStockTableCard.PackingId,   
  dbo.InoutStockTableCard.PackingName,   
  dbo.InoutStockTableCard.CustomStr,   
  dbo.InoutStockTableCard.ProductName,   
  dbo.InoutStockTableCard.IsMedicare,   
  dbo.InoutStockTableCard.MedicareFlag1,   
  dbo.InoutStockTableCard.MedicareFlag2,   
  dbo.InoutStockTableCard.MedicareFlag3,   
  dbo.InoutStockTableCard.MedicareFlag4,   
  dbo.InoutStockTableCard.MedicareFlag5Date,   
  dbo.Commodity.Medicare, 
  dbo.InoutStockTableCard.ReturnPayCard ,
  dbo.InoutStockTableCard.CostMemberPrice
FROM   
  dbo.InoutStockTableCard   
  LEFT OUTER JOIN dbo.Commodity ON (dbo.InoutStockTableCard.CommodityId = dbo.Commodity.CommodityId)   
  LEFT OUTER JOIN dbo.Embranchment ON(dbo.InoutStockTableCard.EmbranchmentId = dbo.Embranchment.EmbranchmentId)
GO
/****** Object:  View [dbo].[UserFunction]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[UserFunction]
AS
SELECT     x.Name AS UserName, k.Path, z.ExFunction1Checked, z.ExFunction2Checked, z.ExFunction3Checked, z.ExFunction4Checked
FROM         dbo.MembershipUser AS x INNER JOIN
                      dbo.ApplicationUserRole AS y ON x.Id = y.UserId INNER JOIN
                      dbo.WebFunctionRole AS z ON y.RoleId = z.RoleId INNER JOIN
                      dbo.WebFunction AS k ON z.WebFunctionId = k.Id
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
   Begin PaneConfigurations =
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane =
      Begin Origin =
         Top = 0
         Left = 0
      End
      Begin Tables =
         Begin Table = "x"
            Begin Extent =
               Top = 6
               Left = 38
               Bottom = 114
               Right = 269
            End
            DisplayFlags = 280
            TopColumn = 8
         End
         Begin Table = "y"
            Begin Extent =
               Top = 6
               Left = 307
               Bottom = 99
               Right = 449
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "z"
            Begin Extent =
               Top = 6
               Left = 487
               Bottom = 84
               Right = 640
            End
            DisplayFlags = 280
            TopColumn = 1
         End
         Begin Table = "k"
            Begin Extent =
               Top = 6
               Left = 678
               Bottom = 99
               Right = 811
            End
            DisplayFlags = 280
            TopColumn = 2
         End
      End
   End
   Begin SQLPane =
   End
   Begin DataPane =
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane =
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'UserFunction'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'UserFunction'
GO
/****** Object:  StoredProcedure [dbo].[updateCommodityIds]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE procedure [dbo].[updateCommodityIds]
as
begin
declare @commodityid int,@ProductName varchar(25)
if exists(select * from sysobjects where name='t' )
drop table t
select commodityId into t from commodity group by commodityId having count(*)>1 order by commodityid
if exists(select * from sysobjects where name='t1')
drop table t1
select commodityId,productName into t1 from commodity where commodityid in(select * from t)
declare current_row cursor for select * from t1
open current_row
fetch next from current_row into @commodityId,@ProductName

while @@fetch_status=0
begin

if @ProductName is null
begin

exec upCommodityid @commodityId
print '第'+@commodityId+'条记录已经更新'
end
fetch next from current_row into @commodityId,@ProductName
end
close current_row
deallocate current_row
drop table t
drop table t1
end

exec up_distinct 'commodity','commodityId'
GO
/****** Object:  StoredProcedure [dbo].[gxcommdotystock]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
create procedure [dbo].[gxcommdotystock]
as
declare @billId int
declare @fss int

DECLARE gxcommodityStock  CURSOR FOR select billId ,fss from c
where fss-fs>1     --声明一个可循环操作的游标

OPEN gxcommodityStock      --打开游标

FETCH next FROM gxcommodityStock INTO @billId,@fss  --游标移到第一个记录

WHILE (@@FETCH_STATUS=0)       --检查游标是不是最后一个,如果不是则进行中间的程序

      BEGIN  
exec foo @fss,@billId     --一段处理程序段

     FETCH next FROM gxcommodityStock INTO @billId,@fss   --游标移到下一个记录

      END

      CLOSE gxcommodityStock       --关闭游标

DEALLOCATE gxcommodityStock       --释放游标
GO
/****** Object:  StoredProcedure [dbo].[ConversionData_Auto_Audit]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[ConversionData_Auto_Audit]
(
    @CommodityId_Old_pra INT,
    @CommodityId_New_pra INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT

)
as
    DECLARE @CommodityId_Old              int
    DECLARE @GeneralName_Old    varchar(100)
    DECLARE @ProductName_Old            varchar(100)
    DECLARE @EnglishName_Old             varchar(200)
    DECLARE @Spec_Old                         varchar(200)
    DECLARE @ProducingArea_Old          varchar(100)
    DECLARE @DoseType_Old                 varchar(50)
    DECLARE @AuthorizeCode_Old           varchar(50)
    DECLARE @Unit_Old                            varchar(50)
    DECLARE @SpellCode_Old                  varchar(100)
    DECLARE @CustomCode_Old                  varchar (50)
    DECLARE @TXM_Old                           varchar (60)  
    DECLARE @ZhongChengYao_Old        bit
    DECLARE @ZhongYaoCai_Old             bit
    DECLARE @ZhongYaoCaiContent_Old  varchar(100)
    DECLARE @ZhongYaoYinPian_Old      bit
    DECLARE @ZhongYaoYinPianContent_Old  varchar(100)
    DECLARE @HXYZJ_Old                     bit
    DECLARE @HXYLY_Old                        bit
    DECLARE @KSS_Old                             bit
    DECLARE @SHYP_Old                          bit
    DECLARE @SWZP_Old                     bit
    DECLARE @SWZPCYM_Old                 bit
    DECLARE @SWZPCXYYP_Old              bit
    DECLARE @SWZPXZDYP_Old              bit
    DECLARE @MZYP_Old                           bit
    DECLARE @MZYPContent_Old              varchar (100)
    DECLARE @JSYP_Old                            bit
    DECLARE @JSYPContent_Old               varchar(100)
    DECLARE @YLYDXYP_Old                    bit
    DECLARE @YLYDXYPContent_Old        varchar(100)
    DECLARE @FSXYP_Old                          bit
    DECLARE @YM_Old                                bit
    DECLARE @Import_Old                           bit
    DECLARE @RetailPrice_Old                    decimal (18,4)


    Select @ErrorMessage='转换完成'
    DECLARE Cur_CommodityStock CURSOR FOR
    Select  CommodityId,CommodityName,Spec,DoseTypeName,ProducingArea,Unit,Upper (AuthorizeCode) as AuthorizeCode,SpellCode,TXM,CustomCode,RetailPrice     from CommodityStock where CommodityId<1000000 and   AuthorizeCode  like '国药准字%'

    open Cur_CommodityStock

    fetch next from Cur_CommodityStock
             into   @CommodityId_Old , @GeneralName_Old , @Spec_Old , @DoseType_Old,@ProducingArea_Old,@Unit_Old , @AuthorizeCode_Old,@SpellCode_Old,@TXM_Old,@CustomCode_Old,@RetailPrice_Old
    while @@FETCH_STATUS = 0
    begin
          execute  ConversionData_Auto_Child_Audit @CommodityId_Old , @GeneralName_Old ,@ProductName_Old , @Spec_Old , @DoseType_Old,@ProducingArea_Old,@Unit_Old ,  @AuthorizeCode_Old,@SpellCode_Old,@TXM_Old,@CustomCode_Old,@RetailPrice_Old

          fetch next from Cur_CommodityStock
                into   @CommodityId_Old , @GeneralName_Old , @Spec_Old , @DoseType_Old,@ProducingArea_Old,@Unit_Old , @AuthorizeCode_Old,@SpellCode_Old,@TXM_Old,@CustomCode_Old,@RetailPrice_Old
    end
   
    return
GO
/****** Object:  StoredProcedure [dbo].[CreateEmbranchment]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CreateEmbranchment](@EmbranchmentId varchar(25), @PollCode varchar(50),@SiteCount int) AS

declare @ColumnName varchar(50)
select @ColumnName='EmbranchmentId'
declare @StringValue_PollCode varchar(100)
declare @IntValue_EmbranchmentId int
declare @IntValue_SiteCount int

if(exists(select * from sysobjects where sysobjects.Type='U' and name='SysData'))
begin
      select @StringValue_PollCode=StringValue from SysData where Name ='PollCode'
      select @IntValue_EmbranchmentId=IntValue from SysData where Name ='EmbranchmentId'
      select @IntValue_SiteCount=IntValue from SysData where Name ='SiteCount'
 
      if ((@StringValue_PollCode='0') or (@StringValue_PollCode=''))
      begin
           delete SysData
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('AccountType',0,0,'单体店',Null,'账套类型,监控中心,连锁分店,连锁分店,单体店,批发企业')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('EmbranchmentId',cast(@EmbranchmentId as int),cast(@EmbranchmentId as decimal),'分支机构',Null,'软件所在的分支')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SystemStatus',0,0,'0',Null,'系统状态:0,期初;1,开帐')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('CheckPD',0,0,'盘点',Null,'盘点:0是不在盘点状态,1是在盘点状态')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('ConversionData_Ini',0,Null,Null,Null,'转换数据之前的初始化:0未,1是')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('Bulletin',0,0,'处理新公告',Null,'公告操作:0,自动弹出;1,用户操作')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('DiscountPWD',0,0,'',Null,'零售折扣销售密码')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('PollCode',0,0,@PollCode,Null,'注册码')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SiteCount',@SiteCount,@SiteCount,'',Null,'站点数')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SiteTime',24,24,'',Null,'站点联接失效小时')
           insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('CheckCard',0,0,'会员卡店',Null,'0:不是会员卡店,1:是会员卡店')

           execute upFieldData @ColumnName=@ColumnName,@ColumnValue=@EmbranchmentId

           execute sequencesIni
           execute dataVersionIni
       end
       else
       begin
            if (@IntValue_EmbranchmentId<>@EmbranchmentId)
            begin
                  delete SysData
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('AccountType',0,0,'单体店',Null,'账套类型,监控中心,连锁分店,连锁分店,单体店,批发企业')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('EmbranchmentId',cast(@EmbranchmentId as int),cast(@EmbranchmentId as decimal),'分支机构',Null,'软件所在的分支')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SystemStatus',0,0,'0',Null,'系统状态:0,期初;1,开帐')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('CheckPD',0,0,'盘点',Null,'盘点:0是不在盘点状态,1是在盘点状态')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('ConversionData_Ini',0,Null,Null,Null,'转换数据之前的初始化:0未,1是')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('Bulletin',0,0,'处理新公告',Null,'公告操作:0,自动弹出;1,用户操作')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('DiscountPWD',0,0,'',Null,'零售折扣销售密码')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('PollCode',0,0,@PollCode,Null,'注册码')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SiteCount',@SiteCount,@SiteCount,'',Null,'站点数')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('SiteTime',24,24,'',Null,'站点联接失效小时')
                  insert into sysData (Name,IntValue,NumberValue,StringValue,DateValue,Remark) values('CheckCard',0,0,'会员卡店',Null,'0:不是会员卡店,1:是会员卡店')

                  execute upFieldData @ColumnName=@ColumnName,@ColumnValue=@EmbranchmentId
            end

            if (@StringValue_PollCode<>@PollCode) 
            begin
                Update SysData Set StringValue=@PollCode where Name='PollCode'
            end

            if (@IntValue_SiteCount<>@SiteCount) 
            begin
                Update SysData Set IntValue=@SiteCount,NumberValue=@SiteCount where Name='SiteCount'
            end
         
       end

end
else
begin
           print '没有找到表sysData,请创建这个表,然后再运行这个存储过程。'
return
end
GO
/****** Object:  StoredProcedure [dbo].[CreateBill]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[CreateBill]
(@UserId int) AS
/*BillDetailReportSpill对应的表*/
DECLARE @EmbranchmentId smallint
DECLARE @BillType tinyint
DECLARE @BillId int
DECLARE @RowNum int
DECLARE @CommodityId int
DECLARE @Batchcode varchar(50)
DECLARE @Price decimal (18,4)
DECLARE @Amount decimal (18,4)
DECLARE @SumMoney decimal (18,4)
DECLARE @ProductDate datetime
DECLARE @InvalidateDate datetime
DECLARE @RetailPrice decimal (18,4)

/*Bill对应的表*/
DECLARE @InStockId int
DECLARE @OutStockId int
DECLARE @BillFlowId smallint
DECLARE @BillCode varchar(12)
DECLARE @CreateDate smalldatetime
DECLARE @CreatorId int
DECLARE @BusinessDate smalldatetime
DECLARE @BusinessId smallint
DECLARE @AuditDate smalldatetime
DECLARE @AuditorId smallint
DECLARE @ProviderId smallint
DECLARE @CustomerId int
--DECLARE @CardId int
DECLARE @Status tinyint
DECLARE @Discount decimal(5)
/*DECLARE @SumMoney decimal(9)*/
DECLARE @FactSumMoney decimal(9)
DECLARE @OutDepotId tinyint
DECLARE @Summary varchar(100)
DECLARE @Remark varchar(100)
DECLARE @ShiftId int
DECLARE @Guid uniqueidentifier
DECLARE @BusinessName varchar(50)
declare @CreatorName varchar(50)

/*CommodityStock定义的变量*/
DECLARE @Odds int
DECLARE @FactAmount int
DECLARE @PackingId int
DECLARE @PackingName varchar(50)
DECLARE @CustomStr varchar(100)
DECLARE @ProductName varchar(100)

/*BillDetailReportLoss对应的变量*/
DECLARE @ValidateDate datetime
DECLARE @CommodityName varchar(50)
DECLARE @Spec varchar(25)
DECLARE @DoseTypeName varchar(50)
DECLARE @Unit varchar(25)
DECLARE @ProducingArea varchar(50)
DECLARE @AuthorizeCode varchar(50)
DECLARE @CustomCode varchar(25)
DECLARE @InOrder int
DECLARE @CounterId int
DECLARE @CounterName varchar(50)
DECLARE @SpellCode varchar(50)
DECLARE @IsChinese bit
DECLARE @BillCodeName varchar(50)
DECLARE @EmbranchmentName varchar(50)

 


SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
select @EmbranchmentId=1,@BillId=1,@BillType=4,@BillFlowId=0,@CreateDate=GETDATE(),@CreatorId=0,@BusinessDate=GETDATE(),@BusinessId=0,@AuditDate=GETDATE(),@AuditorId=0,@ProviderId=0,@CustomerId=0,/*@CardId=0,*/@Status=1,@SumMoney=0,@FactSumMoney=0,@Discount=1,@BillCode='',@InStockId=0,@OutDepotId=0,
@Summary=0,@Remark='0',@ShiftId=0,@RowNum=0
DECLARE Cur_CommodityStockForSpill CURSOR FOR
SELECT EmbranchmentId, 4 AS BillType, (SELECT sequence_NextId  FROM Sequences WHERE Sequence_Name = 'BillId') AS BillId, CommodityId, BatchCode, CostPrice, Odds,
0 AS   SumMoney,
      ProductDate,
   InvalidateDate, RetailPrice,FactAmount,DepotId,CommodityName,Spec,ProducingArea,Unit,DoseTypeName,AuthorizeCode,CounterId,CounterName,CustomCode,InOrder,SpellCode,IsChinese,PackingId,PackingName ,CustomStr,ProductName
FROM CommodityStock
WHERE (Odds > 0)

open Cur_CommodityStockForSpill

fetch next from Cur_CommodityStockForSpill
into @EmbranchmentId,@BillType,@BillId,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@InvalidateDate,@RetailPrice,@FactAmount,@InStockId,@CommodityName,@Spec,@ProducingArea,@Unit,@DoseTypeName,@AuthorizeCode,@CounterId,@CounterName,@CustomCode,@InOrder,@SpellCode,@IsChinese,@PackingId, @PackingName  ,@CustomStr,@ProductName

while @@FETCH_STATUS=0
begin

SELECT @SumMoney=@Price*@Amount
INSERT INTO BillDetailReportSpill  (EmbranchmentId,BillType,BillId,RowNum,CommodityId,BatchCode,Price,Amount,SumMoney,ProductDate,InvalidateDate,RetailPrice,   CommodityName,    Spec,    DoseTypeName,  Unit,     ProducingArea,   AuthorizeCode,    CustomCode,  InOrder,     CounterId,    CounterName,SpellCode,IsChinese,PackingId, PackingName  ,CustomStr,ProductName)
VALUES(@EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@InvalidateDate,@RetailPrice,@CommodityName,@Spec,@DoseTypeName,@Unit,@ProducingArea,@AuthorizeCode,@CustomCode,@InOrder,@CounterId,@CounterName,@SpellCode,@IsChinese,@PackingId, @PackingName ,@CustomStr,@ProductName )

fetch next from Cur_CommodityStockForSpill
into @EmbranchmentId,@BillType,@BillId,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@InvalidateDate,@RetailPrice,@FactAmount,@InStockId,@CommodityName,@Spec,@ProducingArea,@Unit,@DoseTypeName,@AuthorizeCode,@CounterId,@CounterName,@CustomCode,@InOrder,@SpellCode,@IsChinese,@PackingId, @PackingName  ,@CustomStr,@ProductName
SELECT @RowNum=@RowNum+1
end

print '编号:'+cast(@commodityId as varchar)+'名称:'+@CommodityName+'数量:'+cast(@Amount as varchar)+'被报溢。'
if(exists(select * from billDetailReportSpill where billId=@BillId))
begin
SELECT @Remark='自动盘点->报溢->于 '+cast(getDate() as varchar)
SELECT @Summary=@Remark
select @OutStockId=0
select @SumMoney=(select sum(sumMoney) from billDetailReportSpill where billId=@BillId)
exec bill_GetCode @id=4,@szReturn=@BillCode output   
select @BillCodeName='报溢单'
select @CreatorId=@UserId,@BusinessName=(select Name from employee where employeeId=@UserId)
select @EmbranchmentName=name from embranchment
select @BusinessId=@userId,@outStockId=1,@CreatorId=@UserId
INSERT INTO Bill(InStockName,OutStockName,EmbranchmentName,zysId,fs,EmbranchmentId,BillId,BillType,BillFlowId,BillCode,CreateDate,CreatorId,BusinessDate,BusinessId,AuditDate,AuditorId,ProviderId,CustomerId,/*CardId,*/Status,SumMoney,FactSumMoney,Discount,InStockId,OutStockId,Summary,Remark,ShiftId,BillCodeName,BusinessName)
      VALUES ('仓库','仓库',@EmbranchmentName,0,1,@EmbranchmentId,@BillId,@BillType,@BillFlowId,@BillCode,@CreateDate,@CreatorId,@BusinessDate,@BusinessId,@AuditDate,@AuditorId,@ProviderId,@CustomerId,/*@CardId,*/@Status,@SumMoney,@SumMoney,@Discount,@InStockId,@OutStockId,@Summary,@Remark,@ShiftId,@BillCodeName,@BusinessName)
SELECT @BillId=@BillId+1
UPDATE Sequences set sequence_NextId=@BillId WHERE Sequence_Name = 'BillId'
end
update commodityStock set Odds=0,FactAmount=Amount where Odds>0
   COMMIT


SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
select @EmbranchmentId=1,@BillId=1,@BillType=3,@BillFlowId=0,@CreateDate=GETDATE(),@CreatorId=0,@BusinessDate=GETDATE(),@BusinessId=0,@AuditDate=GETDATE(),@AuditorId=0,@ProviderId=0,@CustomerId=0,/*@CardId=0,*/@Status=1,@SumMoney=0,@FactSumMoney=0,@Discount=1,@BillCode=0,@InStockId=0,@OutStockId=0,
@Summary=0,@Remark='0',@ShiftId=0,@RowNum=0
select @CreatorName=name from employee
where employeeId=@UserId
DECLARE Cur_CommodityStockForLoss CURSOR FOR
SELECT EmbranchmentId, 3 AS BillType, (SELECT sequence_NextId  FROM Sequences WHERE Sequence_Name = 'BillId') AS BillId, CommodityId, BatchCode, CostPrice, Odds,
0 AS   SumMoney,
      ProductDate,
   InvalidateDate, RetailPrice,FactAmount,DepotId,CommodityName,Spec,ProducingArea,Unit,DoseTypeName,AuthorizeCode,CounterId,CounterName,CustomCode,InOrder,PackingId, PackingName  ,CustomStr,ProductName
FROM CommodityStock
WHERE (Odds < 0)

open Cur_CommodityStockForLoss

fetch next from Cur_CommodityStockForLoss
into @EmbranchmentId,@BillType,@BillId,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@ValidateDate,@RetailPrice,@FactAmount,@OutStockId,@CommodityName,@Spec,@ProducingArea,@Unit,@DoseTypeName,@AuthorizeCode,@CounterId,@CounterName,@CustomCode,@InOrder,@PackingId, @PackingName ,@CustomStr,@ProductName

while @@FETCH_STATUS=0
begin
set @Amount=-@Amount
SELECT @SumMoney=@Price*@Amount
INSERT INTO BillDetailReportLoss      (EmbranchmentId,     BillType,  BillId,     RowNum,    CommodityId,     BatchCode, Price,    Amount, SumMoney,     ProductDate,    ValidateDate,     CommodityName,    Spec,    DoseTypeName,  Unit,     ProducingArea,   AuthorizeCode,    CustomCode,  InOrder,     CounterId,    CounterName,PackingId, PackingName  ,CustomStr,ProductName)
  VALUES  (@EmbranchmentId,@BillType,@BillId,@RowNum,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@ValidateDate,@CommodityName,@Spec,@DoseTypeName,@Unit,@ProducingArea,@AuthorizeCode,@CustomCode,@InOrder,@CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName)

fetch next from Cur_CommodityStockForLoss
into @EmbranchmentId,@BillType,@BillId,@CommodityId,@BatchCode,@Price,@Amount,@SumMoney,@ProductDate,@ValidateDate,@RetailPrice,@FactAmount,@OutStockId,@CommodityName,@Spec,@ProducingArea,@Unit,@DoseTypeName,@AuthorizeCode,@CounterId,@CounterName,@CustomCode,@InOrder,@PackingId, @PackingName  ,@CustomStr,@ProductName
select  @RowNum=@RowNum+1
print '编号:'+cast(@commodityId as varchar)+'名称:'+@CommodityName+'数量:'+cast(@Amount as varchar)+'被报损。'
end
if(exists(select * from billDetailReportLoss where billId=@BillId))
begin
SELECT @Remark='自动盘点->报损->于 '+cast(getDate() as varchar)
SELECT @Summary=@Remark
select @InStockId =@outStockId
select @SumMoney=(select Sum(SumMoney) from billDetailReportLoss where billId=@billId)
set @FactSumMoney=@SumMoney
exec bill_GetCode @id=3,@szReturn=@BillCode output   
select @BillCodeName='报损单'
select @CreatorId=@UserId,@BusinessName=(select Name from employee where employeeId=@UserId)
INSERT INTO Bill(InStockName,OutStockName,EmbranchmentName,zysId,fs,EmbranchmentId,BillId,BillType,BillFlowId,BillCode,CreateDate,CreatorId,BusinessDate,BusinessId,AuditDate,AuditorId,ProviderId,CustomerId,/*CardId,*/Status,SumMoney,FactSumMoney,Discount,InstockId,OutStockId,Summary,Remark,ShiftId,BillCodeName,BusinessName)
      VALUES ('仓库','仓库',@EmbranchmentName,0,1,@EmbranchmentId,@BillId,@BillType,@BillFlowId,@BillCode,@CreateDate,@CreatorId,@BusinessDate,@BusinessId,@AuditDate,@AuditorId,@ProviderId,@CustomerId,/*@CardId,*/@Status,@SumMoney,@SumMoney,@Discount,@InstockId,@OutStockId,@Summary,@Remark,@ShiftId
, @BillCodeName,@BusinessName)
SELECT @BillId=@BillId+1
UPDATE Sequences set sequence_NextId=@BillId WHERE Sequence_Name = 'BillId'
end
update commodityStock set Odds=0,FactAmount=Amount where Odds<0
   COMMIT
GO
/****** Object:  StoredProcedure [dbo].[billDetailCallBack_Audit]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2009-11-03
Summary    : 召回返利的审核
***********************************************************************/

CREATE PROCEDURE [dbo].[billDetailCallBack_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Discount DECIMAL(18,4)--整单折扣
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCard DECIMAL(18,4)--会员卡消费
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)
    DECLARE @PayCardNO VARCHAR(50)
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @SumPayCard DECIMAL(18,4)
  
   

    /*定义BillDetailCallBack对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount_Detail decimal (6,4)--明细单中每条记录的折扣
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CostPrice_Detail decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @MemberPrice decimal(18,4)
    DECLARE @ReturnPayCard DECIMAL(18,4)
   
    DECLARE @IsMedicare int
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @Medicare TINYINT
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @CostMemberPrice decimal(18,4)
   
   /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
    DECLARE @CardCurVersion bigint
    DECLARE @CardSynchronizeDateTime datetime
   

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=30 --召回返利单的BillType为
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    DECLARE @transactionCount  INT /*事务记数*/ 
    SELECT  @transactionCount  =  @@trancount 
    IF @transactionCount =  0  /*判断事务记数,根据情况确定使用保存点或者新建一个事务*/ 
    BEGIN TRAN  RETAIL
    ELSE SAVE TRAN RETAIL
    SET NOCOUNT ON  
   
   
    update   Bill  set PayYB=PayKYB+PaySYB
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @CardId=CardId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Discount=Discount,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @PayType=PayType,
           @PayCard=PayCard ,
           @PaySYB= PaySYB ,
           @PayKYB= PayKYB ,
           @PayYB= PayYB ,
           @PayCardNO= PayCardNO ,
           @PayCardMoneyBefore= PayCardMoneyBefore ,
           @PayCardMoneyAfter= PayCardMoneyAfter,
           @PayMoney=PayMoney,
           @ReturnMoney=ReturnMoney,
           @SumPayCard=PayCard,
           @SumReturnPayCard=ReturnPayCard
          
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK  TRAN RETAIL
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,CostPrice,RowNum
    FROM BillDetailCallBack
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId =-3
      ROLLBACK  TRAN RETAIL
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BillDetailCallBack CURSOR FOR
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
        ProductDate, InvalidateDate,CostPrice,RowNum, CommodityName, Spec,
                           Unit, ProducingArea, DoseTypeName, AuthorizeCode,InOrder,CustomCode,
                  CounterId,CounterName , PackingId, PackingName ,CustomStr,ProductName,MemberPrice,ReturnPayCard
    FROM BillDetailCallBack
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BillDetailCallBack

    FETCH NEXT FROM Cur_BillDetailCallBack
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT @CostPrice = CostPrice,@Amount_pre = Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,
                          @SumCost = SumCost,@SumRetail = SumRetail,@Medicare = Medicare
        FROM CommodityStock
        WHERE  DepotId=@OutStockId
         AND EmbranchmentId=@EmbranchmentId
         AND CommodityId=@CommodityId
         AND BatchCode=@BatchCode
        and  InOrder=@InOrder
        and PackingId=@PackingId

        IF @@ROWCOUNT = 0
        BEGIN
            SELECT @ErrorMessage='检测库存失败!'
            Select @ErrorInfoId =-10
            ROLLBACK  TRAN RETAIL
            RETURN
        END

        SELECT @Amount_cs = @Amount_cs - @Amount
        SELECT @SumCost = @CostPrice * @Amount_cs
        SELECT @SumRetail = @RetailPrice * @Amount_cs
       
        /*如果库存数量大于销售数量,则更新库存表,否则,回滚*/
        IF @Amount_cs  < 0
        BEGIN
            SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @CommodityName +' 批号:' + @BatchCode +'的库存数量不足,无法审核!'
            Select @ErrorInfoId =-4
            ROLLBACK  TRAN RETAIL
            RETURN
        END
        ELSE
        BEGIN
           
                    /*版本处理部分*/
                     SELECT @CurVersion=CurVersion
                     FROM DataVersion
                     WHERE EmbranchmentId=@EmbranchmentId
                     AND DataVersionId=1
            
                     IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-7
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                    ELSE
                    BEGIN
         Update DataVersion
                           SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                           WHERE EmbranchmentId=@EmbranchmentId
                           AND DataVersionId=1

                          if @@error <>0
                          begin
                             SELECT @ErrorMessage=@CommodityName+'更新版本失败!'
                             Select @ErrorInfoId=-8
                             ROLLBACK
                            RETURN -1
                         end
                    END

                    SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-7
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage=@CommodityName+'更新版本失败!'
                          Select @ErrorInfoId=-8
                          ROLLBACK
                          RETURN -1
                       end


               /**************************************************************************************************************************************/       
            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
    SELECT @CurCostSumMoney=@Amount*@CostPrice
    SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount
    SELECT @ChangeSumMoney=@Amount*@DiscountPrice*@Discount--@Discount为整单折扣,@Discount_Detail为明细单品折扣
        SELECT @CostMemberPrice=@Amount*@MemberPrice
        IF(@PayType=1 or @PayType=2 or @PayType=3)
                 BEGIN
                     SELECT @PayCard=@Amount*@RetailPrice
                 END
        ELSE
            BEGIN
                SELECT @PayCard=0
            END
        IF(@ReturnPayCard!=0 or @ReturnPayCard!=NULL)
              BEGIN
                  SELECT @ChangeSumMoney=@Amount*@MemberPrice
              END


    select     @IsMedicare=0
    if @PayType>=2
    begin
        select     @IsMedicare=1
    end
    
   
             INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardId,CardCode,Medicare,  PackingId,PackingName,CustomStr,ProductName,PayCard  , PaySYB, PayKYB, PayYB, PayCardNO, PayCardMoneyBefore, PayCardMoneyAfter,ReturnPayCard,PayMoney,ReturnMoney,IsMedicare,CostMemberPrice,SumPayCard,SumReturnPayCard,CurMemberPrice,CardDataVersion)
                                  VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@Price     ,@Discount_Detail       ,@DiscountPrice      ,@Amount_pre,@Amount,      @Amount,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion+1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,0,@Discount,@PayType,@CardId,@CardCode,@Medicare, @PackingId,@PackingName,@CustomStr,@ProductName,@PayCard  ,@PaySYB,@PayKYB,@PayYB,@PayCardNO,@PayCardMoneyBefore,@PayCardMoneyAfter,@ReturnPayCard,@PayMoney,@ReturnMoney,@IsMedicare,@CostMemberPrice,@SumPayCard,@SumReturnPayCard,@MemberPrice,@CardCurVersion+1)
                                 

 

        END
       
        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        FETCH NEXT FROM Cur_BillDetailCallBack
        INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName ,@PackingId, @PackingName ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard
    END
    SELECT @ErrorMessage='召回返利成功!'
    Select @ErrorInfoId =1
    CLOSE Cur_BillDetailCallBack
    DEALLOCATE Cur_BillDetailCallBack

    IF @ErrorInfoId =1
    BEGIN
    IF @CardId = 0
    BEGIN
        UPDATE Bill SET CardMessage='CardId is null' WHERE BillId=@BillId
    END
    ELSE
    BEGIN
            IF @CardCode = '' OR @CardCode IS NULL
            BEGIN
            UPDATE Bill SET CardMessage='CardCode is null' WHERE BillId=@BillId
            END 
        ELSE
        BEGIN
            EXEC UpdateMemberCardAndLog @BillId = @BillId
        END
    END
    END

    COMMIT TRAN RETAIL
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetail_Audit]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : qcj
CreateDate : 2006-8-18
Summary    : 零售单的审核
Remark     : 从库存表中将零售单明细中对应的商品删除
***********************************************************************/

CREATE PROCEDURE [dbo].[billDetailRetail_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Discount DECIMAL(18,4)--整单折扣
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCard DECIMAL(18,4)--会员卡消费
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)
    DECLARE @PayCardNO VARCHAR(50)
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @SumPayCard DECIMAL(18,4)
  
   

    /*定义BillDetailRetail对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount_Detail decimal (6,4)--明细单中每条记录的折扣
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CostPrice_Detail decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @MemberPrice decimal(18,4)
    DECLARE @ReturnPayCard DECIMAL(18,4)
   
    DECLARE @IsMedicare int
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @Medicare TINYINT
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @CostMemberPrice decimal(18,4)
   
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
    DECLARE @CardCurVersion bigint
    DECLARE @CardSynchronizeDateTime datetime
   

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=5 --零售单的BillType为5
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    DECLARE @transactionCount  INT /*事务记数*/ 
    SELECT  @transactionCount  =  @@trancount 
    IF @transactionCount =  0  /*判断事务记数,根据情况确定使用保存点或者新建一个事务*/ 
    BEGIN TRAN  RETAIL
    ELSE SAVE TRAN RETAIL
    SET NOCOUNT ON  
   
   
    update   Bill  set PayYB=PayKYB+PaySYB
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CustomerId=CustomerId,
           @CardId=CardId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Discount=Discount,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @PayType=PayType,
           @PayCard=PayCard ,
           @PaySYB= PaySYB ,
           @PayKYB= PayKYB ,
           @PayYB= PayYB ,
           @PayCardNO= PayCardNO ,
           @PayCardMoneyBefore= PayCardMoneyBefore ,
           @PayCardMoneyAfter= PayCardMoneyAfter,
           @PayMoney=PayMoney,
           @ReturnMoney=ReturnMoney,
           @SumPayCard=PayCard,
           @SumReturnPayCard=ReturnPayCard
          
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK  TRAN RETAIL
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,CostPrice,RowNum
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId =-3
      ROLLBACK  TRAN RETAIL
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BillDetailRetail CURSOR FOR
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
        ProductDate, InvalidateDate,CostPrice,RowNum, CommodityName, Spec,
                           Unit, ProducingArea, DoseTypeName, AuthorizeCode,InOrder,CustomCode,
                  CounterId,CounterName , PackingId, PackingName ,CustomStr,ProductName,MemberPrice,ReturnPayCard
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BillDetailRetail

    FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName,@PackingId, @PackingName ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT @CostPrice = CostPrice,@Amount_pre = Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,
                          @SumCost = SumCost,@SumRetail = SumRetail,@Medicare = Medicare
        FROM CommodityStock
        WHERE  DepotId=@OutStockId
         AND EmbranchmentId=@EmbranchmentId
         AND CommodityId=@CommodityId
         AND BatchCode=@BatchCode
        and  InOrder=@InOrder
        and PackingId=@PackingId

        IF @@ROWCOUNT = 0
        BEGIN
            SELECT @ErrorMessage='检测库存失败!'
            Select @ErrorInfoId =-10
            ROLLBACK  TRAN RETAIL
            RETURN
        END

        SELECT @Amount_cs = @Amount_cs - @Amount
        SELECT @SumCost = @CostPrice * @Amount_cs
        SELECT @SumRetail = @RetailPrice * @Amount_cs
       
        /*如果库存数量大于销售数量,则更新库存表,否则,回滚*/
        IF @Amount_cs  < 0
        BEGIN
            SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @CommodityName +' 批号:' + @BatchCode +'的库存数量不足,无法审核!'
            Select @ErrorInfoId =-4
            ROLLBACK  TRAN RETAIL
            RETURN
        END
        ELSE
        BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 

               /**************************************************************************************************************************************/       

            /*库存表处理部分*/
    UPDATE CommodityStock
    SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail ,DataVersion=@CommodityStockDataVersion+1
    WHERE  DepotId=@OutStockId
             AND EmbranchmentId=@EmbranchmentId
             AND CommodityId=@CommodityId
             AND BatchCode=@BatchCode
             and  InOrder=@InOrder
             and PackingId=@PackingId

               /*************************************在社区药店系统版本处理部分**********************************************/                        Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/
            
             /*版本处理部分*/
             SELECT @CurVersion=CurVersion
             FROM DataVersion
             WHERE EmbranchmentId=@EmbranchmentId
             AND DataVersionId=1
            
             IF @@ROWCOUNT = 0
             BEGIN
                 SELECT @ErrorMessage='取版本出错!'
                 Select @ErrorInfoId =-5
                 ROLLBACK  TRAN RETAIL
                 RETURN                  
             END
             ELSE
             BEGIN
                Update DataVersion
                SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                WHERE EmbranchmentId=@EmbranchmentId
                AND DataVersionId=1
             END
          IF(@PayType=1 or @PayType=2 or @PayType=3)
           BEGIN
           SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-7
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本失败!'
                          Select @ErrorInfoId=-8
                          ROLLBACK
                          RETURN -1
                       end
             END

            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
    SELECT @CurCostSumMoney=@Amount*@CostPrice
    SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount
    SELECT @ChangeSumMoney=@Amount*@DiscountPrice*@Discount--@Discount为整单折扣,@Discount_Detail为明细单品折扣
        SELECT @CostMemberPrice=@Amount*@MemberPrice
        IF(@PayType=1 or @PayType=2 or @PayType=3)
                 BEGIN
                     SELECT @PayCard=@Amount*@RetailPrice
                     SELECT @ChangeSumMoney=@Amount*@MemberPrice
                 END
        ELSE
            BEGIN
                SELECT @PayCard=0
            END


    select     @IsMedicare=0
    if @PayType>=2
    begin
        select     @IsMedicare=1
    end
    
   
             INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardId,CardCode,Medicare,  PackingId,PackingName,CustomStr,ProductName,PayCard  , PaySYB, PayKYB, PayYB, PayCardNO, PayCardMoneyBefore, PayCardMoneyAfter,ReturnPayCard,PayMoney,ReturnMoney,IsMedicare,CostMemberPrice,SumPayCard,SumReturnPayCard,CurMemberPrice,CardDataVersion)
                                  VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@Price     ,@Discount_Detail       ,@DiscountPrice      ,@Amount_pre,@Amount,      @Amount,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,0,@Discount,@PayType,@CardId,@CardCode,@Medicare, @PackingId,@PackingName,@CustomStr,@ProductName,@PayCard  ,@PaySYB,@PayKYB,@PayYB,@PayCardNO,@PayCardMoneyBefore,@PayCardMoneyAfter,@ReturnPayCard,@PayMoney,@ReturnMoney,@IsMedicare,@CostMemberPrice,@SumPayCard,@SumReturnPayCard,@MemberPrice,@CardCurVersion+1)
                                 

 

        END
       
        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        FETCH NEXT FROM Cur_BillDetailRetail
        INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode,
        @CounterId,@CounterName ,@PackingId, @PackingName ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard
    END
    SELECT @ErrorMessage='收款成功!'
    Select @ErrorInfoId =1
    CLOSE Cur_BillDetailRetail
    DEALLOCATE Cur_BillDetailRetail

    IF @ErrorInfoId =1
    BEGIN
    IF @CardId = 0
    BEGIN
        UPDATE Bill SET CardMessage='CardId is null' WHERE BillId=@BillId
    END
    ELSE
    BEGIN
            IF @CardCode = '' OR @CardCode IS NULL
            BEGIN
            UPDATE Bill SET CardMessage='CardCode is null' WHERE BillId=@BillId
            END 
        ELSE
        BEGIN
            EXEC UpdateMemberCardAndLog @BillId = @BillId
        END
    END
    END

    COMMIT TRAN RETAIL
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetailCard_ZY_Audit]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : lcc
CreateDate : 2010-2-1
Summary    : 零售单的审核
Remark     : 从库存表中将零售单明细中对应的商品删除
***********************************************************************/

CREATE PROCEDURE [dbo].[billDetailRetailCard_ZY_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Discount DECIMAL(18,4)--整单折扣
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @FS INT
    DECLARE @IsZY SMALLINT
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCard DECIMAL(18,4)--会员卡消费
    DECLARE @PaySYB DECIMAL(18,4)
    DECLARE @PayKYB DECIMAL(18,4)
    DECLARE @PayYB DECIMAL(18,4)
    DECLARE @PayCardNO VARCHAR(50)
    DECLARE @PayCardMoneyBefore DECIMAL(18,4)
    DECLARE @PayCardMoneyAfter DECIMAL(18,4)
    DECLARE @SumReturnPayCard DECIMAL(18,4)
    DECLARE @SumPayCard DECIMAL(18,4)
    DECLARE @CFF DECIMAL(18,4)
  

    /*定义BillDetailRetail对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount_Detail decimal (6,4)--明细单中每条记录的折扣
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CostPrice_Detail decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
    DECLARE @MemberPrice decimal(18,4)
    DECLARE @ReturnPayCard DECIMAL(18,4) 
    DECLARE @IsMedicare int
   
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @Medicare TINYINT
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
    DECLARE @CostMemberPrice decimal(18,4)
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime
    DECLARE @CardCurVersion bigint
    DECLARE @CardSynchronizeDateTime datetime

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=5 --零售单的BillType为5
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN
    SET NOCOUNT ON  
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CardId=CardId,
           @CustomerId=CustomerId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Discount=Discount,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @FS=FS,
           @IsZY=IsZY,
           @PayType=PayType,
           @PaySYB= PaySYB ,
           @PayKYB= PayKYB ,
           @PayYB= PayYB ,
           @PayCardNO= PayCardNO ,
           @PayCardMoneyBefore= PayCardMoneyBefore ,
           @PayCardMoneyAfter= PayCardMoneyAfter,
           @PayMoney=PayMoney,
           @ReturnMoney=ReturnMoney,
           @SumPayCard=PayCard,
           @SumReturnPayCard=ReturnPayCard,
           @CFF=CFF
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,CostPrice,RowNum
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId =-3
      ROLLBACK
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BillDetailRetail CURSOR FOR
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
        ProductDate, InvalidateDate,CostPrice,RowNum, CommodityName, Spec,
                           Unit, ProducingArea, DoseTypeName, AuthorizeCode,InOrder,CustomCode,
        CounterId,CounterName , PackingId, PackingName  ,CustomStr,ProductName,MemberPrice,ReturnPayCard
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BillDetailRetail

    FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode ,
        @CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName,@MemberPrice,@ReturnPayCard

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT @CostPrice = CostPrice,@Amount_pre = Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,
        @SumCost = SumCost,@SumRetail = SumRetail,@Medicare = Medicare
        FROM CommodityStock
        WHERE  DepotId=@OutStockId
         AND EmbranchmentId=@EmbranchmentId
         AND CommodityId=@CommodityId
         AND BatchCode=@BatchCode
         and   InOrder =@InOrder
         and PackingId=@PackingId

        IF @@ROWCOUNT = 0
        BEGIN
            SELECT @ErrorMessage='检测库存失败!'
            Select @ErrorInfoId =-10
            ROLLBACK  TRAN RETAIL
            RETURN
        END

        SELECT @Amount_cs = @Amount_cs - @Amount*@FS
        SELECT @SumCost = @CostPrice * @Amount_cs
        SELECT @SumRetail = @RetailPrice * @Amount_cs
       
        /*如果库存数量大于销售数量,则更新库存表,否则,回滚*/
        IF @Amount_cs < 0
        BEGIN
            SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @CommodityName +' 批号:' + @BatchCode +'的库存数量不足,无法审核!'
            Select @ErrorInfoId =-4
            ROLLBACK
            RETURN
        END
        ELSE
        BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
               /**************************************************************************************************************************************/ 

            /*库存表处理部分*/
         UPDATE CommodityStock
         SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail,DataVersion=@CommodityStockDataVersion+1
         WHERE  DepotId=@OutStockId
             AND EmbranchmentId=@EmbranchmentId
             AND CommodityId=@CommodityId
             AND BatchCode=@BatchCode
             and   InOrder =@InOrder
             and PackingId=@PackingId

               /*************************************在社区药店系统版本处理部分**********************************************/  
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/ 
            
             /*版本处理部分*/
             SELECT @CurVersion=CurVersion
             FROM DataVersion
             WHERE EmbranchmentId=@EmbranchmentId
             AND DataVersionId=1
            
             IF @@ROWCOUNT = 0
             BEGIN
                 SELECT @ErrorMessage='取版本出错!'
                 Select @ErrorInfoId =-5
                 ROLLBACK
                 RETURN                  
             END
             ELSE
             BEGIN
                Update DataVersion
                SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                WHERE EmbranchmentId=@EmbranchmentId
                AND DataVersionId=1
             END 
           IF(@PayType=1 or @PayType=2 or @PayType=3)
           BEGIN
           SELECT @CardCurVersion=CurVersion,
                    @CardSynchronizeDateTime = SynchronizeDateTime
                    from DataVersion(UPDLOCK)
                    where EmbranchmentId=@EmbranchmentId
                    and DataVersionId=15
                IF @@ROWCOUNT = 0
                     BEGIN
                            SELECT @ErrorMessage='取版本出错!'
                            Select @ErrorInfoId =-7
                            ROLLBACK  TRAN RETAIL
                            RETURN                  
                    END
                UPDATE DataVersion
                SET  PreviousVersion=@CardCurVersion,CurVersion=@CardCurVersion+1,
                OriginDateTime=@CardSynchronizeDateTime, SynchronizeDateTime=getDate()
                where EmbranchmentId=@EmbranchmentId
                and DataVersionId=15
                if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本失败!'
                          Select @ErrorInfoId=-8
                          ROLLBACK
                          RETURN -1
                       end
             END
            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
        SELECT @Amount=@Amount*@FS
    SELECT @CurCostSumMoney=@Amount*@CostPrice
    SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount
    SELECT @ChangeSumMoney=@Amount*@DiscountPrice*@Discount--@Discount为整单折扣,@Discount_Detail为明细单品折扣
        SELECT @CostMemberPrice=@Amount*@MemberPrice
        IF(@PayType=1 or @PayType=2 or @PayType=3)
                 BEGIN
                     SELECT @PayCard=@Amount*@RetailPrice
                     SELECT @ChangeSumMoney=@Amount*@MemberPrice
                     SELECT @ReturnPayCard=@ReturnPayCard*@FS
                 END
        ELSE
            BEGIN
                SELECT @PayCard=0
                SELECT @ReturnPayCard=0
            END
       SELECT @IsMedicare=0
       IF @PayType>=2
         BEGIN
              SELECT @IsMedicare=1
         END
    
        INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,EntireDisCount,PayType,CardCode,Medicare,PackingId,PackingName ,CustomStr,ProductName,PayCard  , PaySYB, PayKYB, PayYB, PayCardNO, PayCardMoneyBefore, PayCardMoneyAfter,ReturnPayCard,PayMoney,ReturnMoney,IsMedicare,CostMemberPrice,SumPayCard,SumReturnPayCard,CurMemberPrice,CardDataVersion,IsZY,CFF)
                                  VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@Price     ,@Discount_Detail       ,@DiscountPrice       ,@Amount_pre, @Amount,      @Amount,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,@DisCount,@PayType,@CardCode,@Medicare,@PackingId,@PackingName ,@CustomStr,@ProductName,@PayCard  ,@PaySYB,@PayKYB,@PayYB,@PayCardNO,@PayCardMoneyBefore,@PayCardMoneyAfter,@ReturnPayCard,@PayMoney,@ReturnMoney,@IsMedicare,@CostMemberPrice,@SumPayCard,@SumReturnPayCard,@MemberPrice,@CardCurVersion+1,@IsZY,@CFF)                                                                                        
        END


       
        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode ,
        @CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName ,@MemberPrice,@ReturnPayCard 
    END
    SELECT @ErrorMessage='收款成功!'
    Select @ErrorInfoId =1
    CLOSE Cur_BillDetailRetail
    DEALLOCATE Cur_BillDetailRetail

    IF @ErrorInfoId =1
    BEGIN
    IF @CardId = 0
    BEGIN
        UPDATE Bill SET CardMessage='CardId is null' WHERE BillId=@BillId
    END
    ELSE
    BEGIN
            IF @CardCode = '' OR @CardCode IS NULL
            BEGIN
            UPDATE Bill SET CardMessage='CardCode is null' WHERE BillId=@BillId
            END 
        ELSE
        BEGIN
            EXEC UpdateMemberCardAndLog @BillId = @BillId
        END
    END
    END
   
    COMMIT
GO
/****** Object:  StoredProcedure [dbo].[billDetailRetail_ZY_Audit]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**********************************************************************
Author     : qcj
CreateDate : 2006-8-18
Summary    : 零售单的审核
Remark     : 从库存表中将零售单明细中对应的商品删除
***********************************************************************/

CREATE PROCEDURE [dbo].[billDetailRetail_ZY_Audit]
(
    @BillId INT,
    @ErrorMessage VARCHAR(100) OUTPUT,
    @ErrorInfoId  int OUTPUT
)
AS
    /*定义Bill对应的局部变量*/
    DECLARE @EmbranchmentId SMALLINT
    DECLARE @BillType TINYINT
    DECLARE @BillFlowId INT
    DECLARE @BillCode VARCHAR(50)
    DECLARE @CreateDate SMALLDATETIME
    DECLARE @CreatorId SMALLINT
    DECLARE @BusinessDate SMALLDATETIME
    DECLARE @BusinessId SMALLINT
    DECLARE @AuditDate SMALLDATETIME
    DECLARE @AuditorId SMALLINT
    DECLARE @ProviderId SMALLINT
    DECLARE @CustomerId INT
    DECLARE @CardId INT
    DECLARE @CardCode VARCHAR(50)
    DECLARE @Status TINYINT
    DECLARE @SumMoney DECIMAL(18,4)--整个单据所有记录的合计金额
    DECLARE @Discount DECIMAL(18,4)--整单折扣
    DECLARE @Summary VARCHAR(100)   
    DECLARE @Remark  VARCHAR(100)
    DECLARE @Guid UNIQUEIDENTIFIER
    DECLARE @CreatorName VARCHAR(50)
    DECLARE @BusinessName VARCHAR(50)
    DECLARE @BillCodeName VARCHAR(50)
    DECLARE @StockName VARCHAR(50)
    DECLARE @EmbranchmentName VARCHAR(50)
    DECLARE @CustomerName VARCHAR(50)
    DECLARE @InStockName VARCHAR(50)
    DECLARE @OutStockName VARCHAR(50)
    DECLARE @FS INT
    DECLARE @IsZY SMALLINT
    DECLARE @PayMoney DECIMAL(18,4)--付现
    DECLARE @ReturnMoney DECIMAL(18,4)--找零
    DECLARE @PayType TINYINT--零售单付款类型
    DECLARE @PayCard DECIMAL(18,4)--会员卡消费

    /*定义BillDetailRetail对应的局部变量*/
    DECLARE @RowNum tinyint
    DECLARE @CommodityId int
    DECLARE @BatchCode varchar(50)
    DECLARE @Price decimal (18,4)
    DECLARE @Discount_Detail decimal (6,4)--明细单中每条记录的折扣
    DECLARE @DiscountPrice decimal (18,4)
    DECLARE @Amount decimal (18,4)
    DECLARE @SumMoney_Detail decimal (18,4)--明细单中每条记录的合计金额
    DECLARE @ProductDate smalldatetime
    DECLARE @CostPrice_Detail decimal (18,4)
    DECLARE @CommodityName varchar(100)
    DECLARE @Spec varchar(50)
    DECLARE @Unit varchar(50)
    DECLARE @DoseTypeName varchar(50)
    DECLARE @AuthorizeCode varchar(50)
    DECLARE @ProducingArea varchar(50)
    DECLARE @CustomCode varchar(50)
    DECLARE @CounterId TINYINT
    DECLARE @CounterName varchar(50)
    DECLARE @PackingId int
    DECLARE @PackingName varchar(50)
    DECLARE @CustomStr varchar(100)
    DECLARE @ProductName varchar(100)
   
    /*定义CommodityStock对应的局部变量*/
    DECLARE @InOrder int
    DECLARE @InvalidateDate datetime
    DECLARE @InstockDate datetime
    DECLARE @CostPrice decimal (18,4)
    DECLARE @RetailPrice decimal (18,4)
    DECLARE @FactAmount decimal (18,4)
    DECLARE @Amount_cs decimal (18,4)--现库存数量,便于和明细单中的数量区分,为计算成本所使用
    DECLARE @Amount_pre decimal (18,4)--原库存数量
    DECLARE @SumCost decimal (18,4)
    DECLARE @SumRetail decimal (18,4)
    DECLARE @CommodityStockDataVersion bigint
    DECLARE @CommodityStockOriginDateTime datetime
    DECLARE @CommodityStockSynchronizeDateTime datetime
    DECLARE @Medicare TINYINT
   
    /*定义InoutStockTable对应的局部变量*/
    DECLARE @Guid_is uniqueidentifier
    DECLARE @StockId tinyint
    DECLARE @PreCostPrice decimal(18,4)
    DECLARE @PreSalePrice decimal(18,4)
    DECLARE @PreBatchSalePrice decimal(18,4)
    DECLARE @ChangePrice decimal(18,4)
    DECLARE @PreAmount decimal(18,4)
    DECLARE @ChangeAmount decimal(18,4)
    DECLARE @CurAmount decimal(18,4)
    DECLARE @PreCostSumMoney decimal(18,4)
    DECLARE @PreSaleSumMoney decimal(18,4)
    DECLARE @PreBatchSaleSumMoney decimal(18,4)
    DECLARE @ChangeSumMoney decimal(18,4)
    DECLARE @CurCostPrice decimal(18,4)
    DECLARE @CurSalePrice decimal(18,4)
    DECLARE @CurBatchSalePrice decimal(18,4)
    DECLARE @CurCostSumMoney decimal(18,4)
    DECLARE @CurSaleSumMoney decimal(18,4)
    DECLARE @CurBatchSaleSumMoney decimal(18,4)
    DECLARE @IsAmountChanged bit
    DECLARE @IsMoneyChanged bit
    DECLARE @InStockId int
    DECLARE @OutStockId int
    DECLARE @DataVersion bigint
   
   
    /*定义DataVersion对应的局部变量*/
    DECLARE @DataVersionId int
    DECLARE @Name varchar(20)
    DECLARE @PreviousVersion bigint
    DECLARE @CurVersion bigint
    DECLARE @OriginDateTime datetime
    DECLARE @SynchronizeDateTime datetime

    /*根据情况对局部变量赋初始值*/
    select @CommodityStockDataVersion=0
    SELECT @BillType=5 --零售单的BillType为5
    SELECT @ErrorMessage=NULL
    SELECT @EmbranchmentId=INTValue FROM SysData WHERE Name='EmbranchmentId'
    IF @EmbranchmentId IS NULL
    BEGIN
        SELECT @ErrorMessage='未查找到对应的分支机构Id'
        Select @ErrorInfoId =-1
        RETURN -1
    END
   
    SET TRANSACTION ISOLATION LEVEL  SERIALIZABLE
    BEGIN TRAN
    SET NOCOUNT ON  
    SELECT
           @EmbranchmentId=EmbranchmentId,
           @BillId=BillId,
           @BillType=BillType,
           @BillFlowId=BillFlowId,
           @BillCode=BillCode,
           @CreateDate=CreateDate,
           @CreatorId=CreatorId,
           @BusinessDate=BusinessDate,
           @BusinessId=BusinessId,
           @AuditDate=AuditDate,
           @AuditorId=AuditorId,
           @ProviderId=ProviderId,
           @CardId=CardId,
           @CustomerId=CustomerId,
           @CardCode=CardCode,
           @Status=@Status,
           @SumMoney=SumMoney,
           @Discount=Discount,
           @InStockId=InStockId,
           @OutStockId=OutStockId,
           @Summary=Summary,
           @Remark=Remark,
           @Guid=Guid,
           @CreatorName=CreatorName,
           @BusinessName=BusinessName,
           @BillCodeName=BillCodeName,
           @StockName=StockName,
           @EmbranchmentName=EmbranchmentName,
           @CustomerName=CustomerName,
           @InStockName=InStockName,
           @OutStockName=OutStockName,
           @FS=FS,
           @IsZY=IsZY,
           @PayType=PayType,
           @PayCard=PayCard
    FROM  Bill(UPDLOCK)
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
     AND  Status=1
    
    IF @@ROWCOUNT=0
    BEGIN
        ROLLBACK
        SELECT @ErrorMessage='没有找到要审核的单据'
        Select @ErrorInfoId =-2
        RETURN
    END

    /*检查从单是否完整*/
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
                 ProductDate, InvalidateDate,CostPrice,RowNum
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId
   
    IF @@ROWCOUNT = 0
    BEGIN
      SELECT @ErrorMessage='没有找到要审核的从单'
      Select @ErrorInfoId =-3
      ROLLBACK
      RETURN
    END
   
    /*从单游标*/
    DECLARE Cur_BillDetailRetail CURSOR FOR
    SELECT CommodityId, BatchCode, Price,Discount,DiscountPrice, Amount, SumMoney,
        ProductDate, InvalidateDate,CostPrice,RowNum, CommodityName, Spec,
                           Unit, ProducingArea, DoseTypeName, AuthorizeCode,InOrder,CustomCode,
        CounterId,CounterName , PackingId, PackingName  ,CustomStr,ProductName
    FROM BillDetailRetail
    WHERE EmbranchmentId=@EmbranchmentId
     AND  BillType=@BillType
     AND  BillId=@BillId

    OPEN Cur_BillDetailRetail

    FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode ,
        @CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT @CostPrice = CostPrice,@Amount_pre = Amount,@Amount_cs = Amount,@RetailPrice = CurrentRetailPrice,
        @SumCost = SumCost,@SumRetail = SumRetail,@Medicare = Medicare
        FROM CommodityStock
        WHERE  DepotId=@OutStockId
         AND EmbranchmentId=@EmbranchmentId
         AND CommodityId=@CommodityId
         AND BatchCode=@BatchCode
         and   InOrder =@InOrder
         and PackingId=@PackingId

        IF @@ROWCOUNT = 0
        BEGIN
            SELECT @ErrorMessage='检测库存失败!'
            Select @ErrorInfoId =-10
            ROLLBACK  TRAN RETAIL
            RETURN
        END

        SELECT @Amount_cs = @Amount_cs - @Amount*@FS
        SELECT @SumCost = @CostPrice * @Amount_cs
        SELECT @SumRetail = @RetailPrice * @Amount_cs
       
        /*如果库存数量大于销售数量,则更新库存表,否则,回滚*/
        IF @Amount_cs < 0
        BEGIN
            SELECT @ErrorMessage='编号:' +@CustomCode+' 名称:' + @CommodityName +' 批号:' + @BatchCode +'的库存数量不足,无法审核!'
            Select @ErrorInfoId =-4
            ROLLBACK
            RETURN
        END
        ELSE
        BEGIN

                /*在社区药店系统中,CommodityStock中有DataVersion字段,主要是用于各社区店从服务器上下拉库存*/  
                     select @CommodityStockDataVersion=CurVersion,
                               @CommodityStockOriginDateTime = OriginDateTime,
                               @CommodityStockSynchronizeDateTime = SynchronizeDateTime
                     from DataVersion(UPDLOCK)
                     where EmbranchmentId=@EmbranchmentId
                                and DataVersionId=14

                     if @@ROWCOUNT<>1
                     begin
                          SELECT @ErrorMessage='取版本出错!'
                          Select @ErrorInfoId=-100
                          ROLLBACK
                          RETURN -1                 
                     end 
               /**************************************************************************************************************************************/ 

            /*库存表处理部分*/
            UPDATE CommodityStock
            SET Amount = @Amount_cs,FactAmount = @Amount_cs,SumCost = @SumCost,SumRetail=@SumRetail,DataVersion=@CommodityStockDataVersion+1
            WHERE  DepotId=@OutStockId
             AND EmbranchmentId=@EmbranchmentId
             AND CommodityId=@CommodityId
             AND BatchCode=@BatchCode
             and   InOrder =@InOrder
             and PackingId=@PackingId

               /*************************************在社区药店系统版本处理部分**********************************************/  
                     Update DataVersion
                       set  PreviousVersion=@CommodityStockDataVersion,CurVersion=@CommodityStockDataVersion+1,
                             OriginDateTime=@CommodityStockSynchronizeDateTime, SynchronizeDateTime=getDate()
                     where EmbranchmentId=@EmbranchmentId
                       and DataVersionId=14

                     if @@error <>0
                     begin
                          SELECT @ErrorMessage='更新版本出错!'
                          Select @ErrorInfoId=-111
                          ROLLBACK
                          RETURN -1
                     end


               /***************************************************************************************************************************/ 
            
             /*版本处理部分*/
             SELECT @CurVersion=CurVersion
             FROM DataVersion
             WHERE EmbranchmentId=@EmbranchmentId
             AND DataVersionId=1
            
             IF @@ROWCOUNT = 0
             BEGIN
                 SELECT @ErrorMessage='取版本出错!'
                 Select @ErrorInfoId =-5
                 ROLLBACK
                 RETURN                  
             END
             ELSE
             BEGIN
                Update DataVersion
                SET PreviousVersion = @CurVersion,CurVersion = @CurVersion+1
                WHERE EmbranchmentId=@EmbranchmentId
                AND DataVersionId=1
             END 
            
             /*出入库记录处理部分*/
    SELECT @PreCostSumMoney=@Amount_pre*@CostPrice
    SELECT @PreSaleSumMoney=@Amount_pre*@RetailPrice
    SELECT @CurCostSumMoney=@Amount*@CostPrice
    SELECT @CurSaleSumMoney=@Amount*@DiscountPrice*@Discount
    SELECT @ChangeSumMoney=@Amount*@DiscountPrice*@Discount*@FS--@Discount为整单折扣,@Discount_Detail为明细单品折扣
             INSERT INTO InoutStockTable (Guid,   EmbranchmentId,  StockId,    BillType,  BillId,BillCode, BusinessDate,AuditDate, RowNum,  CommodityId,  BatchCode, PreCostPrice, PreSalePrice,PreBatchSalePrice,ChangePrice,Discount,DiscountPrice,PreAmount, ChangeAmount, OutAmount,CurAmount   , PreCostSumMoney,PreSaleSumMoney, PreBatchSaleSumMoney, ChangeSumMoney,  CurCostPrice, CurSalePrice, CurBatchSalePrice, CurCostSumMoney, CurBatchSaleSumMoney, CurSaleSumMoney,          ProductDate,  InvalidateDate,  IsMoneyChanged, IsAmountChanged, ProviderId,  CustomerId,  InStockId, OutStockId, DataVersion,CommodityName,Spec,Unit,ProducingArea,AuthorizeCode,DoseTypeName,CreatorName,BusinessName,BillCodeName,StockName,EmbranchmentName,CustomerName,InStockName,OutStockName,Remark,CustomCode,CounterId,CounterName,IsZY,EntireDisCount,PayType,CardCode,Medicare,PayCard,PackingId,PackingName ,CustomStr,ProductName)
                                  VALUES (newid(),@EmbranchmentId, @OutStockId,@BillType, @BillId, @BillCode,@BusinessDate,@AuditDate,@RowNum, @CommodityId, @BatchCode,@CostPrice  , @RetailPrice,0                ,@Price     ,@Discount_Detail       ,@DiscountPrice       ,@Amount_pre, @Amount*@FS,      @Amount*@FS,     @Amount_cs  , @PreCostSumMoney       ,@PreSaleSumMoney,      0,                    @ChangeSumMoney,       @CostPrice,   @RetailPrice, 0,                 @CurCostSumMoney,        0,                    @CurSaleSumMoney , @ProductDate, @InvalidateDate, 1,              1,               @ProviderId, @CustomerId, 0        , @OutStockId,@CurVersion + 1,@CommodityName,@Spec,@Unit,@ProducingArea,@AuthorizeCode,@DoseTypeName,@CreatorName,@BusinessName,@BillCodeName,@StockName,@EmbranchmentName,@CustomerName,@InStockName,@OutStockName,@Remark,@CustomCode,@CounterId,@CounterName,1,@DisCount,@PayType,@CardCode,@Medicare,@PayCard,@PackingId,@PackingName ,@CustomStr,@ProductName)                                                                                        
        END
       
        Update Bill
        SET Status=2,AuditDate=GETDATE()
        WHERE EmbranchmentId=@EmbranchmentId
        AND BillType=@BillType
        AND BillId=@BillId
        AND Status=1

        FETCH NEXT FROM Cur_BillDetailRetail
    INTO @CommodityId, @BatchCode, @Price,@Discount_Detail,@DiscountPrice, @Amount, @SumMoney,
                 @ProductDate, @InvalidateDate,@CostPrice,@RowNum, @CommodityName, @Spec,
                 @Unit, @ProducingArea, @DoseTypeName, @AuthorizeCode,@InOrder,@CustomCode ,
        @CounterId,@CounterName,@PackingId, @PackingName  ,@CustomStr,@ProductName  
    END
    SELECT @ErrorMessage='收款成功!'
    Select @ErrorInfoId =1
    CLOSE Cur_BillDetailRetail
    DEALLOCATE Cur_BillDetailRetail

    IF @ErrorInfoId =1
    BEGIN
    IF @CardId = 0
    BEGIN
        UPDATE Bill SET CardMessage='CardId is null' WHERE BillId=@BillId
    END
    ELSE
    BEGIN
            IF @CardCode = '' OR @CardCode IS NULL
            BEGIN
            UPDATE Bill SET CardMessage='CardCode is null' WHERE BillId=@BillId
            END 
        ELSE
        BEGIN
            EXEC UpdateMemberCardAndLog @BillId = @BillId
        END
    END
    END
   
    COMMIT
GO
/****** Object:  UserDefinedFunction [dbo].[CanAccessFunction]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[CanAccessFunction]
(
    -- Add the parameters for the function here
    @UserName nvarchar(50),
    @Path nvarchar(200)
)
RETURNS nvarchar(10)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @CanAccessFunction nvarchar(10)

    -- Add the T-SQL statements to compute the return value here
    SELECT @CanAccessFunction='false'
    /****** Script for SelectTopNRows command from SSMS  ******/
    declare @result int
   
SELECT top 1 @result =count(1)
  FROM [MedicineMis_STD].[dbo].[UserFunction]  where  UserName=@UserName and [Path] =@Path
   
   
    if(@result <> 0)
     select @CanAccessFunction='true'
    -- Return the result of the function
    RETURN @CanAccessFunction

END
GO
/****** Object:  DdlTrigger [tr_MStran_alterschemaonly]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [tr_MStran_alterschemaonly] on database for ALTER_FUNCTION, ALTER_PROCEDURE as

                            set ANSI_NULLS ON
                            set ANSI_PADDING ON
                            set ANSI_WARNINGS ON
                            set ARITHABORT ON
                            set CONCAT_NULL_YIELDS_NULL ON
                            set NUMERIC_ROUNDABORT OFF
                            set QUOTED_IDENTIFIER ON

                            declare @EventData xml
                            set @EventData=EventData()   
                            exec sys.sp_MStran_ddlrepl @EventData, 3
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
DISABLE TRIGGER [tr_MStran_alterschemaonly] ON DATABASE
GO
/****** Object:  DdlTrigger [tr_MStran_altertable]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [tr_MStran_altertable] on database for ALTER_TABLE as

                            set ANSI_NULLS ON
                            set ANSI_PADDING ON
                            set ANSI_WARNINGS ON
                            set ARITHABORT ON
                            set CONCAT_NULL_YIELDS_NULL ON
                            set NUMERIC_ROUNDABORT OFF
                            set QUOTED_IDENTIFIER ON

                            declare @EventData xml
                            set @EventData=EventData()   
                            exec sys.sp_MStran_ddlrepl @EventData, 1
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
DISABLE TRIGGER [tr_MStran_altertable] ON DATABASE
GO
/****** Object:  DdlTrigger [tr_MStran_altertrigger]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [tr_MStran_altertrigger] on database for ALTER_TRIGGER as

                            set ANSI_NULLS ON
                            set ANSI_PADDING ON
                            set ANSI_WARNINGS ON
                            set ARITHABORT ON
                            set CONCAT_NULL_YIELDS_NULL ON
                            set NUMERIC_ROUNDABORT OFF
                            set QUOTED_IDENTIFIER ON

                            declare @EventData xml
                            set @EventData=EventData()   
                            exec sys.sp_MStran_ddlrepl @EventData, 4
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
DISABLE TRIGGER [tr_MStran_altertrigger] ON DATABASE
GO
/****** Object:  DdlTrigger [tr_MStran_alterview]    Script Date: 03/02/2011 16:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [tr_MStran_alterview] on database for ALTER_VIEW as

                            set ANSI_NULLS ON
                            set ANSI_PADDING ON
                            set ANSI_WARNINGS ON
                            set ARITHABORT ON
                            set CONCAT_NULL_YIELDS_NULL ON
                            set NUMERIC_ROUNDABORT OFF
                            set QUOTED_IDENTIFIER ON

                            declare @EventData xml
                            set @EventData=EventData()   
                            exec sys.sp_MStran_ddlrepl @EventData, 2
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
DISABLE TRIGGER [tr_MStran_alterview] ON DATABASE
GO
/****** Object:  Default [DF_PostFunc_Tag]    Script Date: 03/02/2011 16:53:45 ******/
ALTER TABLE [dbo].[PostFunc] ADD  CONSTRAINT [DF_PostFunc_Tag]  DEFAULT (0) FOR [Tag]
GO
/****** Object:  Default [DF_NewStock_IsChinese]    Script Date: 03/02/2011 16:53:45 ******/
ALTER TABLE [dbo].[NewStock] ADD  CONSTRAINT [DF_NewStock_IsChinese]  DEFAULT (0) FOR [IsChinese]
GO
/****** Object:  Default [DF_NewStock_PackingId]    Script Date: 03/02/2011 16:53:45 ******/
ALTER TABLE [dbo].[NewStock] ADD  CONSTRAINT [DF_NewStock_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_Report_IsSystem]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Report] ADD  CONSTRAINT [DF_Report_IsSystem]  DEFAULT (0) FOR [IsSystem]
GO
/****** Object:  Default [DF_QsPackage_State]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[QsPackage] ADD  CONSTRAINT [DF_QsPackage_State]  DEFAULT ('草稿') FOR [State]
GO
/****** Object:  Default [DF_InoutStockTableCard_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_InoutStockTableCard_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_InoutStockTableCard_IsZY]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_IsZY]  DEFAULT (0) FOR [IsZY]
GO
/****** Object:  Default [DF_InoutStockTableCard_PayType]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_PayType]  DEFAULT (0) FOR [PayType]
GO
/****** Object:  Default [DF_InoutStockTableCard_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_InoutStockTableCard_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_InoutStockTableCard_IsMedicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_IsMedicare]  DEFAULT (0) FOR [IsMedicare]
GO
/****** Object:  Default [DF_InoutStockTableCard_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_Deleted]  DEFAULT (0) FOR [Deleted]
GO
/****** Object:  Default [DF_InoutStockTableCard_CompanyId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_CompanyId]  DEFAULT (0) FOR [CompanyId]
GO
/****** Object:  Default [DF_InoutStockTableCard_CFF]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTableCard] ADD  CONSTRAINT [DF_InoutStockTableCard_CFF]  DEFAULT ((0)) FOR [CFF]
GO
/****** Object:  Default [DF_InoutStockTable_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_InoutStockTable_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_InoutStockTable_IsZY]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_IsZY]  DEFAULT (0) FOR [IsZY]
GO
/****** Object:  Default [DF_InoutStockTable_PayType]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_PayType]  DEFAULT (0) FOR [PayType]
GO
/****** Object:  Default [DF_InoutStockTable_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_InoutStockTable_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_InoutStockTable_IsMedicare_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_IsMedicare_1]  DEFAULT (0) FOR [IsMedicare]
GO
/****** Object:  Default [DF_InoutStockTable_Status_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_Status_1]  DEFAULT (0) FOR [Status]
GO
/****** Object:  Default [DF_InoutStockTable_CompanyId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_CompanyId]  DEFAULT (0) FOR [CompanyId]
GO
/****** Object:  Default [DF_InoutStockTable_CFF]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[InoutStockTable] ADD  CONSTRAINT [DF_InoutStockTable_CFF]  DEFAULT (0) FOR [CFF]
GO
/****** Object:  Default [DF_FunctionTree_Tag]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FunctionTree] ADD  CONSTRAINT [DF_FunctionTree_Tag]  DEFAULT (0) FOR [Tag]
GO
/****** Object:  Default [DF_FoodInoutStockTable_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodInoutStockTable] ADD  CONSTRAINT [DF_FoodInoutStockTable_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_FoodInoutStockTable_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodInoutStockTable] ADD  CONSTRAINT [DF_FoodInoutStockTable_PackingId]  DEFAULT ((0)) FOR [PackingId]
GO
/****** Object:  Default [DF_FoodInfo_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodInfo] ADD  CONSTRAINT [DF_FoodInfo_PackingId]  DEFAULT ((0)) FOR [PackingId]
GO
/****** Object:  Default [DF_FoodEmbranchmentEmployee_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodEmbranchmentEmployee] ADD  CONSTRAINT [DF_FoodEmbranchmentEmployee_Deleted]  DEFAULT ((0)) FOR [Deleted]
GO
/****** Object:  Default [DF_FoodEmbranchment_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodEmbranchment] ADD  CONSTRAINT [DF_FoodEmbranchment_Deleted]  DEFAULT ((0)) FOR [Deleted]
GO
/****** Object:  Default [DF_FoodBillDetailBuyInStock_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodBillDetailBuyInStock] ADD  CONSTRAINT [DF_FoodBillDetailBuyInStock_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_FoodBillDetailBuyInStock_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodBillDetailBuyInStock] ADD  CONSTRAINT [DF_FoodBillDetailBuyInStock_PackingId]  DEFAULT ((0)) FOR [PackingId]
GO
/****** Object:  Default [DF_FoodBill_Status]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[FoodBill] ADD  CONSTRAINT [DF_FoodBill_Status]  DEFAULT ((0)) FOR [Status]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF__MemberCarTemp__Busin__2BD46C74]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF__MemberCarTemp__Busin__2BD46C74]  DEFAULT (getdate()) FOR [BusinessDate]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_ReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_ReturnPayCard]  DEFAULT (0) FOR [ReturnPayCard]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_PointsBase]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_PointsBase]  DEFAULT (1) FOR [PointsBase]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_Points]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_Points]  DEFAULT (1) FOR [Points]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_IsTransferred_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_IsTransferred_1]  DEFAULT (0) FOR [IsTransferred]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_IsHC_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_IsHC_1]  DEFAULT (0) FOR [IsHC]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_IsCZ_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_IsCZ_1]  DEFAULT (0) FOR [IsCZ]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_Deleted]  DEFAULT (0) FOR [Deleted]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_ProviderId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_ProviderId]  DEFAULT (0) FOR [ProviderId]
GO
/****** Object:  Default [DF_MemberCardChangeLogTemp_Shadiness]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLogTemp] ADD  CONSTRAINT [DF_MemberCardChangeLogTemp_Shadiness]  DEFAULT (0) FOR [Shadiness]
GO
/****** Object:  Default [DF_MemberCardChangeLog_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF__MemberCar__Busin__2BD46C74]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF__MemberCar__Busin__2BD46C74]  DEFAULT (getdate()) FOR [BusinessDate]
GO
/****** Object:  Default [DF_MemberCardChangeLog_ReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_ReturnPayCard]  DEFAULT (0) FOR [ReturnPayCard]
GO
/****** Object:  Default [DF_MemberCardChangeLog_PointsBase]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_PointsBase]  DEFAULT (1) FOR [PointsBase]
GO
/****** Object:  Default [DF_MemberCardChangeLog_Points]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_Points]  DEFAULT (1) FOR [Points]
GO
/****** Object:  Default [DF_MemberCardChangeLog_IsTransferred_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_IsTransferred_1]  DEFAULT (0) FOR [IsTransferred]
GO
/****** Object:  Default [DF_MemberCardChangeLog_IsHC_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_IsHC_1]  DEFAULT (0) FOR [IsHC]
GO
/****** Object:  Default [DF_MemberCardChangeLog_IsCZ_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_IsCZ_1]  DEFAULT (0) FOR [IsCZ]
GO
/****** Object:  Default [DF_MemberCardChangeLog_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_Deleted]  DEFAULT (0) FOR [Deleted]
GO
/****** Object:  Default [DF_MemberCardChangeLog_ProviderId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_ProviderId]  DEFAULT (0) FOR [ProviderId]
GO
/****** Object:  Default [DF_MemberCardChangeLog_CheckOut]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_CheckOut]  DEFAULT (0) FOR [CheckOut]
GO
/****** Object:  Default [DF_MemberCardChangeLog_Shadiness]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCardChangeLog] ADD  CONSTRAINT [DF_MemberCardChangeLog_Shadiness]  DEFAULT (0) FOR [Shadiness]
GO
/****** Object:  Default [DF_MemberCard_CardId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_CardId]  DEFAULT (0) FOR [CardId]
GO
/****** Object:  Default [DF_MemberCard_Balance]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_Balance]  DEFAULT (0) FOR [Balance]
GO
/****** Object:  Default [DF_MemberCard_SumConsumed]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_SumConsumed]  DEFAULT (0) FOR [SumConsumed]
GO
/****** Object:  Default [DF_MemberCard_CardLevelId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_CardLevelId]  DEFAULT (0) FOR [CardLevelId]
GO
/****** Object:  Default [DF_MemberCard_Status]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_Status]  DEFAULT (0) FOR [Status]
GO
/****** Object:  Default [DF_MemberCard_Foregift]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_Foregift]  DEFAULT (0) FOR [Foregift]
GO
/****** Object:  Default [DF_MemberCard_Discount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_Discount]  DEFAULT (1) FOR [Discount]
GO
/****** Object:  Default [DF_MemberCard_MissCash]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_MissCash]  DEFAULT (0) FOR [MissCash]
GO
/****** Object:  Default [DF_MemberCard_ReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_ReturnPayCard]  DEFAULT (0) FOR [ReturnPayCard]
GO
/****** Object:  Default [DF_MemberCard_SumAllMoney]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_SumAllMoney]  DEFAULT (0) FOR [SumAllMoney]
GO
/****** Object:  Default [DF_MemberCard_YBConsumed]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_YBConsumed]  DEFAULT (0) FOR [YBConsumed]
GO
/****** Object:  Default [DF_MemberCard_SumDiscount_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_SumDiscount_1]  DEFAULT (1) FOR [SumDiscount]
GO
/****** Object:  Default [DF_MemberCard_SpareMoney]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_SpareMoney]  DEFAULT (0) FOR [SpareMoney]
GO
/****** Object:  Default [DF_MemberCard_IsTransferred]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_IsTransferred]  DEFAULT (0) FOR [IsTransferred]
GO
/****** Object:  Default [DF_MemberCard_ReturnCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_ReturnCard]  DEFAULT (0) FOR [ReturnCard]
GO
/****** Object:  Default [DF_MemberCard_CancelReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_CancelReturnPayCard]  DEFAULT (0) FOR [CancelReturnPayCard]
GO
/****** Object:  Default [DF_MemberCard_CallBackReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_CallBackReturnPayCard]  DEFAULT (0) FOR [CallBackReturnPayCard]
GO
/****** Object:  Default [DF_MemberCard_DrawCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_DrawCard]  DEFAULT (0) FOR [DrawCard]
GO
/****** Object:  Default [DF_MemberCard_TransferCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_TransferCard]  DEFAULT (0) FOR [TransferCard]
GO
/****** Object:  Default [DF_MemberCard_ProviderId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_ProviderId]  DEFAULT (0) FOR [ProviderId]
GO
/****** Object:  Default [DF_MemberCard_IsCH]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[MemberCard] ADD  CONSTRAINT [DF_MemberCard_IsCH]  DEFAULT ((0)) FOR [IsCZ]
GO
/****** Object:  Default [DF_Sypzspb_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Sypzspb] ADD  CONSTRAINT [DF_Sypzspb_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_Site_LodingTime]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Site] ADD  CONSTRAINT [DF_Site_LodingTime]  DEFAULT (getdate()) FOR [LodingTime]
GO
/****** Object:  Default [DF_ConversionDataTable_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[ConversionDataTable] ADD  CONSTRAINT [DF_ConversionDataTable_PackingId]  DEFAULT (0) FOR [PackingId_Old]
GO
/****** Object:  Default [DF_ConversionDataTable_PackingId_Old1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[ConversionDataTable] ADD  CONSTRAINT [DF_ConversionDataTable_PackingId_Old1]  DEFAULT (0) FOR [PackingId_New]
GO
/****** Object:  Default [DF_Employee_Login_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Employee] ADD  CONSTRAINT [DF_Employee_Login_1]  DEFAULT (0) FOR [Login]
GO
/****** Object:  Default [DF_Embranchment_EconomyKind]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_EconomyKind]  DEFAULT ('个体') FOR [EconomyKind]
GO
/****** Object:  Default [DF_Embranchment_WorkMethod]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_WorkMethod]  DEFAULT ('零售(经营处方药和非处方药)') FOR [WorkMethod]
GO
/****** Object:  Default [DF_Embranchment_EnterpriseKind]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_EnterpriseKind]  DEFAULT ('无') FOR [EnterpriseKind]
GO
/****** Object:  Default [DF_Embranchment_Deleted_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_Deleted_1]  DEFAULT ((0)) FOR [Deleted]
GO
/****** Object:  Default [DF_Embranchment_IsSelected]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_IsSelected]  DEFAULT ((0)) FOR [IsSelected]
GO
/****** Object:  Default [DF_Embranchment_Enable]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_Enable]  DEFAULT ((0)) FOR [Enable]
GO
/****** Object:  Default [DF_Embranchment_HeadOffice_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Embranchment] ADD  CONSTRAINT [DF_Embranchment_HeadOffice_1]  DEFAULT ((0)) FOR [HeadOffice]
GO
/****** Object:  Default [DF_DoseType_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[DoseType] ADD  CONSTRAINT [DF_DoseType_Deleted]  DEFAULT (0) FOR [Deleted]
GO
/****** Object:  Default [DF_Demolition_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Demolition] ADD  CONSTRAINT [DF_Demolition_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_Demolition_Dem_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Demolition] ADD  CONSTRAINT [DF_Demolition_Dem_PackingId]  DEFAULT (0) FOR [Dem_PackingId]
GO
/****** Object:  Default [DF_Demolition_proportion]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Demolition] ADD  CONSTRAINT [DF_Demolition_proportion]  DEFAULT (1) FOR [proportion]
GO
/****** Object:  Default [DF_Customer_CertificateName_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Customer] ADD  CONSTRAINT [DF_Customer_CertificateName_1]  DEFAULT (0) FOR [CertificateName]
GO
/****** Object:  Default [DF_Customer_ProviderId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Customer] ADD  CONSTRAINT [DF_Customer_ProviderId]  DEFAULT (0) FOR [ProviderId]
GO
/****** Object:  Default [DF_ConserveDetail_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[ConserveDetail] ADD  CONSTRAINT [DF_ConserveDetail_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_CommodityStock_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_CommodityStock_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_CommodityStock_IsChinese]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_IsChinese]  DEFAULT (0) FOR [IsChinese]
GO
/****** Object:  Default [DF_CommodityStock_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_CounterId]  DEFAULT (0) FOR [CounterId]
GO
/****** Object:  Default [DF_CommodityStock_DataVersion_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_DataVersion_1]  DEFAULT (0) FOR [DataVersion]
GO
/****** Object:  Default [DF_CommodityStock_CurrentMemberPrice]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_CurrentMemberPrice]  DEFAULT (1) FOR [CurrentMemberPrice]
GO
/****** Object:  Default [DF_CommodityStock_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityStock] ADD  CONSTRAINT [DF_CommodityStock_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_CommodityRelation_NewPackingId_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityRelation] ADD  CONSTRAINT [DF_CommodityRelation_NewPackingId_1]  DEFAULT (0) FOR [NewPackingId]
GO
/****** Object:  Default [DF_CommodityRelation_OldPackingId_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityRelation] ADD  CONSTRAINT [DF_CommodityRelation_OldPackingId_1]  DEFAULT (0) FOR [OldPackingId]
GO
/****** Object:  Default [DF_CommodityOld_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_CommodityOld_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_CommodityOld_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_CommodityOld_Reports]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_Reports]  DEFAULT (0) FOR [Reports]
GO
/****** Object:  Default [DF_CommodityOld_Deleted]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_Deleted]  DEFAULT (0) FOR [Deleted]
GO
/****** Object:  Default [DF_CommodityOld_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityOld] ADD  CONSTRAINT [DF_CommodityOld_CounterId]  DEFAULT (0) FOR [CounterId]
GO
/****** Object:  Default [DF_CommodityBcrRecord_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityBcrRecord] ADD  CONSTRAINT [DF_CommodityBcrRecord_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_CommodityBcrRecord_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityBcrRecord] ADD  CONSTRAINT [DF_CommodityBcrRecord_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_CommodityAudit_Reports]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityAudit] ADD  CONSTRAINT [DF_CommodityAudit_Reports]  DEFAULT (0) FOR [Reports]
GO
/****** Object:  Default [DF_CommodityAudit_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CommodityAudit] ADD  CONSTRAINT [DF_CommodityAudit_CounterId]  DEFAULT (0) FOR [CounterId]
GO
/****** Object:  Default [DF_Commodity_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Commodity] ADD  CONSTRAINT [DF_Commodity_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_Commodity_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Commodity] ADD  CONSTRAINT [DF_Commodity_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_Commodity_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Commodity] ADD  CONSTRAINT [DF_Commodity_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_Commodity_Reports]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Commodity] ADD  CONSTRAINT [DF_Commodity_Reports]  DEFAULT (0) FOR [Reports]
GO
/****** Object:  Default [DF_Commodity_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Commodity] ADD  CONSTRAINT [DF_Commodity_CounterId]  DEFAULT (0) FOR [CounterId]
GO
/****** Object:  Default [DF_BillDetailCharge_RowNum]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailChargeCard] ADD  CONSTRAINT [DF_BillDetailCharge_RowNum]  DEFAULT (0) FOR [RowNum]
GO
/****** Object:  Default [DF_BillDetailCharge_CardId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailChargeCard] ADD  CONSTRAINT [DF_BillDetailCharge_CardId]  DEFAULT (0) FOR [CardId]
GO
/****** Object:  Default [DF_BillDetailCharge_CustomerId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailChargeCard] ADD  CONSTRAINT [DF_BillDetailCharge_CustomerId]  DEFAULT (0) FOR [CustomerId]
GO
/****** Object:  Default [DF_BillDetailCharge_IsCZ]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailChargeCard] ADD  CONSTRAINT [DF_BillDetailCharge_IsCZ]  DEFAULT (0) FOR [IsCZ]
GO
/****** Object:  Default [DF_BillDetailChargeCard_Status]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailChargeCard] ADD  CONSTRAINT [DF_BillDetailChargeCard_Status]  DEFAULT ((0)) FOR [Status]
GO
/****** Object:  Default [DF_BillDetailBatchCodeAdjust_PreBatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBatchCodeAdjust] ADD  CONSTRAINT [DF_BillDetailBatchCodeAdjust_PreBatchCode]  DEFAULT ('') FOR [PreBatchCode]
GO
/****** Object:  Default [DF_BillDetailBatchCodeAdjust_CurBatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBatchCodeAdjust] ADD  CONSTRAINT [DF_BillDetailBatchCodeAdjust_CurBatchCode]  DEFAULT ('') FOR [CurBatchCode]
GO
/****** Object:  Default [DF_BillDetailBatchCodeAdjust_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBatchCodeAdjust] ADD  CONSTRAINT [DF_BillDetailBatchCodeAdjust_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailAdjustRetailPrice_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailAdjustRetailPrice] ADD  CONSTRAINT [DF_BillDetailAdjustRetailPrice_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailAdjustRetailPrice_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailAdjustRetailPrice] ADD  CONSTRAINT [DF_BillDetailAdjustRetailPrice_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailRetail_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailRetail_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailRetail_MemberPrice]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_MemberPrice]  DEFAULT (0) FOR [MemberPrice]
GO
/****** Object:  Default [DF_BillDetailRetail_ReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_ReturnPayCard]  DEFAULT (0) FOR [ReturnPayCard]
GO
/****** Object:  Default [DF_BillDetailRetail_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_BillDetailRetail_CardDiscount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetail] ADD  CONSTRAINT [DF_BillDetailRetail_CardDiscount]  DEFAULT (1) FOR [CardDiscount]
GO
/****** Object:  Default [DF_BillDetailReportSpill_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailReportSpill] ADD  CONSTRAINT [DF_BillDetailReportSpill_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailReportSpill_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailReportSpill] ADD  CONSTRAINT [DF_BillDetailReportSpill_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailReportLoss_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailReportLoss] ADD  CONSTRAINT [DF_BillDetailReportLoss_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailReportLoss_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailReportLoss] ADD  CONSTRAINT [DF_BillDetailReportLoss_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailRetailReturn_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetailReturn] ADD  CONSTRAINT [DF_BillDetailRetailReturn_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailRetailReturn_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailRetailReturn] ADD  CONSTRAINT [DF_BillDetailRetailReturn_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailDemolition_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailDemolition_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailDemolition_IsChinese]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_IsChinese]  DEFAULT (0) FOR [IsChinese]
GO
/****** Object:  Default [DF_BillDetailDemolition_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_CounterId]  DEFAULT (0) FOR [CounterId]
GO
/****** Object:  Default [DF_BillDetailDemolition_DataVersion]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_DataVersion]  DEFAULT (0) FOR [DataVersion]
GO
/****** Object:  Default [DF_BillDetailDemolition_CurrentMemberPrice]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_CurrentMemberPrice]  DEFAULT (1) FOR [CurrentMemberPrice]
GO
/****** Object:  Default [DF_BillDetailDemolition_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_PackingId]  DEFAULT (0) FOR [Dem_PackingId]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_BatchCode]  DEFAULT ('') FOR [Dem_BatchCode]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_IsChinese]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_IsChinese]  DEFAULT (0) FOR [Dem_IsChinese]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_CounterId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_CounterId]  DEFAULT (0) FOR [Dem_CounterId]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_DataVersion]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_DataVersion]  DEFAULT (0) FOR [Dem_DataVersion]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_CurrentMemberPrice]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_CurrentMemberPrice]  DEFAULT (1) FOR [Dem_CurrentMemberPrice]
GO
/****** Object:  Default [DF_BillDetailDemolition_Dem_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_Dem_Medicare]  DEFAULT (0) FOR [Dem_Medicare]
GO
/****** Object:  Default [DF_BillDetailDemolition_proportion]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailDemolition] ADD  CONSTRAINT [DF_BillDetailDemolition_proportion]  DEFAULT (1) FOR [proportion]
GO
/****** Object:  Default [DF_CardTypeDiscountAndPoints_Discount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CardTypeDiscountAndPoints] ADD  CONSTRAINT [DF_CardTypeDiscountAndPoints_Discount]  DEFAULT (1) FOR [Discount]
GO
/****** Object:  Default [DF_CardTypeDiscountAndPoints_PointsBase]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CardTypeDiscountAndPoints] ADD  CONSTRAINT [DF_CardTypeDiscountAndPoints_PointsBase]  DEFAULT (1) FOR [PointsBase]
GO
/****** Object:  Default [DF_CardTypeDiscountAndPoints_Points]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CardTypeDiscountAndPoints] ADD  CONSTRAINT [DF_CardTypeDiscountAndPoints_Points]  DEFAULT (1) FOR [Points]
GO
/****** Object:  Default [DF_CardType_Discount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[CardType] ADD  CONSTRAINT [DF_CardType_Discount]  DEFAULT (1) FOR [Discount]
GO
/****** Object:  Default [DF_Bill_Status]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_Status]  DEFAULT (0) FOR [Status]
GO
/****** Object:  Default [DF_Bill_ShiftId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_ShiftId]  DEFAULT (0) FOR [ShiftId]
GO
/****** Object:  Default [DF_Bill_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_Bill_IsZY]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_IsZY]  DEFAULT (0) FOR [IsZY]
GO
/****** Object:  Default [DF_Bill_CFQ]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_CFQ]  DEFAULT (0) FOR [CFQ]
GO
/****** Object:  Default [DF_Bill_IsGD_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_IsGD_1]  DEFAULT (0) FOR [IsGD]
GO
/****** Object:  Default [DF_Bill_PayType_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_PayType_1]  DEFAULT (0) FOR [PayType]
GO
/****** Object:  Default [DF_Bill_CardDiscount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[Bill] ADD  CONSTRAINT [DF_Bill_CardDiscount]  DEFAULT (1) FOR [CardDiscount]
GO
/****** Object:  Default [DF__AppRight__Forder__5ECA0095]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[AppRight] ADD  CONSTRAINT [DF__AppRight__Forder__5ECA0095]  DEFAULT (0) FOR [Forder]
GO
/****** Object:  Default [DF__AppRight__Childs__5FBE24CE]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[AppRight] ADD  CONSTRAINT [DF__AppRight__Childs__5FBE24CE]  DEFAULT (1) FOR [ChildsMAX]
GO
/****** Object:  Default [DF__AppRight__DELETE__60B24907]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[AppRight] ADD  CONSTRAINT [DF__AppRight__DELETE__60B24907]  DEFAULT ('0') FOR [DELETED]
GO
/****** Object:  Default [DF_BillDetailAdjustCostPrice_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailAdjustCostPrice] ADD  CONSTRAINT [DF_BillDetailAdjustCostPrice_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailAdjustCostPrice_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailAdjustCostPrice] ADD  CONSTRAINT [DF_BillDetailAdjustCostPrice_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillCommunity_Status]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_Status]  DEFAULT (0) FOR [Status]
GO
/****** Object:  Default [DF_BillCommunity_ShiftId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_ShiftId]  DEFAULT (0) FOR [ShiftId]
GO
/****** Object:  Default [DF_BillCommunity_Guid]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_Guid]  DEFAULT (newid()) FOR [Guid]
GO
/****** Object:  Default [DF_BillCommunity_IsZY]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_IsZY]  DEFAULT (0) FOR [IsZY]
GO
/****** Object:  Default [DF_BillCommunity_CFQ]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_CFQ]  DEFAULT (0) FOR [CFQ]
GO
/****** Object:  Default [DF_BillCommunity_IsGD]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_IsGD]  DEFAULT (0) FOR [IsGD]
GO
/****** Object:  Default [DF_BillCommunity_IsCancle_1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillCommunity] ADD  CONSTRAINT [DF_BillCommunity_IsCancle_1]  DEFAULT (0) FOR [IsCancle]
GO
/****** Object:  Default [DF_BillDetailCallBack_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailCallBack_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailCallBack_MemberPrice]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_MemberPrice]  DEFAULT (0) FOR [MemberPrice]
GO
/****** Object:  Default [DF_BillDetailCallBack_ReturnPayCard]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_ReturnPayCard]  DEFAULT (0) FOR [ReturnPayCard]
GO
/****** Object:  Default [DF_BillDetailCallBack_Medicare]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_Medicare]  DEFAULT (0) FOR [Medicare]
GO
/****** Object:  Default [DF_BillDetailCallBack_CardDiscount]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailCallBack] ADD  CONSTRAINT [DF_BillDetailCallBack_CardDiscount]  DEFAULT (1) FOR [CardDiscount]
GO
/****** Object:  Default [DF_BillDetailBuyReturn_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBuyReturn] ADD  CONSTRAINT [DF_BillDetailBuyReturn_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailBuyReturn_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBuyReturn] ADD  CONSTRAINT [DF_BillDetailBuyReturn_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  Default [DF_BillDetailBuyInStock_BatchCode]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBuyInStock] ADD  CONSTRAINT [DF_BillDetailBuyInStock_BatchCode]  DEFAULT ('') FOR [BatchCode]
GO
/****** Object:  Default [DF_BillDetailBuyInStock_IsChinese]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBuyInStock] ADD  CONSTRAINT [DF_BillDetailBuyInStock_IsChinese]  DEFAULT (0) FOR [IsChinese]
GO
/****** Object:  Default [DF_BillDetailBuyInStock_PackingId]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[BillDetailBuyInStock] ADD  CONSTRAINT [DF_BillDetailBuyInStock_PackingId]  DEFAULT (0) FOR [PackingId]
GO
/****** Object:  ForeignKey [App_AppUserRole_FK1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[ApplicationUserRole]  WITH CHECK ADD  CONSTRAINT [App_AppUserRole_FK1] FOREIGN KEY([ApplicationId])
REFERENCES [dbo].[Application] ([Id])
GO
ALTER TABLE [dbo].[ApplicationUserRole] CHECK CONSTRAINT [App_AppUserRole_FK1]
GO
/****** Object:  ForeignKey [App_AppUser_FK1]    Script Date: 03/02/2011 16:53:46 ******/
ALTER TABLE [dbo].[ApplicationUser]  WITH CHECK ADD  CONSTRAINT [App_AppUser_FK1] FOREIGN KEY([ApplicationId])
REFERENCES [dbo].[Application] ([Id])
GO
ALTER TABLE [dbo].[ApplicationUser] CHECK CONSTRAINT [App_AppUser_FK1]
GO
/****** Object:  DdlTrigger [tr_MStran_alterschemaonly]    Script Date: 03/02/2011 16:53:49 ******/
Enable Trigger [tr_MStran_alterschemaonly] ON Database
GO
/****** Object:  DdlTrigger [tr_MStran_altertable]    Script Date: 03/02/2011 16:53:49 ******/
Enable Trigger [tr_MStran_altertable] ON Database
GO
/****** Object:  DdlTrigger [tr_MStran_altertrigger]    Script Date: 03/02/2011 16:53:49 ******/
Enable Trigger [tr_MStran_altertrigger] ON Database
GO
/****** Object:  DdlTrigger [tr_MStran_alterview]    Script Date: 03/02/2011 16:53:49 ******/
Enable Trigger [tr_MStran_alterview] ON Database
GO

posted on 2011-03-02 16:55  明永成  阅读(383)  评论(0编辑  收藏  举报