NJC__Documentation::DB

dbo.sp_insertcb23_recalculate_new_inv_bl

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@nobl varchar 20
@tgbl date 3
@typebc varchar 5
@noinv varchar -1

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_insertcb23_recalculate_new_inv_bl
@nobl as varchar(20), @tgbl as date, @typebc as varchar(5), @noinv as varchar(MAX)

AS
BEGIN
 declare @tbl_listinv_bl table  ( id_hdr bigint,noinv varchar(60))
 declare @sts varchar(2), @desc varchar(50)
 declare @ihdr bigint, @inoinv varchar(50)
 
 declare @idata varchar(50)
 DECLARE a_cursor CURSOR FOR 
 select data from  dbo.Split( @noinv, CHAR(124))
 OPEN a_cursor
 FETCH NEXT FROM a_cursor INTO @idata
 WHILE @@FETCH_STATUS = 0 
 BEGIN -- begin here
  insert into @tbl_listinv_bl (id_hdr, noinv) values((select data from  dbo.Split( @idata, ',') where ID = 1), (select data from  dbo.Split( @idata, ',') where ID = 2))
 FETCH NEXT FROM a_cursor INTO @idata
 END
 CLOSE a_cursor
 DEALLOCATE a_cursor
 
 declare @id_bc_in_hdr_processed bigint
 set @id_bc_in_hdr_processed = (select [id_bc_in_hdr] from dbo.tbl_bc_in_hdr where nobl=@nobl and tglbl=@tgbl and [typedok] = @typebc)
 declare @car varchar(26)
 set @car =  (select CAR from dbo.tbl_bc_in_hdr where nobl=@nobl and tglbl=@tgbl and [typedok] = @typebc)
 
 
 declare @tmp_newinvoice table (
  part_name varchar(95),
  qty float, 
  hargatotal float, 
  jmlkemas int,
  satuan_bc varchar(3)
  )
  
 insert into @tmp_newinvoice  (part_name, qty , hargatotal,  jmlkemas, satuan_bc )
 SELECT     tbl_data_part_hs.part_name, SUM(v_noinv_dtl.qty) AS qty, (SUM(isnull(v_noinv_dtl.qty,0) * isnull(v_noinv_dtl.harga, 0))/1000) AS hargatotal, SUM(v_noinv_dtl.pack) AS jmlkemas, 
                      ISNULL
                          ((SELECT     TOP (1) KD_SAT_BC
                              FROM         tbl_satuan_bc
                              WHERE     (KD_SAT_INTERNAL = v_noinv_dtl.r7)), v_noinv_dtl.r7) AS satuan_bc
 FROM         tbl_inv_hdr INNER JOIN
        v_noinv_dtl ON tbl_inv_hdr.inv_hdr_id = v_noinv_dtl.inv_hdr_id LEFT OUTER JOIN
        tbl_data_part_hs ON v_noinv_dtl.partnumber = tbl_data_part_hs.part_no
 WHERE     (tbl_inv_hdr.status_inv =0) AND (tbl_inv_hdr.nobl = @nobl) AND (tbl_inv_hdr.tgbl = @tgbl)
 GROUP BY tbl_data_part_hs.part_name, v_noinv_dtl.r7
-- cek apakah ada data baru
 if (select COUNT(*) from @tmp_newinvoice )  > 0
 begin
BEGIN TRY  
 BEGIN TRANSACTION
  
  -- update detil
 UPDATE    tbl_bc_in_dtl
 SET              
 KemasJm =KemasJm+ISNULL((select top 1 jmlkemas from @tmp_newinvoice as x where x.part_name=tbl_bc_in_dtl.BrgUrai and x.satuan_bc=tbl_bc_in_dtl.KdSat),0)
 , JmlSat =JmlSat+ISNULL((select top 1 qty from @tmp_newinvoice as x where x.part_name=tbl_bc_in_dtl.BrgUrai  and x.satuan_bc=tbl_bc_in_dtl.KdSat),0)
 , DNilInv =DNilInv+ISNULL((select top 1 hargatotal/1000 from @tmp_newinvoice as x where x.part_name=tbl_bc_in_dtl.BrgUrai  and x.satuan_bc=tbl_bc_in_dtl.KdSat),0)

 WHERE     (id_bc_in_hdr = 1) AND exists
 (select * from @tmp_newinvoice as x where tbl_bc_in_dtl.BrgUrai = x.part_name and tbl_bc_in_dtl.KdSat = x.satuan_bc )

declare @lastserial int
set @lastserial =isnull((
SELECT     MAX(Serial) AS Expr1
FROM         tbl_bc_in_dtl
WHERE     (id_bc_in_hdr = @id_bc_in_hdr_processed)), 0)

 
declare @pasokneg varchar(50)
set @pasokneg=(select top 1 dbo.tbl_bc_in_hdr.PasokNeg from dbo.tbl_bc_in_hdr where dbo.tbl_bc_in_hdr.id_bc_in_hdr=@id_bc_in_hdr_processed )
--print @id_bc_in_hdr_processed
--select BrgUrai,KdSat from (
--select * from tbl_bc_in_dtl where id_bc_in_hdr = @id_bc_in_hdr_processed
--) xfilter




--SELECT
 
-- '-' as car
-- ,row_number() over(order by (select 0)) + @lastserial as lastserial
-- ,isnull(xdata.part_name_customs, '-UNKNOWN' + replace(convert(varchar(255) , newid()), '-','')) as BrgUrai --,isnull(dbo.tbl_data_part_hs.part_name_customs, v_noinv_dtl.partnumber)
-- ,ISNULL(xdata.hargatotal, 0) as DNilInv
-- ,isnull( (select top 1 tbl_data_part_hs.hs_code from tbl_data_part_hs where tbl_data_part_hs.part_name_customs =xdata.part_name_customs) , '') as NoHs
-- ,@id_bc_in_hdr_processed as id_bc_in_hdr
-- ,'01' as JnsBarangDtl
-- ,'02' as TujuanKirimDtl
-- ,'0' as SeriTrp
-- ,'-' as Merk
-- ,'-' as Tipe
-- ,'-' as SpfLain
-- ,'-' as KdBrg
-- , cast( ISNULL(xdata.qty, 0) as float) as JmlSat
-- ,isnull(xdata.satuan_bc,'') as KdSat
-- ,@pasokneg as BrgAsal
-- ,'1' as Penggunaan
-- ,'BX' as KemasJn

    
--FROM (
--SELECT x.part_name_customs, x.qty,x.hargatotal, x.jmlkemas,x.satuan_bc from @tmp_newinvoice as x
--where not exists
--(
-- select BrgUrai,KdSat from (
-- select * from tbl_bc_in_dtl where id_bc_in_hdr = @id_bc_in_hdr_processed
-- ) xfilter
-- where x.part_name_customs = xfilter.BrgUrai and x.satuan_bc=xfilter.KdSat
--)
--) AS xdata



insert into dbo.tbl_bc_in_dtl (
  [CAR]
  ,Serial
  ,BrgUrai
  ,DNilInv
  ,NoHs
  ,id_bc_in_hdr
  ,JnsBarangDtl
  ,TujuanKirimDtl
  ,SeriTrp
  ,Merk
  ,Tipe
  ,SpfLain
  ,KdBrg
  ,JmlSat
  ,KdSat
  ,BrgAsal
  ,Penggunaan
  ,KemasJn
 ) 
 
SELECT     
 
 @car as car
   ,row_number() over(order by (select 0)) + @lastserial as lastserial
   ,isnull(xdata.part_name, '-UNKNOWN' + replace(convert(varchar(255) , newid()), '-','')) as BrgUrai  --,isnull(dbo.tbl_data_part_hs.part_name_customs, v_noinv_dtl.partnumber)
 ,ISNULL(xdata.hargatotal, 0) as DNilInv
 ,isnull( (select top 1 replace(tbl_data_part_hs.hs_code,'.','') from tbl_data_part_hs where tbl_data_part_hs.part_name_customs =xdata.part_name) , '') as NoHs
 ,@id_bc_in_hdr_processed as id_bc_in_hdr
   ,'01' as JnsBarangDtl
   ,'02' as TujuanKirimDtl
   ,'0' as SeriTrp
   ,'-' as Merk
   ,'-' as Tipe
   ,'-' as SpfLain
   ,isnull((select top 1 dbo.tbl_custom_name.kode_brg from  dbo.tbl_custom_name where dbo.tbl_custom_name.custom_name=xdata.part_name), '-') as KdBrg
  , cast( ISNULL(xdata.qty, 0) as float) as JmlSat 
   ,isnull(xdata.satuan_bc,'') as KdSat
   ,@pasokneg as BrgAsal
   ,'1' as Penggunaan
   ,'BX' as KemasJn

    
FROM         (
SELECT    x.part_name, x.qty,x.hargatotal, x.jmlkemas,x.satuan_bc from @tmp_newinvoice as x
where not exists 
(
 select BrgUrai,KdSat from (
 select * from  tbl_bc_in_dtl where id_bc_in_hdr =  @id_bc_in_hdr_processed
 ) xfilter
 where x.part_name = xfilter.BrgUrai  and x.satuan_bc=xfilter.KdSat
)
) AS xdata 

  --- update header
 update tbl_bc_in_hdr set 
  NilInv=NilInv+ISNULL((select Sum( hargatotal) from @tmp_newinvoice ),0)
  ,JmBrg=(select COUNT(*) from  dbo.tbl_bc_in_dtl where id_bc_in_hdr =  @id_bc_in_hdr_processed)
 where id_bc_in_hdr =  @id_bc_in_hdr_processed
 

 -- update dokumen
 insert into dbo.tbl_bc_in_dok (
  CAR
  ,DokKd
  ,DokNo
  ,DokTg  
     ,id_bc_in_hdr
 )select 
   @car
   ,'380'
   ,dbo.tbl_inv_hdr.r3
   ,substring(dbo.tbl_inv_hdr.r5, 1, 2)+ substring(dbo.tbl_inv_hdr.r5, 4, 2) +   substring(dbo.tbl_inv_hdr.r5, 7, 2) 
   ,@id_bc_in_hdr_processed
   from dbo.tbl_inv_hdr
   where dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl = @tgbl and status_inv = 0
 GROUP BY
  dbo.tbl_inv_hdr.r3,
  dbo.tbl_inv_hdr.r5 
 
 -- update kontener
 insert into dbo.tbl_bc_in_con (
    [id_bc_in_hdr]
      ,[CAR]
      ,[ContNo]
      ,[ContUkur]
      ,[ContTipe]
 )select 
   @id_bc_in_hdr_processed
   ,@car
   ,dbo.tbl_inv_hdr.r4
   ,'40'
   ,'F'
   from dbo.tbl_inv_hdr
   where dbo.tbl_inv_hdr.nobl = @nobl  and dbo.tbl_inv_hdr.tgbl = @tgbl and status_inv = 0
 GROUP BY
  dbo.tbl_inv_hdr.r3,
  dbo.tbl_inv_hdr.r4,
  dbo.tbl_inv_hdr.r5 
  
   -- insert to partname detil bc in
    insert into tbl_bc_in_dtl_partnumber (
       [inv_dtl]
      ,[inv_hdr_id]
      ,[id_bc_in_hdr]
      ,[noinv]
      ,[car]
      ,[nobc]
      ,[tglbc]
      ,part_no2
      ,[part_number]
      ,part_name
      ,[part_name_customs]
      ,[bm]
      ,[qty]
      ,[unit]
      ,[harga]
      ,[kdval]
      ,[box]
      ,[pack]
      ,hscode
      ,id_partnumber
    
    ) select
      dbo.v_noinv_dtl.[inv_dtl]
      ,dbo.v_noinv_dtl.[inv_hdr_id]
      ,@id_bc_in_hdr_processed
      ,dbo.v_noinv_dtl.[noinv]
      ,(CASE WHEN (dbo.v_noinv_dtl.[car] = 0) THEN '-' END)
      ,dbo.v_noinv_dtl.[nobc]
      ,dbo.v_noinv_dtl.[tglbc]
      ,(select top 1 tbl_data_part_hs.part_no2 from tbl_data_part_hs where tbl_data_part_hs.part_no = dbo.v_noinv_dtl.partnumber)
      ,dbo.v_noinv_dtl.partnumber
      ,(select top 1 tbl_data_part_hs.part_name from tbl_data_part_hs where tbl_data_part_hs.part_no = dbo.v_noinv_dtl.partnumber)
      ,isnull(dbo.tbl_data_part_hs.part_name_customs,'-UNKNOWN' + replace(convert(varchar(255) , newid()), '-','')) as part_name_customs
      ,isnull(dbo.tbl_data_part_hs.bm, 0) as bm
      ,dbo.v_noinv_dtl.qty
      ,dbo.v_noinv_dtl.r7
      ,dbo.v_noinv_dtl.amount
      ,dbo.v_noinv_dtl.kdval
      ,dbo.v_noinv_dtl.box
      ,dbo.v_noinv_dtl.pack
      ,dbo.tbl_data_part_hs.hs_code
      ,dbo.tbl_data_part_hs.id
       
FROM         v_noinv_dtl INNER JOIN
                      tbl_inv_hdr ON v_noinv_dtl.inv_hdr_id = tbl_inv_hdr.inv_hdr_id LEFT OUTER JOIN
                      tbl_data_part_hs ON v_noinv_dtl.partnumber = tbl_data_part_hs.part_no
WHERE     (v_noinv_dtl.nobl = @nobl) AND (v_noinv_dtl.tgbl = @tgbl) AND (tbl_inv_hdr.status_inv = 0)
  --update
  
 update dbo.tbl_inv_hdr set dbo.tbl_inv_hdr.status_inv = 1 where dbo.tbl_inv_hdr.nobl = @nobl  and tgbl = @tgbl
 
COMMIT
END TRY 
BEGIN CATCH
  -- Whoops, there was an error
  IF @@TRANCOUNT > 0
     ROLLBACK

  -- Raise an error with the details of the exception
  DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
  Set @ErrMsg = ERROR_MESSAGE()
  set @ErrSeverity = ERROR_SEVERITY()
  select @ErrMsg as status,@ErrSeverity as description
  RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH  
 
 end -- end if
 
      
     


 set @sts = '00'
 set @desc = 'Data Processed'
 goto msg

msg:
  select @sts as status, @desc as description           

END
GO

Used By

No items found