加工费脚本
DECLARE @ARG_PARTID VARCHAR(40),
@ARG_EXTRAUNITID VARCHAR(40),
@ARG_FACTPRICE DECIMAL(18,4),
@ARG_FACTPRICE_UN DECIMAL(18,4)
DECLARE CUR_FACTPRICE CURSOR FOR
SELECT PART_ID , EXTRAUNIT_ID , FACTPRICE_PRICETAX ,factprice_price
FROM F_FACTPRICE
WHERE FACTPRICE_STATUS = 'E' AND
factprice_type = '加工费'
OPEN CUR_FACTPRICE
FETCH CUR_FACTPRICE INTO @ARG_PARTID,@ARG_EXTRAUNITID,@ARG_FACTPRICE,@ARG_FACTPRICE_UN
WHILE (@@fetch_status = 0)
BEGIN
DECLARE @ARG_PCHSORD_ID VARCHAR(40),
@ARG_PAYMENT DECIMAL(18,4),
@ARG_AMNT DECIMAL(18,4),
@ARG_ACOST DECIMAL(18,4),
@ARG_COST DECIMAL(18,4),
@ARG_DIFF DECIMAL(18,4)
---------------------------
DECLARE CUR_ASS_1 CURSOR FOR
SELECT M.PCHSRCV_ID,M.PCHSRCV_VALUE,D.PCHSRCVIT_AMNT,D.PCHSRCVIT_ACOST,D.PCHSRCVIT_COST
FROM F_PCHS_RCV M INNER JOIN F_PCHS_RCV_ITEMS D ON M.PCHSRCV_ID = D.PCHSRCV_ID
WHERE D.PART_ID = @ARG_PARTID
AND M.EXTRAUNIT_ID = @ARG_EXTRAUNITID
OPEN CUR_ASS_1
FETCH CUR_ASS_1 INTO @ARG_PCHSORD_ID,@ARG_PAYMENT,@ARG_AMNT,@ARG_ACOST,@ARG_COST
WHILE (@@fetch_status = 0)
BEGIN
SELECT @ARG_DIFF = @ARG_AMNT * @ARG_FACTPRICE_UN
SELECT @ARG_COST = @ARG_AMNT * @ARG_FACTPRICE + @ARG_COST
SELECT @ARG_PAYMENT = @ARG_DIFF
update F_PCHS_RCV_ITEMS
set PCHSRCVIT_COST = @ARG_COST,
PCHSRCVIT_PRICE = @ARG_FACTPRICE
where PCHSRCV_ID = @ARG_PCHSORD_ID
and PART_ID = @ARG_PARTID
update F_PCHS_RCV
set PCHSRCV_VALUE = @ARG_PAYMENT
where PCHSRCV_ID = @ARG_PCHSORD_ID
FETCH CUR_ASS_1 INTO @ARG_PCHSORD_ID,@ARG_PAYMENT,@ARG_AMNT,@ARG_ACOST,@ARG_COST
END
CLOSE CUR_ASS_1
DEALLOCATE CUR_ASS_1
FETCH CUR_FACTPRICE INTO @ARG_PARTID,@ARG_EXTRAUNITID,@ARG_FACTPRICE,@ARG_FACTPRICE_UN
END
CLOSE CUR_FACTPRICE
DEALLOCATE CUR_FACTPRICE
浙公网安备 33010602011771号