Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
| Name | Data Type | Length | Description |
|---|---|---|---|
| @PARAMETER | xml | -1 |
SQL Script
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE procedure dbo.MG_MS_BC_IN_ITEM_ADD
@PARAMETER xml=''
---XencX---with encryption
as
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
declare @pemisah varchar(255)
declare @pemisah_replace varchar(255)
set @pemisah_replace='<br />'
--set @pemisah=CHAR(13) + CHAR(10) + '
'
set @pemisah = '
'
declare @resultX varchar(max)
declare @resultX2 varchar(max)
declare @XmlSts xml
declare @raw xml
declare @xStsnoheader varchar(2),
@xStsno varchar(2),
@xStsdes varchar(max)
set @xStsnoheader='07'
set @xStsno='00';
set @xStsdes='sukses'
BEGIN TRY
SET NOCOUNT ON
DECLARE @NOW datetime
set @NOW =GETDATE()
DECLARE
@data_by varchar(50)
,@HARGA_PENYERAHAN decimal(38,2)
,@JUMLAH_KEMASAN bigint
,@JUMLAH_SATUAN decimal(38,4)
,@KODE_KEMASAN varchar(255)
,@KODE_SATUAN varchar(255)
,@KODE_STATUS varchar(255)
,@NETTO decimal(38,4)
,@POS_TARIF varchar(255)
,@SERI_BARANG bigint
,@URAIAN varchar(500)
,@UKURAN varchar(255)
,@TIPE varchar(255)
,@VOLUME decimal(38,4)
,@ms_item_id bigint
,@KODE_NEGARA_ASAL varchar(255)
,@MERK varchar(255)
,@ID_HEADER bigint
,@ID_BARANG bigint
,@BM_ID bigint
,@BM decimal(38,2)
,@PPNBM_ID bigint
,@PPNBM decimal(38,2)
,@PPH_ID bigint
,@PPH decimal(38,2)
,@PPN_ID bigint
,@PPN decimal(38,2)
,@series varchar(255)
,@TAHUN_PEMBUATAN date
,@po_no varchar(255)
,@po_date date
SELECT
@data_by=left(ltrim(rtrim(isnull(tempTable.item.value('data_by[1]', 'varchar(100)'),''))),50)
,@HARGA_PENYERAHAN=dbo.StrToDec2(isnull( tempTable.item.value('HARGA_PENYERAHAN[1]', 'varchar(255)'),'0'))
,@JUMLAH_KEMASAN=isnull(tempTable.item.value('JUMLAH_KEMASAN[1]', 'bigint'),-1)
,@JUMLAH_SATUAN=dbo.StrToDec4(isnull( tempTable.item.value('JUMLAH_SATUAN[1]', 'varchar(255)'),'0'))
,@KODE_KEMASAN=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_KEMASAN[1]', 'varchar(305)'),''))),255)
,@KODE_STATUS=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_STATUS[1]', 'varchar(305)'),''))),255)
,@NETTO=dbo.StrToDec4(isnull( tempTable.item.value('NETTO[1]', 'varchar(255)'),'0'))
,@POS_TARIF=left(ltrim(rtrim(isnull(tempTable.item.value('POS_TARIF[1]', 'varchar(305)'),''))),255)
,@SERI_BARANG=isnull(tempTable.item.value('SERI_BARANG[1]', 'bigint'),-1)
,@UKURAN=left(ltrim(rtrim(isnull(tempTable.item.value('UKURAN[1]', 'varchar(305)'),''))),255)
,@TIPE=left(ltrim(rtrim(isnull(tempTable.item.value('TIPE[1]', 'varchar(305)'),''))),255)
,@VOLUME=dbo.StrToDec4(isnull( tempTable.item.value('VOLUME[1]', 'varchar(255)'),'0'))
,@ms_item_id=isnull(tempTable.item.value('ms_item_id[1]', 'bigint'),-1)
,@KODE_NEGARA_ASAL=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_NEGARA_ASAL[1]', 'varchar(305)'),''))),255)
,@MERK=left(ltrim(rtrim(isnull(tempTable.item.value('MERK[1]', 'varchar(305)'),''))),255)
,@ID_HEADER=isnull(tempTable.item.value('ID_HEADER[1]', 'bigint'),-1)
,@ID_BARANG=isnull(tempTable.item.value('ID_BARANG[1]', 'bigint'),-1)
,@BM_ID=isnull(tempTable.item.value('BM_ID[1]', 'bigint'),-1)
,@BM=dbo.StrToDec2(isnull( tempTable.item.value('BM[1]', 'varchar(255)'),'0'))
,@PPNBM_ID=isnull(tempTable.item.value('PPNBM_ID[1]', 'bigint'),-1)
,@PPNBM=dbo.StrToDec2(isnull( tempTable.item.value('PPNBM[1]', 'varchar(255)'),'0'))
,@PPH_ID=isnull(tempTable.item.value('PPH_ID[1]', 'bigint'),-1)
,@PPH=dbo.StrToDec2(isnull( tempTable.item.value('PPH[1]', 'varchar(255)'),'0'))
,@PPN_ID=isnull(tempTable.item.value('PPN_ID[1]', 'bigint'),-1)
,@PPN=dbo.StrToDec2(isnull( tempTable.item.value('PPN[1]', 'varchar(255)'),'0'))
,@series=left(ltrim(rtrim(isnull(tempTable.item.value('series[1]', 'varchar(305)'),''))),255)
,@TAHUN_PEMBUATAN=dbo.str_to_date(isnull(tempTable.item.value('TAHUN_PEMBUATAN[1]', 'varchar(255)'),''))
,@po_no=left(ltrim(rtrim(isnull(tempTable.item.value('po_no[1]', 'varchar(305)'),''))),255)
,@po_date=dbo.str_to_date(isnull(tempTable.item.value('po_date[1]', 'varchar(255)'),''))
FROM @PARAMETER.nodes('param/field') tempTable(item)
exec MG_CHECK_USER @data_by, 0, @xStsno output,@xStsdes output;
if @xStsno <>'00'
goto f ;
--- CHECK HEADER
declare @h_ID_HEADER bigint
,@h_status_tpb_in_id int
,@h_status_tpb_in_name varchar(255)
,@h_mode_source int
,@h_KODE_DOKUMEN_PABEAN varchar(255)
,@h_NDPBM decimal(18,4)
SELECT TOP(1)
@h_ID_HEADER=dt_ms_tpb_in_header.ID_HEADER
, @h_status_tpb_in_id=dt_ms_tpb_in_header_h_status.status_tpb_in_id
, @h_status_tpb_in_name=enum_ms_status_tpb_in.status_tpb_in_name
, @h_mode_source=dt_ms_tpb_in_header.mode_source
, @h_KODE_DOKUMEN_PABEAN=dt_ms_tpb_in_header.KODE_DOKUMEN_PABEAN
, @h_NDPBM=isnull(dt_ms_tpb_in_header.NDPBM ,1)
FROM dt_ms_tpb_in_header INNER JOIN
dt_ms_tpb_in_header_h_status ON dt_ms_tpb_in_header.dt_ms_tpb_in_header_h_status_id = dt_ms_tpb_in_header_h_status.dt_ms_tpb_in_header_h_status_id INNER JOIN
enum_ms_status_tpb_in ON dt_ms_tpb_in_header_h_status.status_tpb_in_id = enum_ms_status_tpb_in.status_tpb_in_id
WHERE (dt_ms_tpb_in_header.ID_HEADER = @ID_HEADER)
if @h_ID_HEADER is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Pilih Dokumen' ;
goto f
end
if not(@h_status_tpb_in_id=0)
begin
set @xStsno='02';
set @xStsdes='Gagal, Dokumen dengan status ' + @h_status_tpb_in_name + ' tidak bisa di edit' ;
goto f
end
--- CHECK BARANG
declare @i_ms_item_id bigint
,@i_ms_type_id int
,@i_ms_item_custom_no varchar(255)
,@i_ms_item_custom_name varchar(255)
,@i_base_no varchar(255)
,@i_part_no varchar(255)
,@i_part_name varchar(255)
,@i_uom varchar(255)
SELECT TOP (1)
@i_ms_item_id=dt_ms_item.ms_item_id
,@i_ms_type_id= dt_ms_item.ms_type_id
,@i_ms_item_custom_no= dt_ms_item.ms_item_custom_no
,@i_ms_item_custom_name= dt_ms_item_custom.ms_item_custom_name
,@i_base_no= dt_ms_item.ms_item_base_no
,@i_part_no= dt_ms_item.part_no
,@i_part_name= dt_ms_item.part_name
,@i_uom= dt_ms_item.uom
FROM dt_ms_item INNER JOIN
dt_ms_item_custom ON dt_ms_item.ms_item_custom_no = dt_ms_item_custom.ms_item_custom_no
WHERE (dt_ms_item.ms_item_id = @ms_item_id)
--- CHECK KEMASAN
if @i_ms_item_id is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Item tidak di temukan' ;
goto f
end
if @i_ms_item_id is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Item tidak di temukan' ;
goto f
end
if @KODE_KEMASAN =''
begin
set @xStsno='02';
set @xStsdes='Gagal, Kode kemasan tidak boleh kosong' ;
goto f
end
if (SELECT COUNT(*) AS Expr1
FROM tblKemasan
WHERE (KDEDI = @KODE_KEMASAN))=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Kode kemasan ' +@KODE_KEMASAN+ ' tidak terdaftar' ;
goto f
end
--if @JUMLAH_KEMASAN <=0
--begin
-- set @xStsno='02';
-- set @xStsdes='Gagal, Jumlah Kemasan harus lebih besar dari 0' ;
--goto f
--end
if @HARGA_PENYERAHAN <=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Total Harga harus lebih besar dari 0' ;
goto f
end
if @JUMLAH_SATUAN <=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Jumlah Barang harus lebih besar dari 0' ;
goto f
end
if @POS_TARIF ='' and not(@h_KODE_DOKUMEN_PABEAN='40')
begin
set @xStsno='02';
set @xStsdes='Gagal, HS tidak boleh kosong' ;
goto f
end
declare @ms_tpb_in_barang_id bigint
if @SERI_BARANG =-1
begin
set @SERI_BARANG = isnull((select max(SERI_BARANG) from dt_ms_tpb_in_barang where ID_HEADER=@ID_HEADER),0) +1
end
BEGIN TRANSACTION;
INSERT INTO dt_ms_tpb_in_barang
( CIF
, CIF_RUPIAH
, HARGA_PENYERAHAN
, FOB
, HARGA_INVOICE
, JUMLAH_KEMASAN
, JUMLAH_SATUAN
, HARGA_SATUAN
, KODE_BARANG
, KODE_KEMASAN
, KODE_SATUAN
, KODE_STATUS
, NETTO
, POS_TARIF
, SERI_BARANG
, URAIAN
, VOLUME
, mapping_ms_item_id
, qty_pakai
, TIPE
, UKURAN
, MERK
,TAHUN_PEMBUATAN
,series
,po_no
,po_date
, is_get
, ID_HEADER
, mode_source
, id_source
, create_date
, create_by
, modify_date
, modify_by
, mapping_date
, mapping_by)
VALUES (
case when @h_KODE_DOKUMEN_PABEAN ='23' or @h_KODE_DOKUMEN_PABEAN ='262' or @h_KODE_DOKUMEN_PABEAN ='271' then @HARGA_PENYERAHAN else 0 end --CIF
, case when @h_KODE_DOKUMEN_PABEAN ='23' or @h_KODE_DOKUMEN_PABEAN ='262' or @h_KODE_DOKUMEN_PABEAN ='271' then @HARGA_PENYERAHAN * @h_NDPBM else null end --CIF_RUPIAH
, case when @h_KODE_DOKUMEN_PABEAN ='40' then @HARGA_PENYERAHAN else 0 end-- HARGA_PENYERAHAN
, case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---FOB
, case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---HARGA_INVOICE
, @JUMLAH_KEMASAN--JUMLAH_KEMASAN
, @JUMLAH_SATUAN--JUMLAH_SATUAN
, @HARGA_PENYERAHAN/@JUMLAH_SATUAN--HARGA_SATUAN
, @i_part_no--KODE_BARANG
, @KODE_KEMASAN--KODE_KEMASAN
, @i_uom --KODE_SATUAN
, '02' --KODE_STATUS
, @NETTO --NETTO
, @POS_TARIF
, @SERI_BARANG
, @i_part_name --URAIAN
, @VOLUME
, @ms_item_id
, @JUMLAH_SATUAN--qty_pakai
, @i_ms_item_custom_no --TIPE
, '-' --UKURAN
, '-' --MERK
,@TAHUN_PEMBUATAN
,@series
,@po_no
,@po_date
, 0 --is_get
, @ID_HEADER
, 4--mode_source
, -1--id_source
, @now --create_date
, @data_by --create_by
, @now --modify_date
, @data_by --modify_by
, @now --mapping_date
, @data_by --mapping_by
)
set @ms_tpb_in_barang_id=SCOPE_IDENTITY()
update dt_ms_tpb_in_header
set JUMLAH_BARANG =isnull((select count(*) from dt_ms_tpb_in_barang where ID_HEADER =@ID_HEADER),0)
where ID_HEADER = @ID_HEADER
if (@h_KODE_DOKUMEN_PABEAN='23')
begin
declare @HARGA_PENYERAHAN_RUPIAH decimal(38,4)= (@HARGA_PENYERAHAN * @h_NDPBM)
declare @nilai_BM decimal(38,4)=0
if (@BM>0)
set @nilai_BM=((@HARGA_PENYERAHAN * @h_NDPBM) * @BM )/100
if (@BM>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'BM' -- JENIS_TARIF
, 2 --KODE_FASILITAS
, null --KODE_SATUAN
,1--KODE_TARIF
,((@HARGA_PENYERAHAN * @h_NDPBM) * @BM )/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@BM --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
)
if (@PPNBM>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPNBM' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null --KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPNBM)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPNBM --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
if (@PPN>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPN' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null --KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPN)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPN --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
if (@PPH>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPH' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null--KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPH)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPH --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
)
end
COMMIT TRANSACTION;
declare @detail xml
-- set @detail =(
-- select
-- ID_HEADER AS rID
--, status_tpb_in_name AS r1
--, mode_source_name AS r2
--, CUST_CODE AS r26
--, mode_source AS r27
--, status_tpb_in_id AS r30
--from vw_ms_header_bc_in
--where ID_HEADER=@ID_HEADER
--for xml path ('detail')
--)
f:
set nocount off
END TRY
BEGIN CATCH
IF (@@TRANCOUNT > 0) ROLLBACK TRAN;
set @xStsno='88'
set @xStsdes= ERROR_MESSAGE()
END CATCH
g:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
select CAST( (select @XmlSts,isnull(@raw ,'') ,isnull(@detail ,'') for xml path ('result')
) as XML) as dt
--GO
--EXEC MG_MS_BC_IN_ITEM_ADD
--'1 2 json 2 ::1 ABA01 27 8 10007 '
GO
GO
CREATE procedure dbo.MG_MS_BC_IN_ITEM_ADD
@PARAMETER xml=''
---XencX---with encryption
as
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
declare @pemisah varchar(255)
declare @pemisah_replace varchar(255)
set @pemisah_replace='<br />'
--set @pemisah=CHAR(13) + CHAR(10) + '
'
set @pemisah = '
'
declare @resultX varchar(max)
declare @resultX2 varchar(max)
declare @XmlSts xml
declare @raw xml
declare @xStsnoheader varchar(2),
@xStsno varchar(2),
@xStsdes varchar(max)
set @xStsnoheader='07'
set @xStsno='00';
set @xStsdes='sukses'
BEGIN TRY
SET NOCOUNT ON
DECLARE @NOW datetime
set @NOW =GETDATE()
DECLARE
@data_by varchar(50)
,@HARGA_PENYERAHAN decimal(38,2)
,@JUMLAH_KEMASAN bigint
,@JUMLAH_SATUAN decimal(38,4)
,@KODE_KEMASAN varchar(255)
,@KODE_SATUAN varchar(255)
,@KODE_STATUS varchar(255)
,@NETTO decimal(38,4)
,@POS_TARIF varchar(255)
,@SERI_BARANG bigint
,@URAIAN varchar(500)
,@UKURAN varchar(255)
,@TIPE varchar(255)
,@VOLUME decimal(38,4)
,@ms_item_id bigint
,@KODE_NEGARA_ASAL varchar(255)
,@MERK varchar(255)
,@ID_HEADER bigint
,@ID_BARANG bigint
,@BM_ID bigint
,@BM decimal(38,2)
,@PPNBM_ID bigint
,@PPNBM decimal(38,2)
,@PPH_ID bigint
,@PPH decimal(38,2)
,@PPN_ID bigint
,@PPN decimal(38,2)
,@series varchar(255)
,@TAHUN_PEMBUATAN date
,@po_no varchar(255)
,@po_date date
SELECT
@data_by=left(ltrim(rtrim(isnull(tempTable.item.value('data_by[1]', 'varchar(100)'),''))),50)
,@HARGA_PENYERAHAN=dbo.StrToDec2(isnull( tempTable.item.value('HARGA_PENYERAHAN[1]', 'varchar(255)'),'0'))
,@JUMLAH_KEMASAN=isnull(tempTable.item.value('JUMLAH_KEMASAN[1]', 'bigint'),-1)
,@JUMLAH_SATUAN=dbo.StrToDec4(isnull( tempTable.item.value('JUMLAH_SATUAN[1]', 'varchar(255)'),'0'))
,@KODE_KEMASAN=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_KEMASAN[1]', 'varchar(305)'),''))),255)
,@KODE_STATUS=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_STATUS[1]', 'varchar(305)'),''))),255)
,@NETTO=dbo.StrToDec4(isnull( tempTable.item.value('NETTO[1]', 'varchar(255)'),'0'))
,@POS_TARIF=left(ltrim(rtrim(isnull(tempTable.item.value('POS_TARIF[1]', 'varchar(305)'),''))),255)
,@SERI_BARANG=isnull(tempTable.item.value('SERI_BARANG[1]', 'bigint'),-1)
,@UKURAN=left(ltrim(rtrim(isnull(tempTable.item.value('UKURAN[1]', 'varchar(305)'),''))),255)
,@TIPE=left(ltrim(rtrim(isnull(tempTable.item.value('TIPE[1]', 'varchar(305)'),''))),255)
,@VOLUME=dbo.StrToDec4(isnull( tempTable.item.value('VOLUME[1]', 'varchar(255)'),'0'))
,@ms_item_id=isnull(tempTable.item.value('ms_item_id[1]', 'bigint'),-1)
,@KODE_NEGARA_ASAL=left(ltrim(rtrim(isnull(tempTable.item.value('KODE_NEGARA_ASAL[1]', 'varchar(305)'),''))),255)
,@MERK=left(ltrim(rtrim(isnull(tempTable.item.value('MERK[1]', 'varchar(305)'),''))),255)
,@ID_HEADER=isnull(tempTable.item.value('ID_HEADER[1]', 'bigint'),-1)
,@ID_BARANG=isnull(tempTable.item.value('ID_BARANG[1]', 'bigint'),-1)
,@BM_ID=isnull(tempTable.item.value('BM_ID[1]', 'bigint'),-1)
,@BM=dbo.StrToDec2(isnull( tempTable.item.value('BM[1]', 'varchar(255)'),'0'))
,@PPNBM_ID=isnull(tempTable.item.value('PPNBM_ID[1]', 'bigint'),-1)
,@PPNBM=dbo.StrToDec2(isnull( tempTable.item.value('PPNBM[1]', 'varchar(255)'),'0'))
,@PPH_ID=isnull(tempTable.item.value('PPH_ID[1]', 'bigint'),-1)
,@PPH=dbo.StrToDec2(isnull( tempTable.item.value('PPH[1]', 'varchar(255)'),'0'))
,@PPN_ID=isnull(tempTable.item.value('PPN_ID[1]', 'bigint'),-1)
,@PPN=dbo.StrToDec2(isnull( tempTable.item.value('PPN[1]', 'varchar(255)'),'0'))
,@series=left(ltrim(rtrim(isnull(tempTable.item.value('series[1]', 'varchar(305)'),''))),255)
,@TAHUN_PEMBUATAN=dbo.str_to_date(isnull(tempTable.item.value('TAHUN_PEMBUATAN[1]', 'varchar(255)'),''))
,@po_no=left(ltrim(rtrim(isnull(tempTable.item.value('po_no[1]', 'varchar(305)'),''))),255)
,@po_date=dbo.str_to_date(isnull(tempTable.item.value('po_date[1]', 'varchar(255)'),''))
FROM @PARAMETER.nodes('param/field') tempTable(item)
exec MG_CHECK_USER @data_by, 0, @xStsno output,@xStsdes output;
if @xStsno <>'00'
goto f ;
--- CHECK HEADER
declare @h_ID_HEADER bigint
,@h_status_tpb_in_id int
,@h_status_tpb_in_name varchar(255)
,@h_mode_source int
,@h_KODE_DOKUMEN_PABEAN varchar(255)
,@h_NDPBM decimal(18,4)
SELECT TOP(1)
@h_ID_HEADER=dt_ms_tpb_in_header.ID_HEADER
, @h_status_tpb_in_id=dt_ms_tpb_in_header_h_status.status_tpb_in_id
, @h_status_tpb_in_name=enum_ms_status_tpb_in.status_tpb_in_name
, @h_mode_source=dt_ms_tpb_in_header.mode_source
, @h_KODE_DOKUMEN_PABEAN=dt_ms_tpb_in_header.KODE_DOKUMEN_PABEAN
, @h_NDPBM=isnull(dt_ms_tpb_in_header.NDPBM ,1)
FROM dt_ms_tpb_in_header INNER JOIN
dt_ms_tpb_in_header_h_status ON dt_ms_tpb_in_header.dt_ms_tpb_in_header_h_status_id = dt_ms_tpb_in_header_h_status.dt_ms_tpb_in_header_h_status_id INNER JOIN
enum_ms_status_tpb_in ON dt_ms_tpb_in_header_h_status.status_tpb_in_id = enum_ms_status_tpb_in.status_tpb_in_id
WHERE (dt_ms_tpb_in_header.ID_HEADER = @ID_HEADER)
if @h_ID_HEADER is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Pilih Dokumen' ;
goto f
end
if not(@h_status_tpb_in_id=0)
begin
set @xStsno='02';
set @xStsdes='Gagal, Dokumen dengan status ' + @h_status_tpb_in_name + ' tidak bisa di edit' ;
goto f
end
--- CHECK BARANG
declare @i_ms_item_id bigint
,@i_ms_type_id int
,@i_ms_item_custom_no varchar(255)
,@i_ms_item_custom_name varchar(255)
,@i_base_no varchar(255)
,@i_part_no varchar(255)
,@i_part_name varchar(255)
,@i_uom varchar(255)
SELECT TOP (1)
@i_ms_item_id=dt_ms_item.ms_item_id
,@i_ms_type_id= dt_ms_item.ms_type_id
,@i_ms_item_custom_no= dt_ms_item.ms_item_custom_no
,@i_ms_item_custom_name= dt_ms_item_custom.ms_item_custom_name
,@i_base_no= dt_ms_item.ms_item_base_no
,@i_part_no= dt_ms_item.part_no
,@i_part_name= dt_ms_item.part_name
,@i_uom= dt_ms_item.uom
FROM dt_ms_item INNER JOIN
dt_ms_item_custom ON dt_ms_item.ms_item_custom_no = dt_ms_item_custom.ms_item_custom_no
WHERE (dt_ms_item.ms_item_id = @ms_item_id)
--- CHECK KEMASAN
if @i_ms_item_id is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Item tidak di temukan' ;
goto f
end
if @i_ms_item_id is null
begin
set @xStsno='02';
set @xStsdes='Gagal, Item tidak di temukan' ;
goto f
end
if @KODE_KEMASAN =''
begin
set @xStsno='02';
set @xStsdes='Gagal, Kode kemasan tidak boleh kosong' ;
goto f
end
if (SELECT COUNT(*) AS Expr1
FROM tblKemasan
WHERE (KDEDI = @KODE_KEMASAN))=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Kode kemasan ' +@KODE_KEMASAN+ ' tidak terdaftar' ;
goto f
end
--if @JUMLAH_KEMASAN <=0
--begin
-- set @xStsno='02';
-- set @xStsdes='Gagal, Jumlah Kemasan harus lebih besar dari 0' ;
--goto f
--end
if @HARGA_PENYERAHAN <=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Total Harga harus lebih besar dari 0' ;
goto f
end
if @JUMLAH_SATUAN <=0
begin
set @xStsno='02';
set @xStsdes='Gagal, Jumlah Barang harus lebih besar dari 0' ;
goto f
end
if @POS_TARIF ='' and not(@h_KODE_DOKUMEN_PABEAN='40')
begin
set @xStsno='02';
set @xStsdes='Gagal, HS tidak boleh kosong' ;
goto f
end
declare @ms_tpb_in_barang_id bigint
if @SERI_BARANG =-1
begin
set @SERI_BARANG = isnull((select max(SERI_BARANG) from dt_ms_tpb_in_barang where ID_HEADER=@ID_HEADER),0) +1
end
BEGIN TRANSACTION;
INSERT INTO dt_ms_tpb_in_barang
( CIF
, CIF_RUPIAH
, HARGA_PENYERAHAN
, FOB
, HARGA_INVOICE
, JUMLAH_KEMASAN
, JUMLAH_SATUAN
, HARGA_SATUAN
, KODE_BARANG
, KODE_KEMASAN
, KODE_SATUAN
, KODE_STATUS
, NETTO
, POS_TARIF
, SERI_BARANG
, URAIAN
, VOLUME
, mapping_ms_item_id
, qty_pakai
, TIPE
, UKURAN
, MERK
,TAHUN_PEMBUATAN
,series
,po_no
,po_date
, is_get
, ID_HEADER
, mode_source
, id_source
, create_date
, create_by
, modify_date
, modify_by
, mapping_date
, mapping_by)
VALUES (
case when @h_KODE_DOKUMEN_PABEAN ='23' or @h_KODE_DOKUMEN_PABEAN ='262' or @h_KODE_DOKUMEN_PABEAN ='271' then @HARGA_PENYERAHAN else 0 end --CIF
, case when @h_KODE_DOKUMEN_PABEAN ='23' or @h_KODE_DOKUMEN_PABEAN ='262' or @h_KODE_DOKUMEN_PABEAN ='271' then @HARGA_PENYERAHAN * @h_NDPBM else null end --CIF_RUPIAH
, case when @h_KODE_DOKUMEN_PABEAN ='40' then @HARGA_PENYERAHAN else 0 end-- HARGA_PENYERAHAN
, case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---FOB
, case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---HARGA_INVOICE
, @JUMLAH_KEMASAN--JUMLAH_KEMASAN
, @JUMLAH_SATUAN--JUMLAH_SATUAN
, @HARGA_PENYERAHAN/@JUMLAH_SATUAN--HARGA_SATUAN
, @i_part_no--KODE_BARANG
, @KODE_KEMASAN--KODE_KEMASAN
, @i_uom --KODE_SATUAN
, '02' --KODE_STATUS
, @NETTO --NETTO
, @POS_TARIF
, @SERI_BARANG
, @i_part_name --URAIAN
, @VOLUME
, @ms_item_id
, @JUMLAH_SATUAN--qty_pakai
, @i_ms_item_custom_no --TIPE
, '-' --UKURAN
, '-' --MERK
,@TAHUN_PEMBUATAN
,@series
,@po_no
,@po_date
, 0 --is_get
, @ID_HEADER
, 4--mode_source
, -1--id_source
, @now --create_date
, @data_by --create_by
, @now --modify_date
, @data_by --modify_by
, @now --mapping_date
, @data_by --mapping_by
)
set @ms_tpb_in_barang_id=SCOPE_IDENTITY()
update dt_ms_tpb_in_header
set JUMLAH_BARANG =isnull((select count(*) from dt_ms_tpb_in_barang where ID_HEADER =@ID_HEADER),0)
where ID_HEADER = @ID_HEADER
if (@h_KODE_DOKUMEN_PABEAN='23')
begin
declare @HARGA_PENYERAHAN_RUPIAH decimal(38,4)= (@HARGA_PENYERAHAN * @h_NDPBM)
declare @nilai_BM decimal(38,4)=0
if (@BM>0)
set @nilai_BM=((@HARGA_PENYERAHAN * @h_NDPBM) * @BM )/100
if (@BM>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'BM' -- JENIS_TARIF
, 2 --KODE_FASILITAS
, null --KODE_SATUAN
,1--KODE_TARIF
,((@HARGA_PENYERAHAN * @h_NDPBM) * @BM )/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@BM --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
)
if (@PPNBM>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPNBM' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null --KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPNBM)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPNBM --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
if (@PPN>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPN' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null --KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPN)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPN --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
if (@PPH>0)
INSERT INTO dt_ms_tpb_in_barang_tarif
(JENIS_TARIF
, KODE_FASILITAS
, KODE_SATUAN
, KODE_TARIF
, NILAI_BAYAR
, NILAI_FASILITAS
, NILAI_SUDAH_DILUNASI
, TARIF
, TARIF_FASILITAS
, ID_BARANG
, ID_HEADER
)
values( 'PPH' -- JENIS_TARIF
, 5 --KODE_FASILITAS
,null --KODE_SATUAN
,null--KODE_TARIF
,((@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPH)/100 --NILAI_BAYAR
,0 --NILAI_FASILITAS
,0 --NILAI_SUDAH_DILUNASI
,@PPH --TARIF
,100 --TARIF_FASILITAS
,@ms_tpb_in_barang_id --ID_BARANG
,@ID_HEADER --ID_HEADER
)
end
COMMIT TRANSACTION;
declare @detail xml
-- set @detail =(
-- select
-- ID_HEADER AS rID
--, status_tpb_in_name AS r1
--, mode_source_name AS r2
--, CUST_CODE AS r26
--, mode_source AS r27
--, status_tpb_in_id AS r30
--from vw_ms_header_bc_in
--where ID_HEADER=@ID_HEADER
--for xml path ('detail')
--)
f:
set nocount off
END TRY
BEGIN CATCH
IF (@@TRANCOUNT > 0) ROLLBACK TRAN;
set @xStsno='88'
set @xStsdes= ERROR_MESSAGE()
END CATCH
g:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
select CAST( (select @XmlSts,isnull(@raw ,'') ,isnull(@detail ,'') for xml path ('result')
) as XML) as dt
--GO
--EXEC MG_MS_BC_IN_ITEM_ADD
--'
GO
Depends On
12Used By
No items found