dbo.sp_insertbc23

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_insertbc23
 @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 @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 @ihdr bigint, @inoinv varchar(50)
 
 if (select COUNT(*) as cnt  from dbo.tbl_bc_in_hdr where dbo.tbl_bc_in_hdr.nobl = @nobl and dbo.tbl_bc_in_hdr.tglbl = @tgbl ) > 0
 begin
  set @sts = '04'
  set @desc = 'Data Sudah Ada di data BC Lakukan Recalculate jika ingin menggabungkan ke no nomor '+@nobl+' tgl '+cast(@tgbl as varchar)
  goto msg  
 end 
 
 DECLARE i_cursor CURSOR FOR 
 select id_hdr, noinv from @tbl_listinv_bl
 OPEN i_cursor
 FETCH NEXT FROM i_cursor INTO @ihdr, @inoinv 
 WHILE @@FETCH_STATUS = 0 
 BEGIN -- begin here
  if (select COUNT(*) as cnt from dbo.tbl_inv_hdr where nobl = @nobl and inv_hdr_id=@ihdr) = 0
  begin
   set @sts = '01'
   set @desc = 'Data Not Found '+@nobl+' idhdr= '+cast(@ihdr as varchar)+' noinv= '+@inoinv
   goto msg   
  end 
 
 FETCH NEXT FROM i_cursor INTO @ihdr, @inoinv
 END
 CLOSE i_cursor
 DEALLOCATE i_cursor
 
 if (  select count(*)
 FROM
   dbo.tbl_inv_hdr
   INNER JOIN dbo.v_noinv_dtl ON (dbo.tbl_inv_hdr.inv_hdr_id = dbo.v_noinv_dtl.inv_hdr_id)
   LEFT OUTER JOIN dbo.tbl_data_part_hs ON (dbo.v_noinv_dtl.partnumber = dbo.tbl_data_part_hs.part_no)
 WHERE
   dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl = @tgbl and dbo.tbl_data_part_hs.part_name is null
 GROUP BY
   dbo.tbl_data_part_hs.part_name,
   dbo.v_noinv_dtl.r7,
   dbo.tbl_data_part_hs.hs_code,tbl_data_part_hs.kode_barang) > 0
   begin
  set @sts = '01'
  set @desc = 'Part Number tidak ditemukan. Isikan dahulu Part Number.'
  goto msg  
   end


BEGIN TRY  
 BEGIN TRANSACTION
 declare @now date
 set @now = GETDATE()
 declare @ndpdm float
 set @ndpdm = (
  select top 1 nilai from dbo.tblKurs where (TgAkhir >= @now and TgAwal <= @now) and KdKurs = 'USD'  
 )
 -- Begin Header
 declare @jmldetil int
 set @jmldetil=(select count(*) from (
 select COUNT(*) as total
  FROM
    dbo.tbl_inv_hdr
    INNER JOIN dbo.v_noinv_dtl ON (dbo.tbl_inv_hdr.inv_hdr_id = dbo.v_noinv_dtl.inv_hdr_id)
    LEFT OUTER JOIN dbo.tbl_data_part_hs ON (dbo.v_noinv_dtl.partnumber = dbo.tbl_data_part_hs.part_no)
  WHERE
    dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl=@tgbl
  GROUP BY
    dbo.tbl_data_part_hs.part_name,
    dbo.tbl_inv_hdr.nobl,dbo.v_noinv_dtl.r7) xdata ) 
 
 insert into dbo.tbl_bc_in_hdr (
  [CAR]
  ,noinv
  ,tginv
  ,inv_hdr_id
  ,statusdok 
  ,typedok
  ,bc_in_from_in
  ,KdKpbc
  ,Tujuan
  ,JnsBarang
  ,TujuanKirim
  ,PasokNama
  ,PasokAlmt
  ,PasokNeg
  ,AngkutNama
  ,AngkutFl
  ,Moda
  ,KdVal
  ,NilInv
  ,KdHrg
  ,JmBrg
  ,Registrasi
  ,UsahaId
  ,UsahaNpwp
  ,UsahaNama
  ,UsahaAlmt
  ,UsahaStatus
  ,KdTPB
  ,ApiKd
  ,ApiNo
  ,KdKpbcBongkar
  ,KdKpbcAwas
  ,Namattd
  ,KotaTtd
  ,nobl
  ,tglbl
  ,Ndpbm
  ,Fob
  ,PelBkr
  ,TglTtd
  ) 
 select top 1 
  '-'
  ,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) 
  ,dbo.tbl_inv_hdr.inv_hdr_id
  ,'DATA BARU' 
  ,@typebc
  ,'INV HIB' --
  ,'150300'
  ,'1'
  ,'01'
  ,'02'
  ,(select top 1 supplier_name from dbo.tbl_data_supplier where subcode_as400 = dbo.tbl_inv_hdr.r2)
  ,(select top 1 supplier_address from dbo.tbl_data_supplier where subcode_as400 = dbo.tbl_inv_hdr.r2)
  ,(select top 1 supplier_country from dbo.tbl_data_supplier where subcode_as400 = dbo.tbl_inv_hdr.r2)
  ,dbo.tbl_inv_hdr.r20
  ,(select top 1 AngkutFl from tblkapal where AngkutNama = dbo.tbl_inv_hdr.r20)
  ,(select top 1 AngkutModa from tblkapal where AngkutNama = dbo.tbl_inv_hdr.r20)
  ,(select top 1 kdval from v_detil_invoice where inv_hdr_id = dbo.tbl_inv_hdr.inv_hdr_id)
  ,(SELECT top 1 (sum(dbo.v_detil_invoice.qty * dbo.v_detil_invoice.amount)) AS xxx FROM dbo.tbl_inv_hdr  INNER JOIN dbo.v_detil_invoice ON (dbo.tbl_inv_hdr.inv_hdr_id = dbo.v_detil_invoice.inv_hdr_id) WHERE  dbo.tbl_inv_hdr.nobl = @nobl GROUP BY  dbo.tbl_inv_hdr.nobl) 
        ,'1'
        ,@jmldetil
        ,(select top 1 Registrasi from tblImportir)
        ,(select top 1 IMPID from tblImportir)
        ,(select top 1 IMPNPWP from tblImportir)
        ,(select top 1 IMPNAMA from tblImportir)
        ,(select top 1 impalmt from tblImportir)
        ,(select top 1 usahastatus from tblImportir)
        ,(select top 1 KdTPB from tblImportir)
        ,(select top 1 ApiKd from tblImportir)
        ,(select top 1 ApiNo from tblImportir)
        ,'150300'
        ,'150300'
        ,(select top 1 Namattd from tblImportir)
        ,(select top 1 KotaTtd from tblImportir)
        ,@nobl
        ,@tgbl
        ,ISNULL(@ndpdm, 0)
        ,(SELECT top 1 (sum(dbo.v_detil_invoice.qty * dbo.v_detil_invoice.amount)) AS xxx FROM dbo.tbl_inv_hdr  INNER JOIN dbo.v_detil_invoice ON (dbo.tbl_inv_hdr.inv_hdr_id = dbo.v_detil_invoice.inv_hdr_id) WHERE  dbo.tbl_inv_hdr.nobl = @nobl GROUP BY  dbo.tbl_inv_hdr.nobl) 
        ,'IDTPP'
        ,GETDATE()
 from dbo.tbl_inv_hdr
   where dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl = @tgbl
 GROUP BY
  dbo.tbl_inv_hdr.r3,
  dbo.tbl_inv_hdr.r5,
  dbo.tbl_inv_hdr.r2,
  dbo.tbl_inv_hdr.r20,
  dbo.tbl_inv_hdr.inv_hdr_id 
 
 declare @idhdr bigint
 set @idhdr = @@IDENTITY
 
 INSERT INTO tbl_bc_in_hdr_h_status
             (id_bc_in_hdr, statusdok, status_date)
 VALUES  (@idhdr, (select top 1 statusdok from tbl_bc_in_hdr where [id_bc_in_hdr] = @idhdr), GETDATE())
 
 
 -- detil inv begin here
 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
  ,KemasJm
 ) select 
   '-'
   ,row_number() over(order by (select 0)) 
   ,isnull(dbo.tbl_data_part_hs.part_name, '-UNKNOWN' + replace(convert(varchar(255) , newid()), '-',''))  --,isnull(dbo.tbl_data_part_hs.part_name_customs, v_noinv_dtl.partnumber)
   ,(SUM(dbo.v_noinv_dtl.qty * (dbo.v_noinv_dtl.amount/1000)))
   ,REPLACE(dbo.tbl_data_part_hs.hs_code,'.','')
   ,@idhdr
   ,'01'
   ,'02'
   ,'0'
   ,'-'
   ,'-'
   ,'-'
   ,isnull(tbl_data_part_hs.kode_barang, '-')
   ,SUM(dbo.v_noinv_dtl.qty)
   ,(ISNULL((select top 1 KD_SAT_BC from dbo.tbl_satuan_bc where KD_SAT_INTERNAL = dbo.v_noinv_dtl.r7), dbo.v_noinv_dtl.r7))
   ,(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=@idhdr )
   ,'1'
   ,'BX'
   ,SUM(dbo.v_noinv_dtl.box)
   
 FROM
   dbo.tbl_inv_hdr
   INNER JOIN dbo.v_noinv_dtl ON (dbo.tbl_inv_hdr.inv_hdr_id = dbo.v_noinv_dtl.inv_hdr_id)
   LEFT OUTER JOIN dbo.tbl_data_part_hs ON (dbo.v_noinv_dtl.partnumber = dbo.tbl_data_part_hs.part_no)
 WHERE
   dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl = @tgbl
 GROUP BY
   dbo.tbl_data_part_hs.part_name,
   dbo.v_noinv_dtl.r7,
   dbo.tbl_data_part_hs.hs_code,tbl_data_part_hs.kode_barang
 -- end detil
 
 -- update dokumen
 insert into dbo.tbl_bc_in_dok (
  CAR
  ,DokKd
  ,DokNo
  ,DokTg  
     ,id_bc_in_hdr
 )select 
   '-'
   ,'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) 
   ,@idhdr
   from dbo.tbl_inv_hdr
   where dbo.tbl_inv_hdr.nobl = @nobl and dbo.tbl_inv_hdr.tgbl = @tgbl
 GROUP BY
  dbo.tbl_inv_hdr.r3,
  dbo.tbl_inv_hdr.r5   
 
 insert into dbo.tbl_bc_in_dok (
  CAR
  ,DokKd
  ,DokNo
  ,DokTg  
     ,id_bc_in_hdr ) values ('-', '705', @nobl, @tgbl, @idhdr)
 
 -- update kontener
 insert into dbo.tbl_bc_in_con (
    [id_bc_in_hdr]
      ,[CAR]
      ,[ContNo]
      ,[ContUkur]
      ,[ContTipe]
 )select 
   @idhdr
   ,'-'
   ,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
 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
      ,seri_detil
    
    ) select
      dbo.v_noinv_dtl.[inv_dtl]
      ,dbo.v_noinv_dtl.[inv_hdr_id]
      ,@idhdr
      ,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
      ,(select top 1 Serial from tbl_bc_in_dtl where id_bc_in_hdr = @idhdr and BrgUrai=dbo.tbl_data_part_hs.part_name)
    FROM
   dbo.v_noinv_dtl
   LEFT OUTER JOIN dbo.tbl_data_part_hs ON (dbo.v_noinv_dtl.partnumber = dbo.tbl_data_part_hs.part_no)
 WHERE nobl = @nobl and tgbl = @tgbl
  
  --update
  
 update dbo.tbl_inv_hdr set dbo.tbl_inv_hdr.status_inv = 1 where dbo.tbl_inv_hdr.nobl = @nobl  and tgbl = @tgbl
 
 --INSERT INTO tbl_bc_in_hdr_h_status
 -- (id_bc_in_hdr, statusdok, status_date)
 --VALUES (@idhdr, (select top 1 statusdok from tbl_bc_in_hdr where [id_bc_in_hdr] = @idhdr), GETDATE())
 
 insert into dbo.tbl_bc_in_trf 
 (
 CAR
 ,NoHs
 ,KdTrpBm
 ,TrpBm
 ,TrpPpn
 ,[id_bc_in_hdr] 
 )
 select 
   '-'
 ,NoHs
 ,'1'
 ,isnull((select top 1 dbo.tbl_data_part_hs.bm from dbo.tbl_data_part_hs where replace(dbo.tbl_data_part_hs.hs_code,'.','')=NoHs), 0) as bm
 ,10
 ,@idhdr
 from dbo.tbl_bc_in_dtl where id_bc_in_hdr=@idhdr
 group by NoHs
 
 -- tblbc23fas
 
 insert into dbo.tbl_bc_in_fas
 (
 [id_bc_in_hdr]
      ,[CAR]
      ,[Serial]
      ,[KdFasBM]
      ,[FasBM]
      ,[KdFasCuk]
      ,[FasCuk]
      ,[KdFasPpn]
      ,[FasPpn]
      ,[KdFasPph]
      ,[FasPph]
      ,[KdFasPbm]
      ,[FasPbm]
 )
 select 
   @idhdr
   ,'-'
 ,Serial
 ,'2'
 ,100
 ,''
 ,0
 ,'2'
 ,100
 ,'2'
 ,100
 ,''
 ,0
 from dbo.tbl_bc_in_dtl where id_bc_in_hdr=@idhdr
 
     
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 

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

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

END
GO

Used By

No items found