|
|
invoice -- 账面数主表(进销存)
jangogo @ 2009-9-2 7:03:00
- CREATE TABLE [invoice] (
- [id] integer identity(1,1) not null CONSTRAINT [invoice_pkid] PRIMARY KEY,
- [btype] varchar(2) null,
- [period] varchar(6) not null,
- [bno] int not NULL,
- [idate] datetime not null,
- [itype] int not NULL,
- [taxrate] float NOT NULL,
- [discount] float NOT NULL,
- [FCur] varchar(30) NOT null,
- [ExRate] float null,
- [GoodsID] varchar(50) not null,
- [CompanyID] varchar(50) not null,
- [DeptStaffID] varchar(50) not null,
- [PrjID] varchar(50) not null,
- [StorageID] varchar(50) not null,
- [poid] varchar(50) not null,
- [maker] varchar(30) null,
- [assessor] varchar(30) null,
- [tallier] varchar(30) null,
- [lastupdatetime] datetime null,
- [lastupdateby] varchar(30) null,
- [ino] varchar(250) null,
- [cno] varchar(50) null,
- [imemo] varchar(250) null,
- [ACID] varchar(50) NOT NULL,
- [acmoney] money NOT NULL,
- [acmoneyb] money NOT NULL,
- [CreditDays] int null,
- [payDate] int null,
- [Address] varchar(200) null,
- [Contact] varchar(20) null,
- [Mobile] varchar(50) null,
- [Phone] varchar(50) null,
- [transportType] varchar(20) NULL,
- [transportNo] varchar(20) null,
- [transportFee] money NOT NULL,
- [relaapp] varchar(20) null,
- [relaid] varchar(20) null,
- [Foot] varchar(50) not null,
- [tocompanyid] varchar(50) not null,
- [todeptstaffid] varchar(50) not null,
- [toprjid] varchar(50) not null,
- [topoid] varchar(50) not null,
- [togoodsid] varchar(50) not null,
- [tostorageid] varchar(50) not null,
- [toaddress] varchar(200) null,
- [tocontact] varchar(20) null,
- [tomobile] varchar(50) null,
- [tophone] varchar(50) null,
- [ID_Ref] int null,
- [ID_Red] int null,
- [bomtype] int not null default 0,
- [s1] varchar(50) null,
- [s2] varchar(50) null,
- [s3] varchar(50) null,
- [s4] varchar(20) null,
- [s5] varchar(100) null,
- [s6] varchar(200) null,
- [d1] datetime NULL,
- [d2] datetime NULL,
- [L1] int null,
- [L2] int null,
- [L3] int null,
- [i1] int null,
- [i2] int null,
- [i3] int null,
- [c1] money NULL,
- [c2] money NULL,
- [c3] money NULL
- );
说明:
btype : 单据名称(类型、代码),格式两位英文字母或者数字, 可以通过 进销存-->单据-->(选择你的单据)-->设置-->单据名称 里面看到,如销售单为XK。和btype表关联
period : 会计区间(月份), 和 accperiod表关联,因为很多时候会计所说的“月份”并非自然月,在accperiod里面定义了会计说的“月份”,例如2009年一月(200901)是"2008-12-26"到"2009-1-25".
你要先根据你自己销售单的日期(idate字段) 查询accperiod表,看看你的日期是在那个period范围里面从而取得period的值,填入到本字段
D_="'"
select period from accperiod where startdate<=" & D_ & iDate & D_ & " and enddate>=" & iDate & H(1) & D_
如果找不到记录,说明你的数据不能填入本数据库,可能是因为数据结转到下一年的数据库了,你应该更换你要写入的数据库。详细请看这里:【数据的分库存放】章节
bno : 单据编号,即单号, btype 、period、bno 三个字段一起构成一个唯一的“键”, 也就是说同一种单据类型同一个月份,单号必须唯一。
要增加新单据到表里,必须先得到相同btype和period条件下的bno的最大值,参考以下SQL:
"select max(bno) from " & "invoice" & " where period='" & "200901" & "' and btype='" & "XK" & "'"
获得最大值后,把这个最大值加一,作为新的单号
基础数据关联表
- [GoodsID] varchar(50) not null,
- [CompanyID] varchar(50) not null, ,关联company表,如果是销售单,这里就是客户代码,如果是采购单,就是供应商代码,统称往来单位代码
- [DeptStaffID] varchar(50) not null, ,关联deptstaff表
- [PrjID] varchar(50) not null, ,关联prj表
- [StorageID] varchar(50) not null, ,关联storage表
- [poid] varchar(50) not null, ,关联po表
同样地:toGoodsid等"to"开头的字段也是这样相应的关联表
|