SP

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 14

ALTER PROCEDURE [dbo].

[spGetRawTextMResetKasir]
-- Add the parameters for the stored procedure here
--DECLARE
@IDReset UNIQUEIDENTIFIER = '55DADE6C-84CB-48E6-9967-AACCEDBCAD20'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

--Type : 0 = Normal, 1 = Big, 2 = OpenCashDrawer


DECLARE @Separator AS VARCHAR(100) =
'-----------------------------------------------------------';
DECLARE @PanjangKarakter AS INT = 39;
DECLARE @Temp AS TABLE
(
PKID INT IDENTITY(1, 1),
NoUrut INT,
[Type] INT,
Pesan VARCHAR(255)
);

DECLARE @Variable1 AS VARCHAR(255),


@Variable2 AS VARCHAR(255),
@Variable3 AS VARCHAR(255),
@Variable4 AS VARCHAR(255),
@Variable5 AS VARCHAR(255),
@Variable6 AS VARCHAR(255),
@Variable7 AS VARCHAR(255),
@CopyPrint AS INT;

DECLARE @VariableTemp AS VARCHAR(255);

--Cash Drawer
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 2, 'Open Cash Drawer');

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

DECLARE @DiscPembulatan MONEY,


@DiscRp MONEY,
@Subtotal MONEY,
@KasKeluar MONEY,
@SetorTunai MONEY,
@Bon MONEY;
SELECT @Variable1 = ISNULL(MUser.Nama, ''),
@Variable2 = CONVERT(VARCHAR(10), MReset.[Shift]),
@Variable3 = CONVERT(VARCHAR(15), MReset.[TanggalShift], 103),
@Variable4 = 'Kassa' + CONVERT(VARCHAR(10), MReset.IDPOS),
@Variable5 = REPLACE(CONVERT(VARCHAR(100), CAST(MReset.JmlNota AS
MONEY), 1), '.00', ''),
@Variable6 = REPLACE(CONVERT(VARCHAR(100), CAST(MReset.Modal AS MONEY),
1), '.00', ''),
@Variable7 = REPLACE(CONVERT(VARCHAR(100), CAST(MReset.Subtotal AS
MONEY), 1), '.00', ''),
@DiscPembulatan = ISNULL(MSales.Pembulatan, 0),
@DiscRp = ISNULL(MSales.DiscNota, 0),
@Subtotal = ISNULL(MSalesD.Jumlah, 0),
@KasKeluar = ISNULL(MResetDKasInOut.KasKeluar, 0),
@SetorTunai = ISNULL(MResetD.Tunai, 0),
@Bon = ISNULL(MResetD.Bon, 0)
FROM MReset (NOLOCK)
LEFT JOIN
(
SELECT IDReset,
SUM(CASE WHEN IDJenisPembayaran = 1 AND IDJenisPembayaranD = 1
THEN Jumlah ELSE 0 END) AS Tunai,
SUM(CASE WHEN IDJenisPembayaran = 1 AND IDJenisPembayaranD = 2
THEN Jumlah ELSE 0 END) AS Bon
FROM dbo.MResetDSetor (NOLOCK)
GROUP BY IDReset
) MResetD
ON MResetD.IDReset = MReset.NoID
LEFT JOIN
(
SELECT IDReset,
SUM(Nominal) AS KasKeluar
FROM dbo.MResetDKasInOut (NOLOCK)
GROUP BY IDReset
) MResetDKasInOut
ON MResetDKasInOut.IDReset = MReset.NoID
LEFT JOIN vMUser MUser
ON MUser.NoID = MReset.IDUser
LEFT JOIN
(
SELECT IDReset,
SUM(DiscRp) AS DiscNota,
SUM(DiscPembulatan) Pembulatan
FROM MSales (NOLOCK)
GROUP BY IDReset
) MSales
ON MSales.IDReset = MReset.NoID
LEFT JOIN
(
SELECT MSales.IDReset,
SUM(MSalesD.Jumlah) AS Jumlah
FROM MSales (NOLOCK)
INNER JOIN MSalesD (NOLOCK)
ON MSales.NoID = MSalesD.IDSales
GROUP BY MSales.IDReset
) MSalesD
ON MSalesD.IDReset = MReset.NoID
WHERE MReset.NoID = @IDReset;
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Kassa : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable4, @PanjangKarakter - 19),
0,
@PanjangKarakter
));
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Tanggal / Shift : '
+ RIGHT(SPACE(@PanjangKarakter) + @Variable3 + ' / ' +
@Variable2, @PanjangKarakter - 19),
0,
@PanjangKarakter
));
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Kasir : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable1, @PanjangKarakter - 19),
0,
@PanjangKarakter
));

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Modal : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable6, @PanjangKarakter - 19),
0,
@PanjangKarakter
));
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Jumlah Nota : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable5, @PanjangKarakter - 19),
0,
@PanjangKarakter
));
--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));
DECLARE @StrTemp AS VARCHAR(2500);

SET @StrTemp = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@Bon, 0) AS MONEY),


1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Bon : ' + RIGHT(SPACE(@PanjangKarakter) + @StrTemp,
@PanjangKarakter - 19),
0,
@PanjangKarakter
));

SET @StrTemp = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@SetorTunai, 0) AS


MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Cash : ' + RIGHT(SPACE(@PanjangKarakter) + @StrTemp,
@PanjangKarakter - 19),
0,
@PanjangKarakter
));
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0, SUBSTRING(' ' + RIGHT(@Separator, @PanjangKarakter -
19), 0, @PanjangKarakter));

SET @StrTemp
= REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@SetorTunai, 0) + ISNULL(@Bon,
0) AS MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
' ' + RIGHT(SPACE(@PanjangKarakter) + @StrTemp,
@PanjangKarakter - 19),
0,
@PanjangKarakter
));

SET @StrTemp = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@DiscRp, 0) AS MONEY),


1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Disc Nota : ' + RIGHT(SPACE(@PanjangKarakter) + @StrTemp,
@PanjangKarakter - 19),
0,
@PanjangKarakter
));

SET @StrTemp = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@DiscPembulatan, 0) AS


MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Pembulatan : ' + RIGHT(SPACE(@PanjangKarakter) + @StrTemp,
@PanjangKarakter - 19),
0,
@PanjangKarakter
));

SELECT @Variable1 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(Tunai.Jumlah, 0)


AS MONEY), 1), '.00', ''),
@Variable2 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(Bank.Jumlah, 0)
AS MONEY), 1), '.00', ''),
@Variable4 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(Voucher.Jumlah,
0) AS MONEY), 1), '.00', '')
FROM MReset (NOLOCK)
LEFT JOIN
(
SELECT T.IDReset,
SUM(T.Jumlah) Jumlah
FROM dbo.MResetDSetor (NOLOCK) T
WHERE T.IDJenisPembayaran = 1
GROUP BY T.IDReset
) AS Tunai
ON Tunai.IDReset = MReset.NoID
LEFT JOIN
(
SELECT T.IDReset,
SUM(T.Jumlah) Jumlah
FROM MResetDSetor (NOLOCK) T
WHERE T.IDJenisPembayaran IN ( 4, 5 )
GROUP BY T.IDReset
) AS Bank
ON Bank.IDReset = MReset.NoID
LEFT JOIN
(
SELECT T.IDReset,
SUM(T.Jumlah) Jumlah
FROM MResetDSetor (NOLOCK) T
WHERE T.IDJenisPembayaran IN ( 2, 3 )
GROUP BY T.IDReset
) AS Voucher
ON Voucher.IDReset = MReset.NoID
WHERE MReset.NoID = @IDReset;
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Jumlah Bank : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable2, @PanjangKarakter - 19),
0,
@PanjangKarakter
));
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(1, 0,
SUBSTRING(
'Voucher : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable4, @PanjangKarakter - 19),
0,
@PanjangKarakter
));

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(' Rincian Bank', 0, @PanjangKarakter));
--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

DECLARE @TempBayar AS TABLE


(
PKID INT IDENTITY(1, 1) PRIMARY KEY,
IDJenisPembayaran INT,
JenisPembayaran VARCHAR(100),
Jumlah MONEY
);

INSERT INTO @TempBayar


(
IDJenisPembayaran,
JenisPembayaran,
Jumlah
)
SELECT MJenisPembayaranD.NoID,
CASE WHEN ISNULL(MResetDSetor.Jumlah, 0) = ISNULL(MResetDBayar.Jumlah,
0) THEN ISNULL(MJenisPembayaranD.Nama, '') ELSE ISNULL(MJenisPembayaranD.Nama, '')
+ '***' END AS JenisPembayaran,
ISNULL(MResetDSetor.Jumlah, 0)
FROM dbo.vMJenisPembayaran (NOLOCK) MJenisPembayaran
INNER JOIN dbo.vMJenisPembayaranD (NOLOCK) MJenisPembayaranD
ON MJenisPembayaranD.IDJenisPembayaran = MJenisPembayaran.NoID
LEFT JOIN
(
SELECT IDJenisPembayaran,
IDJenisPembayaranD,
SUM(Jumlah) Jumlah
FROM dbo.MResetDSetor (NOLOCK)
WHERE MResetDSetor.IDReset = @IDReset
GROUP BY IDJenisPembayaranD,
IDJenisPembayaran
) MResetDSetor
ON MResetDSetor.IDJenisPembayaran = MJenisPembayaranD.IDJenisPembayaran
AND MResetDSetor.IDJenisPembayaranD = MJenisPembayaranD.NoID
LEFT JOIN
(
SELECT IDJenisPembayaran,
IDJenisPembayaranD,
SUM(Jumlah) Jumlah
FROM dbo.MResetDBayar (NOLOCK)
WHERE MResetDBayar.IDReset = @IDReset
GROUP BY IDJenisPembayaranD,
IDJenisPembayaran
) MResetDBayar
ON MResetDBayar.IDJenisPembayaran = MJenisPembayaranD.IDJenisPembayaran
AND MResetDBayar.IDJenisPembayaranD = MJenisPembayaranD.NoID
WHERE MJenisPembayaran.NoID IN ( 4, 5, 6 )
ORDER BY MJenisPembayaran.NoID DESC;

DECLARE @i AS INT,
@iMax AS INT,
@IDJenisPembayaran AS INT,
@Jumlah AS MONEY,
@ChargeRp AS MONEY;
SELECT @i = 1,
@iMax = MAX(PKID)
FROM @TempBayar T;
WHILE (@i <= @iMax)
BEGIN
SELECT @IDJenisPembayaran = ISNULL(T.IDJenisPembayaran, 0),
@Variable1 = ISNULL(T.JenisPembayaran, ''),
@Variable3 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(T.Jumlah, 0)
AS MONEY), 1), '.00', ''),
@Jumlah = ISNULL(T.Jumlah, 0)
FROM @TempBayar T
WHERE T.PKID = @i;

SET @Variable1 = LEFT(@Variable1 + SPACE(20), 16) + ': ';


INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0,
SUBSTRING(@Variable1 + RIGHT(SPACE(@PanjangKarakter) + @Variable3,
@PanjangKarakter - 19), 0, @PanjangKarakter));
SET @i = @i + 1;
END;

DECLARE @Selisih MONEY,


@Penjualan MONEY,
@Retur MONEY;

SELECT @Selisih =
ISNULL(@SetorTunai, 0) + ISNULL(@Bon, 0) -
ISNULL(MResetDBayar.Jumlah, 0)
+
ISNULL(MResetDSetorVoucher.Jumlah, 0) -
ISNULL(MResetDBayarVoucher.Jumlah, 0)
+
ISNULL(MResetDSetorBank.Jumlah, 0) -
ISNULL(MResetDBayarBank.Jumlah, 0)
+
ISNULL(MResetDSetorPoint.Jumlah, 0) -
ISNULL(MResetDBayarPoint.Jumlah, 0),
@Retur = ISNULL(MSales.Retur, 0),
@Penjualan = ISNULL(MSales.Sales, 0)
FROM MReset (NOLOCK)
LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDBayar (NOLOCK)
WHERE IDJenisPembayaran = 1
GROUP BY IDReset
) MResetDBayar
ON MResetDBayar.IDReset = MReset.NoID

LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDBayar (NOLOCK)
WHERE IDJenisPembayaran IN (2,3)
GROUP BY IDReset
) MResetDBayarVoucher
ON MResetDBayarVoucher.IDReset = MReset.NoID
LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDSetor (NOLOCK)
WHERE IDJenisPembayaran IN (2,3)
GROUP BY IDReset
) MResetDSetorVoucher
ON MResetDSetorVoucher.IDReset = MReset.NoID

LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDBayar (NOLOCK)
WHERE IDJenisPembayaran IN (4, 5)
GROUP BY IDReset
) MResetDBayarBank
ON MResetDBayarBank.IDReset = MReset.NoID
LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDSetor (NOLOCK)
WHERE IDJenisPembayaran IN (4, 5)
GROUP BY IDReset
) MResetDSetorBank
ON MResetDSetorBank.IDReset = MReset.NoID

LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDBayar (NOLOCK)
WHERE IDJenisPembayaran = 6
GROUP BY IDReset
) MResetDBayarPoint
ON MResetDBayarPoint.IDReset = MReset.NoID
LEFT JOIN
(
SELECT IDReset,
SUM(Jumlah) AS Jumlah
FROM dbo.MResetDSetor (NOLOCK)
WHERE IDJenisPembayaran = 6
GROUP BY IDReset
) MResetDSetorPoint
ON MResetDSetorPoint.IDReset = MReset.NoID

LEFT JOIN
(
SELECT MSales.IDReset,
SUM( CASE
WHEN MSalesD.TRN = 'RTN'
OR MSalesD.TRN = 'RTN2' THEN
MSalesD.Jumlah
ELSE
0
END
) AS Retur,
SUM(MSalesD.Jumlah) AS Sales
FROM MSales (NOLOCK)
INNER JOIN MSalesD (NOLOCK)
ON MSales.NoID = MSalesD.IDSales
GROUP BY MSales.IDReset
HAVING MSales.IDReset = @IDReset
) AS MSales
ON MSales.IDReset = MReset.NoID
WHERE MReset.NoID = @IDReset;

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

SET @Variable4 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@Retur, 0) AS


MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0,
SUBSTRING(
'Retur : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable4, @PanjangKarakter - 19),
0,
@PanjangKarakter
));

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

SET @Variable4 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@Penjualan, 0) AS


MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0,
SUBSTRING(
'Penjualan : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable4, @PanjangKarakter - 19),
0,
@PanjangKarakter
));

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

SET @Variable4 = REPLACE(CONVERT(VARCHAR(100), CAST(ISNULL(@Selisih, 0) AS


MONEY), 1), '.00', '');
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0,
SUBSTRING(
'Selisih Setor : ' + RIGHT(SPACE(@PanjangKarakter) +
@Variable4, @PanjangKarakter - 19),
0,
@PanjangKarakter
));

--Separator
INSERT INTO @Temp
(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SUBSTRING(@Separator, 0, @PanjangKarakter));

--SELECT
--@Variable1 = ISNULL(MUser.Nama, ''),
--@Variable2 = ISNULL(MUserSpv.Nama, '')
--FROM MReset(NOLOCK)
--LEFT JOIN vMUser(NOLOCK) MUser ON MUser.NoID=MReset.IDUser
--LEFT JOIN vMUser(NOLOCK) MUserSpv ON MUserSpv.NoID=MReset.IDSupervisor
--WHERE MReset.NoID=@IDReset

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, ' Kasir Pengawas');

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, '( ) ( )');

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

INSERT INTO @Temp


(
NoUrut,
Type,
Pesan
)
VALUES
(0, 0, SPACE(@PanjangKarakter));

SELECT *
FROM @Temp T
ORDER BY PKID,
NoUrut;
END;

You might also like