Вы находитесь на странице: 1из 8

select 'X' from sysdatabases where name = 'tocsdb'

go
drop database tocsdb
go
create database tocsdb
go
Use tocsdb
go
create table PrelimOrderHdr( PrelimOrderHdrID int identity(1,1), Location
varchar(10), PrelimOrderNum varchar(30) Primary key, OrderDt
smalldatetime, CreatedBy varchar(20), ModDt smalldatetime,
Retailercode varchar(30), Original_totalQty int, Original_totalMRP
int, Mod_totalQty int, Mod_totalMRP int, state
varchar(1), ConfirmFlg varchar(1) )
go
create table PrelimOrderDtl( PrelimOrderDtlID int identity(1,1) primary
key, PrelimOrderNum varchar(30), Product varchar(30),
dskuid int, Designcode varchar(30), Stylecode
varchar(20), Sizecode varchar(10), Original_Qty int,
Mod_Qty int, MRP int)
go
create table PrelimOrderDtl_tmp( PrelimOrderDtlID int identity(1,1)
primary key, PrelimOrderNum varchar(30), Product
varchar(30), dskuid int, Designcode varchar(30),
Stylecode varchar(20), Sizecode varchar(10), Original_Qty
int, Mod_Qty int, MRP int)
go
create table FinalOrderHdr( FinalOrderHdrID int identity(1,1), Location
varchar(10), FinalOrderNum varchar(30) primary key, PrelimOrderNum
varchar(30) , OrderDt smalldatetime, CreatedBy varchar(20), ModDt
smalldatetime, Retailercode varchar(30), totalQty int, totalMRP
int, state varchar(1) )
go
create table FinalOrderDtl( FinalOrderDtlID int identity(1,1),
FinalOrderNum varchar(30), Product varchar(30), dskuid
int, Designcode varchar(30), Stylecode varchar(20), Sizecode
varchar(10), Qty int, MRP int)
go
CREATE TABLE [SKUMRP] ( [SKUMRPID] [int] IDENTITY (1, 1) NOT NULL , [DSKUID]
[int] NOT NULL , [MRPID] [int] NOT NULL , [EffectiveDt] [smalldatetime] NOT NULL
, [Status] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
CONSTRAINT [PK_SKUMRP] PRIMARY KEY CLUSTERED ( [SKUMRPID] ), CONSTRAINT
[UK2_SKUMRP] UNIQUE NONCLUSTERED ( [SKUMRPID], [MRPID] ) ,
CONSTRAINT [CKC1_SKUMRP] CHECK ([Status] = 'A' or [Status] = 'I')) ON [PRIMARY]
go
CREATE TABLE [TBL_MRP] ( [MRPID] [int] IDENTITY (1, 1) NOT NULL , [Descr]
[varchar] (4) , [ModDt] [smalldatetime] NOT NULL , [CreateDate] [smalldatetime]
NULL , [DDate] [smalldatetime] NULL , [PCSStatus] [char] (1) )
go
CREATE TABLE [TBL_DesignSKU] ( [DSKUid] [int] IDENTITY (1, 1) NOT NULL ,
[SeasonCode] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ProductCategoryCode] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[DesignCode] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StyleCode] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SizeCode] [char] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [BarCode]
[char] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SKUCode] [varchar] (10)
COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Active] [char] (1) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL , [SKUCostPrice] [numeric](6, 2) NULL ,
CONSTRAINT [PK_TBL_DesignSKU_DSKUID] PRIMARY KEY CLUSTERED ( [DSKUid] )
ON [PRIMARY] ) ON [PRIMARY]
go
CREATE TABLE [TBL_ProductCategory] ( [ProductCategoryID] [int] IDENTITY (1, 1)
NOT NULL , [ProductCategoryCode] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS
NOT NULL , [Descr] [char] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PCSStatus] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , CONSTRAINT
[UQ_ProductCategory_Descr] UNIQUE NONCLUSTERED ( [Descr] ) ON [PRIMARY]
, CONSTRAINT [UQ_ProductCategory_ProductCategoryCode] UNIQUE NONCLUSTERED (
[ProductCategoryCode] ) ON [PRIMARY] )
go
CREATE TABLE [Inventory] ( [LocCode] [varchar] (9) COLLATE
SQL_Latin1_General_CP1_CI_AS NOT NULL , [DSKUID] [int] NOT NULL , [Qty] [int]
NOT NULL , [Available_Qty] [int] NOT NULL , CONSTRAINT [PK_Inventory]
PRIMARY KEY CLUSTERED ( [LocCode], [DSKUID] ) )
go
create table CommandsBarcode( CommandID int, Barcode varchar(13),
CommandName varchar(30),)
go
insert into CommandsBarcode values(1,'600000000001', 'UNDO')
go
create table SystemParameter( ParameterID int identity(1,1), ParameterName
varchar(20), ParameterDesc varchar(80), value varchar(80), )
go
insert into SystemParameter values ('CompanyName', 'Name of Company', 'Surya Nepal
Pvt. Ltd.')
go
insert into SystemParameter values ('CompanyAddress', 'Address of Company', 'Shree
Bal Sadan, Kantipath, Ktm')
go
insert into SystemParameter values ('Location', 'Location', 'DISRWH')
go
insert into SystemParameter values ('PrefixPrelim', 'Prefix of Preliminary Order',
'PO/')
go
insert into SystemParameter values ('CountMidNoPrelim', 'Count of Nos betn prefix
& suffix of Preliminary Order Num', '6')
go
insert into SystemParameter values ('SuffixPrelim', 'Suffix of Preliminary Order',
'/64-65')
go
insert into SystemParameter values ('PrefixFinal', 'Prefix of Final Order', 'FO/')
go
insert into SystemParameter values ('CountMidNoFinal', 'Count of Nos betn prefix &
suffix of Final Order Num', '6')
go
insert into SystemParameter values ('SuffixFinal', 'Suffix of Final Order', '/64-
65')
go
create TABLE [RetailerBarcode] ( [RetailerID] int NOT NULL primary key,
[BarCode] varchar(13) , [RetailerCode] varchar(25) , [RetailerName]
varchar(40) , Address varchar(80), Market varchar(50), [CSA]
varchar(30), Margin numeric(10), Type varchar(1), Status
varchar(1), Created_dt smalldatetime)
go
create TABLE [SizeSetBarCode] ( [SizeSetID] [int] IDENTITY (1, 1) NOT NULL ,
[ProductCategoryDesc] [varchar] (50) NOT NULL, [SizeSet] [varchar] (50) ,
[Barcode] [char] (12) , [SizeDefn] [varchar] (30) )
go
create TABLE [PrelimOrder_OriginalQty_tmp] ( [PrelimOrderNum] [varchar] (30) ,
[Designcode] [varchar] (30) , [Stylecode] [varchar] (20) , [Sizecode] [varchar]
(10) , [Original_Qty] [int] NULL )
go
create TABLE [CSA] ( [CSAID] [int] IDENTITY (1, 1) NOT NULL , [CSAName]
[varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CSACode]
[varchar] (9) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CSAAddBill]
[varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CSAAddShip]
[varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PropName]
[varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ShipContactPers]
[varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[BillContactPers] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[BillTelephone] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Status] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedBy] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [smalldatetime] NOT NULL , [Margin] [numeric](5, 2) NULL ,
CONSTRAINT [PK_CSA] PRIMARY KEY CLUSTERED ( [CSAID], [CSACode] ) ON
[PRIMARY] )
go
create table download_log( sn int identity(1,1), dt smalldatetime,
barcodes varchar(5000))
go
--proc created by Suraj Shrestha on 2007-10-20
CREATE proc toc_HandleBarcode
(
@Barcode varchar(13)
)
as

begin

declare @Barcode12 varchar(12)

set @Barcode12 = left(@Barcode,12)

if exists(select 'X' from RetailerBarcode where Left(Barcode,12) = @Barcode12)


select @Barcode Barcode, 'Retailer' Type, Retailercode Ret_Prod, Retailername
RetNameDesignSize, CSA CSA_Style from RetailerBarcode where Left(Barcode,12) =
@Barcode12
else if exists(select 'X' from CommandsBarcode where Left(Barcode,12) =
@Barcode12)
select @Barcode Barcode, 'Command' Type, CommandName Ret_Prod , ''
RetNameDesignSize , '' CSA_Style from CommandsBarcode where Left(Barcode,12) =
@Barcode12
else if exists(select 'X' from SizeSetBarcode where Left(Barcode,12) =
@Barcode12)
select @Barcode Barcode, 'SizeSet' Type, ProductCategoryDesc Ret_Prod, SizeSet
RetNameDesignSize, '' CSA_Style from SizeSetBarcode where Left(Barcode,12) =
@Barcode12
else if exists(select 'X' from tbl_designsku where Left(Barcode,12) =
@Barcode12)
select @Barcode Barcode, 'Design' Type, tp.Descr Ret_Prod, tds.Designcode
RetNameDesignSize, tds.StyleCode CSA_Style
from tbl_designsku tds (nolock)
inner join tbl_productCategory tp (nolock) on tp.Productcategorycode =
tds.productcategorycode
where Left(Barcode,12) = @Barcode12
else
select @Barcode Barcode, 'Unknown' Type, '' Ret_Prod, '' RetNameDesignSize, ''
CSA_Style
end

go
--proc create by suraj shrestha on 2007-10-23
CREATE FUNCTION [dbo].[fnReturnPrelimOrderNum] ()
RETURNS varchar(50)
AS
BEGIN
DECLARE @strNum varchar(50)
declare @intPrefixLen int,@intSuffix int,@intLength int,@numMax
numeric(10),@intDiff int
declare @strPrefix varchar(10),@strSuffix varchar(10),@str varchar(20)

select @intPrefixLen = len(value), @strPrefix = value


from systemParameter
where ParameterName = 'PrefixPrelim'

select @intSuffix = len(value), @strSuffix = value


from systemParameter
where ParameterName = 'SuffixPrelim'

select @intLength = convert(int,value)


from systemParameter
where ParameterName = 'CountMidNoPrelim'

select @str = '000000000000000000000'

if exists(select 'X' from PrelimOrderHdr where


left(PrelimOrderNum,@intPrefixLen)=@strPrefix and
right(PrelimOrderNum,@intSuffix)=@strSuffix)
begin
select @numMax=max(convert(numeric(10),
substring(PrelimOrderNum,@intPrefixLen + 1,@intLength)))
from PrelimOrderHdr
where left(PrelimOrderNum,@intPrefixLen)=@strPrefix
and right(PrelimOrderNum,@intSuffix)=@strSuffix

select @numMax=@numMax +1

select @intDiff=@intLength -
len(ltrim(rtrim(convert(varchar,@numMax))))
select @strNum=@strPrefix + left(@str,@intDiff) +
ltrim(rtrim(convert(varchar,@numMax))) + @strSuffix

end
else
begin
select @strNum=@strPrefix + left(@str,@intLength) + @strSuffix
end
RETURN @strNum

END

go
--proc create by suraj shrestha on 2007-10-23
CREATE FUNCTION [dbo].[fnReturnFinalOrderNum] ()
RETURNS varchar(50)
AS
BEGIN
DECLARE @strNum varchar(50)
declare @intPrefixLen int,@intSuffix int,@intLength int,@numMax
numeric(10),@intDiff int
declare @strPrefix varchar(10),@strSuffix varchar(10),@str varchar(20)

select @intPrefixLen = len(value), @strPrefix = value


from systemParameter
where ParameterName = 'PrefixFinal'

select @intSuffix = len(value), @strSuffix = value


from systemParameter
where ParameterName = 'SuffixFinal'

select @intLength = convert(int,value)


from systemParameter
where ParameterName = 'CountMidNoFinal'

select @str = '000000000000000000000'

if exists(select 'X' from FinalOrderHdr where


left(FinalOrderNum,@intPrefixLen)=@strPrefix and
right(FinalOrderNum,@intSuffix)=@strSuffix)
begin
select @numMax=max(convert(numeric(10),
substring(FinalOrderNum,@intPrefixLen + 1,@intLength)))
from FinalOrderHdr
where left(FinalOrderNum,@intPrefixLen)=@strPrefix
and right(FinalOrderNum,@intSuffix)=@strSuffix

select @numMax=@numMax +1

select @intDiff=@intLength -
len(ltrim(rtrim(convert(varchar,@numMax))))
select @strNum=@strPrefix + left(@str,@intDiff) +
ltrim(rtrim(convert(varchar,@numMax))) + @strSuffix

end
else
begin
select @strNum=@strPrefix + left(@str,@intLength) + @strSuffix
end

RETURN @strNum

END
go
--proc created by Suraj Shrestha for TOCS on 2007-10-27

CREATE FUNCTION [dbo].[fReturnMRP] (@DSKUID int)


RETURNS varchar(4) AS
BEGIN
Declare @mrpdesc varchar(4),@mrpid int
if exists (select MRPID from SKUMRP where DSKUID = @DSKUID)
BEGIN
select @mrpid = MRPID
from skumrp
where skumrpid =
( select max(skumrpid) from skumrp
where DSKUID = @DSKUID and status = 'A'
)
and DSKUID = @DSKUID
select @mrpdesc = DESCR from TBL_MRP where mrpid=@mrpid
END
else
BEGIN
select @mrpdesc = 0
END
RETURN @mrpdesc
END

go
--proc created by Suraj Shrestha for TOCS on 2007-10-27
create proc update_Prelim_Details
(
@PrelimOrderNo varchar(30)
)

as
begin

update PrelimOrderDtl
set dskuid = tds.Dskuid,
MRP = dbo.freturnMRP(tds.dskuid)
from PrelimOrderDtl pd
inner join tbl_designsku tds
on ltrim(rtrim(pd.Designcode)) = ltrim(rtrim(tds.Designcode))
and ltrim(rtrim(pd.StyleCode)) = ltrim(rtrim(tds.StyleCode))
and ltrim(rtrim(pd.SizeCode)) = ltrim(rtrim(tds.SizeCode))
where pd.PrelimOrderNum = @PrelimOrderNo

update prelimorderhdr
set Original_totalQty =
( select sum(Original_Qty)
from PrelimOrderDtl
where PrelimOrderNum = @PrelimOrderNo
),
Original_totalMRP =
( select sum(Original_Qty * MRP)
from PrelimOrderDtl
where PrelimOrderNum = @PrelimOrderNo
),
Mod_totalQty =
( select sum(Mod_Qty)
from PrelimOrderDtl
where PrelimOrderNum = @PrelimOrderNo
),
Mod_totalMRP =
( select sum(Mod_Qty * MRP)
from PrelimOrderDtl
where PrelimOrderNum = @PrelimOrderNo
) where PrelimOrderNum = @PrelimOrderNo

end

go
--proc created by Suraj Shrestha on 2007-10-28
CREATE proc ReturnRetailerID_No
as
begin

declare @numMax numeric(10)


declare @num varchar(30)
declare @IDMax int
declare @ID varchar(20)
declare @Barcode varchar(13)

select @numMax = isnull(max(convert(numeric(10),right(RetailerCode,4))),0) + 1


from RetailerBarcode
where right(RetailerCode,4) not like '/%'

select @num =
case len(convert(varchar(10),@numMax))
when 1 then '000' + convert(varchar(10),@numMax)
when 2 then '00' + convert(varchar(10),@numMax)
when 3 then '0' + convert(varchar(10),@numMax)
else convert(varchar(10),@numMax)
end

select @num = 'RET/' + Value + '/' + @num


from systemParameter
where ParameterName = 'Location'

select @IDMax = isnull(max(RetailerID),0) +1


from RetailerBarcode
where RetailerID > 10000 --assuminig that retailer count in Live has not
exceeeded 10000

select @ID =
case len(convert(varchar(10),@IDMax))
when 1 then '1000' + convert(varchar(10),@IDMax)
when 2 then '100' + convert(varchar(10),@IDMax)
when 3 then '10' + convert(varchar(10),@IDMax)
when 4 then '1' + convert(varchar(10),@IDMax)
when 5 then convert(varchar(10),@IDMax)
end

select @Barcode =
case len(@ID)
when 1 then '20000000000' + @ID
when 2 then '2000000000' + @ID
when 3 then '200000000' + @ID
when 4 then '20000000' + @ID
when 5 then '2000000' + @ID
end

select @num RetailerCode,


@ID RetailerID,
@Barcode Barcode

end

select *
from tocsdb.dbo.FinalOrderDtl

go
--proc created by Suraj Shrestha for TOCS on 2007-11-05
create proc update_Final_Details
(
@FinalOrderNo varchar(30)
)

as
begin

-- update FinalOrderDtl
-- set dskuid = tds.Dskuid,
-- MRP = dbo.freturnMRP(tds.dskuid)
-- from FinalOrderDtl pd
-- inner join tbl_designsku tds
-- on ltrim(rtrim(pd.Designcode)) = ltrim(rtrim(tds.Designcode))
-- and ltrim(rtrim(pd.StyleCode)) = ltrim(rtrim(tds.StyleCode))
-- and ltrim(rtrim(pd.SizeCode)) = ltrim(rtrim(tds.SizeCode))
-- where pd.FinalOrderNum = @FinalOrderNo

update FinalOrderHdr
set totalQty =
( select sum(Qty)
from FinalOrderDtl
where FinalOrderNum = @FinalOrderNo
),
totalMRP =
( select sum(Qty * MRP)
from FinalOrderDtl
where FinalOrderNum = @FinalOrderNo
)
where FinalOrderNum = @FinalOrderNo

end

go

Вам также может понравиться