dbo.fn_rpt_kb_dpil

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Null on Null Input

False

Schema Bound

False

Assembly

Parameters

Name Data Type Length Description
@start_date date 3
@end_date date 3
@source varchar 255

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE FUNCTION dbo.fn_rpt_kb_dpil( 
  @start_date date
, @end_date date
, @source varchar(255) = 'ALL'
) 

RETURNS  @rpt_kb_dpil TABLE (
 id bigint identity(1,1) 
 , data_source varchar(255) 
 , NOMOR_AJU varchar(255)
 , NOMOR_DAFTAR varchar(255)
 , TANGGAL_DAFTAR date
 , URAIAN varchar(255)
 , JUMLAH_SATUAN decimal(38,4)
 , KODE_SATUAN varchar(255)
 , CIF decimal(38,2)
 , KODE_VALUTA varchar(255)
 , NDPBM decimal(38,4)
 , CIF_RUPIAH decimal(38,2)
 , TANGGAL_REKAM date
 , KETERANGAN varchar(255)
 , NOMOR_INVOICE varchar(255)
 , BRUTO decimal(38,4)
 , JUMLAH_KEMASAN decimal(38,4)
 , KODE_KEMASAN varchar(255) 
  )  
WITH EXECUTE AS CALLER 
AS
BEGIN   

if(@source = 'All' OR @source = 'WH')
 begin
  ;WITH
   cte_hdr (
    urut,
    id_sa_hdr, tableid, NOMOR_AJU, NOMOR_DAFTAR, TANGGAL_DAFTAR, URAIAN, JUMLAH_SATUAN, KODE_SATUAN, CIF, KODE_VALUTA, 
    NDPBM, CIF_RUPIAH, TANGGAL_REKAM, KETERANGAN, JUMLAH_KEMASAN, KODE_KEMASAN
   ) as (
   SELECT
    ROW_NUMBER() OVER (PARTITION BY a.tableid, a.id_sa_hdr ORDER BY a.tableid, a.id_sa_hdr),
    id_sa_hdr, tableid, NOMOR_AJU, NOMOR_DAFTAR, TANGGAL_DAFTAR, URAIAN, JUMLAH_SATUAN, KODE_SATUAN, CIF, KODE_VALUTA, 
    NDPBM, CIF_RUPIAH, TANGGAL_REKAM, KETERANGAN, JUMLAH_KEMASAN, KODE_KEMASAN
    from (Select 1 as tableid
      , b.id_sa_hdr
      , b.BC25NAJU AS NOMOR_AJU
      , b.BC25No as NOMOR_DAFTAR
      , b.BC25Tg as TANGGAL_DAFTAR
      , 'KABEL DAN PERLENGKAPANNYA DIPAKAI UNTUK MOBIL' as URAIAN
      , a.TOTAL_SET as JUMLAH_SATUAN
      , a.SATUAN as KODE_SATUAN
      , a.AMOUNT  as CIF
      , b.KdVal as KODE_VALUTA
      , dbo.get_rate_valuta(b.BC25Tg,b.KdVal) as NDPBM
      , isnull(a.AMOUNT *  dbo.get_rate_valuta(b.BC25Tg,b.KdVal),0) as CIF_RUPIAH
      , NULL as TANGGAL_REKAM
      , NULL as KETERANGAN
      , a.JUMLAH_COLI as JUMLAH_KEMASAN
      , a.SATUAN_COLI as KODE_KEMASAN
       from tbl_sa a
       Left Join tbl_sa_hdr b ON a.id_sa_hdr = b.id_sa_hdr
       where b.BC25NO is not null AND b.BC25TG is not null
        AND (b.BC25TG BETWEEN @start_date AND @end_date)
        AND b.typedok = 'BC25'

      UNION ALL

      Select 2 as tableid
      , b.id_bc_out_hdr
      , b.CAR AS NOMOR_AJU
      , b.NODAFT as NOMOR_DAFTAR
      , b.TGDAFT as TANGGAL_DAFTAR
      , COncat(a.URBRG1, ' ', a.URBRG2,' ',a.URBRG3)
      , a.JMSATUAN as JUMLAH_SATUAN
      , a.JNSATUAN as KODE_SATAUAN
      , a.DNilInv  as CIF
      , b.KDVAL as KODE_VALUTA
      , dbo.get_rate_valuta(b.NODAFT,b.KDVAL) as NDPBM
      , isnull(a.DNilInv *  dbo.get_rate_valuta(b.NODAFT,b.KDVAL),0) as CIF_RUPIAH
      , NULL as TANGGAL_REKAM
      , NULL as KETERANGAN
      , a.JMKOLI as JUMLAH_KEMASAN
      , a.JNKOLI as KODE_KEMASAN
       from tbl_bc_out_dtl a
       Left Join tbl_bc_out_hdr b ON a.id_bc_out_hdr = b.id_bc_out_hdr
       where b.NODAFT is not null AND b.TGDAFT is not null
        AND (b.TGDAFT BETWEEN @start_date AND @end_date)
        AND b.typedok = 'BC41'

      UNION ALL

      Select 3 as tableid
      , b.ID_HEADER
      , b.NOMOR_AJU
      , b.NOMOR_DAFTAR
      , b.TANGGAL_DAFTAR
      , a.URAIAN
      , a.JUMLAH_SATUAN
      , a.KODE_SATUAN
      , a.CIF
      , b.KODE_VALUTA
      , dbo.get_rate_valuta(b.NOMOR_DAFTAR,b.KODE_VALUTA) as NDPBM
      , isnull(a.CIF *  dbo.get_rate_valuta(b.NOMOR_DAFTAR,b.KODE_VALUTA),0) as CIF_RUPIAH
      , NULL as TANGGAL_REKAM
      , NULL as KETERANGAN
      , a.JUMLAH_KEMASAN
      , a.KODE_KEMASAN
       from dt_ms_tpb_out_barang a
       Left Join dt_ms_tpb_out_header b ON a.ID_HEADER = b.ID_HEADER
       where b.NOMOR_DAFTAR is not null AND b.TANGGAL_DAFTAR is not null
        AND (b.TANGGAL_DAFTAR BETWEEN @start_date AND @end_date)
        AND b.KODE_DOKUMEN_PABEAN IN ('25','41')

    ) a
   ), 
   ct_invoice (
    urut,
    tableid,
    id_sa_hdr,
    NOMOR_DOKUMEN,
    TANGGAL_DOKUMEN
   ) as (
    SELECT
    ROW_NUMBER() OVER (PARTITION BY a.tableid, a.id_sa_hdr ORDER BY a.tableid, a.id_sa_hdr),
    id_sa_hdr
    , tableid
    , NoDok
    , TgDok
    FROM (
     Select 1 as tableid
       , b.id_sa_hdr
       , a.NoDok
       , a.TgDok
         from tbl_sa_dok a
      Left Join tbl_sa_hdr b ON a.id_sa_hdr = b.id_sa_hdr
      Where a.KdDok = '380'
      AND b.BC25NO is not null AND b.BC25TG is not null
          AND (b.BC25TG BETWEEN @start_date AND @end_date)
          AND b.typedok = 'BC25'
     UNION ALL
     Select 2 as tableid
       , b.id_bc_out_hdr
       , a.NoDok
       , a.TgDok
         from tbl_bc_out_dok a
      Left Join tbl_bc_out_hdr b ON a.id_bc_out_hdr = b.id_bc_out_hdr
      Where a.KdDok = '380'
      AND b.NODAFT is not null AND b.TGDAFT is not null
          AND (b.TGDAFT BETWEEN @start_date AND @end_date)
          AND b.typedok = 'BC41'

     UNION ALL
     Select 3 as tableid
       , b.ID_HEADER
       , a.NOMOR_DOKUMEN
       , a.TANGGAL_DOKUMEN
         from dt_ms_tpb_out_dokumen a
      Left Join dt_ms_tpb_out_header b ON a.ID_HEADER = b.ID_HEADER
      Where a.KODE_JENIS_DOKUMEN = '380'
      AND b.NOMOR_DAFTAR is not null AND b.TANGGAL_DAFTAR is not null
          AND (b.TANGGAL_DAFTAR BETWEEN @start_date AND @end_date)
          AND b.KODE_DOKUMEN_PABEAN IN ('25','41')

    ) a 
   ), 
   ct_sumary_header (
    urut,
    tableid,
    id_sa_hdr,
    BRUTO
   ) as (
    SELECT
    ROW_NUMBER() OVER (PARTITION BY a.tableid, a.id_sa_hdr ORDER BY a.tableid, a.id_sa_hdr),
    tableid
    ,id_sa_hdr 
    , Bruto
    FROM (
     Select 1 as tableid
       , a.id_sa_hdr
       , a.Bruto
         from tbl_sa_hdr a
      Where a.BC25NO is not null AND a.BC25TG is not null
          AND (a.BC25TG BETWEEN @start_date AND @end_date)
          AND a.typedok = 'BC25'

     UNION ALL
  
     Select 2 as tableid
       , a.id_bc_out_hdr
       , a.Bruto
         from tbl_bc_out_hdr a
      Where a.NODAFT is not null AND a.TGDAFT is not null
          AND (a.TGDAFT BETWEEN @start_date AND @end_date)
          AND a.typedok = 'BC41'

     UNION ALL
  
     Select  3 as tableid
       , a.ID_HEADER
       , a.Bruto
         from dt_ms_tpb_out_header a
      Where a.NOMOR_DAFTAR is not null AND a.TANGGAL_DAFTAR is not null
          AND (a.TANGGAL_DAFTAR BETWEEN @start_date AND @end_date)
          AND a.KODE_DOKUMEN_PABEAN IN ('25','41')
   
    ) a 
   )

   Insert into @rpt_kb_dpil (data_source
    , NOMOR_AJU
    , NOMOR_DAFTAR
    , TANGGAL_DAFTAR
    , URAIAN
    , JUMLAH_SATUAN
    , KODE_SATUAN
    , CIF
    , KODE_VALUTA
    , NDPBM
    , CIF_RUPIAH
    , TANGGAL_REKAM
    , KETERANGAN
    , NOMOR_INVOICE
    , BRUTO
    , JUMLAH_KEMASAN
    , KODE_KEMASAN)
   SELECT 'WH' 
   , NOMOR_AJU
   , NOMOR_DAFTAR
   , TANGGAL_DAFTAR
   , URAIAN
   , JUMLAH_SATUAN
   , a.KODE_SATUAN
   , CIF
   , KODE_VALUTA
   , NDPBM
   , CIF_RUPIAH
   , TANGGAL_REKAM
   , KETERANGAN
   , b.NOMOR_DOKUMEN
   , BRUTO
   , JUMLAH_KEMASAN
   , KODE_KEMASAN
   from cte_hdr a
    Left Join ct_invoice b ON a.tableid = b.tableid AND a.id_sa_hdr = b.id_sa_hdr AND a.urut = b.urut
    Left Join ct_sumary_header c ON a.tableid = c.tableid AND a.id_sa_hdr = c.id_sa_hdr
   ORDER BY a.NOMOR_AJU
 end

if(@source = 'All' OR @source = 'AW')
 
 BEGIN
  --set @source = 'AW'
  --;WITH
  -- cte_dok (

  -- )
   Insert into @rpt_kb_dpil (data_source
    , NOMOR_AJU
    , NOMOR_DAFTAR
    , TANGGAL_DAFTAR
    , URAIAN
    , JUMLAH_SATUAN
    , KODE_SATUAN
    , CIF
    , KODE_VALUTA
    , NDPBM
    , CIF_RUPIAH
    , TANGGAL_REKAM
    , KETERANGAN
    , NOMOR_INVOICE
    , BRUTO
    , JUMLAH_KEMASAN
    , KODE_KEMASAN)
   SELECT
   --a.ID_HEADER,
   'AW',
   a.NOMOR_AJU,
   a.NOMOR_DAFTAR,    
   a.TANGGAL_DAFTAR, 
   b.URAIAN,
   b.JUMLAH_SATUAN,
   b.KODE_SATUAN,
   b.CIF,
   a.KODE_VALUTA,
   dbo.get_rate_valuta(a.TANGGAL_DAFTAR,a.KODE_VALUTA) as NDPBM,
   b.CIF * dbo.get_rate_valuta(a.TANGGAL_DAFTAR,a.KODE_VALUTA),
   a.TANGGAL_TTD,
   '',
   d.NOMOR_DOKUMEN,
   a.BRUTO,
   b.JUMLAH_KEMASAN,
   b.KODE_KEMASAN
   --,
   --a.NAMA_PENERIMA_BARANG,
   --a.ALAMAT_PENERIMA_BARANG
   FROM                        AW.DB_PASI_20201106.dbo.v_tpb_out_barang b 
        INNER JOIN AW.DB_PASI_20201106.dbo.tpb_out_header a ON b.ID_HEADER = a.ID_HEADER 
        INNER JOIN
        AW.DB_PASI_20201106.dbo.tpb_out_header_h_status c ON a.tpb_out_header_h_status_id = c.tpb_out_header_h_status_id
        OUTER APPLY
        ( SELECT   TOP 1 dd.ID_HEADER , dd.NOMOR_DOKUMEN FROM AW.DB_PASI_20201106.dbo.tpb_out_dokumen dd WHERE KODE_JENIS_DOKUMEN ='380' AND dd.ID_HEADER  = a.ID_HEADER ) d
        WHERE c.status_tpb_out_id='3' AND ( a.KODE_DOKUMEN_PABEAN ='25' OR a.KODE_DOKUMEN_PABEAN ='41' )
        AND (a.TANGGAL_DAFTAR BETWEEN @start_date AND @end_date)
   ORDER BY a.NOMOR_AJU
 end

 RETURN;

end; 

GO

Used By

No items found