委外加工加工费更新

--------------------------更新委外加工单

DECLARE @ARG_PARTID VARCHAR(40),
  @ARG_EXTRAUNITID VARCHAR(40),
  @ARG_FACTPRICE DECIMAL(18,4),
  @ARG_FACTPRICE_UN DECIMAL(18,4),
  @arg_count decimal(10,2)
select @arg_count = 1
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 CURSOR FOR
  SELECT ASSORD_ID,assord_partamnt
    FROM F_ASS_ORD
   WHERE part_id       = @ARG_PARTID
     AND assord_shipfm = @ARG_EXTRAUNITID
  
OPEN CUR_ASS

FETCH CUR_ASS INTO @ARG_PCHSORD_ID,@ARG_AMNT

WHILE (@@fetch_status = 0) 
BEGIN
 SELECT @ARG_PAYMENT = @ARG_AMNT * @ARG_FACTPRICE

 update F_ASS_ORD
  set assord_payment     = @ARG_PAYMENT,
    ASSORD_PROCESS_FEE = @ARG_FACTPRICE
  where ASSORD_ID = @ARG_PCHSORD_ID

FETCH CUR_ASS INTO @ARG_PCHSORD_ID,@ARG_AMNT
end
CLOSE CUR_ASS
DEALLOCATE CUR_ASS
select @arg_count = @arg_count + 1
DECLARE CUR_ASS_1 CURSOR FOR
  SELECT M.ASSORD_ID,M.ASSORD_PAYMENT,D.ASS_ORDIT_AMNT,D.ASS_ORDIT_ACOST,D.ASS_ORDIT_COST
    FROM F_ASS_ORD M INNER JOIN F_ASS_ORD_ITEMS D ON M.ASSORD_ID = D.ASSORD_ID
   WHERE D.PART_ID       = @ARG_PARTID
     AND M.ASSORD_SHIPFM = @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 + @ARG_ACOST - @ARG_COST
 
 SELECT @ARG_COST = @ARG_AMNT * @ARG_FACTPRICE + @ARG_COST

-- SELECT @ARG_PAYMENT = @ARG_PAYMENT + @ARG_DIFF
 print @ARG_PARTID
 print '!!!!!!!!!!!!!'
 print @ARG_FACTPRICE
 update F_ASS_ORD_ITEMS
    set ASS_ORDIT_COST  = @ARG_COST,
    ASS_ORDIT_PRICE = @ARG_FACTPRICE
  where ASSORD_ID = @ARG_PCHSORD_ID
    and PART_ID   = @ARG_PARTID

 
-- update F_ASS_ORD
--  set ASSORD_PAYMENT = @ARG_PAYMENT
--  where ASSORD_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
print @arg_count
CLOSE CUR_FACTPRICE
DEALLOCATE CUR_FACTPRICE

posted @ 2011-08-31 18:18  西天之旅  阅读(193)  评论(0)    收藏  举报