ERP及進銷存軟體庫存管理設計要點

2021-06-16 09:20:16 字數 2637 閱讀 5652

在erp或進銷存軟體設計時,常用常用需要知道某時的期初庫存及期末庫存,因而需要記錄庫存的實時進出。

設計乙個表用於記錄庫存的實時進出。

--庫存表,用於存放當前庫存.

if object_id ('storage',n'u') is not null

drop table storage

create table storage

( id  int identity(1,1),

productid int not null,--物品id

storageid  int not null,--倉庫id

amount    decimal(8,2)--當前數量

primary key(productid,storageid)

)--庫存進出記錄表,用於記錄倉庫的進出流水帳

if object_id ('storageinout',n'u') is not null

drop table storageinout

create table storageinout

(id int identity(1,1),

inoutdate  datetime default getdate() not null,--進出時間

productid  int not null,--物品id

storageid  int not null,--倉庫id

storagein  decimal(8,2) default 0 not null,--進庫數量

storageout decimal(8,2) default 0 not null,--出庫數量

amount     decimal(8,2) default 0 not null--結存數量

)再在庫存表storage上建立乙個觸發器。用於把進出資料寫入storageinout表中.

if object_id ('storagelog','tr') is not null

drop trigger storagelog

gocreate trigger storagelog

on storage

after insert, update

as declare   @productid int,

@storageid int,

@old  decimal(8,2),

@new  decimal(8,2),

@amount decimal(8,2)

select @old=amount from deleted

select @productid=productid,@storageid=storageid,@new=amount from inserted

select @amount=amount from storageinout where id = (select max(id)

from storageinout where productid=@productid and storageid=@storageid)

if @amount is null

set @amount=0

if @old is not null

begin

if @new >@old

begin

insert storageinout(productid, storageid,storagein, storageout,amount)

values(@productid,@storageid,@new-@old,0,@amount+@new-@old)

end else

begin

insert storageinout(productid, storageid,storagein, storageout,amount)

values(@productid,@storageid,0,         @old-@new,@amount-@old+@new)

endend else

begin

insert storageinout(productid, storageid,storagein, storageout,amount)

values(@productid,@storageid,@new,      0,@amount+@new)

endgo

取某時段的期初庫存量:

select * from storageinout where id=(select max(id) from storageinout where inoutdate<'2012-10-11 22:36:44')

取某時段的出入庫數量:

select sum(storageout) '出庫量',sum(storagein)  入庫量 where where inoutdate between '2012-10-11 22:36:44' and '2012-12 :23:59:59'

取某時段結存(期末)庫存量:

select * from storageinout where id=(select max(id) from storageinout where between '2012-10-11 22:36:44' and '2012-12 :23:59:59')

這樣就可以查詢到任何時間的出入庫數量及結存數,對移動盤點,庫存管理就方便多了.

ERP與進銷存軟體的區別

進銷存與erp互補,屬於兩個根本不同的範疇。它們的目的不同 涉及領域和物件不同 業務性質不同 過程不同,需要的解決方案結構和系統實施方法也盡有不同。儘管在實施erp的過程中也要解決許多非常困難的問題,但基本還是企業內部的問題 而在實施進銷存的過程中,除去相關企業內部問題需要解決之外,人們還會面臨誰是...

進銷存軟體的價值

進銷存軟體的價值到底有多少?相信我們每個人都想花最少的錢去買東西,但我們又何知該產品的 和價值所在呢?在這裡我們來了解一下 中小企業本身非常看重公司的成本開銷,在企業資訊化程序中,我相信不少中小企業一直在糾結這個問題 花幾百上千元購買一套進銷存倉庫管理軟體是否值得?特別是管理軟體是乙個看不見摸不著的...

進銷存設計中的庫存設計

進銷存資料庫設計,要調整庫存的功能,庫存數總表該怎麼設計2009 03 08 09 01 方案一 將出入庫單據表和庫存表分開,當出入庫單據被確認時,修改庫存表,庫存表中總是只保留當前的庫存資料。這樣庫存表設計大致如下 庫存表 倉庫編碼 商品編碼 庫存屬性 庫存餘額 庫存 等 出入庫表 出入單編號,出...