dbo.spi_update_bom_ora

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@ASSY_CODE varchar 255

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE PROCEDURE dbo.spi_update_bom_ora
(@ASSY_CODE varchar(255))
AS
BEGIN
   SET ANSI_NULLS ON
 SET ANSI_WARNINGS ON

  
Declare @tmp_bom_dtl TABLE(
 ASSY_CODE varchar(255),
 PART_NO varchar(255) NULL,
 QTY decimal(38,4) NULL,
 PARTNO2 varchar(255) NULL,
 ASSY_NO varchar(255) NULL,
 FLAG varchar(255) NULL,
 STATUS varchar(255) NULL
)

DECLARE @TSQL varchar(8000)
, @itemcount int
, @TSQL2 varchar(8000)


  SELECT  @TSQL = 'SELECT ASSY_CODE, NULL, ''FROMORACC'', 0, GETDATE() FROM OPENQUERY(ORACC,''SELECT * FROM PARTLIST_VIEW WHERE ASSY_CODE = ''''' + @ASSY_CODE + ''''''') GROUP BY ASSY_CODE'

  insert into dbo.tbl_bom_hdr ( ASSY_CODE, ASSY_NO, filename, itemcount, dateexec)
  EXEC (@TSQL)

  
  SELECT  @TSQL2 = 'SELECT *, replace(PART_NO,'' '','''') AS PART_NO2 FROM OPENQUERY(ORACC,''SELECT * FROM PARTLIST_VIEW WHERE ASSY_CODE = ''''' + @ASSY_CODE + ''''''')'

  insert into @tmp_bom_dtl ( ASSY_CODE, PART_NO, QTY, PARTNO2)
  EXEC (@TSQL2)


  MERGE dbo.tbl_bom_dtl AS TARGET
  USING @tmp_bom_dtl  AS SOURCE 
  ON (  SOURCE.ASSY_CODE = TARGET.ASSY_CODE and SOURCE.PARTNO2 = TARGET.PARTNO2 )
  WHEN MATCHED
  THEN
  UPDATE set 
  TARGET.QTY = SOURCE.QTY
  ,TARGET.status_bom = (case when (select count(*) from dbo.tbl_data_part_hs where part_no2=SOURCE.PARTNO2 ) = 0 then 'not found part no' else 'ok' end)
  WHEN NOT MATCHED BY TARGET THEN
  INSERT (
   ASSY_CODE, ASSY_NO,PART_NO, QTY, PARTNO2, FLAG, STATUS
   ,status_bom

  ) VALUES (
   
   SOURCE.ASSY_CODE, SOURCE.ASSY_NO,SOURCE.PART_NO, SOURCE.QTY, SOURCE.PARTNO2, SOURCE.FLAG, SOURCE.STATUS
   , (case when (select count(*) from dbo.tbl_data_part_hs where part_no2=SOURCE.PARTNO2 ) = 0 then 'not found part no' else 'ok' end)
   
   
  );

  select @itemcount = count(*) from tbl_bom_dtl where ASSY_CODE = @ASSY_CODE
  update tbl_bom_hdr set itemcount = @itemcount where ASSY_CODE = @ASSY_CODE


 
END
--go
--exec('[spuload_bc25] @filepath=''C:/wamp/www/pemi/loaderfiles/exim/bc25/'', @filename=''PIB_BERKALA_242_1.csv'', @username=''admin'', @tipe=''bc25'', @trx=''add'', @id=0 ')

GO