-- kesepakatan dgn bu rosma, bahwa yg dimaksud new bisnins adalah jenis note 1 saja
-- jadi tidak melihat apakah itu polis baru (newbisnis) atau bukan, yg penting jenis notenya adalah 1

--SELECT
--	*
--FROM
--	dbo.Note_Terbit_Master AS ntm
--WHERE
--  status NOT IN ('C', 'G')
--  AND dbo.func_fixed_date(ntm.tgl_buat) >= '2015-01-01'
--  AND dbo.func_fixed_date(ntm.tgl_buat) <= '2015-12-31'
--  AND ntm.Jenis = 1 -- Tagihan Premi New Bisnis
--  AND ntm.Jml_Terbit<>ntm.Total
  
  
--SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))


--DECLARE @dtDate DATETIME
--SET @dtDate = '2016-02-09'
--SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@dtDate)+1,0))
---------------------------------------------------------

DECLARE 
  @pi_tahun SMALLINT,
  @pi_mata_uang VARCHAR(3)

SET @pi_tahun = 2015
SET @pi_mata_uang = UPPER('IDR')

DECLARE @hasil TABLE ( 
                  bulan TINYINT,
                  valuta VARCHAR(3),
                  jan_premi NUMERIC(18,2),
                  jan_terbayar NUMERIC(18,2),
                  feb_premi NUMERIC(18,2),
                  feb_terbayar NUMERIC(18,2),
                  mar_premi NUMERIC(18,2),
                  mar_terbayar NUMERIC(18,2),
                  apr_premi NUMERIC(18,2),
                  apr_terbayar NUMERIC(18,2),
                  mei_premi NUMERIC(18,2),
                  mei_terbayar NUMERIC(18,2),
                  jun_premi NUMERIC(18,2),
                  jun_terbayar NUMERIC(18,2),
                  jul_premi NUMERIC(18,2),
                  jul_terbayar NUMERIC(18,2),
                  ags_premi NUMERIC(18,2),
                  ags_terbayar NUMERIC(18,2),
                  sep_premi NUMERIC(18,2),
                  sep_terbayar NUMERIC(18,2),
                  okt_premi NUMERIC(18,2),
                  okt_terbayar NUMERIC(18,2),
                  nov_premi NUMERIC(18,2),
                  nov_terbayar NUMERIC(18,2),
                  des_premi NUMERIC(18,2),
                  des_terbayar NUMERIC(18,2),
                  no_ref VARCHAR(11))

DECLARE @p_bulan TINYINT = 1;
DECLARE @kode_mata_uang VARCHAR(2)
SELECT @kode_mata_uang=Kode FROM dbo.Mata_Uang WHERE Deskripsi = @pi_mata_uang

WHILE @p_bulan <= 12
BEGIN
  DECLARE 
    @no_ref VARCHAR(11),
    @tgl_buat DATETIME,
    @jml_terbit NUMERIC(18,2),
    @total_terbit NUMERIC(18,2),
    @jml_lunas_terbit NUMERIC(18,2),
    @jml_lunas NUMERIC(18,2),
    @saldo NUMERIC(18,2),
    @tgl_lunas DATETIME,
    @saldo_terbit NUMERIC(18,2)

  DECLARE list_cursor CURSOR FAST_FORWARD FOR  
  
  SELECT
    ntm.No_Ref,
    ntm.Tgl_Buat,
    CAST(ntm.Jml_Terbit AS NUMERIC(18,2)),
    CAST(ntm.Total AS NUMERIC(18,2)),
    CAST(ntm.Jml_Lunas AS NUMERIC(18,2)),
    CAST(COALESCE(nlm.jml_lunas, 0) AS NUMERIC(18,2)),
    saldo = CASE 
              WHEN ABS(ntm.Tipe * ROUND(ntm.Jml_Terbit - COALESCE(nlm.jml_lunas, 0), 0)) <= 5000 THEN 0
              ELSE ntm.Tipe * ROUND(ntm.Jml_Terbit - COALESCE(nlm.jml_lunas, 0), 0)
            END,
    nlm.tgl_lunas,
    --ROUND(ntm.Saldo, 2) AS saldo_terbit--,
    CAST(ntm.Saldo AS NUMERIC(18,2))
    --umur_piutang = CASE 
    --                  WHEN DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) >= 0
    --                       AND DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) <= 30 THEN '00-30'
    --                  WHEN DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) >= 31
    --                       AND DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) <= 60 THEN '31-60'
    --                  WHEN DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) >= 61
    --                       AND DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) <= 90 THEN '61-90'
    --                  WHEN DATEDIFF(day, ntm.tgl_buat, @pi_tanggal) >= 91 THEN '91-~'
    --               END
  FROM
    Note_Terbit_Master AS ntm LEFT JOIN 
    (
     SELECT
      no_ref,
      MAX(tgl_bayar) AS tgl_lunas,
      SUM(jumlah) AS jml_lunas
     FROM
      note_lunas_master
     --WHERE
      --status <> 'C'
      --AND dbo.func_fixed_date(tgl_bayar) <= @pi_tanggal
      --AND 
      --MONTH(Tgl_Bayar) = @p_bulan
      --AND YEAR(Tgl_Bayar) = @pi_tahun
     GROUP BY
      no_ref
    ) nlm ON ntm.no_ref = nlm.no_ref
             AND YEAR(nlm.tgl_lunas) = @pi_tahun
             AND MONTH(nlm.tgl_lunas) = @p_bulan
  WHERE
    status NOT IN ('C', 'G')
    AND MONTH(ntm.tgl_buat) = @p_bulan
    AND YEAR(ntm.tgl_buat) = @pi_tahun
    AND Mata_Uang = @kode_mata_uang
    AND ntm.Jenis = 1 -- Tagihan Premi New Bisnis

  OPEN list_cursor  
  FETCH NEXT FROM list_cursor INTO @no_ref, @tgl_buat, @jml_terbit, @total_terbit, @jml_lunas_terbit, @jml_lunas, @saldo, @tgl_lunas, @saldo_terbit

  WHILE @@FETCH_STATUS = 0  
  BEGIN  
  
    --SELECT @no_ref, @tgl_buat, @jml_terbit, @total_terbit, @jml_lunas_terbit, @jml_lunas, @saldo, @tgl_lunas, @saldo_terbit
    
    -- penerimaan current month
    INSERT INTO @hasil
            (bulan,
             valuta,
             jan_premi,
             jan_terbayar,
             feb_premi,
             feb_terbayar,
             mar_premi,
             mar_terbayar,
             apr_premi,
             apr_terbayar,
             mei_premi,
             mei_terbayar,
             jun_premi,
             jun_terbayar,
             jul_premi,
             jul_terbayar,
             ags_premi,
             ags_terbayar,
             sep_premi,
             sep_terbayar,
             okt_premi,
             okt_terbayar,
             nov_premi,
             nov_terbayar,
             des_premi,
             des_terbayar,
             no_ref)
    SELECT
             @p_bulan, -- bulan - tinyint
             @pi_mata_uang, -- valuta - varchar(3)
             CASE WHEN @p_bulan = 1 THEN @total_terbit ELSE NULL END, -- jan_premi - numeric
             CASE WHEN @p_bulan = 1 THEN @jml_lunas ELSE NULL END, -- jan_terbayar - numeric
             CASE WHEN @p_bulan = 2 THEN @total_terbit ELSE NULL END, -- feb_premi - numeric
             CASE WHEN @p_bulan = 2 THEN @jml_lunas ELSE NULL END, -- feb_terbayar - numeric
             CASE WHEN @p_bulan = 3 THEN @total_terbit ELSE NULL END, -- mar_premi - numeric
             CASE WHEN @p_bulan = 3 THEN @jml_lunas ELSE NULL END, -- mar_terbayar - numeric
             CASE WHEN @p_bulan = 4 THEN @total_terbit ELSE NULL END, -- apr_premi - numeric
             CASE WHEN @p_bulan = 4 THEN @jml_lunas ELSE NULL END, -- apr_terbayar - numeric
             CASE WHEN @p_bulan = 5 THEN @total_terbit ELSE NULL END, -- mei_premi - numeric
             CASE WHEN @p_bulan = 5 THEN @jml_lunas ELSE NULL END, -- mei_terbayar - numeric
             CASE WHEN @p_bulan = 6 THEN @total_terbit ELSE NULL END, -- jun_premi - numeric
             CASE WHEN @p_bulan = 6 THEN @jml_lunas ELSE NULL END, -- jun_terbayar - numeric
             CASE WHEN @p_bulan = 7 THEN @total_terbit ELSE NULL END, -- jul_premi - numeric
             CASE WHEN @p_bulan = 7 THEN @jml_lunas ELSE NULL END, -- jul_terbayar - numeric
             CASE WHEN @p_bulan = 8 THEN @total_terbit ELSE NULL END, -- ags_premi - numeric
             CASE WHEN @p_bulan = 8 THEN @jml_lunas ELSE NULL END, -- ags_terbayar - numeric
             CASE WHEN @p_bulan = 9 THEN @total_terbit ELSE NULL END, -- sep_premi - numeric
             CASE WHEN @p_bulan = 9 THEN @jml_lunas ELSE NULL END, -- sep_terbayar - numeric
             CASE WHEN @p_bulan = 10 THEN @total_terbit ELSE NULL END, -- okt_premi - numeric
             CASE WHEN @p_bulan = 10 THEN @jml_lunas ELSE NULL END, -- okt_terbayar - numeric
             CASE WHEN @p_bulan = 11 THEN @total_terbit ELSE NULL END, -- nov_premi - numeric
             CASE WHEN @p_bulan = 11 THEN @jml_lunas ELSE NULL END, -- nov_terbayar - numeric
             CASE WHEN @p_bulan = 12 THEN @total_terbit ELSE NULL END, -- des_premi - numeric
             CASE WHEN @p_bulan = 12 THEN @jml_lunas ELSE NULL END, -- des_terbayar - numeric
             @no_ref
    
    -------------------------------------------------------------------------
    --DECLARE @p_bulan_kolom TINYINT = 0;
    --WHILE @p_bulan_kolom <= 10
    --  BEGIN
      
    --    DECLARE @total_penerimaan_bulan_sebelumnya NUMERIC(18,2) = @total_terbit
      
    --    -- penerimaan bulan berikutnya
    --    DECLARE
    --      @tgl_lunas_sebelum DATETIME,
    --      @jml_lunas_sebelum NUMERIC(18,2)
    --    SELECT
    --      --No_Ref,
    --      @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --      @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --    FROM
    --      dbo.Note_Lunas_Master
    --    WHERE
    --      No_Ref = @no_ref
    --      AND YEAR(Tgl_Bayar) = @pi_tahun
    --      AND MONTH(Tgl_Bayar) = @p_bulan + @p_bulan_kolom
    --    GROUP BY
    --      no_ref
          
    --    -- total penerimaan bulan sebelumnya
    --    INSERT INTO @hasil
    --            (bulan,
    --             valuta,
    --             jan_premi,
    --             jan_terbayar,
    --             feb_premi,
    --             feb_terbayar,
    --             mar_premi,
    --             mar_terbayar,
    --             apr_premi,
    --             apr_terbayar,
    --             mei_premi,
    --             mei_terbayar,
    --             jun_premi,
    --             jun_terbayar,
    --             jul_premi,
    --             jul_terbayar,
    --             ags_premi,
    --             ags_terbayar,
    --             sep_premi,
    --             sep_terbayar,
    --             okt_premi,
    --             okt_terbayar,
    --             nov_premi,
    --             nov_terbayar,
    --             des_premi,
    --             des_terbayar,
    --             no_ref
    --             )
    --    SELECT
    --             @p_bulan, -- bulan - tinyint
    --             @pi_mata_uang, -- valuta - varchar(3),
    --             NULL,
    --             NULL,
    --             CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --             CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --             CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --             CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --             CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --             CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --             CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --             CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --             CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --             CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --             CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --             CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --             CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --             CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --             CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --             CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --             CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --             CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --             CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --             CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --             CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --             CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --             --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --             --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --             @no_ref      
                 
    --    SET @total_penerimaan_bulan_sebelumnya = @total_terbit-@jml_lunas
        
    --    SET @p_bulan_kolom = @p_bulan_kolom + 1;
    --  END
    
    ------------------------------------------------------
    
    -- penerimaan bulan berikutnya  [1]
    DECLARE
      @tgl_lunas_sebelum DATETIME,
      @jml_lunas_sebelum NUMERIC(18,2)
    SELECT
      --No_Ref,
      @tgl_lunas_sebelum = MAX(Tgl_Bayar),
      @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    FROM
      dbo.Note_Lunas_Master
    WHERE
      No_Ref = @no_ref
      AND YEAR(Tgl_Bayar) = @pi_tahun
      AND MONTH(Tgl_Bayar) = @p_bulan
    GROUP BY
      no_ref

    -- total penerimaan bulan sebelumnya
    INSERT INTO @hasil
            (bulan,
             valuta,
             jan_premi,
             jan_terbayar,
             feb_premi,
             feb_terbayar,
             mar_premi,
             mar_terbayar,
             apr_premi,
             apr_terbayar,
             mei_premi,
             mei_terbayar,
             jun_premi,
             jun_terbayar,
             jul_premi,
             jul_terbayar,
             ags_premi,
             ags_terbayar,
             sep_premi,
             sep_terbayar,
             okt_premi,
             okt_terbayar,
             nov_premi,
             nov_terbayar,
             des_premi,
             des_terbayar,
             no_ref
             )
    SELECT
             @p_bulan, -- bulan - tinyint
             @pi_mata_uang, -- valuta - varchar(3),
             NULL,
             NULL,
             CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
             CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
             CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
             CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
             CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
             CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
             CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
             CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
             CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
             CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
             CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
             CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
             CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
             CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
             CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
             CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
             CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
             CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
             CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
             CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
             CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
             CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
             --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
             --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
             @no_ref
    ------------------------------------------------------
    
    -- penerimaan bulan berikutnya  [2]
    DECLARE
      @tgl_lunas_sebelum DATETIME,
      @jml_lunas_sebelum NUMERIC(18,2)
    SELECT
      --No_Ref,
      @tgl_lunas_sebelum = MAX(Tgl_Bayar),
      @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    FROM
      dbo.Note_Lunas_Master
    WHERE
      No_Ref = @no_ref
      AND YEAR(Tgl_Bayar) = @pi_tahun
      AND MONTH(Tgl_Bayar) = @p_bulan
    GROUP BY
      no_ref

    -- total penerimaan bulan sebelumnya
    INSERT INTO @hasil
            (bulan,
             valuta,
             jan_premi,
             jan_terbayar,
             feb_premi,
             feb_terbayar,
             mar_premi,
             mar_terbayar,
             apr_premi,
             apr_terbayar,
             mei_premi,
             mei_terbayar,
             jun_premi,
             jun_terbayar,
             jul_premi,
             jul_terbayar,
             ags_premi,
             ags_terbayar,
             sep_premi,
             sep_terbayar,
             okt_premi,
             okt_terbayar,
             nov_premi,
             nov_terbayar,
             des_premi,
             des_terbayar,
             no_ref
             )
    SELECT
             @p_bulan, -- bulan - tinyint
             @pi_mata_uang, -- valuta - varchar(3),
             NULL,
             NULL,
             NULL,
             NULL,
             CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
             CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
             CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
             CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
             CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
             CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
             CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
             CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
             CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
             CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
             CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
             CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
             CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
             CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
             CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
             CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
             CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
             CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
             CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
             CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
             --CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
             --CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
             --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
             --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
             @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [3]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [4]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [5]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [6]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [7]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [8]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [9]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [10]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [11]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref
    --------------------------------------------------------
    
    ---- penerimaan bulan berikutnya  [12]
    --DECLARE
    --  @tgl_lunas_sebelum DATETIME,
    --  @jml_lunas_sebelum NUMERIC(18,2)
    --SELECT
    --  --No_Ref,
    --  @tgl_lunas_sebelum = MAX(Tgl_Bayar),
    --  @jml_lunas_sebelum = CAST(SUM(Jumlah) AS NUMERIC(18,2))
    --FROM
    --  dbo.Note_Lunas_Master
    --WHERE
    --  No_Ref = @no_ref
    --  AND YEAR(Tgl_Bayar) = @pi_tahun
    --  AND MONTH(Tgl_Bayar) = @p_bulan
    --GROUP BY
    --  no_ref

    ---- total penerimaan bulan sebelumnya
    --INSERT INTO @hasil
    --        (bulan,
    --         valuta,
    --         jan_premi,
    --         jan_terbayar,
    --         feb_premi,
    --         feb_terbayar,
    --         mar_premi,
    --         mar_terbayar,
    --         apr_premi,
    --         apr_terbayar,
    --         mei_premi,
    --         mei_terbayar,
    --         jun_premi,
    --         jun_terbayar,
    --         jul_premi,
    --         jul_terbayar,
    --         ags_premi,
    --         ags_terbayar,
    --         sep_premi,
    --         sep_terbayar,
    --         okt_premi,
    --         okt_terbayar,
    --         nov_premi,
    --         nov_terbayar,
    --         des_premi,
    --         des_terbayar,
    --         no_ref
    --         )
    --SELECT
    --         @p_bulan, -- bulan - tinyint
    --         @pi_mata_uang, -- valuta - varchar(3),
    --         NULL,
    --         NULL,
    --         CASE WHEN @p_bulan = 1 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jan_premi - numeric
    --         CASE WHEN @p_bulan = 1 THEN @jml_lunas_sebelum ELSE NULL END, -- jan_terbayar - numeric
    --         CASE WHEN @p_bulan = 2 THEN @total_terbit-@jml_lunas ELSE NULL END, -- feb_premi - numeric
    --         CASE WHEN @p_bulan = 2 THEN @jml_lunas_sebelum ELSE NULL END, -- feb_terbayar - numeric
    --         CASE WHEN @p_bulan = 3 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mar_premi - numeric
    --         CASE WHEN @p_bulan = 3 THEN @jml_lunas_sebelum ELSE NULL END, -- mar_terbayar - numeric
    --         CASE WHEN @p_bulan = 4 THEN @total_terbit-@jml_lunas ELSE NULL END, -- apr_premi - numeric
    --         CASE WHEN @p_bulan = 4 THEN @jml_lunas_sebelum ELSE NULL END, -- apr_terbayar - numeric
    --         CASE WHEN @p_bulan = 5 THEN @total_terbit-@jml_lunas ELSE NULL END, -- mei_premi - numeric
    --         CASE WHEN @p_bulan = 5 THEN @jml_lunas_sebelum ELSE NULL END, -- mei_terbayar - numeric
    --         CASE WHEN @p_bulan = 6 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jun_premi - numeric
    --         CASE WHEN @p_bulan = 6 THEN @jml_lunas_sebelum ELSE NULL END, -- jun_terbayar - numeric
    --         CASE WHEN @p_bulan = 7 THEN @total_terbit-@jml_lunas ELSE NULL END, -- jul_premi - numeric
    --         CASE WHEN @p_bulan = 7 THEN @jml_lunas_sebelum ELSE NULL END, -- jul_terbayar - numeric
    --         CASE WHEN @p_bulan = 8 THEN @total_terbit-@jml_lunas ELSE NULL END, -- ags_premi - numeric
    --         CASE WHEN @p_bulan = 8 THEN @jml_lunas_sebelum ELSE NULL END, -- ags_terbayar - numeric
    --         CASE WHEN @p_bulan = 9 THEN @total_terbit-@jml_lunas ELSE NULL END, -- sep_premi - numeric
    --         CASE WHEN @p_bulan = 9 THEN @jml_lunas_sebelum ELSE NULL END, -- sep_terbayar - numeric
    --         CASE WHEN @p_bulan = 10 THEN @total_terbit-@jml_lunas ELSE NULL END, -- okt_premi - numeric
    --         CASE WHEN @p_bulan = 10 THEN @jml_lunas_sebelum ELSE NULL END, -- okt_terbayar - numeric
    --         CASE WHEN @p_bulan = 11 THEN @total_terbit-@jml_lunas ELSE NULL END, -- nov_premi - numeric
    --         CASE WHEN @p_bulan = 11 THEN @jml_lunas_sebelum ELSE NULL END, -- nov_terbayar - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @total_terbit-@jml_lunas ELSE NULL END, -- des_premi - numeric
    --         --CASE WHEN @p_bulan = 13 THEN @jml_lunas_sebelum ELSE NULL END, -- des_terbayar - numeric
    --         @no_ref

    
    FETCH NEXT FROM list_cursor INTO @no_ref, @tgl_buat, @jml_terbit, @total_terbit, @jml_lunas_terbit, @jml_lunas, @saldo, @tgl_lunas, @saldo_terbit
  END  

  CLOSE list_cursor  
  DEALLOCATE list_cursor 

   
  SET @p_bulan = @p_bulan + 1;

END -- end WHILE @p_bulan <= 12

--SELECT * FROM @hasil
SELECT
  bulan,
  valuta,
  SUM(jan_premi) AS jan_premi,
  SUM(jan_terbayar) AS jan_terbayar ,
  SUM(feb_premi) AS feb_premi,
  SUM(feb_terbayar) AS feb_terbayar,
  SUM(mar_premi) AS mar_premi,
  SUM(mar_terbayar) AS mar_terbayar,
  SUM(apr_premi) AS apr_premi,
  SUM(apr_terbayar) AS apr_terbayar ,
  SUM(mei_premi) AS mei_premi,
  SUM(mei_terbayar) AS mei_terbayar,
  SUM(jun_premi) AS jun_premi,
  SUM(jun_terbayar) AS jun_terbayar,
  SUM(jul_premi) AS jul_premi,
  SUM(jul_terbayar) AS jul_terbayar,
  SUM(ags_premi) AS ags_premi,
  SUM(ags_terbayar) AS ags_terbayar,
  SUM(sep_premi) AS sep_premi,
  SUM(sep_terbayar) AS sep_terbayar,
  SUM(okt_premi) AS okt_premi,
  SUM(okt_terbayar) AS okt_terbayar,
  SUM(nov_premi) AS nov_premi,
  SUM(nov_terbayar) AS nov_terbayar,
  SUM(des_premi) AS des_premi,
  SUM(des_terbayar) AS des_terbayar
FROM
  @hasil
GROUP BY
  bulan,
  valuta