NJC__Documentation::DB

dbo.MG_MS_ITEM_FINAL_AVG_CANCEL

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@PARAMETER xml -1

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
create procedure dbo.MG_MS_ITEM_FINAL_AVG_CANCEL
@PARAMETER xml='' 
---XencX---with encryption
as

SET TRANSACTION ISOLATION LEVEL  READ UNCOMMITTED

declare @pemisah varchar(255)
declare @pemisah_replace varchar(255)
set @pemisah_replace='<br />'
--set @pemisah=CHAR(13) + CHAR(10) + '
'

set @pemisah = '
'


declare @resultX varchar(max)
declare @resultX2 varchar(max)

declare @XmlSts xml
declare @raw xml
declare @xStsnoheader varchar(2),
  @xStsno varchar(2),
  @xStsdes varchar(max)
   
set @xStsnoheader='07'
set @xStsno='00';
set @xStsdes='sukses'
 
BEGIN TRY
SET NOCOUNT ON
DECLARE @NOW datetime
set @NOW =GETDATE()  

DECLARE 
@data_by varchar(50)
,@header_id bigint  
,@info varchar(255)

SELECT 
@data_by=left(ltrim(rtrim(isnull(tempTable.item.value('data_by[1]', 'varchar(100)'),''))),50) 
,@info=left(ltrim(rtrim(isnull(tempTable.item.value('info[1]', 'varchar(300)'),''))),255) 
,@header_id=  isnull(tempTable.item.value('header_id[1]', 'bigint'),-1)
 FROM @PARAMETER.nodes('param/field')  tempTable(item)   
  
declare  
@check_header_ms_cost_final_avg_id bigint
, @check_header_final_avg_name varchar(255)
, @check_header_start_date date
, @check_header_end_date date 
, @check_header_info varchar(255)
, @check_header_ms_cost_final_avg_status_id int 
, @check_header_ms_cost_final_avg_status varchar(255)

SELECT   top(1)     
@check_header_ms_cost_final_avg_id=ms_cost_final_avg_id
, @check_header_final_avg_name=final_avg_name
, @check_header_start_date=start_date
, @check_header_end_date=end_date
, @check_header_info=info
, @check_header_ms_cost_final_avg_status_id=ms_cost_final_avg_status_id
, @check_header_ms_cost_final_avg_status=ms_cost_final_avg_status
FROM            vw_ms_item_final_avg
where ms_cost_final_avg_id=@header_id 

if @check_header_ms_cost_final_avg_id is null
begin
 set @xStsno='02';
 set @xStsdes='Gagal, Pilih AVG yang akan di Cancel' ;
goto f
end
 
 
if @check_header_ms_cost_final_avg_status_id=-1  
begin
 set @xStsno='02';
 set @xStsdes='Gagal, Dokumen sudah dalam status ' + @check_header_ms_cost_final_avg_status + ' tidak bisa di cancel lagi';
goto f
end

declare @adaAvgYangLebihBaru int 
set @adaAvgYangLebihBaru=isnull((
SELECT        COUNT(*) AS Expr1
FROM            vw_ms_item_final_avg
WHERE        (NOT (ms_cost_final_avg_status_id = - 1))
and    start_date>@check_header_end_date
),0)
     

if @adaAvgYangLebihBaru>0  
begin
 set @xStsno='02';
 set @xStsdes='Gagal, Ada ' + cast(@adaAvgYangLebihBaru as varchar(255)) + ' FINAL AVG yang lebih baru';
goto f
end

BEGIN TRANSACTION;     



UPDATE       dt_ms_production_retur
SET                approve_ms_cost_final_avg_id = -1
FROM            dt_ms_production_retur INNER JOIN
                        dt_ms_date_business ON dt_ms_production_retur.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)


UPDATE       dt_ms_adj_sto
SET                approve_ms_cost_final_avg_id =-1
FROM            dt_ms_adj_sto INNER JOIN
                        dt_ms_date_business ON dt_ms_adj_sto.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)


UPDATE       dt_ms_tpb_out_header
SET                approve_ms_cost_final_avg_id = -1
FROM            dt_ms_tpb_out_header INNER JOIN
                        dt_ms_date_business ON dt_ms_tpb_out_header.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)



UPDATE       dt_ms_tpb_in_header
SET                approve_ms_cost_final_avg_id = -1
FROM            dt_ms_tpb_in_header INNER JOIN
                        dt_ms_date_business ON dt_ms_tpb_in_header.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)



UPDATE       dt_ms_memo_header
SET                approve_ms_cost_final_avg_id = -1
FROM            dt_ms_memo_header INNER JOIN
                        dt_ms_date_business ON dt_ms_memo_header.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)



UPDATE       dt_ms_car_line_out_header
SET                approve_ms_cost_final_avg_id = -1
FROM            dt_ms_car_line_out_header INNER JOIN
                        dt_ms_date_business ON dt_ms_car_line_out_header.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)




UPDATE       dt_ms_item_daily_in_move_avg
SET       ms_item_h_price_id=      -1
,ms_cost_final_avg_id=-1
FROM            dt_ms_item_daily_in_move_avg INNER JOIN 
                         dt_ms_date_business ON dt_ms_item_daily_in_move_avg.ms_date_business_id = dt_ms_date_business.ms_date_business_id
WHERE        (dt_ms_date_business.ms_cost_final_avg_id = @header_id)
 
declare  @ms_cost_final_avg_h_status_id bigint
 

UPDATE       dt_ms_date_business
SET                ms_cost_final_avg_id =-1
WHERE      ms_cost_final_avg_id=@header_id
 

INSERT INTO dt_ms_cost_final_avg_h_status
                         (ms_cost_final_avg_id, ms_cost_final_avg_status_id, status_info, create_date, create_by)
VALUES        (@header_id, -1, @info,@now,@data_by)

set @ms_cost_final_avg_h_status_id=SCOPE_IDENTITY()

update dt_ms_cost_final_avg
set  ms_cost_final_avg_h_status_id =@ms_cost_final_avg_h_status_id
where ms_cost_final_avg_id=@header_id

 
COMMIT TRANSACTION;  
   
f:

set nocount off

END TRY  
BEGIN CATCH
 IF (@@TRANCOUNT > 0)  ROLLBACK TRAN;
 
 set @xStsno='88'
 set @xStsdes= ERROR_MESSAGE() 
END CATCH 
g:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
 select  CAST( (select @XmlSts,isnull(@raw ,'')   for xml path ('result')
)  as XML)  as dt
 
  
GO

Used By

No items found