USE [AJK]
GO
/****** Object:  StoredProcedure [dbo].[proc_cetak_sertifikat_header]    Script Date: 01/14/2016 16:02:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Last Modified: Pribadi Pamungkas, 2016-01-14
ALTER PROCEDURE [dbo].[proc_cetak_sertifikat_header]
  @pi_id_peserta varchar(12),
  @po_cetakan    varchar(8000) OUTPUT,
  @po_message    varchar(100) OUTPUT
AS
BEGIN
  -- Lakukan validasi no peserta
  IF NOT EXISTS (SELECT * FROM peserta WHERE id_peserta = @pi_id_peserta)
  BEGIN
    SET @po_message = 'ID Peserta tidak valid'
    RETURN -1
  END
  
  --------------------------------------------------------------------------------------

  -- Ambil informasi yang dibutuhkan
  DECLARE
    @p_nama_perusahaan    varchar(100),
    @p_id_perusahaan      VARCHAR(11),
    @p_id_peserta         varchar(12),
    @p_no_polis           varchar(13),
    @p_no_peserta         varchar(15),
    @p_nama_peserta_1     varchar(50),
    @p_nama_peserta_2     varchar(50),
    @p_tgl_lahir_1        datetime,
    @p_tgl_lahir_2        datetime,
    @p_nama_produk        varchar(50),
    @p_uang_pertanggungan float,
    @p_premi_netto        float,
    @p_premi_gross        float,
    @p_prosen_bunga       float,
    @p_tgl_mulai          datetime,
    @p_tgl_akhir          datetime,
    @p_id_jenis_ajk       varchar(2),
    @p_satuan_masa        varchar(3),
    @p_masa               smallint

  SELECT
    @p_nama_perusahaan    = prsh.nama_perusahaan,
    @p_id_perusahaan      = prsh.id_perusahaan,
    @p_id_peserta         = @pi_id_peserta,
    @p_no_polis           = pst.no_polis,
    @p_no_peserta         = pst.no_peserta,
    @p_nama_peserta_1     = pst.nama_peserta_1,
    @p_nama_peserta_2     = pst.nama_peserta_2,
    @p_tgl_lahir_1        = pst.tgl_lahir_1,
    @p_tgl_lahir_2        = pst.tgl_lahir_2,
    @p_nama_produk        = prd.deskripsi,
    @p_uang_pertanggungan = pst.uang_pertanggungan,
    --@p_premi_netto        = pst.premi_netto,
    @p_premi_gross        = pst.premi + pst.extra_premi,
    @p_prosen_bunga       = pst.prosen_bunga,
    @p_tgl_mulai          = pst.tgl_mulai,
    @p_tgl_akhir          = pst.tgl_akhir,
    @p_id_jenis_ajk       = prd.id_jenis_ajk,
    @p_satuan_masa        = prd.satuan_masa,
    @p_masa               = pst.masa
  FROM
    peserta pst
    INNER JOIN
    polis p
    ON pst.no_polis = p.no_polis
    INNER JOIN
    perusahaan prsh
    ON p.id_perusahaan = prsh.id_perusahaan
    INNER JOIN
    produk prd
    ON pst.id_produk = prd.id_produk
  WHERE
    pst.id_peserta = @pi_id_peserta
 
  --------------------------------------------------------------------------------------

  DECLARE
    @p_uang_pertanggungan_with_format varchar(30),
    @p_premi_gross_with_format        varchar(30),
    @p_max_length                     int

  SET @p_uang_pertanggungan_with_format = dbo.func_format_float(@p_uang_pertanggungan, ',', '.', 2, '', '')
  SET @p_premi_gross_with_format = dbo.func_format_float(@p_premi_gross, ',', '.', 2, '', '')

  SET @p_max_length = LEN(@p_uang_pertanggungan_with_format)
  
  IF LEN(@p_premi_gross_with_format) > @p_max_length
  BEGIN
    SET @p_max_length = LEN(@p_premi_gross_with_format) 
  END

  --------------------------------------------------------------------------------------

  -- Buat text untuk cetakan
  DECLARE 
    @p_cetakan varchar(8000)
  
  SET @p_cetakan = ''
  
  --2013.000048
  --2013.000051
  --2013.000063

  -- Jika tetap atau menurun
  IF @p_id_jenis_ajk IN ('01', '02')
  BEGIN
    IF @p_id_perusahaan IN ('2013.000048', '2013.000051', '2013.000063')
      BEGIN
        SET @p_cetakan = @p_cetakan 
        + CHAR(13) + CHAR(10) + 'Pemegang Polis                   : ' + dbo.func_split_nama_perusahaan(@p_nama_perusahaan,1)
        + CHAR(13) + CHAR(10) + '                                    ' + COALESCE(dbo.func_split_nama_perusahaan(@p_nama_perusahaan,2),'')  -- modified by Pribadi Pamungkas. 2016-01-14. Ditambah COALESCE karena kalo tidak ada baris akan menghasilkan NULL
        + CHAR(13) + CHAR(10) + 'Nomor Polis                      : ' + @p_no_polis
        + CHAR(13) + CHAR(10) + 'Nomor Tertanggung                : ' + @p_no_peserta
        + CHAR(13) + CHAR(10) + 'Nama Tertanggung                 : ' + @p_nama_peserta_1
        + CHAR(13) + CHAR(10) + 'Tanggal Lahir                    : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_lahir_1)
        + CHAR(13) + CHAR(10) + 'Jenis Asuransi                   : ' + @p_nama_produk
        + CHAR(13) + CHAR(10) + 'Jumlah Kredit/Pinjaman           : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_uang_pertanggungan_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Premi Sekaligus                  : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_premi_gross_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Masa Berlaku                     : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_mulai) + ' s.d. ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_akhir) + 
           '(' + CAST(@p_masa AS varchar(3)) +' '+  CASE WHEN @p_satuan_masa = 'THN' THEN 'Tahun' ELSE 'Bulan' END + ')'
      END
    ELSE
    BEGIN
        SET @p_cetakan = @p_cetakan 
        + CHAR(13) + CHAR(10) + 'Pemegang Polis                   : ' + @p_nama_perusahaan
        + CHAR(13) + CHAR(10) + 'Nomor Polis                      : ' + @p_no_polis
        + CHAR(13) + CHAR(10) + 'Nomor Tertanggung                : ' + @p_no_peserta
        + CHAR(13) + CHAR(10) + 'Nama Tertanggung                 : ' + @p_nama_peserta_1
        + CHAR(13) + CHAR(10) + 'Tanggal Lahir                    : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_lahir_1)
        + CHAR(13) + CHAR(10) + 'Jenis Asuransi                   : ' + @p_nama_produk
        + CHAR(13) + CHAR(10) + 'Jumlah Kredit/Pinjaman           : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_uang_pertanggungan_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Premi Sekaligus                  : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_premi_gross_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Masa Berlaku                     : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_mulai) + ' s.d. ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_akhir) + 
           '(' + CAST(@p_masa AS varchar(3)) +' '+  CASE WHEN @p_satuan_masa = 'THN' THEN 'Tahun' ELSE 'Bulan' END + ')'
    END

    -- Jika Menurun
    IF @p_id_jenis_ajk = '01'
    BEGIN
      SET @p_cetakan = @p_cetakan
        + CHAR(13) + CHAR(10) + 'Tingkat Bunga Persetujuan Kredit : ' + dbo.func_format_float(@p_prosen_bunga, ',', '.', 2, '', '%')
    END
  END
  ELSE
  -- Jika Joint Life
  BEGIN
    SET @p_cetakan = @p_cetakan
        + CHAR(13) + CHAR(10) + 'Pemegang Polis                        : ' + @p_nama_perusahaan
        + CHAR(13) + CHAR(10) + 'Nomor Polis                           : ' + @p_no_polis
        + CHAR(13) + CHAR(10) + 'Nomor Tertanggung                     : ' + @p_no_peserta
        + CHAR(13) + CHAR(10) + 'Nama Tertanggung Pertama (1)          : ' + @p_nama_peserta_1
        + CHAR(13) + CHAR(10) + 'Nama Tertanggung Kedua (II)           : ' + @p_nama_peserta_2
        + CHAR(13) + CHAR(10) + 'Tanggal Lahir Tertanggung Pertama (1) : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_lahir_1)
        + CHAR(13) + CHAR(10) + 'Tanggal Lahir Tertanggung Kedua (II)  : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_lahir_2)
        + CHAR(13) + CHAR(10) + 'Jenis Asuransi                        : ' + @p_nama_produk
        + CHAR(13) + CHAR(10) + 'Jumlah Kredit/Pinjaman                : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_uang_pertanggungan_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Jumlah Premi Sekaligus                : ' + 'Rp ' + dbo.func_get_aligned_string('R', @p_premi_gross_with_format, @p_max_length, '')
        + CHAR(13) + CHAR(10) + 'Masa Berlaku                          : ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_mulai) + ' s.d. ' + dbo.func_date_format('dd/mm/yyyy', @p_tgl_akhir) +
         '(' + CAST(@p_masa AS varchar(3)) +' '+  CASE WHEN @p_satuan_masa = 'THN' THEN 'Tahun' ELSE 'Bulan' END + ')'

  END

  --------------------------------------------------------------------------------------

  SET @po_cetakan = @p_cetakan

  SET @po_message = ''
  RETURN 0
END
