Professional Documents
Culture Documents
-- ==============================================================================
-- ==============================================================================
-- ==============================================================================
DECLARE
@FACT DEC(2,0),
@ORD_ID DEC(8,2),
@TYPE CHAR(4),
@SER DEC(2,0),
@DATE_WRITE DATETIME ,
@SANF_ID CHAR(9) ,
@QTY_R DECIMAL(13,4) ,
@REC_DATE DATETIME ,
@REC_ID VARCHAR(10) ,
@SUP_NAME VARCHAR(100),
@PRICE DEC(13,4) ,
@BALANCE DEC(13,4) ,
@INCOME1 DEC(13,4) ,
@INCOME2 DEC(13,4) ,
@OUTCOME DEC(13,4) ,
@INCOME11 DEC(13,4) ,
@INCOME22 DEC(13,4) ,
@INCOME33 DEC(13,4) ,
@CONS1 DEC(13,2),
@CONS1_EQ DEC(13,2),
@CONS2 DEC(13,2),
@CONS2_EQ DEC(13,2),
@CONS3 DEC(13,2),
@CONS3_EQ DEC(13,2),
@CONS4 DEC(13,2) ,
@CONS4_EQ DEC(13,2) ,
@REQ_YR_CONS DEC(13,2) ,
@last_in_no char(10) ,
@last_in_date datetime ,
@DATE_STRT DATETIME
@REQ_YR_CONS = 0
UPDATE DM_ORDER_ITEMS_IC
SET DM_ORDER_ITEMS_IC.ORD_DATE = DM_ORDER_IC.ORD_DATE
FROM DM_ORDER_IC
WHERE ( DM_ORDER_ITEMS_IC.FACT_ID = DM_ORDER_IC.FACT_ID ) and
( DM_ORDER_ITEMS_IC.ORD_ID = DM_ORDER_IC.ORD_ID ) AND
( DM_ORDER_ITEMS_IC.TYPE = DM_ORDER_IC.TYPE ) AND
DM_ORDER_ITEMS_IC.ORD_ID,
DM_ORDER_ITEMS_IC.ORD_DATE,
DM_ORDER_ITEMS_IC.TYPE,
DM_ORDER_ITEMS_IC.SER,
DM_ORDER_ITEMS_IC.ITM_ID
FROM DM_ORDER_ITEMS_IC
WHERE DM_ORDER_ITEMS_IC.ORD_DATE = @DATE_EDIT AND TYPE =@TYP AND
FACT_ID= @FACT_ID AND ORD_ID BETWEEN @F_ID AND @E_ID
FOR READ ONLY
OPEN CUR_ORDER_ITEMS
FETCH CUR_ORDER_ITEMS INTO @FACT, @ORD_ID , @DATE_WRITE ,@TYPE,@SER,@SANF_ID
WHILE @@SQLSTATUS !=2
BEGIN
-- Calculate the balance of the item from master table
IF ISNULL(@BALANCE,0) <= 0
BEGIN
SELECT @BALANCE = 0
END
-- AND (local_code=@LOCALE_CODE)
AND t.factor_no =
CONVERT(CHAR(2),@FACT) AND t.item_no = @SANF_ID ) ,0)
- isnull((select sum(trans_qty) FROM
transactions t , stores_save s
WHERE tran_cd = "4" AND
upd_flg <> "1"
--AND tran_date <= getdate()
AND t.factor_no =
CONVERT(CHAR(2),@FACT) AND t.item_no = @SANF_ID ) ,0)
SELECT @REQ_YR_CONS=
isnull(round(SUM(DM_ORDER_ITEMS_IC.QTY) ,0),2)
FROM DM_ORDER_ITEMS_IC
WHERE DM_ORDER_ITEMS_IC.ITM_ID = @SANF_ID
BEGIN
-- begin block of updating the orders table
INSERT INTO
DM_ORDER_CALC(FACT_ID,ORD_ID,TYPE,ORD_DATE,SER,ITM_ID,BALANCE,REC_ID,REC_DATE,PRICE
,SUP_NAME,
CONS1,CONS2,CONS3,CONS4,TOT_QTY_REQ,CALC_TYPE)
isnull(round(@INCOME33,2),0),isnull(round(@CONS2,2),0),isnull(round(@CONS3,2),0),is
null(round(@CONS4,2),0),isnull(round(@REQ_YR_CONS,2),0),2)
END
--
===================================================================================
===========
--declare @add_status int
--select @add_status = 0
--select @SANF_ID , @last_in_date
if @SANF_ID <> NULL
begin
--exec @add_status = proc_vend_payed_calc_05n @fac_cd,
@ses_y ,@PERC_51,@TAX_52
DECLARE TAX_STEAK CURSOR FOR
SELECT hitem_no , isnull(htrans_qty,0) , isnull(htrans_val,0) , suppl_no ,
suppl_date , suppl_name ,
round(isnull(htrans_val,0)/isnull(htrans_qty,0),2) ,
h.hstore_no , kind_code
FROM history h , stores_save s
and h.suppl_date=@last_in_date
and h.htrans_qty > 0
@h_stor CHAR(13) ,
@h_item CHAR(9) ,
@h_no CHAR(10),
@h_nam CHAR(50),
@kind int ,
@h_qty DECIMAL(13,4) ,
@h_val DECIMAL(13,2) ,
@h_pric DECIMAL(13,2)
end
--
===================================================================================
============
END
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
close CUR_ORDER_ITEMS
deallocate cursor CUR_ORDER_ITEMS
return 91
END
--===============================================================================
@ORD_ID1 DEC(8,2),
@TYPE1 CHAR(4),
@SER1 DEC(2,0),
@DATE_WRITE1 DATETIME ,
@SANF_ID1 CHAR(9) ,
@SUP_NAME1 VARCHAR(100),
@PRICE1 DEC(13,4) ,
@QTY1 DEC(13,4) ,
@VAL1 DEC(13,4) ,
@INCOME44 DEC(13,4) ,
@last_in_no1 char(10) ,
@last_in_date1 datetime ,
@trn_date1 datetime
OPEN CUR_ORDER_ITEMS1
FETCH CUR_ORDER_ITEMS1 INTO @FACT1, @ORD_ID1 , @DATE_WRITE1 , @TYPE1 , @SER1 ,
@SANF_ID1
-- AND (local_code=@LOCALE_CODE)
AND t.factor_no =
CONVERT(CHAR(2),@FACT1) AND t.item_no = @SANF_ID1 ) ,0)
- isnull((select sum(trans_qty) FROM
transactions t , stores_save s
WHERE tran_cd = "4" AND
upd_flg <> "1"
--AND tran_date <= getdate()
AND t.factor_no =
CONVERT(CHAR(2),@FACT1) AND t.item_no = @SANF_ID1 ) ,0)
*/
SELECT @last_in_date1 = isnull((SELECT max(isnull(suppl_date,null))
FROM transactions t , stores_save s
WHERE tran_cd = "1" AND
upd_flg <> "1"
AND tran_date between @DATE_STRT and
getdate()
AND ( t.store_no = s.store_no) AND
( kind_code = 1)
and
isnull(suppl_date,null)<= getdate() AND t.item_no = @SANF_ID1 ),null)
SELECT @PRICE1= 0
SELECT @PRICE1= isnull(round((isnull(trans_val,0) /
isnull(trans_qty,0) ),2),0)
FROM transactions t , stores_save s
WHERE tran_cd = "1" AND upd_flg <> "1" AND tran_date <=
getdate()
AND t.store_no = s.store_no AND kind_code = 1
AND t.item_no = @SANF_ID1 and
t.suppl_date=@last_in_date1
/*
UPDATE DM_ORDER_CALC
SET CONS1 = ISNULL(CONS1,0) + ISNULL(@INCOME44,0) ,
BALANCE = ISNULL(BALANCE,0) + ISNULL(@INCOME77,0) ,
CURRENCY = 1 ,
CALC_TYPE = 3
WHERE FACT_ID = @FACT1
and ORD_ID = @ORD_ID1
and TYPE= @TYPE1
and SER=@SER1
and ORD_DATE = @DATE_WRITE1
and ITM_ID = @SANF_ID1
*/
UPDATE DM_ORDER_CALC
SET REC_ID = @last_in_no1 ,
REC_DATE = @last_in_date1 ,
PRICE = isnull(@PRICE1,0) ,
SUP_NAME = @SUP_NAME1 ,
CURRENCY = 1 ,
CALC_TYPE = 3
WHERE FACT_ID = @FACT1
and ORD_ID = @ORD_ID1
and TYPE= @TYPE1
and SER=@SER1
and ORD_DATE = @DATE_WRITE1
and REC_DATE < isnull(@last_in_date1,REC_DATE)
and ITM_ID = @SANF_ID1
SELECT @SUP_NAME1=''
SELECT @PRICE1 =0
SELECT @QTY1 =0
SELECT @VAL1 =0
SELECT @last_in_no1 = ''
SELECT @last_in_date1 = NULL
-- SELECT @last_in_date1 = CAST(NULL AS datetime)
SELECT CONS1=0
END
--===============================================================================
--===============================================================================
DECLARE CUR_ORDER_ITEMS2 CURSOR
FOR SELECT FACT_ID, ORD_ID,ORD_DATE,TYPE, SER,ITM_ID
FROM DM_ORDER_CALC d
WHERE d.ORD_DATE = @DATE_EDIT AND TYPE =@TYP AND FACT_ID= @FACT_ID
DECLARE
@FACT2 DEC(2,0),
@ORD_ID2 DEC(8,2),
@TYPE2 CHAR(4),
@SER2 DEC(2,0),
@DATE_WRITE2 DATETIME ,
@SANF_ID2 CHAR(9) ,
@SUP_NAME2 VARCHAR(100),
@PRICE2 DEC(13,4) ,
@QTY2 DEC(13,4) ,
@VAL2 DEC(13,4) ,
@INCOME55 DEC(13,4) ,
@INCOME66 DEC(13,4) ,
@INCOME77 DEC(13,4) ,
@last_in_no2 NUMERIC(8) ,
@last_sup_id2 NUMERIC(8) ,
@last_in_date2 datetime ,
@trn_date2 datetime
OPEN CUR_ORDER_ITEMS2
FETCH CUR_ORDER_ITEMS2 INTO @FACT2, @ORD_ID2 , @DATE_WRITE2 , @TYPE2 , @SER2 ,
@SANF_ID2
BEGIN
SELECT @INCOME66=0
SELECT @INCOME66= isnull((select sum(ITM_QTY) FROM STKS_ITM_TRAN t ,
stores_save s
WHERE TRAN_CODE = 3 AND
isnull(UPDATE_FLAG,0) =1
AND ( t.STOR_NO = s.store_no) AND
( kind_code = 1)
AND t.FACT_ID = @FACT2 --AND TRAN_DATE <=
getdate()
AND TRAN_DATE between
@DATE_STRT and getdate()
AND t.ITM_ID = @SANF_ID2 ),0)
SELECT @PRICE2= 0
SELECT @PRICE2= isnull(round((isnull(ITM_VAL,0) /
isnull(ITM_QTY,0) ),2),0)
FROM STKS_ITM_TRAN t , stores_save s
WHERE TRAN_CODE = 1 AND isnull(UPDATE_FLAG,0)
=1
AND ( t.STOR_NO = s.store_no) AND ( kind_code = 1)
AND t.FACT_ID = @FACT2 --AND TRAN_DATE <= getdate()
AND TRAN_DATE between @DATE_STRT and getdate()
IF ISNULL(@INCOME77,0) <= 0
BEGIN
SELECT @INCOME77 = 0
END
UPDATE DM_ORDER_CALC
SET CONS1 = ISNULL(CONS1,0) + ISNULL(@INCOME55,0) ,
BALANCE = ISNULL(BALANCE,0) + ISNULL(@INCOME77,0) ,
CURRENCY = 1 ,
CALC_TYPE = 4
WHERE FACT_ID = @FACT2
and ORD_ID = @ORD_ID2
and TYPE= @TYPE2
and SER=@SER2
and ORD_DATE = @DATE_WRITE2
and ITM_ID = @SANF_ID2
UPDATE DM_ORDER_CALC
SET REC_ID = CONVERT(CHAR(8),@last_in_no2) ,
REC_DATE = @last_in_date2 ,
PRICE = isnull(@PRICE2,0) ,
SUP_NAME = @SUP_NAME2 ,
CURRENCY = 1 ,
CALC_TYPE = 4
WHERE FACT_ID = @FACT2
and ORD_ID = @ORD_ID2
and TYPE= @TYPE2
and SER=@SER2
and ORD_DATE = @DATE_WRITE2
and REC_DATE < isnull(@last_in_date2,REC_DATE)
and ITM_ID = @SANF_ID2
SELECT @SUP_NAME2=''
SELECT @PRICE2 =0
SELECT @QTY2 =0
SELECT @VAL2 =0
SELECT @last_in_no2 = 0
SELECT @last_in_date2 = NULL
SELECT CONS2=0
END
--===============================================================================
IF @@ERROR =0
COMMIT
ELSE
BEGIN
ROLLBACK
RAISERROR 200013 'TRY AGAIN'
END
CLOSE CUR_ORDER_ITEMS
DEALLOCATE CUR_ORDER_ITEMS
END
go