0% found this document useful (0 votes)
82 views6 pages

Procedure Mat009 19

This stored procedure retrieves and processes data from various tables (SD1, SD2, SD3) based on input parameters. It sets multiple variables by selecting values from the tables. It then performs various checks and logic on those variables before either updating an existing record or inserting a new record in the TRX010_SP table. The procedure also generates a unique key/identifier for each record.

Uploaded by

Andre Couto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views6 pages

Procedure Mat009 19

This stored procedure retrieves and processes data from various tables (SD1, SD2, SD3) based on input parameters. It sets multiple variables by selecting values from the tables. It then performs various checks and logic on those variables before either updating an existing record or inserting a new record in the TRX010_SP table. The procedure also generates a unique key/identifier for each record.

Uploaded by

Andre Couto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

USE [P12_17]

GO
/****** Object: StoredProcedure [dbo].[MAT009_19_01] Script Date: 05/06/2018
21:12:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Procedure creation
ALTER PROCEDURE [dbo].[MAT009_19_01] (
@IN_ALIAS Char( 03 ) ,
@IN_ORDEM Char( 03 ) ,
@IN_RECFILE Integer ,
@IN_NRECRE5 Integer ,
@IN_NRECTRB Integer ,
@IN_MV_PAR14 Integer ,
@IN_MV_PAR1 Char( 08 ) ,
@IN_MV_PRODPR0 Integer ,
@IN_FILIALCOR Char( 2) ,
@IN_RECNOSMO Integer ,
@IN_CTRANSF Char( 01 ) ,
@IN_CPAISLOC Char( 03 ) ,
@IN_USAFILTRF Char( 01 ) ,
@IN_SEQ500 Char( 01 ) ) AS

-- Declaration of variables
DECLARE @cTRB_NIVEL Char( 02 )
DECLARE @cTRB_NIVSD3 Char( 01 )
DECLARE @cTRB_COD Char( 15)
DECLARE @cTRB_LOCAL Char( 2)
DECLARE @cTRB_CHAVE VarChar( 52)
DECLARE @cTRB_OP Char( 14)
DECLARE @cTRB_CF Char( 3)
DECLARE @cTRB_SEQ Char( 6)
DECLARE @cTRB_SEQPRO Char( 6)
DECLARE @cTRB_TES Char( 3)
DECLARE @dTRB_DTORIG Char( 08 )
DECLARE @nTRB_RECSD1 Integer
DECLARE @cTRB_DOC Char( 9)
DECLARE @cTRB_TIPO Char( 1)
DECLARE @nTRB_QUANT Float
DECLARE @cOPVAZIA Char( 14)
DECLARE @nTRX_QUANT Float
DECLARE @nTRX_QPERDA Float
DECLARE @dTRB_DTBASE Char( 08 )
DECLARE @cTRB_LOJA Char( 4)
DECLARE @cD3_ESTORNO Char( 1)
DECLARE @cTRB_CLI Char( 6)
DECLARE @cTRB_SERIE Char( 3)
DECLARE @lGrava Char( 01 )
DECLARE @cOrdem Char( 03 )
DECLARE @cExecutou Char( 01 )
DECLARE @cAlias Char( 03 )
DECLARE @dDtBusca Char( 08 )
DECLARE @iContador Integer
DECLARE @cD1_FORNECE Char( 6)
DECLARE @cAliasAux Char( 03 )
DECLARE @cRetFil Char( 2)
DECLARE @cTRB_ESPECIE Char( 5 )
DECLARE @cTRB_TIPODOC Char( 2 )
DECLARE @cTRB_FILTRA Char( 1 )
DECLARE @cTRB_ITEM Char( 4)
BEGIN
SET @lGrava = '0'
SET @cTRB_NIVEL = ' '
SET @cTRB_NIVSD3 = ' '
SET @cTRB_COD = ' '
SET @cTRB_LOCAL = ' '
SET @cTRB_CHAVE = ' '
SET @cTRB_OP = ' '
SET @cTRB_CF = ' '
SET @cTRB_SEQ = ' '
SET @cTRB_SEQPRO = ' '
SET @dTRB_DTORIG = ' '
SET @nTRB_RECSD1 = 0
SET @cTRB_TES = ' '
SET @cTRB_DOC = ' '
SET @cTRB_TIPO = ' '
SET @cOPVAZIA = ' '
SET @nTRX_QUANT = 0
SET @nTRX_QPERDA = 0
SET @cOrdem = @IN_ORDEM
SET @cExecutou = '0'
SET @cAlias = @IN_ALIAS
SET @cTRB_CLI = ' '
SET @cTRB_SERIE = ' '
SET @nTRB_QUANT = 0
SET @cRetFil = ' '
SET @cTRB_LOJA = ' '
SET @cTRB_ESPECIE = ' '
SET @cTRB_TIPODOC = ' '
SET @cTRB_FILTRA = ' '
SET @cTRB_ITEM = ' '
SET @cAlias = ' '
SET @cOrdem = ' '
SET @cExecutou = ' '
EXEC MA330SEQ_01 @IN_ORDEM , @IN_ALIAS , @IN_RECFILE , @cOrdem output , @cAlias
output , @cExecutou output
IF (@cExecutou = '1' )
BEGIN
IF @cAlias = 'SD1'
BEGIN
SET @lGrava = '1'
SELECT @cTRB_COD = D1_COD , @cTRB_LOCAL = D1_LOCAL , @cTRB_SEQ =
D1_NUMSEQ , @dTRB_DTORIG = D1_DTDIGIT , @cTRB_TES = D1_TES
, @cTRB_DOC = D1_DOC , @cTRB_TIPO = D1_TIPO , @cD1_FORNECE =
D1_FORNECE , @cTRB_SERIE = D1_SERIE , @nTRB_QUANT = D1_QUANT
, @cTRB_LOJA = D1_LOJA , @cTRB_OP = D1_OP , @cTRB_ITEM = D1_ITEM ,
@cTRB_ESPECIE = D1_ESPECIE , @cTRB_TIPODOC = D1_TIPODOC

FROM SD1010
WHERE R_E_C_N_O_ = @IN_RECFILE
SET @cAliasAux = 'SD1'
EXEC MAT047_19_01 @IN_FILIALCOR , @cAliasAux , @cTRB_TES , @cTRB_ESPECIE ,
@cTRB_TIPODOC , @IN_CPAISLOC , @cTRB_DOC ,
@cTRB_SERIE , @cD1_FORNECE , @cTRB_LOJA , @IN_USAFILTRF , @cRetFil
output
IF (@IN_MV_PAR14 = 1 )
BEGIN
SET @cTRB_SEQPRO = @cTRB_SEQ
END
IF @cOrdem = '300'
BEGIN
SET @cTRB_CHAVE = @cOPVAZIA + 'E' + @dTRB_DTORIG + @cTRB_SEQ +
'9y'
END
ELSE
BEGIN
IF @cOrdem = '500' and @IN_SEQ500 = '1'
BEGIN
SET @cTRB_CHAVE = @cTRB_SEQ + @cD1_FORNECE + @dTRB_DTORIG +
@cTRB_DOC + @cTRB_SERIE
END
ELSE
BEGIN
SET @cTRB_CHAVE = @cD1_FORNECE + @dTRB_DTORIG + @cTRB_SEQ +
@cTRB_DOC + @cTRB_SERIE
END
END
END
IF @cAlias = 'SD2'
BEGIN
SET @lGrava = '1'
SELECT @cTRB_COD = D2_COD , @cTRB_LOCAL = D2_LOCAL , @cTRB_SEQ =
D2_NUMSEQ , @dTRB_DTORIG = D2_EMISSAO , @cTRB_TES = D2_TES
, @cTRB_DOC = D2_DOC , @cTRB_CLI = D2_CLIENTE , @cTRB_SERIE =
D2_SERIE , @nTRB_QUANT = D2_QUANT , @cTRB_LOJA = D2_LOJA
, @cTRB_ITEM = D2_ITEM , @cTRB_ESPECIE = D2_ESPECIE , @cTRB_TIPODOC =
D2_TIPODOC
FROM SD2010
WHERE R_E_C_N_O_ = @IN_RECFILE
SET @cAliasAux = 'SD2'
EXEC MAT047_19_01 @IN_FILIALCOR , @cAliasAux , @cTRB_TES , @cTRB_ESPECIE ,
@cTRB_TIPODOC , @IN_CPAISLOC , @cTRB_DOC ,
@cTRB_SERIE , @cTRB_CLI , @cTRB_LOJA , @IN_USAFILTRF , @cRetFil
output
IF (@IN_MV_PAR14 = 1 )
BEGIN
SET @cTRB_SEQPRO = @cTRB_SEQ
END
IF @cOrdem <> '300'
BEGIN
IF @cOrdem = '500' and @IN_SEQ500 = '1'
BEGIN
SET @cTRB_CHAVE = @cTRB_SEQ + @cTRB_CLI + @dTRB_DTORIG +
@cTRB_DOC + @cTRB_SERIE
END
ELSE
BEGIN
SET @cTRB_CHAVE = @cTRB_CLI + @dTRB_DTORIG + @cTRB_SEQ +
@cTRB_DOC + @cTRB_SERIE
END
END
ELSE
BEGIN
SET @cTRB_CHAVE = @cOPVAZIA + 'E' + @dTRB_DTORIG + @cTRB_SEQ +
'9x'
END
END
IF @cAlias = 'SD3'
BEGIN
SET @lGrava = '1'
SELECT @cTRB_COD = D3_COD , @cTRB_LOCAL = D3_LOCAL , @cTRB_SEQ =
D3_NUMSEQ , @dTRB_DTORIG = D3_EMISSAO , @cTRB_DOC = D3_DOC
, @nTRX_QUANT = D3_QUANT , @cTRB_CF = D3_CF , @cTRB_OP = D3_OP ,
@cD3_ESTORNO = D3_ESTORNO , @nTRX_QPERDA = D3_PERDA
, @nTRB_QUANT = D3_QUANT
FROM SD3010
WHERE R_E_C_N_O_ = @IN_RECFILE

/*
-----------------------------------------------------------------------------------
-----
Polenghi - Ajustando Ordem para calculo do Custo medio no trb cujo alias =
'SD3' - inicio

-----------------------------------------------------------------------------------
-------*/
IF @cOrdem = '300' AND @cTRB_CF = 'DE6'
BEGIN
SET @cOrdem = '298'
END

IF @cOrdem = '300' AND @cTRB_CF = 'RE6'


BEGIN
SET @cOrdem = '298'
END

IF @cOrdem = '300' AND @cTRB_CF = 'DE7'


BEGIN
SET @cOrdem = '299'
END

IF @cOrdem = '300' AND @cTRB_CF = 'RE7'


BEGIN
SET @cOrdem = '299'
END
/*
-----------------------------------------------------------------------------------
-----
Polenghi - Ajustando Ordem para calculo do Custo medio no trb cujo alias =
'SD3' - fim

-----------------------------------------------------------------------------------
-------*/

IF (@IN_MV_PAR14 = 1 )
BEGIN
SET @cTRB_SEQPRO = @cTRB_SEQ
END
SET @cTRB_CHAVE = @cTRB_OP + SUBSTRING ( @cTRB_CF , 2 , 1 ) +
@dTRB_DTORIG + @cTRB_SEQ + @IN_CTRANSF
IF @cTRB_CF in ('DE4' , 'DE6' , 'DE7' )
BEGIN
SET @cTRB_CHAVE = @cTRB_CHAVE + '9'
END
ELSE
BEGIN
SET @cTRB_CHAVE = @cTRB_CHAVE + '0'
END
IF @IN_NRECRE5 > 0
BEGIN
SELECT @cD1_FORNECE = D1_FORNECE , @cTRB_DOC = D1_DOC , @cTRB_SERIE
= D1_SERIE , @cTRB_SEQ = D1_NUMSEQ ,
@dTRB_DTORIG = D1_DTDIGIT , @cTRB_ITEM = D1_ITEM
FROM SD1010
WHERE R_E_C_N_O_ = @IN_NRECRE5
IF @cOrdem = '300'
BEGIN
SET @cTRB_CHAVE = @cOPVAZIA + 'E' + @dTRB_DTORIG + @cTRB_SEQ +
'9z'
END
ELSE
BEGIN
SET @cTRB_CHAVE = @cD1_FORNECE + @dTRB_DTORIG + @cTRB_SEQ +
@cTRB_DOC + @cTRB_SERIE + 'z'
END
END
IF (@cTRB_CF in ('PR0' , 'PR1' ) ) and (@cD3_ESTORNO <> 'S' )
BEGIN
IF (@IN_MV_PAR14 <> 3 )
BEGIN
SET @dDtBusca = @IN_MV_PAR1
SELECT @iContador = COUNT ( * )
FROM TRX010_SP TRX
WHERE TRX_FILIAL = @IN_FILIALCOR and TRX_DATA = @dDtBusca and
TRX_OP = @cTRB_OP and TRX_COD = @cTRB_COD
and TRX_LOCAL = @cTRB_LOCAL
END
ELSE
BEGIN
SET @dDtBusca = @dTRB_DTORIG
SELECT @iContador = COUNT ( * )
FROM TRX010_SP TRX
WHERE TRX_FILIAL = @IN_FILIALCOR and TRX_DATA = @dDtBusca and
TRX_OP = @cTRB_OP and TRX_COD = @cTRB_COD
and TRX_LOCAL = @cTRB_LOCAL
END
IF @iContador is null
BEGIN
SET @iContador = 0
END
IF (@iContador > 0 )
BEGIN
UPDATE TRX010_SP
WITH (ROWLOCK)
SET TRX_QUANT = TRX_QUANT + @nTRX_QUANT , TRX_QPERDA =
TRX_QPERDA + @nTRX_QPERDA
WHERE TRX_FILIAL = @IN_FILIALCOR and TRX_DATA = @dDtBusca and
TRX_OP = @cTRB_OP and TRX_COD = @cTRB_COD
and TRX_LOCAL = @cTRB_LOCAL
END
ELSE
BEGIN
INSERT INTO TRX010_SP (TRX_FILIAL , TRX_COD , TRX_DATA , TRX_OP ,
TRX_LOCAL , TRX_QUANT , TRX_QPERDA )
VALUES (@IN_FILIALCOR , @cTRB_COD , @dDtBusca , @cTRB_OP ,
@cTRB_LOCAL , @nTRX_QUANT , @nTRX_QPERDA );
END
END
END
IF (@lGrava = '1' )
BEGIN
begin transaction
SET @dTRB_DTBASE = @dTRB_DTORIG
IF (@IN_MV_PAR14 <> 3 )
BEGIN
SET @dTRB_DTBASE = @IN_MV_PAR1
END
IF (@cRetFil <> ' ' )
BEGIN
SET @cTRB_FILTRA = 'S'
END
INSERT INTO TRB010_SP (TRB_CHAVE , TRB_ALIAS , TRB_RECNO , TRB_ORDEM ,
TRB_NIVEL , TRB_NIVSD3 , TRB_COD , TRB_LOCAL ,
TRB_DTBASE , TRB_OP , TRB_CF , TRB_SEQ , TRB_SEQPRO , TRB_DTORIG ,
TRB_RECSD1 , TRB_TES , TRB_DOC , TRB_RECTRB ,
TRB_TIPONF , TRB_FILIAL , TRB_QUANT , TRB_SERIE , TRB_FILTRA ,
TRB_USATRA , TRB_ITEM )
VALUES (@cTRB_CHAVE , @cAlias , @IN_RECFILE , @cOrdem , @cTRB_NIVEL ,
@cTRB_NIVSD3 , @cTRB_COD , @cTRB_LOCAL , @dTRB_DTBASE ,
@cTRB_OP , @cTRB_CF , @cTRB_SEQ , @cTRB_SEQPRO , @dTRB_DTORIG ,
@IN_NRECRE5 , @cTRB_TES , @cTRB_DOC , @IN_NRECTRB ,
@cTRB_TIPO , @IN_FILIALCOR , @nTRB_QUANT , @cTRB_SERIE , @cRetFil ,
@cTRB_FILTRA , @cTRB_ITEM );
commit transaction
END
END
END

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy