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_EDIT
@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 or @h_status_tpb_in_id=2)
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
declare @check_BM decimal(18,2)
,@check_BM_ID bigint
,@check_PPNBM decimal(18,2)
,@check_PPNBM_ID bigint
,@check_PPH decimal(18,2)
,@check_PPH_ID bigint
,@check_PPN decimal(18,2)
,@check_PPN_ID bigint
,@check_is_get bit
,@check_mode_source int
,@check_mode_source_name varchar(255)
,@check_header_mode_source int
SELECT top (1) @check_BM= BM
,@check_BM_ID= BM_ID
,@check_PPNBM= PPNBM
,@check_PPNBM_ID= PPNBM_ID
,@check_PPH= PPH
,@check_PPH_ID= PPH_ID
,@check_PPN= PPN
,@check_PPN_ID= PPN_ID
,@check_is_get= is_get
,@check_mode_source= mode_source
,@check_mode_source_name= mode_source_name
,@check_header_mode_source= header_mode_source
FROM vw_ms_header_bc_in_item
WHERE (ms_tpb_in_barang_id = @ID_BARANG)
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;
if @check_is_get=0
begin
UPDATE dt_ms_tpb_in_barang
set
CIF= 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
, CIF_RUPIAH= 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
, HARGA_PENYERAHAN= case when @h_KODE_DOKUMEN_PABEAN ='40' then @HARGA_PENYERAHAN else 0 end-- HARGA_PENYERAHAN
, FOB= case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---FOB
, HARGA_INVOICE= case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---HARGA_INVOICE
, JUMLAH_KEMASAN= @JUMLAH_KEMASAN--JUMLAH_KEMASAN
, JUMLAH_SATUAN= @JUMLAH_SATUAN--JUMLAH_SATUAN
, HARGA_SATUAN= @HARGA_PENYERAHAN/@JUMLAH_SATUAN--HARGA_SATUAN
, KODE_BARANG=@i_part_no--KODE_BARANG
, KODE_KEMASAN= @KODE_KEMASAN--KODE_KEMASAN
, KODE_SATUAN=@i_uom --KODE_SATUAN
, NETTO= @NETTO --NETTO
, POS_TARIF=@POS_TARIF
, SERI_BARANG=@SERI_BARANG
, URAIAN= @i_part_name --URAIAN
, VOLUME=@VOLUME
, mapping_ms_item_id=@ms_item_id
, qty_pakai=@JUMLAH_SATUAN--qty_pakai
, TIPE=@i_ms_item_custom_no --TIPE
, modify_date=@now
, modify_by=@data_by
, series =@series
, po_no =@po_no
, po_date =@po_date
,TAHUN_PEMBUATAN =@TAHUN_PEMBUATAN
, mapping_date=case when mapping_ms_item_id=@ms_item_id then mapping_date else @now end
, mapping_by =case when mapping_ms_item_id=@ms_item_id then mapping_by else @data_by end
where ID=@ID_BARANG
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)
begin
if @check_BM_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
)
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = @HARGA_PENYERAHAN * @h_NDPBM * @BM / 100, TARIF = @BM
WHERE (ID = @check_BM_ID)
end
else
begin
if not(@check_BM_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_BM_ID
end
if (@PPNBM>0)
begin
if @check_PPNBM_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPNBM / 100, TARIF = @PPNBM
WHERE (ID = @check_PPNBM_ID)
end
else
begin
if not(@check_PPNBM_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPNBM_ID
end
if (@PPN>0)
begin
if @check_PPN_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPN / 100, TARIF = @PPN
WHERE (ID = @check_PPN_ID)
end
else
begin
if not(@check_PPN_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPN_ID
end
if (@PPH>0)
begin
if @check_PPN_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPH / 100, TARIF = @PPH
WHERE (ID = @check_PPH_ID)
end
else
begin
if not(@check_PPH_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPH_ID
end
end
end
else
begin
UPDATE dt_ms_tpb_in_barang
set mapping_ms_item_id=@ms_item_id
, qty_pakai=@JUMLAH_SATUAN--qty_pakai
,series =@series
,TAHUN_PEMBUATAN =@TAHUN_PEMBUATAN
,po_no =@po_no
,po_date =@po_date
, modify_date=@now
, modify_by=@data_by
, mapping_date=case when mapping_ms_item_id=@ms_item_id then mapping_date else @now end
, mapping_by =case when mapping_ms_item_id=@ms_item_id then mapping_by else @data_by end
where ID=@ID_BARANG
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_EDIT
--'1 2 json 2 ::1 63 375 562.38 1 6.0000 ZZ 0.5250 84669400 1 2 JP 10.00 0.00 2.50 10.00
--'
GO
GO
CREATE procedure dbo.MG_MS_BC_IN_ITEM_EDIT
@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 or @h_status_tpb_in_id=2)
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
declare @check_BM decimal(18,2)
,@check_BM_ID bigint
,@check_PPNBM decimal(18,2)
,@check_PPNBM_ID bigint
,@check_PPH decimal(18,2)
,@check_PPH_ID bigint
,@check_PPN decimal(18,2)
,@check_PPN_ID bigint
,@check_is_get bit
,@check_mode_source int
,@check_mode_source_name varchar(255)
,@check_header_mode_source int
SELECT top (1) @check_BM= BM
,@check_BM_ID= BM_ID
,@check_PPNBM= PPNBM
,@check_PPNBM_ID= PPNBM_ID
,@check_PPH= PPH
,@check_PPH_ID= PPH_ID
,@check_PPN= PPN
,@check_PPN_ID= PPN_ID
,@check_is_get= is_get
,@check_mode_source= mode_source
,@check_mode_source_name= mode_source_name
,@check_header_mode_source= header_mode_source
FROM vw_ms_header_bc_in_item
WHERE (ms_tpb_in_barang_id = @ID_BARANG)
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;
if @check_is_get=0
begin
UPDATE dt_ms_tpb_in_barang
set
CIF= 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
, CIF_RUPIAH= 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
, HARGA_PENYERAHAN= case when @h_KODE_DOKUMEN_PABEAN ='40' then @HARGA_PENYERAHAN else 0 end-- HARGA_PENYERAHAN
, FOB= case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---FOB
, HARGA_INVOICE= case when @h_KODE_DOKUMEN_PABEAN ='23' then @HARGA_PENYERAHAN else 0 end ---HARGA_INVOICE
, JUMLAH_KEMASAN= @JUMLAH_KEMASAN--JUMLAH_KEMASAN
, JUMLAH_SATUAN= @JUMLAH_SATUAN--JUMLAH_SATUAN
, HARGA_SATUAN= @HARGA_PENYERAHAN/@JUMLAH_SATUAN--HARGA_SATUAN
, KODE_BARANG=@i_part_no--KODE_BARANG
, KODE_KEMASAN= @KODE_KEMASAN--KODE_KEMASAN
, KODE_SATUAN=@i_uom --KODE_SATUAN
, NETTO= @NETTO --NETTO
, POS_TARIF=@POS_TARIF
, SERI_BARANG=@SERI_BARANG
, URAIAN= @i_part_name --URAIAN
, VOLUME=@VOLUME
, mapping_ms_item_id=@ms_item_id
, qty_pakai=@JUMLAH_SATUAN--qty_pakai
, TIPE=@i_ms_item_custom_no --TIPE
, modify_date=@now
, modify_by=@data_by
, series =@series
, po_no =@po_no
, po_date =@po_date
,TAHUN_PEMBUATAN =@TAHUN_PEMBUATAN
, mapping_date=case when mapping_ms_item_id=@ms_item_id then mapping_date else @now end
, mapping_by =case when mapping_ms_item_id=@ms_item_id then mapping_by else @data_by end
where ID=@ID_BARANG
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)
begin
if @check_BM_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
)
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = @HARGA_PENYERAHAN * @h_NDPBM * @BM / 100, TARIF = @BM
WHERE (ID = @check_BM_ID)
end
else
begin
if not(@check_BM_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_BM_ID
end
if (@PPNBM>0)
begin
if @check_PPNBM_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPNBM / 100, TARIF = @PPNBM
WHERE (ID = @check_PPNBM_ID)
end
else
begin
if not(@check_PPNBM_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPNBM_ID
end
if (@PPN>0)
begin
if @check_PPN_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPN / 100, TARIF = @PPN
WHERE (ID = @check_PPN_ID)
end
else
begin
if not(@check_PPN_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPN_ID
end
if (@PPH>0)
begin
if @check_PPN_ID=-1
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
,@ID_BARANG --ID_BARANG
,@ID_HEADER --ID_HEADER
) ;
else
UPDATE dt_ms_tpb_in_barang_tarif
SET NILAI_BAYAR = (@HARGA_PENYERAHAN_RUPIAH +@nilai_BM) * @PPH / 100, TARIF = @PPH
WHERE (ID = @check_PPH_ID)
end
else
begin
if not(@check_PPH_ID=-1)
delete from dt_ms_tpb_in_barang_tarif where ID =@check_PPH_ID
end
end
end
else
begin
UPDATE dt_ms_tpb_in_barang
set mapping_ms_item_id=@ms_item_id
, qty_pakai=@JUMLAH_SATUAN--qty_pakai
,series =@series
,TAHUN_PEMBUATAN =@TAHUN_PEMBUATAN
,po_no =@po_no
,po_date =@po_date
, modify_date=@now
, modify_by=@data_by
, mapping_date=case when mapping_ms_item_id=@ms_item_id then mapping_date else @now end
, mapping_by =case when mapping_ms_item_id=@ms_item_id then mapping_by else @data_by end
where ID=@ID_BARANG
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_EDIT
--'
--'
GO
Depends On
13Used By
No items found