BEGIN TRAN -- OBS: executar o rollback caso não ocorra erro. DECLARE @DATA_VENDA DATETIME = '20221216', -- Data da integração @FILIAL VARCHAR(25)= ' ', -- Nome da filial @TIPO_PGTO CHAR(1) = 'D', -- Tipo de pagamento utilizado @GERAR_LOG BIT = 0, @BAIXA_VALE_CLIENTE CHAR(1) = NULL, @SEGUNDA_CHAMADA INT = 0, @BAIXA_CREDIARIO CHAR(1) = NULL --#2# SET NOCOUNT ON; SET ANSI_WARNINGS OFF; DECLARE @USUARIO VARCHAR(25), @HOJE DATETIME, @HOJE1 DATETIME, @MOEDA CHAR(10), @DESC_TIPO_PGTO VARCHAR(40), @EMPRESA INT, @LANCAMENTO_PADRAO INT, @MESSAGE VARCHAR(400), @MOVIMENTO_PADRAO INT, @VALOR_LTA NUMERIC(14, 2), @STATUS_APROVACAO CHAR(1), @LX_TIPO_DOCUMENTO INT, @ERRMSG VARCHAR(400), @COD_FILIAL CHAR(6), @CODIGO_FILIAL CHAR(6), @TIPO_MOVIMENTO INT, @CODIGO_ADMINISTRADORA CHAR(2), @DESC_LOTE VARCHAR(40), @LOTE_LANCAMENTO INT, @SEQUENCIA VARCHAR(20), @SEQ_VALE_CLIENTE VARCHAR(20), @LOCALIDADE INT, @LX_TIPO_LANCAMENTO CHAR(3), @LANCAMENTO INT, @LANCAMENTO_AUTORIZACAO INT, @LANCAMENTO_DOTACAO INT, @ADMINISTRADORA VARCHAR(40), @ITEM INT, @CREDITO_DEBITO CHAR(1), @VALOR NUMERIC(14, 2), @LANCAMENTO_MOV INT, @RATEIO_CENTRO_CUSTO CHAR(15), @RATEIO_CENTRO_CUSTO_BKP CHAR(15), @RATEIO_FILIAL CHAR(15), @CODIGO_HISTORICO CHAR(4), @CODIGO_HISTORICO_BKP CHAR(4), @HISTORICO VARCHAR(1000), @HISTORICO_BKP VARCHAR(1000), @CONTA_CONTABIL CHAR(20), @CONTA_CONTABIL_BKP CHAR(20), @SUM_ITEM_CHEQUE INT, @VALOR_ITEM NUMERIC(14, 2), @ITEM_MOV INT, @INDICA_ID_CONTABIL_TERCEIRO BIT, @INDICA_ID_CONTABIL_TERCEIRO_BKP BIT, @SUB_ITEM_CHEQUE INT, @DEBITO NUMERIC(14, 2), @CREDITO NUMERIC(14, 2), @DEBITO_MOEDA NUMERIC(14, 2), @CREDITO_MOEDA NUMERIC(14, 2), @CAMBIO_NA_DATA NUMERIC(19, 6), @TICKET CHAR(8), @PEDIDO INT, /*#27#*/ @SUB_ITEM_AVISO INT, @SUB_ITEM_MOV INT, @PARCELA CHAR(2), @CODIGO_CLIENTE CHAR(14), @CHEQUE_CARTAO CHAR(40), @AGENCIA CHAR(4), @NUMERO_PARCELAS INT, @VALOR_PARCELA NUMERIC(14, 2), @VALOR_TOTAL NUMERIC(14, 2), @PARCELAMENTO INT, @TAXA_ADMINISTRACAO NUMERIC(14, 2), @INDICA_CARTAO BIT, @VENC_POR_ADM BIT, @DIAS_ENTRE_PARCELAS INT, @BANCO CHAR(4), @PARCELAS_MES_FECHADO INT, @DIA_ACERTO INT, @PARCELAS_CARTAO INT, @VENCIMENTO DATETIME, @CONTA_CORRENTE CHAR(20), @NUMERO_TITULO VARCHAR(36), --#68#VARCHAR(20), /*#34#*/ @DATA_CAIXA CHAR(4), @NUMERO_LOTE VARCHAR(10), @TERMINAL CHAR(3), @NUMERO_APROVACAO_CARTAO VARCHAR(15), /*#51#*/ @LANCAMENTO_CAIXA CHAR(7), @VALOR_TAXA_ADMINISTRACAO NUMERIC(14, 2), @LX_TIPO_LANCAMENTO_BAK CHAR(3), @ITEM_BKP INT, @NUMERO_CUPOM_FISCAL_CUR VARCHAR(8), @CONTA_CONTABIL_BAIXA VARCHAR(20), @RATEIO_FILIAL_BAIXA VARCHAR(20), @RATEIO_CENTRO_CUSTO_BAIXA VARCHAR(20), @COD_CLIFOR_VALE_CLIENTE VARCHAR(6), @WHILE_FECHA VARCHAR(100), @COTACAO_CUR DECIMAL(19, 6), @VALOR_MOEDA_CUR DECIMAL(19, 2), @MOEDA_PADRAO VARCHAR(6), @EMPRESA_CUR INT, @LANCAMENTO_MOV_CUR INT, @ITEM_MOV_CUR INT, @SUB_ITEM_CUR INT, @VALOR_AVISO_PADRAO_CUR DECIMAL(19, 2), @CONTA_CONTABIL_CUR VARCHAR(20), @VALOR_FALTANTE DECIMAL(19, 2), @VALOR_BAIXA DECIMAL(19, 2), @LANCAMENTO_CUR INT, @ITEM_CUR INT, @VALOR_BAIXA_CUR DECIMAL(19, 2), @FIM INT, @ID_PARCELA_MOV VARCHAR(2), @JUROS DECIMAL(19, 2), @LX_TIPO_LANCAMENTO_BAIXA VARCHAR(3), @LX_TIPO_LANCAMENTO_BAIXA_CUR VARCHAR(3), @DEBITO_JUROS DECIMAL(19, 2), @CREDITO_JUROS DECIMAL(19, 2), @CONTA_CONTABIL_JUROS VARCHAR(20), @LANCAMENTO_UNICO INT, @VALOR_IMPOSTO_CARTAO DECIMAL(19, 2), @BASE_SEM_IMPOSTO INT, @IMPOSTO_RETIDO DECIMAL(19, 6), @EXCECAO_LOJA INT, @TAXA_CALCULO DECIMAL(19, 2), @COD_CLIFOR_LANC_PADRAO_CUR VARCHAR(6), @SUB_ITEM_LOJA VARCHAR(20), @ID_SUB_ITEM_LOJA INT, @ID_IMPOSTO INT, @VALOR_IMPOSTO_TEMP DECIMAL(19, 2), @CODIGO_CLIENTE_CADASTRAR_CUR VARCHAR(14), @COD_CLIFOR_NOVO VARCHAR(6), @INDICADOR_FISCAL_TERCEIRO_VAREJO TINYINT, @ESTADO_PADRAO VARCHAR(2), @TIPO_VAREJO VARCHAR(30), @COND_PGTO_PADRAO VARCHAR(3), @REGIAO_PADRAO VARCHAR(25), @TRANSPORTADORA_PADRAO VARCHAR(25), @CONCEITO_PADRAO VARCHAR(25), @TIPO_PADRAO VARCHAR(25), @TIPO_BLOQUEIO_PADRAO VARCHAR(25), @FILIAL_PADRAO VARCHAR(25), @PONTUALIDADE_PADRAO VARCHAR(30), @CONTA_CONTABIL_CLI VARCHAR(20), @PAIS_PADRAO VARCHAR(30), @LANC_PADRAO_LOJA INT, @NAO_AGRUPA_CARTAO BIT, @LANCAMENTO_CAIXA_ICR_CUR VARCHAR(60), @GRUPO_LOJA INT, @BASE_IMPOSTO DECIMAL(19, 2), @TAXA_IMPOSTO DECIMAL(19, 2), @ITEM_OLD INT, @NAO_AGRUPA_CHEQUE BIT, @VALOR_DESCONTO DECIMAL(19, 2), @DEBITO_DESCONTO DECIMAL(19, 2), @CREDITO_DESCONTO DECIMAL(19, 2), @CONTA_CONTABIL_DESCONTO VARCHAR(25), @DOCUMENTO_TIPO_LOJA VARCHAR(25), @ITEM_BAIXA_VALE INT, @CHAVE_UNICA VARCHAR(20), @EMPRESA_CHAVE INT, @LANCAMENTO_CHAVE INT, @ITEM_CHAVE INT, @DET_CHAVE VARCHAR(3), @INDICA_NUMERO_TITULO BIT, @FOUND BIT, @TIPO_COMPROVANTE VARCHAR(3), @DIAS_PRE_DATADO NUMERIC(6), @TIPO_CARTAO SMALLINT, @INDICA_VENCIMENTO_FIXO BIT, @COD_MUNICIPIO_IBGE VARCHAR(10), @COD_MUNICIPIO_IBGE_ENTREGA VARCHAR(10), @COD_MUNICIPIO_IBGE_COBRANCA VARCHAR(10), @TIPO_PGTO_BAIXA CHAR(1),--#3#, @FATURA_CREDIARIO VARCHAR(15), @CODIGO_CONSUMIDOR_CREDIARIO VARCHAR(14), @ID_PARCELA_CREDIARIO CHAR(2), @VALOR_A_RECEBER_CREDIARIO NUMERIC(14, 2), @INDICA_CALCULO_APRESENTACAO BIT, @DATA_APRESENTACAO DATETIME, @DIA_APRESENTACAO INT, @FATURA_RETORNO VARCHAR(255),--#9# @FATURA_RETORNO_PROX VARCHAR(255),--#9# @FATURA_J VARCHAR(15),--#10# @LX_TIPOS_LANC_MOV CHAR(3), /*#23#*/ @PARCELA_UNICA INT, @PARCELA_UNICA_INICIAL INT, @VENCIMENTO_INICIAL DATETIME, @TIPO_MOVIMENTO_ALTERADO BIT /*#49#*/, @AVISO_BAIXADO BIT, /*#62#*/ @RATEIO_CCUSTO_PADRAO_LOJA VARCHAR(15),/*#70#*/ @INTEGRA_TROCA BIT, /*#74#*/ @DIAS_VENCTO_IAC_DEV INT; /*#76#*/ SET @AVISO_BAIXADO = 0; /*#62#*/ IF @TIPO_PGTO = '$' RETURN SELECT @LANC_PADRAO_LOJA = LANCAMENTO_PADRAO FROM LOJAS_VAREJO WHERE FILIAL = @FILIAL IF @TIPO_PGTO = 'G' BEGIN IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM WHERE LANCAMENTO_PADRAO = @LANC_PADRAO_LOJA AND TIPO_PGTO = 'G') BEGIN RETURN END END SELECT @TIPO_PGTO_BAIXA = CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN CASE WHEN @BAIXA_CREDIARIO IS NOT NULL THEN '<' END --ELSE 'Y' ELSE '#' /*#49#*/ END --#3# /*VERIFICA O CÓDIGO DA FILIAL PARA BUSCAR SE JÁ INTEGROU TROCAS*/ SELECT @CODIGO_FILIAL = CODIGO_FILIAL FROM LOJAS_VAREJO WHERE FILIAL = @FILIAL IF @TIPO_PGTO = 'T' AND EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND TIPO_LANCAMENTO_CAIXA = 'FT') RETURN SELECT @INDICA_NUMERO_TITULO = CASE WHEN ISNULL(VALOR_ATUAL, '.F.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'INDICA_NUMERO_TITULO' SELECT @WHILE_FECHA = '' SELECT @MOEDA_PADRAO = MOEDA FROM MOEDAS WHERE INDICA_PADRAO = 1 SELECT @MOEDA = @MOEDA_PADRAO SELECT @DESC_TIPO_PGTO = RTRIM(DESC_TIPO_PGTO) FROM TIPOS_PGTO WHERE TIPO_PGTO = @TIPO_PGTO /*#74#*/ SELECT @INTEGRA_TROCA = CASE WHEN ISNULL(VALOR_ATUAL, '.T.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'INTEGRA_TROCAS'; SELECT @INTEGRA_TROCA = ISNULL(@INTEGRA_TROCA, 1) /*#77#*/ /*#74#*/ /*#76#*/ SELECT @DIAS_VENCTO_IAC_DEV = 0; SELECT @DIAS_VENCTO_IAC_DEV = CASE WHEN ISNULL(VALOR_ATUAL, '0') = '0' THEN 0 ELSE CONVERT(INT, VALOR_ATUAL) END FROM PARAMETROS WHERE PARAMETRO = 'DIAS_VENCTO_IAC_DEV'; /*#76#*/ SELECT @MOVIMENTO_PADRAO = CONVERT(INT, VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'MOVIMENTO_PADRAO' SELECT @DOCUMENTO_TIPO_LOJA = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'DOCUMENTO_TIPO_LOJA' SELECT @EXCECAO_LOJA = CONVERT(INT, VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'EXCECAO_VENDA_CARTAO' SELECT @GRUPO_LOJA = CONVERT(INT, VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'EXCECAO_GRUPO_CARTAO' SELECT @SUB_ITEM_LOJA = VALOR_ATUAL FROM PARAMETROS WHERE PARAMETRO = 'SUBITEM_VENDA_CARTAO' SELECT @LANCAMENTO_UNICO = CASE WHEN ISNULL(VALOR_ATUAL, '.F.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'INTEGRA_LOJA_LANC_UNICO' SELECT @BASE_SEM_IMPOSTO = CASE WHEN ISNULL(VALOR_ATUAL, '.F.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'TAXA_ADM_SEM_IMPOSTO' SELECT @NAO_AGRUPA_CARTAO = 0; SELECT @NAO_AGRUPA_CARTAO = CASE WHEN ISNULL(VALOR_ATUAL, '.F.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'NAO_AGRUPA_CARTAO' SELECT @NAO_AGRUPA_CHEQUE = 0; SELECT @NAO_AGRUPA_CHEQUE = CASE WHEN ISNULL(VALOR_ATUAL, '.F.') = '.F.' THEN 0 ELSE 1 END FROM PARAMETROS WHERE PARAMETRO = 'NAO_AGRUPA_CHEQUE' SELECT @DIAS_PRE_DATADO = ISNULL(VALOR_ATUAL, 0) FROM PARAMETROS WHERE PARAMETRO = 'DIAS_PRE_DATADO' SELECT @USUARIO = USUARIO FROM USERS WHERE LX_SYSTEM_USER = SYSTEM_USER SELECT @HOJE = @DATA_VENDA SELECT @HOJE1 = CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112)) SELECT @FILIAL = RTRIM(@FILIAL) SELECT @EMPRESA = NULL SELECT @LANCAMENTO_PADRAO = NULL SELECT @MESSAGE = 'IMPOSSÍVEL INTEGRAR ''' + @DESC_TIPO_PGTO + ''' DO DIA ''' + CONVERT(CHAR(8), @DATA_VENDA, 112) + ''' DA FILIAL ''' + @FILIAL + ''' PORQUE ' SELECT @VALOR_LTA = 0 SELECT @STATUS_APROVACAO = 'E' SELECT @LX_TIPO_DOCUMENTO = CASE @TIPO_PGTO WHEN 'C' THEN 4 -- CHEQUE À VISTA WHEN 'P' THEN 3 -- CHEQUE PRÉ-DATADO WHEN 'F' THEN 7 -- VALE FUNCIONÁRIO WHEN 'V' THEN 12 -- VALE CLIENTE WHEN 'R' THEN 9 -- VALE PRODUTO WHEN '&' THEN 9 -- VALE PRODUTO WHEN 'E' THEN 8 -- CARTÃO DE DÉBITO WHEN 'K' THEN 8 -- CARTÃO DE DÉBITO WHEN 'B' THEN 6 -- CARTÃO DE CRÉDITO PDV WHEN 'I' THEN 6 -- CARTÃO DE CRÉDITO PDV WHEN 'A' THEN 5 -- CARTÃO DE CRÉDITO POS WHEN 'J' THEN 1 -- DUPLICATA WHEN 'H' THEN 6 -- DUPLICATA --WHEN 'W' THEN 1 -- DUPLICATA #48# WHEN 'W' THEN 1002 -- GIFT CARD #52# --WHEN '#' THEN 1 -- DUPLICATA WHEN '#' THEN 1000 -- CREDIÁRIO LINX #1# WHEN '@' THEN 1001 -- GIFT CARD WHEN 'Q' THEN 9 -- VALE PRODUTO WHEN 'Y' THEN 1001 -- GIFT CARD #49# WHEN '>' THEN 1001 -- GIFT CARD #49# WHEN 'G' THEN 9 -- FARFETCH /*#57#*/ WHEN '\' THEN 1003 -- UNICO VITRINE /*#63#*/ WHEN '+' THEN 1004-- QR LINX /*#68#*/ END -- CRIAR TABELA PARA TRATAMENTO DO PRODUÇÃO/ADMINISTRAÇÃO CREATE TABLE #CTB_MOVIMENTO_LOJAS ( TERMINAL CHAR(3) COLLATE DATABASE_DEFAULT, LANCAMENTO_CAIXA CHAR(7) COLLATE DATABASE_DEFAULT, CODIGO_FILIAL CHAR(6) COLLATE DATABASE_DEFAULT, PARCELA CHAR(2) COLLATE DATABASE_DEFAULT, CODIGO_ADMINISTRADORA CHAR(2) COLLATE DATABASE_DEFAULT, TIPO_PGTO CHAR(1) COLLATE DATABASE_DEFAULT, VALOR DECIMAL(19, 2), VENCIMENTO DATETIME, NUMERO_TITULO VARCHAR(36/*#68#20*/) COLLATE DATABASE_DEFAULT, /*#34#*/ MOEDA CHAR(6) COLLATE DATABASE_DEFAULT, AGENCIA CHAR(4) COLLATE DATABASE_DEFAULT, BANCO CHAR(5) COLLATE DATABASE_DEFAULT, CONTA_CORRENTE VARCHAR(20) COLLATE DATABASE_DEFAULT, NUMERO_APROVACAO_CARTAO VARCHAR(15) COLLATE DATABASE_DEFAULT, /*#51#*/ PARCELAS_CARTAO INT, VALOR_CANCELADO DECIMAL(19, 2), CHEQUE_CARTAO VARCHAR(35) COLLATE DATABASE_DEFAULT, NUMERO_LOTE VARCHAR(10) COLLATE DATABASE_DEFAULT, FINALIZACAO VARCHAR(20) COLLATE DATABASE_DEFAULT, BAIXA SMALLINT, REDE_CONTROLADORA CHAR(8) COLLATE DATABASE_DEFAULT, COTACAO NUMERIC(19, 2), VALOR_MOEDA NUMERIC(19, 2), TICKET CHAR(8) COLLATE DATABASE_DEFAULT, PEDIDO INT, /*#27#*/ DATA_VENDA DATETIME, CODIGO_DESCONTO CHAR(2) COLLATE DATABASE_DEFAULT, CODIGO_CLIENTE VARCHAR(14) COLLATE DATABASE_DEFAULT, PERIODO CHAR(1) COLLATE DATABASE_DEFAULT, DATA_DIGITACAO DATETIME, VENDEDOR CHAR(4) COLLATE DATABASE_DEFAULT, OPERACAO_VENDA CHAR(3) COLLATE DATABASE_DEFAULT, CODIGO_TAB_PRECO CHAR(2) COLLATE DATABASE_DEFAULT, COMISSAO DECIMAL(7, 2), DESCONTO DECIMAL(19, 2), QTDE_TOTAL INT, VALOR_TIKET DECIMAL(19, 2), VALOR_VENDA_BRUTA DECIMAL(19, 2), VALOR_TROCA DECIMAL(19, 2), QTDE_TROCA_TOTAL INT, TICKET_IMPRESSO BIT, GERENTE_LOJA CHAR(4) COLLATE DATABASE_DEFAULT, GERENTE_PERIODO CHAR(4) COLLATE DATABASE_DEFAULT, CODIGO_FILIAL_PGTO CHAR(6) COLLATE DATABASE_DEFAULT, TERMINAL_PGTO CHAR(3) COLLATE DATABASE_DEFAULT, TOTAL_QTDE_CANCELADA INT, DATA_HORA_CANCELAMENTO DATETIME, PERIODO_FECHAMENTO CHAR(2) COLLATE DATABASE_DEFAULT, VALOR_PAGO DECIMAL(19, 2), FATOR DECIMAL(5, 2), SUGESTAO_COD_FORMA_PGTO VARCHAR(2) COLLATE DATABASE_DEFAULT, VALOR_IPI NUMERIC(14, 2), QTDE_ITEM SMALLINT, CAIXA_VENDEDOR CHAR(4) COLLATE DATABASE_DEFAULT, DIGITACAO DATETIME, COD_FORMA_PGTO CHAR(2) COLLATE DATABASE_DEFAULT, DATA DATETIME, NUMERO_CUPOM_FISCAL VARCHAR(8) COLLATE DATABASE_DEFAULT, DESCONTO_PGTO DECIMAL(14, 2), TOTAL_VENDA DECIMAL(14, 2), NUMERO_FISCAL_TROCA VARCHAR(8) COLLATE DATABASE_DEFAULT, SERIE_NF_ENTRADA CHAR(2) COLLATE DATABASE_DEFAULT, SERIE_NF_SAIDA CHAR(2) COLLATE DATABASE_DEFAULT, CANCELADO_FISCAL SMALLINT, ADMINISTRADORA VARCHAR(25) COLLATE DATABASE_DEFAULT, DESC_TIPO_PGTO VARCHAR(40) COLLATE DATABASE_DEFAULT, COD_FILIAL CHAR(6) COLLATE DATABASE_DEFAULT, FILIAL VARCHAR(25) COLLATE DATABASE_DEFAULT, EMPRESA INT, LANCAMENTO_PADRAO INT, CTB_CONTA_CONTABIL VARCHAR(20) COLLATE DATABASE_DEFAULT, LOCALIDADE INT, TAXA_ADMINISTRACAO DECIMAL(19, 10), VALOR_TOTAL_NOTA DECIMAL(19, 2), CHEQUE_CARTAO_QUITADO VARCHAR(35) COLLATE DATABASE_DEFAULT, JUROS DECIMAL(19, 2), LX_TIPO_LANCAMENTO_BAIXA VARCHAR(3) COLLATE DATABASE_DEFAULT, LANCAMENTO_CAIXA_ICR VARCHAR(30) COLLATE DATABASE_DEFAULT ) SELECT @CONTA_CONTABIL_CLI = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'CONTA_CONTABIL_CLI' SELECT @TIPO_VAREJO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'TIPO_VAREJO_IMPORTA' SELECT @COND_PGTO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'COND_ATAC_PGTO_PADRAO' SELECT @REGIAO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'REGIAO_PADRAO' SELECT @TRANSPORTADORA_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'TRANSPORTADORA_PADRAO' SELECT @CONCEITO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'CONCEITO_CLI_ATAC_PADRAO' SELECT @TIPO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'TIPO_CLI_ATAC_PADRAO' SELECT @TIPO_BLOQUEIO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'TIPO_BLOQUEIO_PADRAO' SELECT @FILIAL_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'FILIAL_PADRAO' SELECT @PONTUALIDADE_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'PONTUALIDADE_PADRAO' SELECT @ESTADO_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'ESTADO_PADRAO' SELECT @PAIS_PADRAO = RTRIM(VALOR_ATUAL) FROM PARAMETROS WHERE PARAMETRO = 'PAIS_PADRAO' /*#70#*/ SELECT @RATEIO_CCUSTO_PADRAO_LOJA = B.VALOR_ATUAL FROM dbo.PARAMETROS AS A (NOLOCK) INNER JOIN dbo.PARAMETROS_LOJA AS B (NOLOCK) ON A.PARAMETRO = B.PARAMETRO INNER JOIN dbo.LOJAS_VAREJO AS C (NOLOCK) ON B.CODIGO_FILIAL = C.CODIGO_FILIAL WHERE C.FILIAL = @FILIAL AND A.PARAMETRO = 'RATEIO_CCUSTO_PADRAO_LOJA'; /*#70#*/ -- TABELA TEMPORÁRIA PARA BAIXA DE AVISOS CREATE TABLE #CTB_AVISO_LANCAMENTO_BAIXA ( EMPRESA INT, LANCAMENTO_MOV INT, ITEM_MOV INT, SUB_ITEM INT, LANCAMENTO INT, ITEM INT, CONTA_CONTABIL VARCHAR(20) COLLATE DATABASE_DEFAULT, VALOR_AVISO_PADRAO DECIMAL(19, 2), VALOR_BAIXA DECIMAL(19, 2) ) -- FIM - TABELA TEMPORÁRIA PARA BAIXA DE AVISOS CREATE TABLE #009077_INTEGRALOJA ( EMPRESA INT ) CREATE TABLE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM ( EMPRESA INT, LANCAMENTO INT, ITEM INT, SUB_ITEM INT, /*#32#*/ COD_CLIFOR VARCHAR(6) COLLATE DATABASE_DEFAULT, CONTA_CONTABIL VARCHAR(20) COLLATE DATABASE_DEFAULT, LX_TIPO_LANCAMENTO VARCHAR(3) COLLATE DATABASE_DEFAULT, DEBITO NUMERIC(19, 2), CREDITO NUMERIC(19, 2), HISTORICO VARCHAR(250) COLLATE DATABASE_DEFAULT,--#7# --#11# CODIGO_HISTORICO VARCHAR(4) COLLATE DATABASE_DEFAULT, RATEIO_CENTRO_CUSTO VARCHAR(15) COLLATE DATABASE_DEFAULT, RATEIO_FILIAL VARCHAR(15) COLLATE DATABASE_DEFAULT, CONCILIADO BIT, MOEDA VARCHAR(6) COLLATE DATABASE_DEFAULT, PERMITE_ALTERACAO BIT, DISPARA_FORMULA BIT, DEBITO_MOEDA NUMERIC(19, 2), CREDITO_MOEDA NUMERIC(19, 2), GERADO_AUTOMATICO_TIPO INT, DATA_DIGITACAO DATETIME, ID_CONTRAPARTIDA INT, CAMBIO_NA_DATA NUMERIC(11, 6) ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_LANCAMENTO_ITEM] ON [DBO].[#INTEGRA_LOJA_CTB_LANCAMENTO_ITEM](EMPRESA, LANCAMENTO, LX_TIPO_LANCAMENTO) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE INDEX [XIE2#INTEGRA_LOJA_CTB_LANCAMENTO_ITEM] ON [DBO].[#INTEGRA_LOJA_CTB_LANCAMENTO_ITEM](EMPRESA, LANCAMENTO, ITEM, SUB_ITEM) /*#32#*/ WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO ( EMPRESA INT, LANCAMENTO INT, ITEM INT, ID_IMPOSTO INT, VALOR_IMPOSTO NUMERIC(19, 2), ID_SUB_ITEM_APURACAO INT, TAXA_IMPOSTO NUMERIC(19, 2), BASE_IMPOSTO NUMERIC(19, 2) ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO] ON [DBO].[#INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO](EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, TAXA_IMPOSTO) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_CHEQUE_CARTAO ( EMPRESA INT, LANCAMENTO INT, ITEM INT, SUB_ITEM INT, CONTA_PORTADOR VARCHAR(20) COLLATE DATABASE_DEFAULT, LX_TIPO_DOCUMENTO INT, CODIGO_CONSUMIDOR VARCHAR(14) COLLATE DATABASE_DEFAULT, COD_FILIAL VARCHAR(6) COLLATE DATABASE_DEFAULT, CODIGO_ADMINISTRADORA VARCHAR(2) COLLATE DATABASE_DEFAULT, DATA_EMISSAO DATETIME, VENDA_DOCUMENTO VARCHAR(12) COLLATE DATABASE_DEFAULT, LOJA_PARCELA VARCHAR(2) COLLATE DATABASE_DEFAULT, NUMERO_CHEQUE_CARTAO VARCHAR(20) COLLATE DATABASE_DEFAULT, DATA_DIGITACAO DATETIME, VENDA_TOTAL_PARCELAMENTO TINYINT, INDICA_CARTAO BIT, CHEQUE_AGENCIA VARCHAR(4) COLLATE DATABASE_DEFAULT, VENCIMENTO DATETIME, CHEQUE_CONTA_CORRENTE VARCHAR(15) COLLATE DATABASE_DEFAULT, PRORROGACAO INT, ORIGEM VARCHAR(1) COLLATE DATABASE_DEFAULT, VALOR_ORIGINAL NUMERIC(19, 2), NUMERO_DEVOLUCOES INT, TAXA_ADMINISTRACAO NUMERIC(14, 2), GUIA_ENVIO VARCHAR(20) COLLATE DATABASE_DEFAULT, CHEQUE_BANCO VARCHAR(4) COLLATE DATABASE_DEFAULT, VENDA_PARCELAMENTO TINYINT, CMC7_CVCARTAO VARCHAR(35) COLLATE DATABASE_DEFAULT, DATA_PARA_TRANSFERENCIA DATETIME, COD_CLIFOR VARCHAR(6) COLLATE DATABASE_DEFAULT, LOJA_TERMINAL VARCHAR(3) COLLATE DATABASE_DEFAULT, LOJA_LANCAMENTO_CAIXA VARCHAR(7) COLLATE DATABASE_DEFAULT, NUMERO_APROVACAO_CARTAO VARCHAR(15) COLLATE DATABASE_DEFAULT, /*#51#*/ LOJA_TIPO_PGTO VARCHAR(1) COLLATE DATABASE_DEFAULT, VALOR_ORIGINAL_PADRAO NUMERIC(19, 2), MOEDA VARCHAR(6) COLLATE DATABASE_DEFAULT, CAMBIO_NA_DATA_EMISSAO NUMERIC(11, 6), IMPOSTO_DEDUTIVEL NUMERIC(16, 2), IMPOSTO_RETIDO NUMERIC(16, 2), VALOR_A_RECEBER NUMERIC(16, 2), LX_PARCELA VARCHAR(2) COLLATE DATABASE_DEFAULT, VENCIMENTO_REAL DATETIME, PEDIDO_ID_ORIGEM VARCHAR(20) COLLATE DATABASE_DEFAULT, /*#73#*/ NF_NUMERO VARCHAR(15) COLLATE DATABASE_DEFAULT /*#73#*/ ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_CHEQUE_CARTAO] ON [DBO].[#INTEGRA_LOJA_CTB_CHEQUE_CARTAO](EMPRESA, LANCAMENTO, CMC7_CVCARTAO, LOJA_LANCAMENTO_CAIXA, VENDA_PARCELAMENTO) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE INDEX [XIE2#INTEGRA_LOJA_CTB_CHEQUE_CARTAO] ON [DBO].[#INTEGRA_LOJA_CTB_CHEQUE_CARTAO](EMPRESA, LANCAMENTO, COD_CLIFOR) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE INDEX [XIE3#INTEGRA_LOJA_CTB_CHEQUE_CARTAO] ON [DBO].[#INTEGRA_LOJA_CTB_CHEQUE_CARTAO](EMPRESA, LANCAMENTO, CMC7_CVCARTAO, CODIGO_CONSUMIDOR, LOJA_LANCAMENTO_CAIXA, VENDA_PARCELAMENTO) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO ( EMPRESA INT, LANCAMENTO INT, ITEM INT, SUB_ITEM INT, CODIGO_CONSUMIDOR VARCHAR(14) COLLATE DATABASE_DEFAULT, CODIGO_FISCAL_OPERACAO VARCHAR(4) COLLATE DATABASE_DEFAULT, LX_TIPO_DOCUMENTO INT, AVISO_LANCAMENTO VARCHAR(40) COLLATE DATABASE_DEFAULT, VENCIMENTO DATETIME, EMISSAO DATETIME, VALOR_ORIGINAL NUMERIC(19, 2), VALOR_ORIGINAL_PADRAO NUMERIC(19, 2), STATUS_APROVACAO VARCHAR(1) COLLATE DATABASE_DEFAULT, DESC_AVISO_LANCAMENTO VARCHAR(60) COLLATE DATABASE_DEFAULT, /*#64#*/ COD_CLIFOR VARCHAR(6) COLLATE DATABASE_DEFAULT, MOEDA VARCHAR(6) COLLATE DATABASE_DEFAULT, USUARIO VARCHAR(25) COLLATE DATABASE_DEFAULT, LOJA_TERMINAL VARCHAR(7) COLLATE DATABASE_DEFAULT, LOJA_LANCAMENTO_CAIXA VARCHAR(7) COLLATE DATABASE_DEFAULT, LOJA_PARCELA VARCHAR(2) COLLATE DATABASE_DEFAULT, LOJA_CHAVE VARCHAR(35) COLLATE DATABASE_DEFAULT, /*#28#*/ PEDIDO_ID_ORIGEM VARCHAR(20) COLLATE DATABASE_DEFAULT, /*#73#*/ NF_NUMERO VARCHAR(15) COLLATE DATABASE_DEFAULT /*#73#*/ ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_AVISO_LANCAMENTO] ON [DBO].[#INTEGRA_LOJA_CTB_AVISO_LANCAMENTO](EMPRESA, LANCAMENTO, ITEM) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV ( EMPRESA INT, LANCAMENTO INT, ITEM INT, LANCAMENTO_MOV INT, ITEM_MOV INT, SUB_ITEM INT, DATA_PAGAMENTO DATETIME, VALOR_MOV_PADRAO NUMERIC(19, 2), VALOR_MOV NUMERIC(19, 2) ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV] ON [DBO].[#INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV](EMPRESA, LANCAMENTO_MOV, ITEM_MOV, ITEM, SUB_ITEM) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_A_RECEBER_MOV ( EMPRESA INT, LANCAMENTO INT, ITEM INT, LANCAMENTO_MOV INT, ITEM_MOV INT, ID_PARCELA VARCHAR(2) COLLATE DATABASE_DEFAULT, VALOR_MOV NUMERIC(19, 2), VALOR_MOV_PADRAO NUMERIC(19, 2), VALOR_JUROS_GERADO NUMERIC(19, 2), VALOR_JUROS_PAGO NUMERIC(19, 2), VALOR_JUROS_PAGO_PADRAO NUMERIC(19, 2), DATA_PAGAMENTO DATETIME, DESCONTO_CONCEDIDO NUMERIC(19, 2), DESCONTO_EFETIVADO NUMERIC(19, 2), DESCONTO_EFETIVADO_PADRAO NUMERIC(19, 2), PGTO_CARTORIO DATETIME, VALOR_MULTA_GERADA NUMERIC(19, 2), VALOR_MULTA_PAGA NUMERIC(19, 2), VALOR_MULTA_PAGA_PADRAO NUMERIC(19, 2) ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_A_RECEBER_MOV] ON [DBO].[#INTEGRA_LOJA_CTB_A_RECEBER_MOV](EMPRESA, LANCAMENTO_MOV, ITEM_MOV, ID_PARCELA, ITEM) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_A_RECEBER_FATURA ( CODIGO_CONSUMIDOR VARCHAR(14) COLLATE DATABASE_DEFAULT, COD_CLIFOR VARCHAR(6) COLLATE DATABASE_DEFAULT, COD_EMISSOR VARCHAR(6) COLLATE DATABASE_DEFAULT, EMPRESA INT, FATURA VARCHAR(20) COLLATE DATABASE_DEFAULT,-- #7# #34# FATURA_IMPRESSA BIT, ITEM INT, JUROS_POR_ATRASO NUMERIC(13, 10), LANCAMENTO INT, LX_TIPO_DOCUMENTO INT, MOEDA VARCHAR(6) COLLATE DATABASE_DEFAULT, MULTA_POR_ATRASO NUMERIC(13, 10), POSSUI_SAIDA BIT, SERIE VARCHAR(2) COLLATE DATABASE_DEFAULT, EMISSAO DATETIME, DOCUMENTO VARCHAR (20)-- #8# ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_A_RECEBER_FATURA] ON [DBO].[#INTEGRA_LOJA_CTB_A_RECEBER_FATURA](EMPRESA, LANCAMENTO, COD_CLIFOR, FATURA) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE INDEX [XIE2#INTEGRA_LOJA_CTB_A_RECEBER_FATURA] ON [DBO].[#INTEGRA_LOJA_CTB_A_RECEBER_FATURA](EMPRESA, LANCAMENTO, ITEM) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] CREATE TABLE #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA ( AGENCIA VARCHAR(20) COLLATE DATABASE_DEFAULT, CONTA_PORTADOR VARCHAR(20) COLLATE DATABASE_DEFAULT,--#11# EMPRESA INT, ID_PARCELA VARCHAR(2) COLLATE DATABASE_DEFAULT, ITEM INT, LANCAMENTO INT, VALOR_ORIGINAL NUMERIC(19, 2), VALOR_ORIGINAL_PADRAO NUMERIC(19, 2), VENCIMENTO DATETIME, VALOR_A_RECEBER NUMERIC(19, 2),--#5# LOJA_CHAVE VARCHAR(40) COLLATE DATABASE_DEFAULT --#5# ) CREATE INDEX [XIE1#INTEGRA_LOJA_CTB_A_RECEBER_PARCELA] ON [DBO].[#INTEGRA_LOJA_CTB_A_RECEBER_PARCELA](EMPRESA, LANCAMENTO, ITEM, ID_PARCELA) WITH FILLFACTOR = 75 /*#75#*/ ON [PRIMARY] -- #18 CRIA A TABELA TEMPORARIA PARA A INTEGRAÇÃO DE UMA VENDA FEITA COM O CREDIARIO ONLINE --#75#SELECT TOP 0 * --#75#INTO #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA --#75#FROM LJ_CREDIARIO_PARCELA CREATE TABLE #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA ( ID_CONTRATO INT NOT NULL, ID_CONTRATO_PARCELA SMALLINT NOT NULL, LANCAMENTO INT NULL, ITEM SMALLINT NULL, ID_PARCELA CHAR(2) COLLATE DATABASE_DEFAULT NULL, EMPRESA INT NOT NULL, VENCIMENTO SMALLDATETIME NOT NULL, VALOR_ORIGINAL NUMERIC(9,2) NOT NULL, VALOR_JUROS NUMERIC(9,2) NOT NULL, VALOR_MULTA NUMERIC(9,2) NOT NULL, VALOR_DESCONTO NUMERIC(9,2) NOT NULL, VALOR_A_RECEBER NUMERIC(9,2) NOT NULL, TEXTO_RECIBO VARCHAR(MAX) COLLATE DATABASE_DEFAULT NULL, TEXTO_CANCELAMENTO VARCHAR(MAX) COLLATE DATABASE_DEFAULT NULL, LX_ORIGEM TINYINT NOT NULL, EM_RENEGOCIACAO BIT NULL); --#75# CREATE TABLE [DBO].[#INTEGRA_LOJA_LJ_CREDIARIO_CONTRATO] ( [LANCAMENTO_CAIXA] [CHAR](7) NULL, [CODIGO_FILIAL] [CHAR](6) NOT NULL, [TEXTO_CONTRATO] [NVARCHAR](MAX) NULL, [TERMINAL] [CHAR](3) NULL, [TEXTO_CANCELAMENTO] [NVARCHAR](MAX) NULL, [TEXTO_CARNE] [NVARCHAR](MAX) NULL, [ITEM] [SMALLINT] NULL, [EMPRESA] [INT] NULL, [CONTRATO_CONFIRMADO] [BIT] NOT NULL, [ID_CONTRATO_ORIGINAL] [INT] NULL, [MOEDA] [CHAR](6) NOT NULL, [VALOR_CREDITO] [DECIMAL](14, 2) NULL, [VALOR_ENCARGOS] [DECIMAL](14, 2) NULL, [VALOR_TOTAL] [DECIMAL](14, 2) NULL, [DOCUMENTO] [VARCHAR](20) NULL, [DATA_CANCELAMENTO] [DATETIME] NULL, [CONTRATO_CANCELADO] [BIT] NOT NULL, [CODIGO_CLIENTE] [VARCHAR](14) NOT NULL, [NUMERO_PARCELAS] [TINYINT] NULL, [LANCAMENTO] [INT] NULL, [EMISSAO] [DATETIME] NULL, [ID_PLANO] [INT] NULL, [CONTRATO_ENCERRADO] [BIT] NOT NULL, [ID_CONTRATO] [INT] NOT NULL, [LX_STATUS_REGISTRO] [INT] NULL ) --#72# CREATE TABLE #CTB_LANCAMENTO_ITEM_LTA( CONTA_CONTABIL VARCHAR(20) COLLATE DATABASE_DEFAULT, VALOR NUMERIC(14,4)) -- #18 -- INSERT NA TABELA TEMP DO MOVIMENTO DE LOJAS IF @BAIXA_VALE_CLIENTE IS NULL AND @BAIXA_CREDIARIO IS NULL INSERT #CTB_MOVIMENTO_LOJAS (TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO, /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, NUMERO_FISCAL_TROCA, SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA, JUROS, LANCAMENTO_CAIXA_ICR) SELECT TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO, /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, RIGHT(NUMERO_FISCAL_TROCA, 8), SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA, 0.00, LANCAMENTO_CAIXA_ICR = CASE WHEN @NAO_AGRUPA_CARTAO = 1 AND TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) WHEN @NAO_AGRUPA_CHEQUE = 1 AND TIPO_PGTO IN ( 'C', 'P' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) ELSE '' END FROM W_CTB_LOJA_VENDA_PARCELA WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND TIPO_PGTO <> '#' AND (@INTEGRA_TROCA = 1 OR (@INTEGRA_TROCA = 0 AND TIPO_PGTO <> 'T')) /*#74#*/ AND CODIGO_FILIAL_PEDIDO = @CODIGO_FILIAL /*#75#*/ /*#22#*/ UNION ALL SELECT TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO, /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, RIGHT(NUMERO_FISCAL_TROCA, 8), SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA, 0.00, LANCAMENTO_CAIXA_ICR = CASE WHEN @NAO_AGRUPA_CARTAO = 1 AND TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) WHEN @NAO_AGRUPA_CHEQUE = 1 AND TIPO_PGTO IN ( 'C', 'P' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) ELSE '' END FROM DBO.W_CTB_LOJA_PEDIDO_PARCELA WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND TIPO_PGTO <> '#' AND (@INTEGRA_TROCA = 1 OR (@INTEGRA_TROCA = 0 AND TIPO_PGTO <> 'T')) /*#74#*/ AND CODIGO_FILIAL_PEDIDO = @CODIGO_FILIAL; /*#75#*/ IF @BAIXA_VALE_CLIENTE IS NOT NULL -- VALE_CLIENTE INSERT #CTB_MOVIMENTO_LOJAS (TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO, /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, NUMERO_FISCAL_TROCA, SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA, CHEQUE_CARTAO_QUITADO, JUROS, LANCAMENTO_CAIXA_ICR) SELECT TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO = CAST(NULL AS INT), /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, NUMERO_FISCAL_TROCA, SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA = NULL, CHEQUE_CARTAO_QUITADO, JUROS_DESCONTO /*CASE WHEN JUROS_DESCONTO < 0 THEN 0.00 ELSE JUROS_DESCONTO END*/, LANCAMENTO_CAIXA_ICR = CASE WHEN @NAO_AGRUPA_CARTAO = 1 AND TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) WHEN @NAO_AGRUPA_CHEQUE = 1 AND TIPO_PGTO IN ( 'C', 'P' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) ELSE '' END FROM W_CTB_LOJA_BAIXA_VALE WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND TIPO_PGTO <> '#' AND VALOR_CANCELADO <= 0 AND (@INTEGRA_TROCA = 1 OR (@INTEGRA_TROCA = 0 AND TIPO_PGTO <> 'T')); /*#74#*/ IF @BAIXA_CREDIARIO IS NOT NULL -- #3# -- CREDIÁRIO INSERT #CTB_MOVIMENTO_LOJAS (TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO, /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, NUMERO_FISCAL_TROCA, SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA, CHEQUE_CARTAO_QUITADO, JUROS, LANCAMENTO_CAIXA_ICR) SELECT TERMINAL, LANCAMENTO_CAIXA, CODIGO_FILIAL, PARCELA, CODIGO_ADMINISTRADORA, TIPO_PGTO, VALOR, VENCIMENTO, NUMERO_TITULO, MOEDA, AGENCIA, BANCO, CONTA_CORRENTE, NUMERO_APROVACAO_CARTAO, PARCELAS_CARTAO, VALOR_CANCELADO, CHEQUE_CARTAO, NUMERO_LOTE, FINALIZACAO, BAIXA, REDE_CONTROLADORA, COTACAO, VALOR_MOEDA, TICKET, PEDIDO = CAST(NULL AS INT), /*#27#*/ DATA_VENDA, CODIGO_DESCONTO, CODIGO_CLIENTE, PERIODO, DATA_DIGITACAO, VENDEDOR, OPERACAO_VENDA, CODIGO_TAB_PRECO, COMISSAO, DESCONTO, QTDE_TOTAL, VALOR_TIKET, VALOR_VENDA_BRUTA, VALOR_TROCA, QTDE_TROCA_TOTAL, TICKET_IMPRESSO, GERENTE_LOJA, GERENTE_PERIODO, CODIGO_FILIAL_PGTO, TERMINAL_PGTO, TOTAL_QTDE_CANCELADA, DATA_HORA_CANCELAMENTO, PERIODO_FECHAMENTO, VALOR_PAGO, FATOR, SUGESTAO_COD_FORMA_PGTO, VALOR_IPI, QTDE_ITEM, CAIXA_VENDEDOR, DIGITACAO, COD_FORMA_PGTO, DATA, NUMERO_CUPOM_FISCAL, DESCONTO_PGTO, TOTAL_VENDA, NUMERO_FISCAL_TROCA, SERIE_NF_ENTRADA, SERIE_NF_SAIDA, CANCELADO_FISCAL, ADMINISTRADORA, DESC_TIPO_PGTO, COD_FILIAL, FILIAL, EMPRESA, LANCAMENTO_PADRAO, CTB_CONTA_CONTABIL, LOCALIDADE, TAXA_ADMINISTRACAO, VALOR_TOTAL_NOTA = NULL, CHEQUE_CARTAO_QUITADO, JUROS_DESCONTO /*CASE WHEN JUROS_DESCONTO < 0 THEN 0.00 ELSE JUROS_DESCONTO END*/, LANCAMENTO_CAIXA_ICR = CASE WHEN @NAO_AGRUPA_CARTAO = 1 AND TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) WHEN @NAO_AGRUPA_CHEQUE = 1 AND TIPO_PGTO IN ( 'C', 'P' ) THEN RTRIM(ISNULL(LANCAMENTO_CAIXA, '')) + '##' + RTRIM( ISNULL(NUMERO_TITULO, '')) + RTRIM(ISNULL(PARCELA, '')) ELSE '' END FROM W_CTB_LOJA_BAIXA_CREDIARIO WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND TIPO_PGTO <> '#' AND VALOR_CANCELADO <= 0 AND (@INTEGRA_TROCA = 1 OR (@INTEGRA_TROCA = 0 AND TIPO_PGTO <> 'T')); /*#74#*/ -- FIM INSERT TABELA TEMP MOVIMENTO LOJAS -- VERIFICAÇÃO DE MOEDA DA CONTA CONTÁBIL QUANDO INTEGRAÇÃO DE OUTRAS MOEDAS IF @TIPO_PGTO = 'M' BEGIN DECLARE @LANC_LOJA INT, @LANC_ITEM INT, @CONTA_CONTABIL_ITEM VARCHAR(20), @MOEDA_LOJA CHAR(6), @MOEDA_CONTA CHAR(6) DECLARE CUR_VERIFICA_MOEDA CURSOR LOCAL FAST_FORWARD FOR SELECT A.LANCAMENTO_PADRAO, B.LANCAMENTO_PADRAO, B.CONTA_CONTABIL, A.MOEDA, C.MOEDA FROM #CTB_MOVIMENTO_LOJAS A LEFT JOIN CTB_LANC_PADRAO_ITEM B ON A.LANCAMENTO_PADRAO = B.LANCAMENTO_PADRAO AND A.TIPO_PGTO = B.TIPO_PGTO AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(B.CODIGO_ADMINISTRADORA, CHAR(0)) AND ( ( A.VALOR >= 0 AND ISNULL(B.TIPO_PGTO_NEGATIVO, 0) = 0 ) OR ( A.VALOR < 0 AND ( B.TIPO_PGTO_NEGATIVO = 1 OR NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM X WHERE X.LANCAMENTO_PADRAO = A.LANCAMENTO_PADRAO AND X.TIPO_PGTO = A.TIPO_PGTO AND X.TIPO_PGTO_NEGATIVO = 1) ) ) ) LEFT JOIN CTB_CONTA_PLANO C ON B.CONTA_CONTABIL = C.CONTA_CONTABIL WHERE A.DATA_VENDA = @DATA_VENDA AND A.FILIAL = @FILIAL AND A.TIPO_PGTO = @TIPO_PGTO AND NOT ( B.LX_TIPO_LANCAMENTO = 'IAD' --AND A.TIPO_PGTO IN ( 'R', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/, 'G' /*#57#*/, '\' /*#63#*/ ) ) /*#20#*/ /*#37#*/ /* AND ( ( A.TIPO_PGTO IN ( 'M', 'U' ) ) OR ( A.TIPO_PGTO NOT IN ( 'M', 'U' ) AND 0 = 0 ) ) */ AND ISNULL(A.MOEDA, '') <> ISNULL(C.MOEDA, '') GROUP BY A.LANCAMENTO_PADRAO, B.LANCAMENTO_PADRAO, B.CONTA_CONTABIL, A.MOEDA, C.MOEDA OPEN CUR_VERIFICA_MOEDA FETCH NEXT FROM CUR_VERIFICA_MOEDA INTO @LANC_LOJA, @LANC_ITEM, @CONTA_CONTABIL_ITEM, @MOEDA_LOJA, @MOEDA_CONTA WHILE @@FETCH_STATUS = 0 BEGIN IF @LANC_ITEM IS NULL OR @CONTA_CONTABIL_ITEM IS NULL BEGIN IF @LANC_ITEM IS NULL SELECT @ERRMSG = 'OS ITENS DE LANÇAMENTO NÃO ESTÃO CADASTRADOS. ' ELSE IF @CONTA_CONTABIL_ITEM IS NULL SELECT @ERRMSG = 'A CONTA CONTÁBIL DOS ITENS DE LANÇAMENTO NÃO FORAM INFORMADAS. ' GOTO ERROR END IF ISNULL(@MOEDA_LOJA, '') <> ISNULL(@MOEDA_CONTA, '') AND ( NOT @CONTA_CONTABIL_ITEM IS NULL ) SELECT @ERRMSG = ISNULL(@ERRMSG, '') + 'A MOEDA (' + LTRIM(RTRIM(ISNULL(@MOEDA_CONTA, ''))) + ') CADASTRADA NA CONTA CONTÁBIL ''' + LTRIM(RTRIM(@CONTA_CONTABIL_ITEM)) + ''' ESTÁ DIFERENTE DA INFORMADA NO MOVIMENTO (' + LTRIM(RTRIM(ISNULL(@MOEDA_LOJA, ''))) + '). ' FETCH NEXT FROM CUR_VERIFICA_MOEDA INTO @LANC_LOJA, @LANC_ITEM, @CONTA_CONTABIL_ITEM, @MOEDA_LOJA, @MOEDA_CONTA END IF ISNULL(@ERRMSG, '') <> '' GOTO ERROR CLOSE CUR_VERIFICA_MOEDA DEALLOCATE CUR_VERIFICA_MOEDA END -- FIM VERIFICAÇÃO DE MOEDA DECLARE @TERMINAL_CUR CHAR(3), @LANCAMENTO_CAIXA_CUR CHAR(7), @PARCELA_CUR CHAR(2), @NUMERO_TITULO_CUR VARCHAR(36/*#68#15*/), @VALOR_CUR DECIMAL(19, 2), @VALOR_TOTAL_NOTA_CUR DECIMAL(19, 2), @VALOR_VENDA_ACUMULADO NUMERIC(19, 2), @WHILE VARCHAR(100), @CHEQUE_CARTAO_QUITADO_CUR VARCHAR(35), @LOCALIDADE_BAIXA INT IF @BAIXA_VALE_CLIENTE IS NULL AND @BAIXA_CREDIARIO IS NULL BEGIN -- TRATAR ADM / PROD. DECLARE CUR_ARRUMA_VENDAS CURSOR LOCAL FAST_FORWARD FOR SELECT TERMINAL, LANCAMENTO_CAIXA, PARCELA, NUMERO_TITULO, ISNULL(VALOR, 0.00), ISNULL(VALOR_TOTAL_NOTA, 0.00) FROM #CTB_MOVIMENTO_LOJAS ORDER BY TERMINAL, LANCAMENTO_CAIXA, PARCELA OPEN CUR_ARRUMA_VENDAS FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR SELECT @WHILE = @TERMINAL_CUR + '-' + @LANCAMENTO_CAIXA_CUR SELECT @VALOR_VENDA_ACUMULADO = 0 WHILE @@FETCH_STATUS = 0 BEGIN IF @WHILE = @TERMINAL_CUR + '-' + @LANCAMENTO_CAIXA_CUR BEGIN SELECT @VALOR_VENDA_ACUMULADO = @VALOR_VENDA_ACUMULADO + @VALOR_CUR IF @VALOR_TOTAL_NOTA_CUR > 0 BEGIN IF @VALOR_VENDA_ACUMULADO > @VALOR_TOTAL_NOTA_CUR UPDATE #CTB_MOVIMENTO_LOJAS SET LOCALIDADE = 1 WHERE TERMINAL = @TERMINAL_CUR AND LANCAMENTO_CAIXA = @LANCAMENTO_CAIXA_CUR AND PARCELA = @PARCELA_CUR AND NUMERO_TITULO = @NUMERO_TITULO_CUR AND VALOR = @VALOR_CUR AND VALOR_TOTAL_NOTA = @VALOR_TOTAL_NOTA_CUR END END FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR IF @WHILE <> @TERMINAL_CUR + '-' + @LANCAMENTO_CAIXA_CUR BEGIN SELECT @WHILE = @TERMINAL_CUR + '-' + @LANCAMENTO_CAIXA_CUR SELECT @VALOR_VENDA_ACUMULADO = 0 END END CLOSE CUR_ARRUMA_VENDAS DEALLOCATE CUR_ARRUMA_VENDAS END IF @BAIXA_VALE_CLIENTE IS NOT NULL BEGIN -- BAIXA DE VALE CLIENTE SELECT @LOCALIDADE_BAIXA = 0 DECLARE CUR_ARRUMA_VENDAS CURSOR LOCAL FAST_FORWARD FOR SELECT TERMINAL, LANCAMENTO_CAIXA, PARCELA, NUMERO_TITULO, ISNULL(VALOR, 0.00), ISNULL(VALOR_TOTAL_NOTA, 0.00), CHEQUE_CARTAO_QUITADO, JUROS FROM #CTB_MOVIMENTO_LOJAS ORDER BY TERMINAL, LANCAMENTO_CAIXA, PARCELA OPEN CUR_ARRUMA_VENDAS FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS WHILE @@FETCH_STATUS = 0 BEGIN IF ISNUMERIC(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')) = 1 AND CHARINDEX('E', @CHEQUE_CARTAO_QUITADO_CUR) = 0 AND CHARINDEX('D', @CHEQUE_CARTAO_QUITADO_CUR) = 0 BEGIN SELECT @EMPRESA_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 1, 2) AS INT) SELECT @LANCAMENTO_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 3, 10) AS INT) --#65# SELECT @ITEM_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 13, 3) AS INT) --#65# SELECT @DET_CHAVE = RTRIM(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 16, 3)) --#65# END ELSE BEGIN SELECT @EMPRESA_CHAVE = 0 SELECT @LANCAMENTO_CHAVE = 0 SELECT @ITEM_CHAVE = 0 SELECT @DET_CHAVE = '' END IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_AVISO_LANCAMENTO A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO WHERE A.EMPRESA = @EMPRESA_CHAVE AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND A.SUB_ITEM = @DET_CHAVE) OR EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_AVISO_LANCAMENTO A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO WHERE A.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR) BEGIN SELECT @FOUND = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BAD', @FOUND = CASE WHEN B.TIPO_MOVIMENTO IS NULL THEN 0 ELSE 1 END FROM CTB_AVISO_LANCAMENTO A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO WHERE A.EMPRESA = @EMPRESA_CHAVE AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND A.SUB_ITEM = @DET_CHAVE IF ISNULL(@FOUND, 0) = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BAD' FROM CTB_AVISO_LANCAMENTO A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO WHERE A.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR END ELSE BEGIN SELECT @FOUND = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BTR', @FOUND = CASE WHEN B.TIPO_MOVIMENTO IS NULL THEN 0 ELSE 1 END FROM CTB_A_RECEBER_FATURA A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO AND A.ITEM = C.ITEM WHERE A.EMPRESA = @EMPRESA_CHAVE AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND C.ID_PARCELA = @DET_CHAVE IF ISNULL(@FOUND, 0) = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BTR' FROM CTB_A_RECEBER_FATURA A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO AND A.ITEM = C.ITEM WHERE C.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR END UPDATE #CTB_MOVIMENTO_LOJAS SET LOCALIDADE = @LOCALIDADE_BAIXA, LX_TIPO_LANCAMENTO_BAIXA = @LX_TIPO_LANCAMENTO_BAIXA WHERE CHEQUE_CARTAO_QUITADO = @CHEQUE_CARTAO_QUITADO_CUR FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS END CLOSE CUR_ARRUMA_VENDAS DEALLOCATE CUR_ARRUMA_VENDAS END IF @BAIXA_CREDIARIO IS NOT NULL --#3# BEGIN -- BAIXA DE CREDIÁRIO SELECT @LOCALIDADE_BAIXA = 0 DECLARE CUR_ARRUMA_VENDAS CURSOR LOCAL FAST_FORWARD FOR SELECT TERMINAL, LANCAMENTO_CAIXA, PARCELA, NUMERO_TITULO, ISNULL(VALOR, 0.00), ISNULL(VALOR_TOTAL_NOTA, 0.00), CHEQUE_CARTAO_QUITADO, JUROS FROM #CTB_MOVIMENTO_LOJAS ORDER BY TERMINAL, LANCAMENTO_CAIXA, PARCELA OPEN CUR_ARRUMA_VENDAS FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS WHILE @@FETCH_STATUS = 0 BEGIN IF ISNUMERIC(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')) = 1 AND CHARINDEX('E', @CHEQUE_CARTAO_QUITADO_CUR) = 0 AND CHARINDEX('D', @CHEQUE_CARTAO_QUITADO_CUR) = 0 BEGIN SELECT @EMPRESA_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 1, 2) AS INT) SELECT @LANCAMENTO_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 3, 10) AS INT) --#69# SELECT @ITEM_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 13, 3) AS INT) --#69# SELECT @DET_CHAVE = RTRIM(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 16, 3)) --#69# END ELSE BEGIN SELECT @EMPRESA_CHAVE = 0 SELECT @LANCAMENTO_CHAVE = 0 SELECT @ITEM_CHAVE = 0 SELECT @DET_CHAVE = '' END SELECT @FOUND = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BTR', @FOUND = CASE WHEN B.TIPO_MOVIMENTO IS NULL THEN 0 ELSE 1 END FROM CTB_A_RECEBER_FATURA A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO AND A.ITEM = C.ITEM WHERE A.EMPRESA = @EMPRESA_CHAVE AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND C.ID_PARCELA = @DET_CHAVE IF ISNULL(@FOUND, 0) = 0 SELECT @LOCALIDADE_BAIXA = CASE WHEN @MOVIMENTO_PADRAO = B.TIPO_MOVIMENTO THEN 1 ELSE 0 END, @LX_TIPO_LANCAMENTO_BAIXA = 'BTR' FROM CTB_A_RECEBER_FATURA A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO AND A.ITEM = C.ITEM WHERE C.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR UPDATE #CTB_MOVIMENTO_LOJAS SET LOCALIDADE = @LOCALIDADE_BAIXA, LX_TIPO_LANCAMENTO_BAIXA = @LX_TIPO_LANCAMENTO_BAIXA WHERE CHEQUE_CARTAO_QUITADO = @CHEQUE_CARTAO_QUITADO_CUR FETCH NEXT FROM CUR_ARRUMA_VENDAS INTO @TERMINAL_CUR, @LANCAMENTO_CAIXA_CUR, @PARCELA_CUR, @NUMERO_TITULO_CUR, @VALOR_CUR, @VALOR_TOTAL_NOTA_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS END CLOSE CUR_ARRUMA_VENDAS DEALLOCATE CUR_ARRUMA_VENDAS END IF @@ERROR <> 0 GOTO ERROR -- RETIRAR SELECT @TAMANHO_CHEQUE_CARTAO = 0 -- RETIRAR SELECT @CHEQUE_CARTAO_QUITADO_CHAVE = '' -- AJUSTANDO MOVIMENTO --IF EXISTS(SELECT * -- FROM SYSOBJECTS -- WHERE NAME = 'SP_LXOBJ_AJUSTE_MOVIMENTO_LOJA' -- AND XTYPE = 'P') -- BEGIN -- EXEC SP_LXOBJ_AJUSTE_MOVIMENTO_LOJA -- IF @@ERROR <> 0 -- GOTO ERROR -- END -- FIM - TRATAR ADM / PROD. /*INCLUI O SEQUENCIAL DE LOTES DE LANÇAMENTO SE NÃO EXISTIR NA TABELA DE SEQUENCIAIS.*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM SEQUENCIAIS WHERE TABELA_COLUNA = 'CTB_LOTE.LOTE_LANCAMENTO') INSERT INTO SEQUENCIAIS (TABELA_COLUNA, DESCRICAO, SEQUENCIA, TAMANHO, PERMITE_POR_EMPRESA) VALUES ('CTB_LOTE.LOTE_LANCAMENTO', 'SEQUÊNCIA P/ LOTES DE LÇTOS. CONTÁBEIS', '00000001', 8, 0) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR SEQUENCIAL DE LOTES EM SEQUENCIAIS' GOTO ERROR END /*VERIFICA A FILIAL E A EMPRESA*/ SELECT @COD_FILIAL = COD_FILIAL, @EMPRESA = EMPRESA FROM FILIAIS WHERE FILIAL = @FILIAL IF @COD_FILIAL IS NULL BEGIN SELECT @ERRMSG = 'A FILIAL NÃO FOI ENCONTRADA.' GOTO ERROR END IF @EMPRESA IS NULL BEGIN SELECT @ERRMSG = 'NÃO EXISTE EMPRESA DEFINIDA NA FILIAL.' GOTO ERROR END /*VERIFICA A LOJA VAREJO*/ SELECT @CODIGO_FILIAL = CODIGO_FILIAL, @LANCAMENTO_PADRAO = CASE WHEN @TIPO_PGTO = 'Q' THEN LANCAMENTO_PADRAO_CANCELAMENTO_B2C /*#37#*/ WHEN @TIPO_PGTO = '!' THEN LANCAMENTO_PADRAO_ESTORNO_CARTAO /*#40#*/ WHEN @TIPO_PGTO = '*' THEN LANCAMENTO_PADRAO_DEVOL_DINHEIRO /*#40#*/ ELSE LANCAMENTO_PADRAO END FROM DBO.LOJAS_VAREJO WHERE FILIAL = @FILIAL; IF @CODIGO_FILIAL IS NULL BEGIN SELECT @ERRMSG = 'A LOJA VAREJO NÃO FOI ENCONTRADA.' GOTO ERROR END IF @LANCAMENTO_PADRAO IS NULL AND @TIPO_PGTO NOT IN ('Q', '!', '*') /*#37#*/ BEGIN SELECT @ERRMSG = 'NÃO EXISTE LANÇAMENTO PADRÃO DE VENDAS DEFINIDO NA LOJA VAREJO.'; GOTO ERROR; END /*#40#*/ IF @LANCAMENTO_PADRAO IS NULL AND @TIPO_PGTO IN ('Q', '!', '*') BEGIN SELECT @ERRMSG = 'NÃO EXISTE LANÇAMENTO PADRÃO DE ' + CASE WHEN @TIPO_PGTO = 'Q' THEN 'CANCELAMENTO B2C ' WHEN @TIPO_PGTO = '!' THEN 'ESTORNO DE CARTÃO ' WHEN @TIPO_PGTO = '*' THEN 'DEVOLUÇÃO DE DINHEIRO ' END + 'DEFINIDO NA LOJA VAREJO.'; GOTO ERROR; END /*VERIFICA SE O CAIXA JA FOI FECHADO PARA ESTE TIPO DE PAGAMENTO SE FOI SIGNIFICA QUE O MOVIMENTO JA FOI INTEGRADO E SAI DA ROTINA*/ SELECT @DATA_CAIXA = RIGHT(CONVERT(CHAR(3), DAY(@DATA_VENDA) + 100, 12), 2 /*#19#*/ ) + CASE WHEN MONTH(@DATA_VENDA) > 9 THEN CHAR(55 + MONTH(@DATA_VENDA)) ELSE CONVERT(CHAR(1), MONTH(@DATA_VENDA)) END + RIGHT(CHAR(65 + CONVERT(INT, RIGHT(CONVERT(VARCHAR, YEAR(@DATA_VENDA)), 2)) - 10), 1) /*#17#*/ --IF CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END <> 'Y' IF ISNULL(@TIPO_PGTO_BAIXA, @TIPO_PGTO) NOT IN ( /*'Y'*/ '#' /*#49#*/, '<' ) -- #3# BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND LANCAMENTO_CAIXA LIKE '%' + @TIPO_PGTO + '%' --AND TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END) AND TIPO_LANCAMENTO_CAIXA = 'F' + ISNULL(@TIPO_PGTO_BAIXA, @TIPO_PGTO)) -- #3# BEGIN SELECT @ERRMSG = ' O CAIXA JÁ ESTÁ FECHADO PARA ESTE TIPO DE PAGAMENTO' GOTO ERROR END END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND SUBSTRING(LANCAMENTO_CAIXA, 6, 1) = @TIPO_PGTO --AND TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END) AND TIPO_LANCAMENTO_CAIXA = 'F' + ISNULL(@TIPO_PGTO_BAIXA, @TIPO_PGTO)) BEGIN SELECT @ERRMSG = ' O CAIXA JÁ ESTÁ FECHADO PARA ESTE TIPO DE PAGAMENTO' GOTO ERROR END END IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS A WHERE A.CODIGO_FILIAL = @CODIGO_FILIAL AND A.DATA = @DATA_VENDA AND A.TIPO_LANCAMENTO_CAIXA = '00') AND EXISTS (SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS WHERE ISNULL(PEDIDO, '') = '') /*#54#*/ BEGIN SELECT @ERRMSG = 'NÃO EXISTE A ABERTURA DO TERMINAL, FAVOR VERIFICAR.' GOTO ERROR END /*VERIFICA O LANÇAMENTO PADRAO*/ SELECT @TIPO_MOVIMENTO = TIPO_MOVIMENTO FROM CTB_LANC_PADRAO WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO IF @TIPO_MOVIMENTO IS NULL BEGIN SELECT @ERRMSG = 'NÃO EXISTE TIPO DE MOVIMENTO DEFINIDO NO LANÇAMENTO PADRÃO DA LOJA VAREJO.' GOTO ERROR END /*VERIFICA DIVERGÊNCIA NOS DADOS DA LOJA*/ IF @TIPO_PGTO IN ( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) AND EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND CODIGO_ADMINISTRADORA IS NULL) BEGIN SELECT @ERRMSG = 'EXISTEM VENDAS DE ''' + @DESC_TIPO_PGTO + ''' SEM ADMINISTRADORAS DE CARTÃO.' GOTO ERROR END IF @TIPO_PGTO NOT IN ( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) AND EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND CODIGO_ADMINISTRADORA IS NOT NULL) BEGIN SELECT @ERRMSG = 'EXISTEM VENDAS DE ''' + @DESC_TIPO_PGTO + ''' COM ADMINISTRADORAS DE CARTÃO.' GOTO ERROR END /*VERIFICA SE O LANÇAMENTO PADRÃO ATENDE AS VENDAS*/ SELECT @CODIGO_ADMINISTRADORA = A.CODIGO_ADMINISTRADORA FROM #CTB_MOVIMENTO_LOJAS A LEFT JOIN CTB_LANC_PADRAO_ITEM B ON @LANCAMENTO_PADRAO = B.LANCAMENTO_PADRAO AND A.TIPO_PGTO = B.TIPO_PGTO AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(B.CODIGO_ADMINISTRADORA, CHAR(0)) AND ( ( A.VALOR >= 0 AND ISNULL(B.TIPO_PGTO_NEGATIVO, 0) = 0 ) OR ( A.VALOR < 0 AND ( B.TIPO_PGTO_NEGATIVO = 1 OR NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM X WHERE X.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND X.TIPO_PGTO = A.TIPO_PGTO AND X.TIPO_PGTO_NEGATIVO = 1) ) ) ) WHERE A.DATA_VENDA = @DATA_VENDA AND A.FILIAL = @FILIAL AND A.TIPO_PGTO = @TIPO_PGTO AND B.LANCAMENTO_PADRAO IS NULL IF @@ROWCOUNT > 0 BEGIN SELECT @ERRMSG = 'NÃO EXISTE TIPO DE PAGAMENTO ''' + @DESC_TIPO_PGTO + ''' NO LANÇAMENTO PADRÃO ''' + RTRIM(@LANCAMENTO_PADRAO) + '''' IF @CODIGO_ADMINISTRADORA IS NOT NULL SELECT @ERRMSG = @ERRMSG + ' E ADMINISTRADORA ''' + RTRIM(@CODIGO_ADMINISTRADORA) + '''.' ELSE SELECT @ERRMSG = @ERRMSG + '.' GOTO ERROR END /*VERIFICA SE EXISTE O ITEM DE LANÇAMENTO PADRAO PARA LANÇAMENTO DE TAXAS DE ADMINISTRAÇÃO*/ IF @TIPO_PGTO IN( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) AND NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND LX_TIPO_LANCAMENTO IN ( 'LTA', 'CSC' )) BEGIN SELECT @ERRMSG = 'NÃO EXISTE O TIPO DE LANÇAMENTO ''LTA-LANÇAMENTO DE TAXA DE ADMINISTRAÇÃO'' NO LANÇAMENTO PADRÃO ''' + RTRIM(@LANCAMENTO_PADRAO) + '''.' GOTO ERROR END /*VERIFICA SE O NÚMERO DE PARCELAS NÃO ESTÁ COM DIVERGÊNCIA QUANDO FOR CARTÃO DE CRÉDITO*/ IF @TIPO_PGTO IN( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) AND EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO AND CODIGO_ADMINISTRADORA IS NOT NULL AND ISNULL(PARCELAS_CARTAO, 0) = 0) BEGIN SELECT @ERRMSG = 'EXISTE(M) VENDA(S) DE CARTÃO COM O NÚMERO DE PARCELAS INDEFINIDO.' GOTO ERROR END /*VERIFICA SE O MOVIMENTO PADRAO DE SUGESTÃO FOI CADASTRADO SE NECESSÁRIO*/ IF @MOVIMENTO_PADRAO IS NULL AND EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS WHERE DATA_VENDA = @DATA_VENDA AND FILIAL = @FILIAL AND TIPO_PGTO = @TIPO_PGTO) BEGIN SELECT @ERRMSG = 'NÃO FOI CADASTRADO O PARÂMETRO NECESSÁRIO ''MOVIMENTO PADRÃO''.' GOTO ERROR END SELECT @MOVIMENTO_PADRAO = ISNULL(@MOVIMENTO_PADRAO, -1) --- ATUALIZANDO RATEIO DESCONTO EXEC LX_LF_DIF_RATEIO_DESCONTO @COD_FILIAL, @DATA_VENDA, @DATA_VENDA -- FIM - ATUALIZANDO RATEIO DESCONTO /*INTEGRA O CAIXA DE LOJA DE ACORDO COM O PARÂMETRO*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM PARAMETROS WHERE PARAMETRO = 'INTEGRAR_CAIXA_AUTOMATICO') OR (SELECT VALOR_ATUAL FROM PARAMETROS WHERE PARAMETRO = 'INTEGRAR_CAIXA_AUTOMATICO') = '.T.' BEGIN EXEC LX_CTB_INTEGRAR_CAIXAS_LANCAMENTOS @DATA_VENDA, @FILIAL, @TIPO_PGTO, @GERAR_LOG IF @@ERROR <> 0 BEGIN SET @ERRMSG = 'ERRO AO INTEGRAR MOVIMENTO DO CAIXA DE LOJA' GOTO ERROR END END ----------------------------------------------------------------------------------------------------------------- /*LANCAMENTO DE VENDAS*/ /*GERA O LOTE DE LANÇAMENTO SE AINDA NÃO HOUVER NENHUM DESTE DIA DE INTEGRAÇÃO DE LOJA. SE HOUVER USA O QUE EXITE.*/ SELECT @DESC_LOTE = 'INTEGRAÇÃO DE VENDA DE LOJA' SELECT @LOTE_LANCAMENTO = NULL SELECT @LOTE_LANCAMENTO = LOTE_LANCAMENTO FROM CTB_LOTE WHERE DATA_EXPORTACAO = @HOJE AND CONCILIADO = 0 AND DESC_LOTE = @DESC_LOTE AND EMPRESA = @EMPRESA SELECT @LANCAMENTO_PADRAO = NULL SELECT @LANCAMENTO_PADRAO = CASE WHEN @TIPO_PGTO = 'Q' THEN LANCAMENTO_PADRAO_CANCELAMENTO_B2C /*#37#*/ WHEN @TIPO_PGTO = '!' THEN LANCAMENTO_PADRAO_ESTORNO_CARTAO /*#40#*/ WHEN @TIPO_PGTO = '*' THEN LANCAMENTO_PADRAO_DEVOL_DINHEIRO /*#40#*/ ELSE LANCAMENTO_PADRAO END FROM DBO.LOJAS_VAREJO WHERE FILIAL = @FILIAL; IF @LOTE_LANCAMENTO IS NULL BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA= 'CTB_LOTE.LOTE_LANCAMENTO', @EMPRESA= @EMPRESA, @SEQUENCIA= @SEQUENCIA OUTPUT SELECT @LOTE_LANCAMENTO = CONVERT(INT, @SEQUENCIA) INSERT INTO CTB_LOTE (LOTE_LANCAMENTO, DATA_EXPORTACAO, ATUALIZACAO_EXPORTAR, CONCILIADO, DESC_LOTE, EMPRESA, TIPO_LOTE) VALUES (@LOTE_LANCAMENTO, @HOJE, NULL, 0, @DESC_LOTE, @EMPRESA, '12') IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AOS INSERIR CTB_LOTE' GOTO ERROR END END CREATE TABLE #CTB_MOVIMENTO_LOJAS_AGRUPADO ( EMPRESA INT, LOCALIDADE INT, CODIGO_ADMINISTRADORA CHAR(2) COLLATE DATABASE_DEFAULT, LX_TIPO_LANCAMENTO VARCHAR(3) COLLATE DATABASE_DEFAULT, MOEDA CHAR(6) COLLATE DATABASE_DEFAULT, ADMINISTRADORA VARCHAR(25) COLLATE DATABASE_DEFAULT, CREDITO_DEBITO CHAR(1) COLLATE DATABASE_DEFAULT, RATEIO_CENTRO_CUSTO VARCHAR(15) COLLATE DATABASE_DEFAULT, CODIGO_HISTORICO CHAR(4) COLLATE DATABASE_DEFAULT, HISTORICO_PADRAO VARCHAR(1000) COLLATE DATABASE_DEFAULT, COD_FILIAL VARCHAR(6) COLLATE DATABASE_DEFAULT, CONTA_CONTABIL VARCHAR(20) COLLATE DATABASE_DEFAULT, COD_CLIFOR_LANC_PADRAO VARCHAR(6) COLLATE DATABASE_DEFAULT, CODIGO_CLIENTE_CADASTRAR VARCHAR(14) COLLATE DATABASE_DEFAULT, VALOR NUMERIC(19, 2), COTACAO NUMERIC(19, 6), VALOR_MOEDA NUMERIC(19, 2), INDICA_ID_CONTABIL_TERCEIRO BIT, LANCAMENTO_CAIXA_ICR VARCHAR(30) ) -- INSERINDO TABELA TEMPORÁRIA IF @TIPO_PGTO <> 'T' BEGIN INSERT #CTB_MOVIMENTO_LOJAS_AGRUPADO (EMPRESA, LOCALIDADE, CODIGO_ADMINISTRADORA, LX_TIPO_LANCAMENTO, MOEDA, ADMINISTRADORA, CREDITO_DEBITO, RATEIO_CENTRO_CUSTO, CODIGO_HISTORICO, HISTORICO_PADRAO, COD_FILIAL, CONTA_CONTABIL, VALOR, INDICA_ID_CONTABIL_TERCEIRO, COTACAO, VALOR_MOEDA, COD_CLIFOR_LANC_PADRAO, CODIGO_CLIENTE_CADASTRAR, LANCAMENTO_CAIXA_ICR) SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMINISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.VALOR, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.VALOR_MOEDA, COD_CLIFOR_LANC_PADRAO = A.COD_CLIFOR, CODIGO_CLIENTE_CADASTRAR = A.CODIGO_CLIENTE, LANCAMENTO_CAIXA_ICR FROM (SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, B.LX_TIPO_LANCAMENTO, MOEDA = CASE WHEN ISNULL(A.MOEDA, '') = '' THEN @MOEDA ELSE A.MOEDA END, A.ADMINISTRADORA, C.CREDITO_DEBITO, B.RATEIO_CENTRO_CUSTO, B.CODIGO_HISTORICO, D.HISTORICO_PADRAO, A.COD_FILIAL, CONTA_CONTABIL = ISNULL(B.CONTA_CONTABIL, ISNULL(A.CTB_CONTA_CONTABIL, C.CONTA_PADRAO)), VALOR = SUM(A.VALOR), C.INDICA_ID_CONTABIL_TERCEIRO, COTACAO = MAX(A.COTACAO), VALOR_MOEDA = SUM(A.VALOR_MOEDA), B.COD_CLIFOR, CODIGO_CLIENTE = CASE WHEN ISNULL(B.CADASTRAR_TERCEIRO, 0) = 1 THEN A.CODIGO_CLIENTE ELSE NULL END, A.LANCAMENTO_CAIXA_ICR FROM #CTB_MOVIMENTO_LOJAS A JOIN CTB_LANC_PADRAO_ITEM B ON A.LANCAMENTO_PADRAO = B.LANCAMENTO_PADRAO AND A.TIPO_PGTO = B.TIPO_PGTO AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(B.CODIGO_ADMINISTRADORA, CHAR(0)) AND ( ( A.VALOR >= 0 AND ISNULL(B.TIPO_PGTO_NEGATIVO, 0) = 0 ) OR ( A.VALOR < 0 AND ( B.TIPO_PGTO_NEGATIVO = 1 OR NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM X WHERE X.LANCAMENTO_PADRAO = A.LANCAMENTO_PADRAO AND X.TIPO_PGTO = A.TIPO_PGTO AND X.TIPO_PGTO_NEGATIVO = 1) ) ) ) JOIN CTB_LX_LANCAMENTO_TIPO C ON B.LX_TIPO_LANCAMENTO = C.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO JOIN CTB_CONTA_PLANO E ON B.CONTA_CONTABIL = E.CONTA_CONTABIL WHERE A.DATA_VENDA = @DATA_VENDA AND A.FILIAL = @FILIAL AND A.TIPO_PGTO = @TIPO_PGTO AND NOT ( B.LX_TIPO_LANCAMENTO = 'IAD' /* AND A.TIPO_PGTO IN ( 'R', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) ) /*#20#*/ /*#37#*/ AND ( ( A.TIPO_PGTO IN ( 'M', 'U' ) AND A.MOEDA = E.MOEDA ) OR ( A.TIPO_PGTO NOT IN ( 'M', 'U' ) AND 0 = 0 )*/ ) GROUP BY A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, B.LX_TIPO_LANCAMENTO, CASE WHEN ISNULL(A.MOEDA, '') = '' THEN @MOEDA ELSE A.MOEDA END, A.ADMINISTRADORA, C.CREDITO_DEBITO, B.RATEIO_CENTRO_CUSTO, B.CODIGO_HISTORICO, D.HISTORICO_PADRAO, A.COD_FILIAL, ISNULL(B.CONTA_CONTABIL, ISNULL(A.CTB_CONTA_CONTABIL, C.CONTA_PADRAO)), C.INDICA_ID_CONTABIL_TERCEIRO, B.COD_CLIFOR, CASE WHEN ISNULL(B.CADASTRAR_TERCEIRO, 0) = 1 THEN A.CODIGO_CLIENTE ELSE NULL END, A.LANCAMENTO_CAIXA_ICR) A END -- TOTALIZA TROCAS IF @TIPO_PGTO = 'T' AND @INTEGRA_TROCA = 1 /*#74#*/ BEGIN INSERT #CTB_MOVIMENTO_LOJAS_AGRUPADO (EMPRESA, LOCALIDADE, CODIGO_ADMINISTRADORA, LX_TIPO_LANCAMENTO, MOEDA, ADMINISTRADORA, CREDITO_DEBITO, RATEIO_CENTRO_CUSTO, CODIGO_HISTORICO, HISTORICO_PADRAO, COD_FILIAL, CONTA_CONTABIL, VALOR, INDICA_ID_CONTABIL_TERCEIRO, COTACAO, VALOR_MOEDA, COD_CLIFOR_LANC_PADRAO, CODIGO_CLIENTE_CADASTRAR, LANCAMENTO_CAIXA_ICR) SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMINISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.VALOR, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.VALOR_MOEDA, COD_CLIFOR_LANC_PADRAO = A.COD_CLIFOR, A.CODIGO_CLIENTE_CADASTRAR, LANCAMENTO_CAIXA_ICR FROM (SELECT G.EMPRESA, CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END AS LOCALIDADE, CODIGO_ADMINISTRADORA = NULL, H.LX_TIPO_LANCAMENTO, MOEDA = @MOEDA, ADMINISTRADORA = NULL, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, CONTA_CONTABIL = ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), VALOR = ABS(SUM(A.QTDE * A.PRECO_LIQUIDO)), I.INDICA_ID_CONTABIL_TERCEIRO, COTACAO = 1.000000, VALOR_MOEDA = ABS(SUM(A.QTDE * A.PRECO_LIQUIDO)), H.COD_CLIFOR, CODIGO_CLIENTE_CADASTRAR= NULL, LANCAMENTO_CAIXA_ICR= NULL FROM LOJA_VENDA_TROCA A JOIN LOJA_VENDA B ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TICKET = B.TICKET AND A.DATA_VENDA = B.DATA_VENDA JOIN LOJA_VENDA_PGTO C ON C.CODIGO_FILIAL = B.CODIGO_FILIAL_PGTO AND C.TERMINAL = B.TERMINAL_PGTO AND C.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA JOIN LOJAS_VAREJO F ON A.CODIGO_FILIAL = F.CODIGO_FILIAL JOIN FILIAIS G ON F.FILIAL = G.FILIAL JOIN CTB_LANC_PADRAO_ITEM H ON H.LANCAMENTO_PADRAO = F.LANCAMENTO_PADRAO AND H.LX_TIPO_LANCAMENTO = 'PGM' JOIN CTB_LX_LANCAMENTO_TIPO I ON I.LX_TIPO_LANCAMENTO = H.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO J ON J.CODIGO_HISTORICO = H.CODIGO_HISTORICO WHERE A.DATA_VENDA = @DATA_VENDA AND F.FILIAL = @FILIAL AND @TIPO_PGTO = 'T' GROUP BY G.EMPRESA, CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END, H.LX_TIPO_LANCAMENTO, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), I.INDICA_ID_CONTABIL_TERCEIRO, H.COD_CLIFOR UNION ALL SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, VALOR = SUM(A.VALOR), A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, VALOR_MOEDA = SUM(VALOR_MOEDA), A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR FROM (SELECT B.TICKET, G.EMPRESA, LOCALIDADE = CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END, CODIGO_ADMINISTRADORA = NULL, H.LX_TIPO_LANCAMENTO, MOEDA = @MOEDA, ADMISNISTRADORA = NULL, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, CONTA_CONTABIL = ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), VALOR = MAX(C.VALOR_CANCELADO) + ABS(SUM(ISNULL(A.QTDE, 0.00) * ISNULL(A.PRECO_LIQUIDO, 0.00))), I.INDICA_ID_CONTABIL_TERCEIRO, COTACAO = 1.000000, VALOR_MOEDA = MAX(C.VALOR_CANCELADO) + ABS(SUM(ISNULL(A.QTDE, 0.00) * ISNULL(A.PRECO_LIQUIDO, 0.00))), COD_CLIFOR_LANC_PADRAO = H.COD_CLIFOR, CODIGO_CLIENTE_CADASTRAR = NULL, LANCAMENTO_CAIXA_ICR = NULL FROM LOJA_VENDA B LEFT JOIN LOJA_VENDA_TROCA A ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TICKET = B.TICKET AND A.DATA_VENDA = B.DATA_VENDA JOIN LOJA_VENDA_PGTO C ON C.CODIGO_FILIAL = B.CODIGO_FILIAL_PGTO AND C.TERMINAL = B.TERMINAL_PGTO AND C.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA JOIN LOJAS_VAREJO F ON B.CODIGO_FILIAL = F.CODIGO_FILIAL JOIN FILIAIS G ON F.FILIAL = G.FILIAL JOIN CTB_LANC_PADRAO_ITEM H ON H.LANCAMENTO_PADRAO = F.LANCAMENTO_PADRAO AND H.LX_TIPO_LANCAMENTO = 'VMC' JOIN CTB_LX_LANCAMENTO_TIPO I ON I.LX_TIPO_LANCAMENTO = H.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO J ON J.CODIGO_HISTORICO = H.CODIGO_HISTORICO WHERE B.DATA_VENDA = @DATA_VENDA AND F.FILIAL = @FILIAL AND @TIPO_PGTO = 'T' AND C.VALOR_CANCELADO > 0 AND C.CANCELADO_FISCAL = 0 AND B.DATA_HORA_CANCELAMENTO IS NOT NULL GROUP BY B.TICKET, G.EMPRESA, CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END, H.LX_TIPO_LANCAMENTO, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), I.INDICA_ID_CONTABIL_TERCEIRO, H.COD_CLIFOR) A GROUP BY A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR UNION ALL SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, VALOR = SUM(A.VALOR), A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, VALOR_MOEDA = SUM(VALOR_MOEDA), A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR FROM (SELECT A.TICKET, G.EMPRESA, LOCALIDADE = CASE WHEN @TIPO_PGTO IN( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K' ) THEN 0 ELSE A.LOCALIDADE END, CODIGO_ADMINISTRADORA = NULL, H.LX_TIPO_LANCAMENTO, MOEDA = @MOEDA, ADMISNISTRADORA = NULL, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, CONTA_CONTABIL = ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), VALOR = SUM(A.VALOR_DESCONTO), I.INDICA_ID_CONTABIL_TERCEIRO, COTACAO = 1.000000, VALOR_MOEDA = SUM(A.VALOR_DESCONTO), COD_CLIFOR_LANC_PADRAO = H.COD_CLIFOR, CODIGO_CLIENTE_CADASTRAR = NULL, LANCAMENTO_CAIXA_ICR = NULL FROM DBO.FX_LF_ITEM_CUPOM(@COD_FILIAL, @DATA_VENDA, @DATA_VENDA) A JOIN LOJAS_VAREJO F ON A.CODIGO_FILIAL = F.CODIGO_FILIAL JOIN FILIAIS G ON F.FILIAL = G.FILIAL JOIN CTB_LANC_PADRAO_ITEM H ON H.LANCAMENTO_PADRAO = F.LANCAMENTO_PADRAO AND H.LX_TIPO_LANCAMENTO = 'DIV' JOIN CTB_LX_LANCAMENTO_TIPO I ON I.LX_TIPO_LANCAMENTO = H.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO J ON J.CODIGO_HISTORICO = H.CODIGO_HISTORICO WHERE @TIPO_PGTO = 'T' GROUP BY A.TICKET, G.EMPRESA, CASE WHEN @TIPO_PGTO IN( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K' ) THEN 0 ELSE A.LOCALIDADE END, H.LX_TIPO_LANCAMENTO, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), I.INDICA_ID_CONTABIL_TERCEIRO, H.COD_CLIFOR HAVING SUM(A.VALOR_DESCONTO) > 0) A GROUP BY A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR UNION ALL SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, VALOR = SUM(A.VALOR), A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, VALOR_MOEDA = SUM(VALOR_MOEDA), A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR FROM (SELECT B.TICKET, G.EMPRESA, LOCALIDADE = CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END, CODIGO_ADMINISTRADORA = NULL, H.LX_TIPO_LANCAMENTO, MOEDA = @MOEDA, ADMISNISTRADORA = NULL, I.CREDITO_DEBITO, RATEIO_CENTRO_CUSTO = COALESCE(H.RATEIO_CENTRO_CUSTO, @RATEIO_CCUSTO_PADRAO_LOJA), /*#70#*/ H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, CONTA_CONTABIL = ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), VALOR = CASE WHEN MAX(VALOR_PAGO) < 0 THEN MAX(VALOR_PAGO) + MAX(VALOR_TROCA) ELSE ABS(SUM(A.QTDE * A.PRECO_LIQUIDO)) END, I.INDICA_ID_CONTABIL_TERCEIRO, COTACAO = 1.000000, VALOR_MOEDA = CASE WHEN MAX(VALOR_PAGO) < 0 THEN MAX(VALOR_PAGO) + MAX(VALOR_TROCA) ELSE ABS(SUM(A.QTDE * A.PRECO_LIQUIDO)) END, COD_CLIFOR_LANC_PADRAO = H.COD_CLIFOR, CODIGO_CLIENTE_CADASTRAR = NULL, LANCAMENTO_CAIXA_ICR = NULL FROM LOJA_VENDA_TROCA A JOIN LOJA_VENDA B ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TICKET = B.TICKET AND A.DATA_VENDA = B.DATA_VENDA JOIN LOJA_VENDA_PGTO C ON C.CODIGO_FILIAL = B.CODIGO_FILIAL_PGTO AND C.TERMINAL = B.TERMINAL_PGTO AND C.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA JOIN LOJAS_VAREJO F ON A.CODIGO_FILIAL = F.CODIGO_FILIAL JOIN FILIAIS G ON F.FILIAL = G.FILIAL JOIN CTB_LANC_PADRAO_ITEM H ON H.LANCAMENTO_PADRAO = F.LANCAMENTO_PADRAO AND H.LX_TIPO_LANCAMENTO = 'VMT' JOIN CTB_LX_LANCAMENTO_TIPO I ON I.LX_TIPO_LANCAMENTO = H.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO J ON J.CODIGO_HISTORICO = H.CODIGO_HISTORICO WHERE A.DATA_VENDA = @DATA_VENDA AND F.FILIAL = @FILIAL AND @TIPO_PGTO = 'T' GROUP BY B.TICKET, G.EMPRESA, CASE WHEN ISNULL(C.NUMERO_CUPOM_FISCAL, '') = '' THEN CASE WHEN ISNULL(C.ID_EQUIPAMENTO, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_TROCA, '') <> '' THEN 0 WHEN ISNULL(C.NUMERO_FISCAL_VENDA, '') <> '' THEN 0 ELSE 1 END ELSE 0 END, H.LX_TIPO_LANCAMENTO, I.CREDITO_DEBITO, H.RATEIO_CENTRO_CUSTO, H.CODIGO_HISTORICO, J.HISTORICO_PADRAO, G.COD_FILIAL, ISNULL(H.CONTA_CONTABIL, ISNULL(G.CTB_CONTA_CONTABIL, I.CONTA_PADRAO)), I.INDICA_ID_CONTABIL_TERCEIRO, H.COD_CLIFOR) A GROUP BY A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMISNISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR) A END -- FIM INSERINDO TABELA TEMPORARIA --CAPTURANDO LANÇAMENTOS PARA A CONTABILIZAÇÃO-------------------------------------------------------------------- SELECT @LANCAMENTO = NULL, @LANCAMENTO_AUTORIZACAO = NULL, @LANCAMENTO_DOTACAO = NULL, @ITEM = 0, @SUB_ITEM_CHEQUE = 0, @SUB_ITEM_AVISO = 0 WHILE @LANCAMENTO_AUTORIZACAO IS NULL BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA= 'CTB_LANCAMENTO.LANCAMENTO', @EMPRESA= @EMPRESA, @SEQUENCIA= @SEQUENCIA OUTPUT SELECT @LANCAMENTO_AUTORIZACAO = CONVERT(INT, @SEQUENCIA) IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO_AUTORIZACAO) BEGIN SELECT @LANCAMENTO_AUTORIZACAO = NULL CONTINUE END END IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_MOVIMENTO_LOJAS_AGRUPADO WHERE ISNULL(LOCALIDADE, 0) <> 0) BEGIN WHILE @LANCAMENTO_DOTACAO IS NULL BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA= 'CTB_LANCAMENTO.LANCAMENTO', @EMPRESA= @EMPRESA, @SEQUENCIA= @SEQUENCIA OUTPUT SELECT @LANCAMENTO_DOTACAO = CONVERT(INT, @SEQUENCIA) IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO_DOTACAO) BEGIN SELECT @LANCAMENTO_DOTACAO = NULL CONTINUE END END END ----------------------------------------------------------------------------------------------------------------- /*AGRUPA AS VENDAS POR EMPRESA, TIPO_MOVIMENTO, CODIGO_ADMINISTRADORA E LX_TIPO_LANCAMENTO FILTRADO POR DATA_VENDA, FILIAL, TIPO_PGTO, CTB_LANCAMENTO E SE NÃO FOR BAIXA DE VALE PRODUTO PORQUE A BAIXA DE VALE PRODUTO SERÁ FEITA DIRETAMENTE NA INTEGRAÇÃO DO MOVIMENTO DE CAIXA.*/ DECLARE CUR_LANCAMENTO_VENDA CURSOR LOCAL FAST_FORWARD FOR SELECT A.EMPRESA, A.LOCALIDADE, A.CODIGO_ADMINISTRADORA, A.LX_TIPO_LANCAMENTO, A.MOEDA, A.ADMINISTRADORA, A.CREDITO_DEBITO, A.RATEIO_CENTRO_CUSTO, A.CODIGO_HISTORICO, A.HISTORICO_PADRAO, A.COD_FILIAL, A.CONTA_CONTABIL, A.VALOR, A.INDICA_ID_CONTABIL_TERCEIRO, A.COTACAO, A.VALOR_MOEDA, A.COD_CLIFOR_LANC_PADRAO, A.CODIGO_CLIENTE_CADASTRAR, A.LANCAMENTO_CAIXA_ICR FROM #CTB_MOVIMENTO_LOJAS_AGRUPADO A ORDER BY A.LOCALIDADE, A.VALOR OPEN CUR_LANCAMENTO_VENDA FETCH NEXT FROM CUR_LANCAMENTO_VENDA INTO @EMPRESA, @LOCALIDADE, @CODIGO_ADMINISTRADORA, @LX_TIPO_LANCAMENTO, @MOEDA, @ADMINISTRADORA, @CREDITO_DEBITO, @RATEIO_CENTRO_CUSTO, @CODIGO_HISTORICO, @HISTORICO, @COD_FILIAL, @CONTA_CONTABIL, @VALOR_ITEM, @INDICA_ID_CONTABIL_TERCEIRO, @COTACAO_CUR, @VALOR_MOEDA_CUR, @COD_CLIFOR_LANC_PADRAO_CUR, @CODIGO_CLIENTE_CADASTRAR_CUR, @LANCAMENTO_CAIXA_ICR_CUR ----------------------------------------------------------------------------------------------------------------- --AQUI COMEÇA A TRANSAÇÃO BEGIN TRANSACTION GERAR_LOJA SELECT @WHILE_FECHA = '' WHILE @@FETCH_STATUS = 0 BEGIN /*SE MUDAR DE TIPO DE MOVIMENTO GERA OUTRO LANCAMENTO*/ IF @WHILE_FECHA <> CAST(@LOCALIDADE AS VARCHAR(10)) + '-' + CAST(@TIPO_MOVIMENTO AS VARCHAR(10)) BEGIN ---------------------------------------------------------------------- /*FECHAMENTO DE CAIXA. ABRE O CAIXA SE AINDA NÃO FOI ABERTO E INSERE UM FECHAMENTO PARA CADA TERMINAL*/ SELECT @TIPO_MOVIMENTO = CASE WHEN ISNULL(@LOCALIDADE, 0) = 0 THEN @TIPO_MOVIMENTO ELSE @MOVIMENTO_PADRAO END SELECT @LANCAMENTO = NULL IF @LANCAMENTO_UNICO = 1 BEGIN SELECT @LANCAMENTO = LANCAMENTO FROM CTB_LANCAMENTO (NOLOCK) WHERE EMPRESA = @EMPRESA AND COD_FILIAL = @COD_FILIAL AND DATA_LANCAMENTO = @DATA_VENDA AND LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND LOTE_LANCAMENTO = @LOTE_LANCAMENTO IF @LANCAMENTO IS NOT NULL SELECT @ITEM = MAX(ITEM) + 1 FROM CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO END ELSE BEGIN IF @TIPO_PGTO IN ( '&', 'R', 'T', 'D', 'M', 'O', '@', 'Q', 'L', 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) /*#20#*/ /*#37#*/ BEGIN SELECT @LANCAMENTO = MAX(B.LANCAMENTO) FROM LOJA_CAIXA_LANCAMENTOS A JOIN CTB_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.CTB_LANCAMENTO = B.LANCAMENTO WHERE B.EMPRESA = @EMPRESA AND B.COD_FILIAL = @COD_FILIAL AND B.DATA_LANCAMENTO = @DATA_VENDA AND B.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND B.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOTE_LANCAMENTO = @LOTE_LANCAMENTO AND A.TIPO_LANCAMENTO_CAIXA IN ( 'F&', 'FR', 'FT', 'FD', 'FM', 'FO', 'F@', 'FQ', 'FL', 'FW', 'FY', 'F>' ) IF @LANCAMENTO IS NOT NULL SELECT @ITEM = MAX(ITEM) + 1 FROM CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO END END /*GERA O LANÇAMENTO SE AINDA NÃO FOI GERADO*/ IF @LANCAMENTO IS NULL BEGIN SELECT @LANCAMENTO = CASE WHEN ISNULL(@LOCALIDADE, 0) = 0 THEN @LANCAMENTO_AUTORIZACAO ELSE @LANCAMENTO_DOTACAO END SELECT @TIPO_COMPROVANTE = TIPO_COMPROVANTE FROM CTB_LANC_PADRAO WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO INSERT INTO CTB_LANCAMENTO (EMPRESA, LANCAMENTO, COD_FILIAL, DATA_DIGITACAO, DATA_LANCAMENTO, LANCAMENTO_PADRAO, GERADO_INTEGRACAO, TIPO_MOVIMENTO, LOTE_LANCAMENTO, TIPO_COMPROVANTE) VALUES (@EMPRESA, @LANCAMENTO, @COD_FILIAL, @HOJE1, @DATA_VENDA, @LANCAMENTO_PADRAO, --CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN 1 ELSE 6 END, CASE WHEN ISNULL(RTRIM(LTRIM(@TIPO_PGTO_BAIXA)), '') = '' THEN 1 ELSE 6 END, @TIPO_MOVIMENTO, @LOTE_LANCAMENTO, @TIPO_COMPROVANTE) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO' GOTO ERROR END END SELECT @DATA_CAIXA = RIGHT(CONVERT(CHAR(3), DAY(@DATA_VENDA) + 100, 12), 2 /*#19#*/) + CASE WHEN MONTH(@DATA_VENDA) > 9 THEN CHAR(55 + MONTH(@DATA_VENDA)) ELSE CONVERT(CHAR(1), MONTH(@DATA_VENDA)) END + RIGHT(CHAR(65 + CONVERT(INT, RIGHT(CONVERT(VARCHAR, YEAR(@DATA_VENDA)), 2)) - 10), 1) /*#17#*/ --RIGHT(STR(YEAR(@DATA_VENDA)), 1) -- NÃO GERAR OS FECHAMENTO SE O LANCAMENTO ESTIVER NULL /*ABRE OS CAIXAS DE 99 PRA RT*/ UPDATE LOJA_CAIXA_LANCAMENTOS SET TIPO_LANCAMENTO_CAIXA = 'RT' WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND TIPO_LANCAMENTO_CAIXA = '99' IF @@ERROR > 0 BEGIN SELECT @ERRMSG = 'OCORREU UM ERRO AO ABRIR O CAIXA.' GOTO ERROR END /*ABRE OS CAIXAS DE 99 PRA RT QUE FALTARAM*/ INSERT INTO LOJA_CAIXA_LANCAMENTOS (DATA, CODIGO_FILIAL, TERMINAL, LANCAMENTO_CAIXA, TIPO_LANCAMENTO_CAIXA, DIGITACAO, ENTRADA_CAIXA, SAIDA_CAIXA, HISTORICO, VALOR_CANCELADO, PERIODO_FECHAMENTO, CTB_LANCAMENTO, EMPRESA) SELECT DISTINCT @DATA_VENDA, @CODIGO_FILIAL, A.TERMINAL, @DATA_CAIXA + 'R' + A.PERIODO_FECHAMENTO, 'RT', @HOJE1, 0, 0, 'FECHAMENTO DE CAIXA PELA CONTABILIDADE', 0, A.PERIODO_FECHAMENTO, @LANCAMENTO, @EMPRESA FROM LOJA_CAIXA_LANCAMENTOS A LEFT JOIN (SELECT CODIGO_FILIAL, TERMINAL, PERIODO_FECHAMENTO FROM LOJA_CAIXA_LANCAMENTOS WHERE CODIGO_FILIAL = @CODIGO_FILIAL AND DATA = @DATA_VENDA AND TIPO_LANCAMENTO_CAIXA = 'RT' GROUP BY CODIGO_FILIAL, TERMINAL, PERIODO_FECHAMENTO, TIPO_LANCAMENTO_CAIXA) B ON A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TERMINAL = B.TERMINAL AND A.PERIODO_FECHAMENTO = B.PERIODO_FECHAMENTO WHERE A.CODIGO_FILIAL = @CODIGO_FILIAL AND A.DATA = @DATA_VENDA AND A.TIPO_LANCAMENTO_CAIXA = '00' AND B.CODIGO_FILIAL IS NULL AND NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS AS TST WHERE TST.DATA = @DATA_VENDA AND TST.CODIGO_FILIAL = @CODIGO_FILIAL AND TST.TERMINAL = A.TERMINAL AND TST.LANCAMENTO_CAIXA = ( @DATA_CAIXA + 'R' + A.PERIODO_FECHAMENTO )) IF @@ERROR > 0 BEGIN SELECT @ERRMSG = 'OCORREU UM ERRO AO INCLUIR A ABERTURA DE CAIXA.' GOTO ERROR END /*FECHA OS CAIXAS DESTE TIPO DE PAGAMENTO*/ -- #3# INSERT INTO LOJA_CAIXA_LANCAMENTOS (DATA, CODIGO_FILIAL, TERMINAL, LANCAMENTO_CAIXA, TIPO_LANCAMENTO_CAIXA, DIGITACAO, ENTRADA_CAIXA, SAIDA_CAIXA, HISTORICO, VALOR_CANCELADO, PERIODO_FECHAMENTO, CTB_LANCAMENTO, EMPRESA) SELECT DISTINCT DATA = @DATA_VENDA, CODIGO_FILIAL = @CODIGO_FILIAL, TERMINAL = TERMINAL, LANCAMENTO_CAIXA = @DATA_CAIXA + CAST(@LOCALIDADE AS VARCHAR(1)) + -- CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE --WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END, CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, TIPO_LANCAMENTO_CAIXA = 'F' + --CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END, CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, DIGITACAO = @HOJE1, ENTRADA_CAIXA = 0, SAIDA_CAIXA = 0, HISTORICO = 'FECHAMENTO DE CAIXA PELA CONTABILIDADE', VALOR_CANCELADO = 0, PERIODO_FECHAMENTO = '01', CTB_LANCAMENTO = @LANCAMENTO, EMPRESA = @EMPRESA FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL GROUP BY TERMINAL IF @@ERROR > 0 BEGIN SELECT @ERRMSG = 'OCORREU UM ERRO AO INCLUIR O FECHAMENTO DE CAIXA.' GOTO ERROR END SELECT @TIPO_MOVIMENTO = CASE WHEN @LOCALIDADE = 0 THEN @TIPO_MOVIMENTO ELSE @MOVIMENTO_PADRAO END SELECT @WHILE_FECHA = CAST(@LOCALIDADE AS VARCHAR(10)) + '-' + CAST(@TIPO_MOVIMENTO AS VARCHAR(10)) END SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN ABS(@VALOR_ITEM) ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN ABS(@VALOR_ITEM) ELSE 0 END SELECT @MOEDA = ISNULL(CASE WHEN ISNULL(LTRIM(RTRIM(@MOEDA)), '') = '' THEN @MOEDA_PADRAO ELSE @MOEDA END, @MOEDA_PADRAO) IF @TIPO_PGTO IN ( 'M', 'U' ) BEGIN SELECT @DEBITO_MOEDA = CASE WHEN @CREDITO_DEBITO = 'D' THEN ABS(ISNULL(@VALOR_MOEDA_CUR, @VALOR_ITEM)) ELSE 0 END SELECT @CREDITO_MOEDA = CASE WHEN @CREDITO_DEBITO = 'C' THEN ABS(ISNULL(@VALOR_MOEDA_CUR, @VALOR_ITEM)) ELSE 0 END SELECT @CAMBIO_NA_DATA = CASE WHEN @VALOR_ITEM > 0 AND @VALOR_MOEDA_CUR > 0 THEN CAST(ABS(@VALOR_ITEM) / ABS(@VALOR_MOEDA_CUR) AS DECIMAL(19, 6)) ELSE 1.00 END END ELSE BEGIN SELECT @DEBITO_MOEDA = CASE WHEN @CREDITO_DEBITO = 'D' THEN ABS(@VALOR_ITEM) ELSE 0 END SELECT @CREDITO_MOEDA = CASE WHEN @CREDITO_DEBITO = 'C' THEN ABS(@VALOR_ITEM) ELSE 0 END SELECT @CAMBIO_NA_DATA = 1.00000 END IF @CODIGO_CLIENTE_CADASTRAR_CUR IS NOT NULL AND (SELECT RTRIM(ISNULL(CPF_CGC, '0')) AS CPF_CGC FROM CLIENTES_VAREJO WHERE CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR) <> '' BEGIN IF (SELECT ISNULL(COUNT(*), 0) FROM CADASTRO_CLI_FOR WHERE CGC_CPF IN (SELECT CPF_CGC FROM CLIENTES_VAREJO WHERE CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR)) = 0 BEGIN -- BUSCA SEQUENCIA SELECT @SEQUENCIA = NULL WHILE @SEQUENCIA IS NULL BEGIN EXEC LX_SEQUENCIAL 'CLIENTES_ATACADO.CLIFOR', NULL, @SEQUENCIA= @SEQUENCIA OUTPUT IF (SELECT ISNULL(COUNT(*), 0) FROM CADASTRO_CLI_FOR WHERE COD_CLIFOR = @SEQUENCIA) > 0 SELECT @SEQUENCIA = NULL END -- FIM BUSCA SEQUENCIA -- INCLUSAO SELECT @INDICADOR_FISCAL_TERCEIRO_VAREJO = NULL IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM SYSOBJECTS WHERE NAME = 'FX_OBJ_BUSCA_INDICADOR_LOJA') SELECT @INDICADOR_FISCAL_TERCEIRO_VAREJO = DBO.FX_OBJ_BUSCA_INDICADOR_LOJA(@CODIGO_CLIENTE_CADASTRAR_CUR) SELECT @COD_MUNICIPIO_IBGE = B.COD_MUNICIPIO_IBGE, @COD_MUNICIPIO_IBGE_ENTREGA = B.COD_MUNICIPIO_IBGE, @COD_MUNICIPIO_IBGE_COBRANCA = B.COD_MUNICIPIO_IBGE FROM CLIENTES_VAREJO A --JOIN LCF_LX_MUNICIPIO B ON A.CIDADE = B.DESC_MUNICIPIO JOIN LCF_LX_MUNICIPIO B ON UPPER(A.CIDADE) COLLATE SQL_LATIN1_GENERAL_CP1251_CI_AS = UPPER(B.DESC_MUNICIPIO) COLLATE SQL_LATIN1_GENERAL_CP1251_CI_AS JOIN LCF_LX_UF C ON B.ID_UF = C.ID_UF WHERE A.CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR IF @COD_MUNICIPIO_IBGE IS NULL BEGIN SELECT @COD_MUNICIPIO_IBGE = B.COD_MUNICIPIO_IBGE, @COD_MUNICIPIO_IBGE_ENTREGA = B.COD_MUNICIPIO_IBGE, @COD_MUNICIPIO_IBGE_COBRANCA = B.COD_MUNICIPIO_IBGE FROM FILIAIS A JOIN CADASTRO_CLI_FOR CCL ON A.COD_FILIAL = CCL.COD_CLIFOR --JOIN LCF_LX_MUNICIPIO B ON CCL.CIDADE = B.DESC_MUNICIPIO JOIN LCF_LX_MUNICIPIO B ON UPPER(CCL.CIDADE) COLLATE SQL_LATIN1_GENERAL_CP1251_CI_AS = UPPER(B.DESC_MUNICIPIO) COLLATE SQL_LATIN1_GENERAL_CP1251_CI_AS JOIN LCF_LX_UF C ON B.ID_UF = C.ID_UF WHERE A.FILIAL = @FILIAL END INSERT CADASTRO_CLI_FOR (NOME_CLIFOR, CLIFOR, CGC_CPF, RAZAO_SOCIAL, PJ_PF, RG_IE, UF, COBRANCA_UF, ENTREGA_UF, CADASTRAMENTO, COBRANCA_IE, INDICA_FORNECEDOR, INDICA_CLIENTE, IND_REPRESENTANTE, INDICA_FILIAL, ENTREGA_CGC, ENTREGA_IE, INATIVO, ISENTO_IPI, ISENTO_ICMS, ACEITA_DIAS_FIXO, COD_CLIFOR, INDICADOR_FISCAL_TERCEIRO, COBRANCA_CGC, PAIS, COBRANCA_PAIS, ENTREGA_PAIS, CIDADE, COD_MUNICIPIO_IBGE, COD_MUNICIPIO_IBGE_ENTREGA, COD_MUNICIPIO_IBGE_COBRANCA) SELECT ISNULL(A.CPF_CGC, 'Z' + @SEQUENCIA), @SEQUENCIA, ISNULL(A.CPF_CGC, 'Z' + @SEQUENCIA), A.CLIENTE_VAREJO, CASE WHEN PF_PJ = 1 THEN 0 ELSE 1 END, ISNULL(A.RG_IE, 'Z' + @SEQUENCIA), ISNULL(B.UF, ISNULL(@ESTADO_PADRAO, 'SP')), ISNULL(B.UF, ISNULL(@ESTADO_PADRAO, 'SP')), ISNULL(B.UF, ISNULL(@ESTADO_PADRAO, 'SP')), GETDATE(), ISNULL(A.RG_IE, 'Z' + @SEQUENCIA), 0, 1, 0, 0, ISNULL(A.CPF_CGC, 'Z' + @SEQUENCIA), ISNULL(A.RG_IE, 'Z' + @SEQUENCIA), 0, 0, 0, 0, @SEQUENCIA, ISNULL(@INDICADOR_FISCAL_TERCEIRO_VAREJO, CASE WHEN @TIPO_VAREJO IS NULL THEN 8 ELSE ( CASE WHEN RTRIM(@TIPO_VAREJO) = RTRIM(A.TIPO_VAREJO) THEN 2 ELSE 8 END ) END), ISNULL(A.CPF_CGC, 'Z' + @SEQUENCIA), @PAIS_PADRAO, @PAIS_PADRAO, @PAIS_PADRAO, A.CIDADE, @COD_MUNICIPIO_IBGE, @COD_MUNICIPIO_IBGE_ENTREGA, @COD_MUNICIPIO_IBGE_COBRANCA FROM CLIENTES_VAREJO A LEFT JOIN UNIDADES_FEDERACAO B ON A.UF = B.UF WHERE A.CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR IF @@ERROR <> 0 GOTO ERROR INSERT CLIENTES_ATACADO (CLIENTE_ATACADO, COD_CLIENTE, CONDICAO_PGTO, REGIAO, FILIAL, PONTUALIDADE, TRANSPORTADORA, CONCEITO, TIPO, TIPO_BLOQUEIO, CGC_CPF, CLIFOR, FRETE_A_PAGAR, SEM_CREDITO, ACEITA_JUNTAR_PED, INATIVO, EXPEDICAO_COMPLETO_PEDIDO, EXPEDICAO_COMPLETO_PACK, EXPEDICAO_COMPLETO_TAMANHOS, EXPEDICAO_COMPLETO_COR, EXPEDICAO_COMPLETO_COORDENADO, EXPEDICAO_COMPLETO_CARTELA, EXPEDICAO_COMPLETO_FAIXAS, EXPEDICAO_ADEQUACAO_TAMANHO, EXPEDICAO_ADEQUACAO_COR, MULTI_DESCONTO_ACUMULAR, INDICADOR_VENDA, CTB_CONTA_CONTABIL) SELECT ISNULL(CPF_CGC, 'Z' + @SEQUENCIA), @SEQUENCIA, @COND_PGTO_PADRAO,-- CONDICAO DE PAGAMENTO @REGIAO_PADRAO,-- REGIAO @FILIAL,-- FILIAL @PONTUALIDADE_PADRAO,-- PONTUALIDADAE @TRANSPORTADORA_PADRAO,-- TRANSPORTADORA @CONCEITO_PADRAO,-- CONCEITO @TIPO_PADRAO,-- TIPO @TIPO_BLOQUEIO_PADRAO,-- TIPO BLOQUEIO ISNULL(CPF_CGC, 'Z' + @SEQUENCIA),-- CGC_CPF @SEQUENCIA,-- CLIFOR 0,-- FRETE A PAGAR 0,-- SEM CREDITO 0,-- ACEITA JUNTAR PED 0,-- INATIVO 0,-- EXPEDICAO_COMPLETO_PEDIDO 0,--EXPEDICAO_COMPLETO_PACK 0,-- EXPEDICAO_COMPLETO_TAMANHOS 0,-- EXPEDICAO_COMPLETO_COR 0,-- EXPEDICAO_COMPLETO_COORDENADO 0,-- EXPEDICAO_COMPLETO_CARTELA 0,-- EXPEDICAO_COMPLETO_FAIXAS 0,-- EXPEDICAO_ADEQUQCAO_TAMANHO 0,-- EXPEDICAO_ADEQUQCAO_COR 0,-- MULTI_DESCONTO_ACUMULAR '',-- INDICADOR_VENDA, @CONTA_CONTABIL_CLI FROM CLIENTES_VAREJO WHERE CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR IF @@ERROR <> 0 GOTO ERROR SELECT @COD_CLIFOR_NOVO = COD_CLIFOR FROM CADASTRO_CLI_FOR WHERE COD_CLIFOR = @SEQUENCIA -- FIM INCLUSAO END ELSE BEGIN SELECT @COD_CLIFOR_NOVO = COD_CLIFOR FROM (SELECT TOP 1 COD_CLIFOR FROM CADASTRO_CLI_FOR WHERE CGC_CPF IN (SELECT CPF_CGC FROM CLIENTES_VAREJO WHERE CODIGO_CLIENTE = @CODIGO_CLIENTE_CADASTRAR_CUR)) A END END /*GERA O ITEM DO LANÇAMENTO*/ IF ( @LX_TIPO_LANCAMENTO NOT IN ( 'ITR', 'IAD' ) --AND @TIPO_PGTO NOT IN ( '&', 'R', 'X', '@', 'Q' /*#20#*/ /*#37#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) AND @VALOR_ITEM <> 0 ) OR ( @LX_TIPO_LANCAMENTO = 'DVV' --AND @TIPO_PGTO IN ( '&', '@' /*#20#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/, '\' /*#63#*/ ) AND @VALOR_ITEM <> 0 ) BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, --SUB_ITEM, /*#32#*/ COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA, CAMBIO_NA_DATA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, --@SUB_ITEM_CHEQUE + 1, /*#32#*/ CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO_MOEDA, @CREDITO_MOEDA, 1, @HOJE1, 1, @CAMBIO_NA_DATA) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END END /*GERA O CURSOR DAS PARCELAS DA VENDA*/ DECLARE CUR_LOJA_VENDA_PARCELAS CURSOR LOCAL FAST_FORWARD FOR SELECT A.TICKET, A.PEDIDO, /*#27#*/ A.PARCELA, A.CODIGO_CLIENTE, A.CHEQUE_CARTAO, A.VALOR, A.AGENCIA, A.BANCO, A.VENCIMENTO, A.CONTA_CORRENTE, A.NUMERO_LOTE, A.NUMERO_APROVACAO_CARTAO, ISNULL(A.NUMERO_TITULO, 'INDEFINIDO'), A.PARCELAS_CARTAO, A.VALOR, A.TERMINAL, A.LANCAMENTO_CAIXA, C.INDICA_ID_CONTABIL_TERCEIRO, A.NUMERO_CUPOM_FISCAL, A.CHEQUE_CARTAO_QUITADO, A.JUROS, A.LX_TIPO_LANCAMENTO_BAIXA FROM #CTB_MOVIMENTO_LOJAS A JOIN CTB_LANC_PADRAO_ITEM B ON A.LANCAMENTO_PADRAO = B.LANCAMENTO_PADRAO AND A.TIPO_PGTO = B.TIPO_PGTO AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(B.CODIGO_ADMINISTRADORA, CHAR(0)) AND ( ( A.VALOR >= 0 AND ISNULL(B.TIPO_PGTO_NEGATIVO, 0) = 0 ) OR ( A.VALOR < 0 AND ( B.TIPO_PGTO_NEGATIVO = 1 OR NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM X WHERE X.LANCAMENTO_PADRAO = A.LANCAMENTO_PADRAO AND X.TIPO_PGTO = A.TIPO_PGTO AND X.TIPO_PGTO_NEGATIVO = 1) ) ) ) JOIN CTB_LX_LANCAMENTO_TIPO C ON B.LX_TIPO_LANCAMENTO = C.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO WHERE A.DATA_VENDA = @DATA_VENDA AND A.FILIAL = @FILIAL AND A.TIPO_PGTO = @TIPO_PGTO AND NOT ( B.LX_TIPO_LANCAMENTO = 'IAD' --AND A.TIPO_PGTO IN ( 'R', '&', '@', 'Q' /*#20#*/ /*#37#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) ) ) AND A.EMPRESA = @EMPRESA AND A.LOCALIDADE = @LOCALIDADE AND B.LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO AND CASE WHEN @CODIGO_CLIENTE_CADASTRAR_CUR IS NOT NULL THEN A.CODIGO_CLIENTE ELSE '' END = ISNULL(@CODIGO_CLIENTE_CADASTRAR_CUR, '') AND ISNULL(CASE WHEN ISNULL(LTRIM(RTRIM(A.MOEDA)), '') = '' THEN @MOEDA_PADRAO ELSE A.MOEDA END, @MOEDA_PADRAO) = @MOEDA AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(@CODIGO_ADMINISTRADORA, CHAR(0)) AND CASE WHEN ISNULL(@NAO_AGRUPA_CARTAO, 0) = 1 AND A.TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN ISNULL(RTRIM(LANCAMENTO_CAIXA) + '##' + RTRIM(NUMERO_TITULO) + RTRIM(PARCELA), '') WHEN ISNULL(@NAO_AGRUPA_CHEQUE, 0) = 1 AND A.TIPO_PGTO IN ( 'C', 'P' ) THEN ISNULL(RTRIM(LANCAMENTO_CAIXA) + '##' + RTRIM(NUMERO_TITULO) + RTRIM(PARCELA), '') ELSE '' END = ISNULL(@LANCAMENTO_CAIXA_ICR_CUR, '') ORDER BY A.VALOR OPEN CUR_LOJA_VENDA_PARCELAS FETCH NEXT FROM CUR_LOJA_VENDA_PARCELAS INTO @TICKET, @PEDIDO /*#27#*/, @PARCELA, @CODIGO_CLIENTE, @CHEQUE_CARTAO, @VALOR, @AGENCIA, @BANCO, @VENCIMENTO, @CONTA_CORRENTE, @NUMERO_LOTE, @NUMERO_APROVACAO_CARTAO, @NUMERO_TITULO, @PARCELAS_CARTAO, @VALOR, @TERMINAL, @LANCAMENTO_CAIXA, @INDICA_ID_CONTABIL_TERCEIRO, @NUMERO_CUPOM_FISCAL_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS, @LX_TIPO_LANCAMENTO_BAIXA_CUR WHILE @@FETCH_STATUS = 0 BEGIN SELECT @NUMERO_PARCELAS = 1 SELECT @VALOR_PARCELA = @VALOR SELECT @VALOR_TOTAL = @VALOR SELECT @PARCELAMENTO = 1 SELECT @TAXA_ADMINISTRACAO = 0 SELECT @INDICA_CARTAO = 0 SELECT @VENC_POR_ADM = 0 SELECT @VALOR_FALTANTE = 0.00 /*INCLUI CHEQUES E CARTÕES DE VENDA*/ IF @LX_TIPO_LANCAMENTO IN ( 'ICH', 'ICR' ) /*AND @TIPO_PGTO IN ( 'C', 'P', 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) */ BEGIN /*SE FOREM CARTÕES*/ /* IF @TIPO_PGTO IN ( 'A', '+' /*#68#*/, 'E', 'I', 'B', 'K', 'H' ) BEGIN */ SELECT @INDICA_CARTAO = 1 SELECT @DIAS_ENTRE_PARCELAS = NULL SELECT @PARCELAS_MES_FECHADO = NULL SELECT @TAXA_ADMINISTRACAO = 0 SELECT @DIA_ACERTO = NULL SELECT @DIAS_ENTRE_PARCELAS = ISNULL(B.DIAS_ENTRE_PARCELAS, ISNULL(A.DIAS_ENTRE_PARCELAS, 0)), @PARCELAS_MES_FECHADO = ISNULL(B.PARCELAS_MES_FECHADO, ISNULL(A.PARCELAS_MES_FECHADO, 0)), @DIA_ACERTO = ISNULL(B.DIA_ACERTO, ISNULL(A.DIA_ACERTO, 0)), @TAXA_ADMINISTRACAO = ISNULL(B.TAXA_ADMINISTRACAO, ISNULL(A.TAXA_ADMINISTRACAO, 0)), @TIPO_CARTAO = A.TIPO_CARTAO, @INDICA_VENCIMENTO_FIXO = ISNULL(A.INDICA_VENCIMENTO_FIXO, 0), @INDICA_CALCULO_APRESENTACAO = ISNULL(B.INDICA_CALCULO_APRESENTACAO, A.INDICA_CALCULO_APRESENTACAO),--#6# /*#23#*/ @PARCELA_UNICA = B.PARCELA_UNICA, @PARCELA_UNICA_INICIAL = B.PARCELA_UNICA_INICIAL FROM ADMINISTRADORAS_CARTAO AS A LEFT JOIN ADMINISTRADORAS_CARTAO_TARIFA AS B ON ( A.CODIGO_ADMINISTRADORA = B.CODIGO_ADMINISTRADORA AND B.ID_TARIFA = DBO.FX_ITEM_ADMINISTRADORA_CARTAO(A.CODIGO_ADMINISTRADORA, @COD_FILIAL, CASE WHEN @PARCELAS_CARTAO > 1 THEN @PARCELAS_CARTAO ELSE 0 END, CASE WHEN @PARCELAS_CARTAO > 1 THEN 0 ELSE DATEDIFF(DD, @DATA_VENDA, @VENCIMENTO) END) ) WHERE A.CODIGO_ADMINISTRADORA = @CODIGO_ADMINISTRADORA SELECT @VALOR_PARCELA = CONVERT(NUMERIC(14, 2), @VALOR_PARCELA / @PARCELAS_CARTAO) SELECT @NUMERO_PARCELAS = @PARCELAS_CARTAO IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM PARAMETROS WHERE PARAMETRO = 'UTILIZA_ADM_PARA_VENC' AND VALOR_ATUAL = '.T.') BEGIN SELECT @VENC_POR_ADM = 1 IF NOT ( @DIA_ACERTO = 0 AND @DATA_VENDA < @VENCIMENTO ) SELECT @VENCIMENTO = @DATA_VENDA + @DIA_ACERTO /*#23#*/ IF @PARCELAMENTO = @PARCELA_UNICA_INICIAL SELECT @VENCIMENTO_INICIAL = @VENCIMENTO END --END SELECT @VALOR_IMPOSTO_CARTAO = 0.00 IF @BASE_SEM_IMPOSTO = 1 AND @LX_TIPO_LANCAMENTO = 'ICR' BEGIN SELECT @VALOR_IMPOSTO_CARTAO = SUM(VALOR_IMPOSTO) FROM (SELECT VALOR_IMPOSTO = ROUND(( CAST(CASE WHEN A.ALIQUOTA > 0 THEN SUM(( ( ( QTDE ) * PRECO_LIQUIDO ) * PORC_TIPO ) * FATOR_VENDA_LIQ) - ( CASE WHEN A.ALIQUOTA > 0 AND SUM(( ( ( QTDE ) * PRECO_LIQUIDO ) * PORC_TIPO ) * FATOR_VENDA_LIQ) > 0 THEN SUM (( ( ( QTDE ) * PRECO_LIQUIDO ) * PORC_TIPO ) * FATOR_VENDA_LIQ) / ( 1 + ( A.ALIQUOTA / 100 ) ) ELSE 0.00 END ) ELSE 0.00 END AS DECIMAL(19, 2)) ), 0) -- ROUND((CAST(CASE WHEN A.ALIQUOTA > 0 THEN SUM((((QTDE-ISNULL(QTDE_BRINDE,0.00)) * PRECO_LIQUIDO)*PORC_TIPO)*FATOR_VENDA_LIQ) - (CASE WHEN A.ALIQUOTA > 0 AND SUM((((QTDE-ISNULL(QTDE_BRINDE,0.00)) * PRECO_LIQUIDO)*PORC_TIPO)*FATOR_VENDA_LIQ) > 0 THEN SUM((((QTDE-ISNULL(QTDE_BRINDE,0.00)) * PRECO_LIQUIDO)*PORC_TIPO)*FATOR_VENDA_LIQ)/(1+(A.ALIQUOTA/100)) ELSE 0.00 END) ELSE 0.00 END AS DECIMAL(19,2))),0) -- ROUND(CAST(CASE WHEN A.ALIQUOTA > 0 THEN SUM((QTDE * PRECO_LIQUIDO)*FATOR_VENDA_LIQ) - (CASE WHEN A.ALIQUOTA > 0 AND SUM((QTDE * PRECO_LIQUIDO)*FATOR_VENDA_LIQ) > 0 THEN SUM((QTDE * PRECO_LIQUIDO)*FATOR_VENDA_LIQ)/(1+(A.ALIQUOTA/100)) ELSE 0.00 END) ELSE 0.00 END AS DECIMAL(19,2)),0) FROM LOJA_VENDA_PRODUTO A (NOLOCK) JOIN LOJA_VENDA B (NOLOCK) ON A.TICKET = B.TICKET AND A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.DATA_VENDA = B.DATA_VENDA JOIN (SELECT A.TERMINAL, A.LANCAMENTO_CAIXA, A.CODIGO_FILIAL, TIPO_PGTO, VALOR_PAGO, VALOR, PORC_TIPO = CASE WHEN VALOR_PAGO > 0 THEN VALOR / VALOR_PAGO ELSE 0 END FROM LOJA_VENDA_PARCELAS A (NOLOCK) JOIN LOJA_VENDA B (NOLOCK) ON A.TERMINAL = B.TERMINAL AND A.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA AND A.CODIGO_FILIAL = B.CODIGO_FILIAL JOIN LOJAS_VAREJO C (NOLOCK) ON B.CODIGO_FILIAL = C.CODIGO_FILIAL JOIN FILIAIS D (NOLOCK) ON C.FILIAL = D.FILIAL WHERE A.TIPO_PGTO = @TIPO_PGTO AND A.TERMINAL = @TERMINAL AND B.DATA_VENDA = @DATA_VENDA AND D.COD_FILIAL = @COD_FILIAL AND B.TICKET = @TICKET AND A.CHEQUE_CARTAO = ISNULL(@CHEQUE_CARTAO, '')) C ON B.TERMINAL = C.TERMINAL AND B.LANCAMENTO_CAIXA = C.LANCAMENTO_CAIXA AND B.CODIGO_FILIAL = C.CODIGO_FILIAL JOIN LOJAS_VAREJO D (NOLOCK) ON B.CODIGO_FILIAL = D.CODIGO_FILIAL JOIN FILIAIS F (NOLOCK) ON D.FILIAL = F.FILIAL WHERE F.COD_FILIAL = @COD_FILIAL AND B.TERMINAL = @TERMINAL AND B.DATA_VENDA = @DATA_VENDA AND B.TICKET = @TICKET GROUP BY A.ALIQUOTA) A SELECT @VALOR_IMPOSTO_CARTAO = CAST(@VALOR_IMPOSTO_CARTAO / @PARCELAMENTO AS DECIMAL(19, 2)) END IF @INDICA_VENCIMENTO_FIXO = 1 BEGIN SELECT @VENCIMENTO = CASE WHEN A.MES_SUBSEQUENTE = 1 THEN DATEADD(M, 1, A.DATA_PERIODO) ELSE A.DATA_PERIODO END FROM (SELECT DATA_PERIODO = CASE WHEN DAY(@DATA_VENDA) BETWEEN A.DATA_INICIAL AND A.DATA_FINAL THEN SUBSTRING(CONVERT(VARCHAR(8), @DATA_VENDA, 112), 1, 6) + RIGHT(RTRIM(LTRIM(REPLICATE('0', 2) + CAST(A.VENCIMENTO AS CHAR(2)))), 2) END, MES_SUBSEQUENTE FROM ADMINISTRADORAS_CARTAO_REEMBOLSO AS A INNER JOIN ADMINISTRADORAS_CARTAO AS B ON A.CODIGO_ADMINISTRADORA = B.CODIGO_ADMINISTRADORA LEFT JOIN ADMINISTRADORAS_CARTAO_TARIFA AS C ON A.CODIGO_ADMINISTRADORA = C.CODIGO_ADMINISTRADORA AND ( C.ID_TARIFA = DBO.FX_ITEM_ADMINISTRADORA_CARTAO(A.CODIGO_ADMINISTRADORA, @COD_FILIAL, CASE WHEN @PARCELAS_CARTAO > 1 THEN @PARCELAS_CARTAO ELSE 0 END, CASE WHEN @PARCELAS_CARTAO > 1 THEN 0 ELSE DATEDIFF(DD, @DATA_VENDA, @VENCIMENTO) END) ) WHERE A.CODIGO_ADMINISTRADORA = @CODIGO_ADMINISTRADORA AND DAY(@DATA_VENDA) BETWEEN A.DATA_INICIAL AND A.DATA_FINAL) A /*#23#*/ IF @PARCELAMENTO = @PARCELA_UNICA_INICIAL SELECT @VENCIMENTO_INICIAL = @VENCIMENTO END SELECT @DATA_APRESENTACAO = @DATA_VENDA, @DIA_APRESENTACAO = DAY(@DATA_VENDA) --#6# WHILE @NUMERO_PARCELAS >= @PARCELAMENTO BEGIN SELECT @SUB_ITEM_CHEQUE = @SUB_ITEM_CHEQUE + 1 --#6# IF @INDICA_CALCULO_APRESENTACAO = 1 BEGIN IF @PARCELAMENTO > 1 BEGIN IF @DIA_APRESENTACAO >= DAY(DATEADD(DD, -1, DATEADD(MM, 2, LEFT(CONVERT(VARCHAR(10), @DATA_APRESENTACAO, 112), 6) + '01'))) SELECT @DATA_APRESENTACAO = DATEADD(DD, -1, DATEADD(MM, 2, LEFT(CONVERT(VARCHAR(10), @DATA_APRESENTACAO, 112), 6) + '01')) ELSE SELECT @DATA_APRESENTACAO = DATEADD(MM, 1, @DATA_APRESENTACAO) SELECT @VENCIMENTO = DATEADD(DD, @DIAS_ENTRE_PARCELAS, @DATA_APRESENTACAO) END ELSE BEGIN SELECT @VENCIMENTO = DATEADD(DD, @DIAS_ENTRE_PARCELAS, @DATA_APRESENTACAO) END END ELSE BEGIN IF @PARCELAMENTO > 1 IF @PARCELAS_MES_FECHADO = 1 OR @INDICA_VENCIMENTO_FIXO = 1 SELECT @VENCIMENTO = DATEADD(MM, 1, @VENCIMENTO) ELSE SELECT @VENCIMENTO = @VENCIMENTO + @DIAS_ENTRE_PARCELAS END /*#23#*/ IF @PARCELAMENTO = @PARCELA_UNICA_INICIAL SELECT @VENCIMENTO_INICIAL = @VENCIMENTO IF @PARCELAMENTO >= @PARCELA_UNICA AND @PARCELA_UNICA > 0 SELECT @VENCIMENTO = @VENCIMENTO_INICIAL SELECT @IMPOSTO_RETIDO = 0.000000 -- TRATAMENTO DOS IMPOSTOS RETIDOS (COLOMBIA) IF @BASE_SEM_IMPOSTO = 1 AND @LX_TIPO_LANCAMENTO = 'ICR' BEGIN SET @VALOR_TAXA_ADMINISTRACAO = ROUND(( @TAXA_ADMINISTRACAO * ( @VALOR_PARCELA - @VALOR_IMPOSTO_CARTAO ) ) / 100, 0) SELECT @VALOR_LTA = 0.00 SELECT @EXCECAO_LOJA = ISNULL(ID_EXCECAO_IMPOSTO, @EXCECAO_LOJA) FROM CTB_EXCECAO_IMPOSTO WHERE ID_EXCECAO_GRUPO = @GRUPO_LOJA AND COD_FILIAL = @COD_FILIAL -- TRATAMENTO IMPOSTO 33 SELECT @ID_IMPOSTO = 33 SELECT @TAXA_CALCULO = 0.00 SELECT @VALOR_IMPOSTO_TEMP = 0.00 SELECT @TAXA_CALCULO = ISNULL(TAXA_IMPOSTO, 0.00) FROM CTB_EXCECAO_IMPOSTO_ITEM WHERE ID_IMPOSTO = @ID_IMPOSTO AND ID_EXCECAO_IMPOSTO = @EXCECAO_LOJA SELECT @VALOR_IMPOSTO_TEMP = ROUND(( @VALOR_PARCELA - @VALOR_IMPOSTO_CARTAO ) * ( @TAXA_CALCULO / 1000 ), 0) SELECT @BASE_IMPOSTO = @VALOR_PARCELA - @VALOR_IMPOSTO_CARTAO SELECT @TAXA_IMPOSTO = @TAXA_CALCULO SELECT @ID_SUB_ITEM_LOJA = ID_SUB_ITEM_APURACAO FROM LF_SUB_ITEM_APURACAO WHERE ID_IMPOSTO = @ID_IMPOSTO AND SUB_ITEM_APURACAO = @SUB_ITEM_LOJA IF @TAXA_CALCULO > 0 BEGIN SELECT @IMPOSTO_RETIDO = @IMPOSTO_RETIDO + @VALOR_IMPOSTO_TEMP IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO) BEGIN INSERT #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, VALOR_IMPOSTO, ID_SUB_ITEM_APURACAO, TAXA_IMPOSTO, BASE_IMPOSTO) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, @ID_IMPOSTO, @VALOR_IMPOSTO_TEMP, @ID_SUB_ITEM_LOJA, @TAXA_IMPOSTO, @BASE_IMPOSTO ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR IMPOSTO PARA CARTAO' GOTO ERROR END END ELSE BEGIN UPDATE #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO SET VALOR_IMPOSTO = VALOR_IMPOSTO + @VALOR_IMPOSTO_TEMP, BASE_IMPOSTO = BASE_IMPOSTO + @BASE_IMPOSTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO END END -- FIM TRATAMENTO IMPOSTO 33 -- TRATAMENTO IMPOSTO 31 SELECT @ID_IMPOSTO = 31 SELECT @TAXA_CALCULO = 0.00 SELECT @VALOR_IMPOSTO_TEMP = 0.00 SELECT @TAXA_CALCULO = ISNULL(TAXA_IMPOSTO, 0.00) FROM CTB_EXCECAO_IMPOSTO_ITEM WHERE ID_IMPOSTO = @ID_IMPOSTO AND ID_EXCECAO_IMPOSTO = @EXCECAO_LOJA SELECT @VALOR_IMPOSTO_TEMP = ROUND(( @VALOR_IMPOSTO_CARTAO ) * ( @TAXA_CALCULO / 100 ), 0) SELECT @BASE_IMPOSTO = @VALOR_IMPOSTO_CARTAO SELECT @TAXA_IMPOSTO = @TAXA_CALCULO SELECT @ID_SUB_ITEM_LOJA = ID_SUB_ITEM_APURACAO FROM LF_SUB_ITEM_APURACAO WHERE ID_IMPOSTO = @ID_IMPOSTO AND SUB_ITEM_APURACAO = @SUB_ITEM_LOJA IF @TAXA_CALCULO > 0 BEGIN SELECT @IMPOSTO_RETIDO = @IMPOSTO_RETIDO + @VALOR_IMPOSTO_TEMP IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO) BEGIN INSERT #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, VALOR_IMPOSTO, ID_SUB_ITEM_APURACAO, BASE_IMPOSTO, TAXA_IMPOSTO) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, @ID_IMPOSTO, @VALOR_IMPOSTO_TEMP, @ID_SUB_ITEM_LOJA, @BASE_IMPOSTO, @TAXA_IMPOSTO ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR IMPOSTO PARA CARTAO' GOTO ERROR END END ELSE BEGIN UPDATE #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO SET VALOR_IMPOSTO = VALOR_IMPOSTO + @VALOR_IMPOSTO_TEMP, BASE_IMPOSTO = BASE_IMPOSTO + @BASE_IMPOSTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO END END -- FIM TRATAMENTO IMPOSTO 31 -- TRATAMENTO IMPOSTO 35 SELECT @ID_IMPOSTO = 35 SELECT @TAXA_CALCULO = 0.00 SELECT @VALOR_IMPOSTO_TEMP = 0.00 SELECT @TAXA_CALCULO = ISNULL(TAXA_IMPOSTO, 0.00) FROM CTB_EXCECAO_IMPOSTO_ITEM WHERE ID_IMPOSTO = @ID_IMPOSTO AND ID_EXCECAO_IMPOSTO = @EXCECAO_LOJA SELECT @VALOR_IMPOSTO_TEMP = ROUND(( @VALOR_PARCELA - @VALOR_IMPOSTO_CARTAO ) * ( @TAXA_CALCULO / 100 ), 0) SELECT @BASE_IMPOSTO = @VALOR_PARCELA - @VALOR_IMPOSTO_CARTAO SELECT @TAXA_IMPOSTO = @TAXA_CALCULO SELECT @ID_SUB_ITEM_LOJA = ID_SUB_ITEM_APURACAO FROM LF_SUB_ITEM_APURACAO WHERE ID_IMPOSTO = @ID_IMPOSTO AND SUB_ITEM_APURACAO = @SUB_ITEM_LOJA IF @TAXA_CALCULO > 0 BEGIN SELECT @IMPOSTO_RETIDO = @IMPOSTO_RETIDO + @VALOR_IMPOSTO_TEMP IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO) BEGIN INSERT #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, VALOR_IMPOSTO, ID_SUB_ITEM_APURACAO, BASE_IMPOSTO, TAXA_IMPOSTO) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, @ID_IMPOSTO, @VALOR_IMPOSTO_TEMP, @ID_SUB_ITEM_LOJA, @BASE_IMPOSTO, @TAXA_IMPOSTO ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR IMPOSTO PARA CARTAO' GOTO ERROR END END ELSE BEGIN UPDATE #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO SET VALOR_IMPOSTO = VALOR_IMPOSTO + @VALOR_IMPOSTO_TEMP, BASE_IMPOSTO = BASE_IMPOSTO + @BASE_IMPOSTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM AND ID_IMPOSTO = @ID_IMPOSTO AND TAXA_IMPOSTO = @TAXA_IMPOSTO END END -- TRATAMENTO IMPOSTO 35 END ELSE BEGIN SET @VALOR_TAXA_ADMINISTRACAO = ROUND(( @TAXA_ADMINISTRACAO * @VALOR_PARCELA ) / 100, 2) --#72# IF EXISTS(SELECT 1 FROM CTB_LANC_PADRAO_ITEM WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND LX_TIPO_LANCAMENTO = 'LTA' AND CODIGO_ADMINISTRADORA = @CODIGO_ADMINISTRADORA) INSERT INTO #CTB_LANCAMENTO_ITEM_LTA(CONTA_CONTABIL,VALOR) SELECT CONTA_CONTABIL,@VALOR_TAXA_ADMINISTRACAO FROM CTB_LANC_PADRAO_ITEM WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND LX_TIPO_LANCAMENTO = 'LTA' AND CODIGO_ADMINISTRADORA = @CODIGO_ADMINISTRADORA ELSE INSERT INTO #CTB_LANCAMENTO_ITEM_LTA(CONTA_CONTABIL,VALOR) SELECT CONTA_CONTABIL,@VALOR_TAXA_ADMINISTRACAO FROM CTB_LANC_PADRAO_ITEM WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND LX_TIPO_LANCAMENTO = 'LTA' AND CODIGO_ADMINISTRADORA IS NULL --#72#- FIM SELECT @VALOR_LTA = @VALOR_LTA + @VALOR_TAXA_ADMINISTRACAO END IF @TIPO_PGTO = 'P' BEGIN IF DATEDIFF(DD, @VENCIMENTO, @DATA_VENDA) < @DIAS_PRE_DATADO AND DATEDIFF(DD, @VENCIMENTO, @DATA_VENDA) > 0 BEGIN SELECT @ERRMSG = 'DATA DE VENCIMENTO INFERIOR AO LIMITE MÍNIMO DE DIAS PARA VENCIMENTO DO CHEQUE. CHEQUE: ' + LTRIM(RTRIM(@NUMERO_TITULO)) GOTO ERROR END END --IF @BAIXA_VALE_CLIENTE IS NOT NULL #3# IF @TIPO_PGTO_BAIXA IS NOT NULL BEGIN IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_CHEQUE_CARTAO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ISNULL(CMC7_CVCARTAO, '') = ISNULL(@CHEQUE_CARTAO, '') AND LOJA_LANCAMENTO_CAIXA = @LANCAMENTO_CAIXA AND VENDA_PARCELAMENTO = @PARCELAMENTO) BEGIN SELECT @ITEM_BAIXA_VALE = CASE WHEN @NAO_AGRUPA_CHEQUE = 0 THEN ISNULL(MIN(ITEM), @ITEM) ELSE @ITEM END, @SUB_ITEM_CHEQUE = MAX(ISNULL(SUB_ITEM, 0)) + 1 FROM #INTEGRA_LOJA_CTB_CHEQUE_CARTAO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND COD_CLIFOR = @COD_FILIAL SELECT @SUB_ITEM_CHEQUE = ISNULL(@SUB_ITEM_CHEQUE, 1) INSERT INTO #INTEGRA_LOJA_CTB_CHEQUE_CARTAO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CONTA_PORTADOR, LX_TIPO_DOCUMENTO, CODIGO_CONSUMIDOR, COD_FILIAL, CODIGO_ADMINISTRADORA, DATA_EMISSAO, VENDA_DOCUMENTO, LOJA_PARCELA, NUMERO_CHEQUE_CARTAO, DATA_DIGITACAO, VENDA_TOTAL_PARCELAMENTO, INDICA_CARTAO, CHEQUE_AGENCIA, VENCIMENTO, CHEQUE_CONTA_CORRENTE, PRORROGACAO, ORIGEM, VALOR_ORIGINAL, NUMERO_DEVOLUCOES, TAXA_ADMINISTRACAO, GUIA_ENVIO, CHEQUE_BANCO, VENDA_PARCELAMENTO, CMC7_CVCARTAO, DATA_PARA_TRANSFERENCIA, COD_CLIFOR, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, NUMERO_APROVACAO_CARTAO, LOJA_TIPO_PGTO, VALOR_ORIGINAL_PADRAO, MOEDA, CAMBIO_NA_DATA_EMISSAO, IMPOSTO_DEDUTIVEL, IMPOSTO_RETIDO, VALOR_A_RECEBER, LX_PARCELA, VENCIMENTO_REAL, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ VALUES (@EMPRESA, @LANCAMENTO, @ITEM_BAIXA_VALE, @SUB_ITEM_CHEQUE, @CONTA_CONTABIL, @LX_TIPO_DOCUMENTO, @CODIGO_CLIENTE, @COD_FILIAL, @CODIGO_ADMINISTRADORA, @DATA_VENDA, @TICKET, @PARCELA, @NUMERO_TITULO, @DATA_VENDA, @NUMERO_PARCELAS, @INDICA_CARTAO, @AGENCIA, @VENCIMENTO, @CONTA_CORRENTE, 0, 'L', @VALOR_PARCELA, --0,@VALOR_TAXA_ADMINISTRACAO,@NUMERO_LOTE,@BANCO,@PARCELAMENTO,@CHEQUE_CARTAO,GETDATE(),@COD_FILIAL,@TERMINAL,@LANCAMENTO_CAIXA, 0, @VALOR_TAXA_ADMINISTRACAO, CASE WHEN ISNUMERIC(@NUMERO_LOTE) = 0 THEN NULL ELSE @NUMERO_LOTE END, @BANCO, @PARCELAMENTO, @CHEQUE_CARTAO, GETDATE(), @COD_FILIAL, @TERMINAL, @LANCAMENTO_CAIXA, @NUMERO_APROVACAO_CARTAO, @TIPO_PGTO, @VALOR_PARCELA, @MOEDA, 1, @VALOR_IMPOSTO_CARTAO, @IMPOSTO_RETIDO, @VALOR_PARCELA - ISNULL(@VALOR_TAXA_ADMINISTRACAO, 0), CONVERT(CHAR(2), CASE WHEN @NUMERO_PARCELAS < 2 AND @TIPO_CARTAO = 0 THEN 'AV' /*VENDA A VISTA*/ WHEN @TIPO_CARTAO = 1 THEN 'VD' /* VENDA COM CARTÃO DE DÉBITO*/ ELSE RIGHT(CONVERT(VARCHAR(3), ( @PARCELAMENTO + 100 )), 2) END), --DBO.LX_DATA_REAL(@COD_FILIAL, @VENCIMENTO) ) CASE WHEN @TIPO_PGTO = '#' THEN @VENCIMENTO ELSE DBO.LX_DATA_REAL(@COD_FILIAL, @VENCIMENTO) END, /*#66#*/ --#65# - nao utilizar vencimento real, pois no crediario somente existe o vencimento @PEDIDO, /*#73#*/ NULL) /*#73#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_CHEQUE_CARTAO' GOTO ERROR END END ELSE BEGIN UPDATE #INTEGRA_LOJA_CTB_CHEQUE_CARTAO SET VALOR_ORIGINAL = VALOR_ORIGINAL + @VALOR_PARCELA, VALOR_ORIGINAL_PADRAO = VALOR_ORIGINAL + @VALOR_PARCELA, VALOR_A_RECEBER = VALOR_ORIGINAL + @VALOR_PARCELA, IMPOSTO_DEDUTIVEL = IMPOSTO_DEDUTIVEL + @VALOR_IMPOSTO_CARTAO, IMPOSTO_RETIDO = IMPOSTO_RETIDO + @IMPOSTO_RETIDO, TAXA_ADMINISTRACAO = TAXA_ADMINISTRACAO + @VALOR_TAXA_ADMINISTRACAO FROM #INTEGRA_LOJA_CTB_CHEQUE_CARTAO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ISNULL(CMC7_CVCARTAO, '') = ISNULL(@CHEQUE_CARTAO, '') AND CODIGO_CONSUMIDOR = @CODIGO_CLIENTE AND LOJA_LANCAMENTO_CAIXA = @LANCAMENTO_CAIXA AND VENDA_PARCELAMENTO = @PARCELAMENTO END END ELSE BEGIN INSERT INTO #INTEGRA_LOJA_CTB_CHEQUE_CARTAO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CONTA_PORTADOR, LX_TIPO_DOCUMENTO, CODIGO_CONSUMIDOR, COD_FILIAL, CODIGO_ADMINISTRADORA, DATA_EMISSAO, VENDA_DOCUMENTO, LOJA_PARCELA, NUMERO_CHEQUE_CARTAO, DATA_DIGITACAO, VENDA_TOTAL_PARCELAMENTO, INDICA_CARTAO, CHEQUE_AGENCIA, VENCIMENTO, CHEQUE_CONTA_CORRENTE, PRORROGACAO, ORIGEM, VALOR_ORIGINAL, NUMERO_DEVOLUCOES, TAXA_ADMINISTRACAO, GUIA_ENVIO, CHEQUE_BANCO, VENDA_PARCELAMENTO, CMC7_CVCARTAO, DATA_PARA_TRANSFERENCIA, COD_CLIFOR, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, NUMERO_APROVACAO_CARTAO, LOJA_TIPO_PGTO, VALOR_ORIGINAL_PADRAO, MOEDA, CAMBIO_NA_DATA_EMISSAO, IMPOSTO_DEDUTIVEL, IMPOSTO_RETIDO, VALOR_A_RECEBER, LX_PARCELA, VENCIMENTO_REAL, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ VALUES (@EMPRESA, @LANCAMENTO, @ITEM, @SUB_ITEM_CHEQUE, @CONTA_CONTABIL, @LX_TIPO_DOCUMENTO, @CODIGO_CLIENTE, @COD_FILIAL, @CODIGO_ADMINISTRADORA, @DATA_VENDA, @TICKET, @PARCELA, @NUMERO_TITULO, @DATA_VENDA, @NUMERO_PARCELAS, @INDICA_CARTAO, @AGENCIA, @VENCIMENTO, @CONTA_CORRENTE, 0, 'L', @VALOR_PARCELA, --0,@VALOR_TAXA_ADMINISTRACAO,@NUMERO_LOTE,@BANCO,@PARCELAMENTO,@CHEQUE_CARTAO,GETDATE(),@COD_FILIAL,@TERMINAL,@LANCAMENTO_CAIXA, 0, @VALOR_TAXA_ADMINISTRACAO, CASE WHEN ISNUMERIC(@NUMERO_LOTE) = 0 THEN NULL ELSE @NUMERO_LOTE END, @BANCO, @PARCELAMENTO, @CHEQUE_CARTAO, GETDATE(), @COD_FILIAL, @TERMINAL, @LANCAMENTO_CAIXA, @NUMERO_APROVACAO_CARTAO, @TIPO_PGTO, @VALOR_PARCELA, @MOEDA, 1, @VALOR_IMPOSTO_CARTAO, @IMPOSTO_RETIDO, @VALOR_PARCELA - ISNULL(@VALOR_TAXA_ADMINISTRACAO, 0), CONVERT(CHAR(2), CASE WHEN @NUMERO_PARCELAS < 2 AND @TIPO_CARTAO = 0 THEN 'AV' /*VENDA A VISTA*/ WHEN @TIPO_CARTAO = 1 THEN 'VD' /* VENDA COM CARTÃO DE DÉBITO*/ ELSE RIGHT(CONVERT(VARCHAR(3), ( @PARCELAMENTO + 100 )), 2) END), CASE WHEN @TIPO_PGTO = '#' THEN @VENCIMENTO ELSE DBO.LX_DATA_REAL(@COD_FILIAL, @VENCIMENTO) END, /*#66#*/ --#65# - nao utilizar vencimento real, pois no crediario somente existe o vencimento -- DBO.LX_DATA_REAL(@COD_FILIAL, @VENCIMENTO) ) @PEDIDO, /*#73#*/ NULL) /*#73#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_CHEQUE_CARTAO' GOTO ERROR END END /*AJUSTANDO TAXA*/ IF @LX_TIPO_LANCAMENTO <> 'ITR' BEGIN SELECT @VALOR_TAXA_ADMINISTRACAO = ISNULL(@VALOR_TAXA_ADMINISTRACAO, 0.00) SELECT @IMPOSTO_RETIDO = ISNULL(@IMPOSTO_RETIDO, 0.00) --IF @BAIXA_VALE_CLIENTE IS NOT NULL #3# IF @TIPO_PGTO_BAIXA IS NOT NULL BEGIN UPDATE A SET CREDITO = CREDITO - CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, DEBITO = DEBITO - CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, CREDITO_MOEDA = CREDITO_MOEDA - CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, DEBITO_MOEDA = DEBITO_MOEDA - CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A JOIN #INTEGRA_LOJA_CTB_CHEQUE_CARTAO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM /*#35#*/ --AND A.SUB_ITEM = B.SUB_ITEM /*#32#*/ --#35# WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND A.LX_TIPO_LANCAMENTO = 'ICR' AND ISNULL(B.CMC7_CVCARTAO, '') = ISNULL(@CHEQUE_CARTAO, '') AND B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE AND B.LOJA_LANCAMENTO_CAIXA = @LANCAMENTO_CAIXA AND B.VENDA_PARCELAMENTO = @PARCELAMENTO IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATAUALIZAR CTB_LANCAMENTO_ITEM' GOTO ERROR END /*#32#*/ UPDATE B SET B.ITEM = A.ITEM, B.SUB_ITEM = A.SUB_ITEM --#35# FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A JOIN #INTEGRA_LOJA_CTB_CHEQUE_CARTAO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM --#35# AND A.SUB_ITEM = B.SUB_ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND A.LX_TIPO_LANCAMENTO = 'ICR' AND ISNULL(B.CMC7_CVCARTAO, '') = ISNULL(@CHEQUE_CARTAO, '') AND B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE AND B.LOJA_LANCAMENTO_CAIXA = @LANCAMENTO_CAIXA AND B.VENDA_PARCELAMENTO = @PARCELAMENTO IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATAUALIZAR CTB_LANCAMENTO_ITEM' GOTO ERROR END /*#32#*/ END ELSE BEGIN UPDATE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM SET CREDITO = CREDITO - CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, DEBITO = DEBITO - CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, CREDITO_MOEDA = CREDITO_MOEDA - CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END, DEBITO_MOEDA = DEBITO_MOEDA - CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR_TAXA_ADMINISTRACAO + @IMPOSTO_RETIDO ELSE 0 END WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM /*#35#*/ --AND SUB_ITEM = @SUB_ITEM_CHEQUE /*#35#*/ AND LX_TIPO_LANCAMENTO = 'ICR' IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATAUALIZAR CTB_LANCAMENTO_ITEM' GOTO ERROR END END END SELECT @PARCELAMENTO = @PARCELAMENTO + 1 IF @PARCELAMENTO = @NUMERO_PARCELAS SELECT @VALOR_PARCELA = @VALOR_TOTAL - ( @VALOR_PARCELA * ( @PARCELAS_CARTAO - 1 ) ) END END --BACKUP AUXILIAR------------------------------- SELECT @RATEIO_CENTRO_CUSTO_BKP = @RATEIO_CENTRO_CUSTO, @CODIGO_HISTORICO_BKP = @CODIGO_HISTORICO, @HISTORICO_BKP = @HISTORICO, @CONTA_CONTABIL_BKP = @CONTA_CONTABIL, @INDICA_ID_CONTABIL_TERCEIRO_BKP = @INDICA_ID_CONTABIL_TERCEIRO --GUARDANDO BACKUP DO TIPO DE LANÇAMENTO SELECT @LX_TIPO_LANCAMENTO_BAK = @LX_TIPO_LANCAMENTO --SETANDO ITENS PARA AGRUPAMENTO CONTÁBIL SELECT @ITEM_BKP = @ITEM ----------------------------------------- --GUARDANDO BACKUP DO ITEM SELECT @LANCAMENTO_MOV = NULL, @ITEM_MOV = NULL, @SUB_ITEM_MOV = NULL IF @LX_TIPO_LANCAMENTO = 'BAC' BEGIN SET @LX_TIPOS_LANC_MOV = 'BAC' END /*SE FOR BAIXA DE VALE PRODUTO*/ IF @LX_TIPO_LANCAMENTO = 'BAC' --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) /*#37#*/ AND @VALOR > 0 BEGIN DELETE #CTB_AVISO_LANCAMENTO_BAIXA INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO <> @DATA_VENDA /*#26#*/ AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO /*#52#*/ ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC; /*#62#*/ IF EXISTS (SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO = 0 AND B.EMISSAO <> @DATA_VENDA AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO) BEGIN SET @AVISO_BAIXADO = 1; END ELSE BEGIN SET @AVISO_BAIXADO = 0; END /*#62#*/ /*#59#*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) --AND @TIPO_PGTO IN ('R','W','Y') AND @AVISO_BAIXADO = 0 /*#62#*/ BEGIN INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO <> @DATA_VENDA ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC; /*#62#*/ IF EXISTS (SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO = 0 AND B.EMISSAO <> @DATA_VENDA) BEGIN SET @AVISO_BAIXADO = 1; END ELSE BEGIN SET @AVISO_BAIXADO = 0; END /*#62#*/ END /*#59#*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) AND @AVISO_BAIXADO = 0 /*#62#*/ BEGIN INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN ( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND ( ( B.CODIGO_CONSUMIDOR IS NULL AND B.AVISO_LANCAMENTO = @NUMERO_TITULO AND ( LOJA_LANCAMENTO_CAIXA IS NOT NULL ) ) OR ( (B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE /*OR @TIPO_PGTO IN ('@', '&', 'W' /*#48#*/, 'Y', '>' /*#49#*/, '\' /*#63#*/)*/) --#29# /*#41#*/ AND B.AVISO_LANCAMENTO = @NUMERO_TITULO/*AND B.VALOR_AVISO >= ABS(@VALOR)*/ ) ) AND B.VALOR_AVISO > 0 AND B.EMISSAO <> @DATA_VENDA /*#26#*/ --AND B.LOJA_CHAVE = @CHEQUE_CARTAO /*#45# #47#*/ AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO /*#52#*/ ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC; /*#62#*/ IF EXISTS (SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN ( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND ( ( B.CODIGO_CONSUMIDOR IS NULL AND B.AVISO_LANCAMENTO = @NUMERO_TITULO AND ( LOJA_LANCAMENTO_CAIXA IS NOT NULL ) ) OR ( (B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE /*OR @TIPO_PGTO IN ('@', '&', 'W', 'Y', '>', '\' /*#63#*/)*/) AND B.AVISO_LANCAMENTO = @NUMERO_TITULO ) ) AND B.VALOR_AVISO = 0 AND B.EMISSAO <> @DATA_VENDA AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO AND 1=0)---RAFAEL BEGIN SET @AVISO_BAIXADO = 1; END ELSE BEGIN SET @AVISO_BAIXADO = 0; END /*#62#*/ END -- 29/07/2010 TIAGO CARVALHO: ADICIONADO "AND 1=0" PARA NÃO BAIXAR CRÉDITOS APENAS COM O CÓDIGO DO CLIENTE /* IF NOT EXISTS(SELECT 1 FROM #CTB_AVISO_LANCAMENTO_BAIXA) AND 1 = 0 BEGIN INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAC' AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND ( (B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE OR @TIPO_PGTO IN ('@', '&', 'W' /*#48#*/, 'Y', '>' /*#49#*/)) /*#29#*/ /*AND B.VALOR_AVISO >= ABS(@VALOR)*/ ) /*#41#*/ AND B.VALOR_AVISO > 0 ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC END */ --#56# DECLARE @EXISTE_MESMA_DATA BIT SET @EXISTE_MESMA_DATA = 0 SELECT @EXISTE_MESMA_DATA = 1 FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO IF @EXISTE_MESMA_DATA = 0 SELECT @EXISTE_MESMA_DATA = 1 FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN ( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND ( ( B.CODIGO_CONSUMIDOR IS NULL AND B.AVISO_LANCAMENTO = @NUMERO_TITULO AND ( LOJA_LANCAMENTO_CAIXA IS NOT NULL ) ) OR ( (B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE /*OR @TIPO_PGTO IN ('@', '&', 'W', 'Y', '>', '\' /*#63#*/)*/) AND B.AVISO_LANCAMENTO = @NUMERO_TITULO ) ) AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO /*#59#*/ IF @EXISTE_MESMA_DATA = 0 SELECT @EXISTE_MESMA_DATA = 1 FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA /*#59#*/ --#58# IF @EXISTE_MESMA_DATA = 0 SELECT @EXISTE_MESMA_DATA = 1 FROM #CTB_MOVIMENTO_LOJAS WHERE TIPO_PGTO IN ('@', '&', 'W', 'Y', '>', 'R', '\' /*#63#*/) AND DATA = @DATA_VENDA AND VALOR < 0 AND CHEQUE_CARTAO = @CHEQUE_CARTAO AND EMPRESA = @EMPRESA AND COD_FILIAL = @COD_FILIAL --#56# IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) SELECT @LX_TIPO_LANCAMENTO = 'BAC', @TIPO_MOVIMENTO_ALTERADO = 0 /*#50#*/ ELSE IF @EXISTE_MESMA_DATA = 0 /*#56#*/ AND @AVISO_BAIXADO = 0 /*#62#*/ SELECT @LX_TIPO_LANCAMENTO = 'IAD', @TIPO_MOVIMENTO_ALTERADO = 1 /*#50#*/ END --SEGURANÇA NO LANÇAMENTO, O TIPO PODE TER SIDO ALTERADO SELECT @RATEIO_CENTRO_CUSTO = COALESCE(B.RATEIO_CENTRO_CUSTO, @RATEIO_CCUSTO_PADRAO_LOJA, @RATEIO_CENTRO_CUSTO), /*#70#*/ @CODIGO_HISTORICO = ISNULL(B.CODIGO_HISTORICO, @CODIGO_HISTORICO), @HISTORICO = ISNULL(D.HISTORICO_PADRAO, @HISTORICO), @CONTA_CONTABIL = ISNULL(B.CONTA_CONTABIL, @CONTA_CONTABIL) FROM CTB_LANC_PADRAO_ITEM B LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO WHERE B.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND B.TIPO_PGTO = @TIPO_PGTO AND B.LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @INDICA_ID_CONTABIL_TERCEIRO = INDICA_ID_CONTABIL_TERCEIRO FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO ------------------------------------------------------------------------------------------------------------------------------------- /*SE FOR VALE PRODUTO*/ IF @LX_TIPO_LANCAMENTO IN ( 'BAC', 'IAD', 'LSC', 'LRF' ) --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q' /*#20#*/ /*#37#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) AND @VALOR > 0 BEGIN SELECT @DEBITO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @CREDITO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO IF @LX_TIPO_LANCAMENTO NOT IN ('BAC', 'IAD') -- AND @TIPO_MOVIMENTO_ALTERADO = 0 /*#57#*/ BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO) BEGIN SELECT @ITEM = ITEM FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO UPDATE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM SET CREDITO = CREDITO + @CREDITO, DEBITO = DEBITO + @DEBITO, CREDITO_MOEDA = CREDITO_MOEDA + @CREDITO, DEBITO_MOEDA = DEBITO_MOEDA + @DEBITO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM END ELSE BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) END IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END END ELSE BEGIN DECLARE CUR_BAIXA_BAC CURSOR FOR SELECT EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, CONTA_CONTABIL FROM #CTB_AVISO_LANCAMENTO_BAIXA ORDER BY VALOR_AVISO_PADRAO OPEN CUR_BAIXA_BAC FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @VALOR_AVISO_PADRAO_CUR, @CONTA_CONTABIL_CUR SELECT @VALOR_FALTANTE = ABS(@VALOR) SELECT @FIM = 0 WHILE @@FETCH_STATUS = 0 BEGIN SELECT @VALOR_FALTANTE = @VALOR_FALTANTE - @VALOR_AVISO_PADRAO_CUR IF @VALOR_FALTANTE < 0 BEGIN SELECT @FIM = @FIM + 1 IF @FIM > 1 BREAK SELECT @VALOR_BAIXA = @VALOR_AVISO_PADRAO_CUR - ABS(@VALOR_FALTANTE) END ELSE SELECT @VALOR_BAIXA = @VALOR_AVISO_PADRAO_CUR SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM UPDATE #CTB_AVISO_LANCAMENTO_BAIXA SET LANCAMENTO = @LANCAMENTO, ITEM = @ITEM, VALOR_BAIXA = @VALOR_BAIXA WHERE EMPRESA = @EMPRESA_CUR AND LANCAMENTO_MOV = @LANCAMENTO_MOV_CUR AND ITEM_MOV = @ITEM_MOV_CUR AND SUB_ITEM = @SUB_ITEM_CUR /* UPDATE #CTB_AVISO_LANCAMENTO_BAIXA SET SUB_ITEM =@SUB_ITEM_CUR ,VALOR_AVISO_PADRAO=@VALOR_AVISO_PADRAO_CUR WHERE EMPRESA = @EMPRESA_CUR AND LANCAMENTO_MOV = @LANCAMENTO_MOV_CUR AND ITEM_MOV = @ITEM_MOV_CUR AND (SUB_ITEM IS NULL OR VALOR_AVISO_PADRAO IS NULL)*/ SELECT @DEBITO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR_BAIXA) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @CREDITO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR_BAIXA) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL_CUR, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1 ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @VALOR_AVISO_PADRAO_CUR, @CONTA_CONTABIL_CUR END CLOSE CUR_BAIXA_BAC DEALLOCATE CUR_BAIXA_BAC END END --------------------------------- FIM - ROTINA BAIXA IAC------------------------------------------------------------------------------------- /*INCLUI VALE CLIENTE OU VALE FUNCIONARIO OU VALE PRODUTO */ IF ( @LX_TIPO_LANCAMENTO = 'IAD' --AND @TIPO_PGTO IN ( 'V', 'F' ) ) OR ( @LX_TIPO_LANCAMENTO IN ( 'IAC', 'LSC', 'LRF' ) --AND @TIPO_PGTO IN ( 'R', 'V', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) /*#37#*/ AND @VALOR < 0 ) BEGIN SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN ABS(@VALOR) ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN ABS(@VALOR) ELSE 0 END IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO AND CONTA_CONTABIL = @CONTA_CONTABIL AND RATEIO_CENTRO_CUSTO = @RATEIO_CENTRO_CUSTO AND RATEIO_FILIAL = @RATEIO_FILIAL) BEGIN SELECT @ITEM = ITEM FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO UPDATE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM SET CREDITO = CREDITO + @CREDITO, DEBITO = DEBITO + @DEBITO, CREDITO_MOEDA = CREDITO_MOEDA + @CREDITO, DEBITO_MOEDA = DEBITO_MOEDA + @DEBITO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM END ELSE BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) END IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END -- BUSCA SEQUENCIAL PARA VALE CLIENTE SELECT @SEQ_VALE_CLIENTE = NULL IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM SEQUENCIAIS WHERE TABELA_COLUNA = 'SEQ_VALE_CLIENTE') AND @TIPO_PGTO = 'V' BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA = 'SEQ_VALE_CLIENTE', @EMPRESA= @EMPRESA, @SEQUENCIA= @SEQUENCIA OUTPUT SELECT @SEQ_VALE_CLIENTE = @SEQUENCIA END -- FIM SELECT @CHAVE_UNICA = REPLICATE('0', 2 - LEN(@EMPRESA)) + RTRIM(CAST(@EMPRESA AS VARCHAR(2))) + '-' SELECT @CHAVE_UNICA = @CHAVE_UNICA + REPLICATE('0', 8 - LEN(@LANCAMENTO)) + RTRIM(CAST(@LANCAMENTO AS VARCHAR( 8))) + '-' SELECT @CHAVE_UNICA = @CHAVE_UNICA + REPLICATE('0', 3 - LEN(@ITEM)) + RTRIM(CAST(@ITEM AS VARCHAR( 3))) SELECT @SUB_ITEM_AVISO = ISNULL(SUB_ITEM, 0) + 1 FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM SELECT @SUB_ITEM_AVISO = ISNULL(@SUB_ITEM_AVISO, 1) -- AQUI 2 /* SELECT @INDICA_ID_CONTABIL_TERCEIRO AS '@INDICA_ID_CONTABIL_TERCEIRO' SELECT @COD_CLIFOR_NOVO AS '@COD_CLIFOR_NOVO' SELECT @COD_CLIFOR_LANC_PADRAO_CUR AS '@COD_CLIFOR_LANC_PADRAO_CUR' SELECT @COD_FILIAL AS '@COD_FILIAL' */ SELECT @LX_TIPO_LANCAMENTO INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CODIGO_CONSUMIDOR, CODIGO_FISCAL_OPERACAO, LX_TIPO_DOCUMENTO, AVISO_LANCAMENTO, VENCIMENTO, EMISSAO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, STATUS_APROVACAO, DESC_AVISO_LANCAMENTO, COD_CLIFOR, MOEDA, USUARIO, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, LOJA_PARCELA, LOJA_CHAVE, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ VALUES (@EMPRESA, @LANCAMENTO, @ITEM, @SUB_ITEM_AVISO, @CODIGO_CLIENTE, NULL, CASE WHEN @LX_TIPO_DOCUMENTO IS NULL THEN 11 ELSE @LX_TIPO_DOCUMENTO END, CASE WHEN ISNULL(@NUMERO_TITULO, '') = '' THEN @CHAVE_UNICA ELSE RTRIM(@NUMERO_TITULO) END, CASE WHEN @DIAS_VENCTO_IAC_DEV = 0 THEN @VENCIMENTO ELSE DATEADD(DD, @DIAS_VENCTO_IAC_DEV, @DATA_VENDA) END, /*#76#*/ @DATA_VENDA, ABS(@VALOR), ABS(@VALOR), @STATUS_APROVACAO, --@DESC_TIPO_PGTO, CASE WHEN ISNULL(@PEDIDO, '') <> '' THEN 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO PEDIDO: ' + RTRIM(LTRIM(CAST(@PEDIDO AS VARCHAR(10)))) ELSE 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO TICKET: ' + RTRIM(LTRIM(@TICKET)) END, /*#27#*/ CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @MOEDA, @USUARIO, @TERMINAL, @LANCAMENTO_CAIXA, @PARCELA, /*#36#*/ CASE WHEN @TIPO_PGTO IN ( 'V', 'R', 'Q' ) /*#37#*/ AND ISNULL(@PEDIDO, '') = '' THEN RTRIM(@CODIGO_FILIAL) + '-' + RTRIM(@TERMINAL) + '-' + RTRIM(@LANCAMENTO_CAIXA) + '-' + RTRIM(@PARCELA) ELSE @CHEQUE_CARTAO END, @PEDIDO, /*#73#*/ NULL) /*#73#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO' GOTO ERROR END END /*INCLUI A BAIXA OU CONTRA PARTIDA DO VALE PRODUTO*/ IF @LX_TIPO_LANCAMENTO IN ( 'BAC', 'IAD' ) --#46#AND @TIPO_PGTO IN ( 'R', '&', /*'@',#42#*/ 'Q' /*#20#*/ /*#37#*/ ) --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) /*#46#*/ AND (@VALOR > 0 AND @LX_TIPO_LANCAMENTO IN ( 'BAC', 'IAD')) BEGIN --BAIXA DE AVISO DE CRÉDITO IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) AND @LX_TIPO_LANCAMENTO IN ('BAC') BEGIN DECLARE CUR_BAIXA_BAC CURSOR FOR SELECT EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, LANCAMENTO, ITEM, VALOR_BAIXA, CONTA_CONTABIL FROM #CTB_AVISO_LANCAMENTO_BAIXA WHERE LANCAMENTO IS NOT NULL OPEN CUR_BAIXA_BAC FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @VALOR_BAIXA_CUR, @CONTA_CONTABIL_CUR WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV) VALUES (@EMPRESA_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @DATA_VENDA, @VALOR_BAIXA_CUR, @VALOR_BAIXA_CUR) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO_MOV' GOTO ERROR END FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @VALOR_BAIXA_CUR, @CONTA_CONTABIL_CUR END CLOSE CUR_BAIXA_BAC DEALLOCATE CUR_BAIXA_BAC IF @VALOR_FALTANTE > 0 BEGIN SELECT @LX_TIPO_LANCAMENTO = 'IAD' SELECT @VALOR = @VALOR_FALTANTE END END --AVISO DE DÉDITO IF @LANCAMENTO_MOV IS NULL AND @LX_TIPO_LANCAMENTO = 'IAD' AND @VALOR_FALTANTE = 0 BEGIN SELECT @SUB_ITEM_AVISO = ISNULL(SUB_ITEM, 0) + 1 FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM SELECT @SUB_ITEM_AVISO = ISNULL(@SUB_ITEM_AVISO, 1) INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CODIGO_CONSUMIDOR, CODIGO_FISCAL_OPERACAO, LX_TIPO_DOCUMENTO, AVISO_LANCAMENTO, VENCIMENTO, EMISSAO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, STATUS_APROVACAO, DESC_AVISO_LANCAMENTO, COD_CLIFOR, MOEDA, USUARIO, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, LOJA_PARCELA, LOJA_CHAVE, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ VALUES (@EMPRESA, @LANCAMENTO, @ITEM, @SUB_ITEM_AVISO, @CODIGO_CLIENTE, NULL, @LX_TIPO_DOCUMENTO, @NUMERO_TITULO, CASE WHEN @DIAS_VENCTO_IAC_DEV = 0 THEN @VENCIMENTO ELSE DATEADD(DD, @DIAS_VENCTO_IAC_DEV, @DATA_VENDA) END, /*#76#*/ @DATA_VENDA, @VALOR, @VALOR, @STATUS_APROVACAO, --@DESC_TIPO_PGTO, CASE WHEN ISNULL(@PEDIDO, '') <> '' THEN 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO PEDIDO: ' + RTRIM(LTRIM(CAST(@PEDIDO AS VARCHAR(10)))) ELSE 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO TICKET: ' + RTRIM(LTRIM(@TICKET)) END, /*#27#*/ @COD_FILIAL, @MOEDA, @USUARIO, @TERMINAL, @LANCAMENTO_CAIXA, @PARCELA, CASE WHEN @TIPO_PGTO IN ( 'V', 'R', 'Q' ) AND ISNULL(@PEDIDO, '') = '' THEN RTRIM(@CODIGO_FILIAL) + '-' + RTRIM(@TERMINAL) + '-' + RTRIM(@LANCAMENTO_CAIXA) + '-' + RTRIM(@PARCELA) ELSE @CHEQUE_CARTAO END, @PEDIDO, /*#73#*/ NULL) /*#73#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO' GOTO ERROR END END ELSE BEGIN IF @VALOR_FALTANTE > 0 AND @LX_TIPO_LANCAMENTO = 'IAD' AND @AVISO_BAIXADO = 0 /*#62#*/ BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @VALOR_FALTANTE, 0.00, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @VALOR_FALTANTE, 0.00, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END SELECT @SUB_ITEM_AVISO = ISNULL(SUB_ITEM, 0) + 1 FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND ITEM = @ITEM SELECT @SUB_ITEM_AVISO = ISNULL(@SUB_ITEM_AVISO, 1) INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CODIGO_CONSUMIDOR, CODIGO_FISCAL_OPERACAO, LX_TIPO_DOCUMENTO, AVISO_LANCAMENTO, VENCIMENTO, EMISSAO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, STATUS_APROVACAO, DESC_AVISO_LANCAMENTO, COD_CLIFOR, MOEDA, USUARIO, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, LOJA_PARCELA, LOJA_CHAVE, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ VALUES (@EMPRESA, @LANCAMENTO, @ITEM, 1, @CODIGO_CLIENTE, NULL, @LX_TIPO_DOCUMENTO, @NUMERO_TITULO, CASE WHEN @DIAS_VENCTO_IAC_DEV = 0 THEN @VENCIMENTO ELSE DATEADD(DD, @DIAS_VENCTO_IAC_DEV, @DATA_VENDA) END, /*#76#*/ @DATA_VENDA, @VALOR_FALTANTE, @VALOR_FALTANTE, @STATUS_APROVACAO, --@DESC_TIPO_PGTO, CASE WHEN ISNULL(@PEDIDO, '') <> '' THEN 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO PEDIDO: ' + RTRIM(LTRIM(CAST(@PEDIDO AS VARCHAR(10)))) ELSE 'CRÉDITO ' + CASE WHEN @TIPO_PGTO IN ('W', 'Y', '>') THEN 'OMS ' ELSE ' ' END /*#53#*/ + 'REFERENTE AO TICKET: ' + RTRIM(LTRIM(@TICKET)) END, /*#27#*/ @COD_FILIAL, @MOEDA, @USUARIO, @TERMINAL, @LANCAMENTO_CAIXA, @PARCELA, /*#60#*/ CASE WHEN @TIPO_PGTO IN ( 'V', 'R', 'Q' ) AND ISNULL(@PEDIDO, '') = '' THEN RTRIM(@CODIGO_FILIAL) + '-' + RTRIM(@TERMINAL) + '-' + RTRIM(@LANCAMENTO_CAIXA) + '-' + RTRIM(@PARCELA) ELSE @CHEQUE_CARTAO END, @PEDIDO, /*#73#*/ NULL) /*#73#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO' GOTO ERROR END END END END /*SE FOR BAIXA DE VALE CLIENTE /*B.VALOR_ORIGINAL=@VALOR*/*/ --#3# IF @BAIXA_VALE_CLIENTE IS NOT NULL OR @BAIXA_CREDIARIO IS NOT NULL BEGIN /* BAIXA VALE CLIENTE */ IF @BAIXA_VALE_CLIENTE IS NOT NULL BEGIN IF ISNUMERIC(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')) = 1 AND CHARINDEX('E', @CHEQUE_CARTAO_QUITADO_CUR) = 0 AND CHARINDEX('D', @CHEQUE_CARTAO_QUITADO_CUR) = 0 BEGIN SELECT @EMPRESA_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 1, 2) AS INT) SELECT @LANCAMENTO_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 3, 8) AS INT) SELECT @ITEM_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 11, 3) AS INT) SELECT @DET_CHAVE = RTRIM(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 14, 3)) END ELSE BEGIN SELECT @EMPRESA_CHAVE = 0 SELECT @LANCAMENTO_CHAVE = 0 SELECT @ITEM_CHAVE = 0 SELECT @DET_CHAVE = '' END SELECT @LANCAMENTO_MOV = NULL, @ITEM_MOV = NULL, @SUB_ITEM_MOV = NULL, @ID_PARCELA_MOV = NULL IF @LX_TIPO_LANCAMENTO_BAIXA_CUR = 'BAD' BEGIN SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @SUB_ITEM_MOV = B.SUB_ITEM, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE B.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAD' AND B.LANCAMENTO = @LANCAMENTO_CHAVE AND B.ITEM = @ITEM_CHAVE AND B.SUB_ITEM = CAST(@DET_CHAVE AS INT) AND B.VALOR_AVISO >= @VALOR AND B.VALOR_AVISO > 0 IF @LANCAMENTO_MOV IS NULL SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @SUB_ITEM_MOV = B.SUB_ITEM, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE B.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAD' AND B.VALOR_AVISO >= @VALOR AND B.VALOR_AVISO > 0 AND B.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR END ELSE BEGIN SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND D.ID_PARCELA = CAST(@DET_CHAVE AS VARCHAR(2)) AND D.VALOR_A_RECEBER > 0 IF @LANCAMENTO_MOV IS NULL SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND D.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR AND D.VALOR_A_RECEBER > 0 END END /* FIM BAIXA VALE CLIENTE */ /* BAIXA CREDIÁRIO */ IF @BAIXA_CREDIARIO IS NOT NULL --#3# BEGIN IF ISNUMERIC(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')) = 1 AND CHARINDEX('E', @CHEQUE_CARTAO_QUITADO_CUR) = 0 AND CHARINDEX('D', @CHEQUE_CARTAO_QUITADO_CUR) = 0 BEGIN SELECT @EMPRESA_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 1, 2) AS INT) SELECT @LANCAMENTO_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 3, 8) AS INT) SELECT @ITEM_CHAVE = CAST(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 11, 3) AS INT) SELECT @DET_CHAVE = RTRIM(SUBSTRING(RTRIM(REPLACE(@CHEQUE_CARTAO_QUITADO_CUR, '-', '')), 14, 3)) END ELSE BEGIN SELECT @EMPRESA_CHAVE = 0 SELECT @LANCAMENTO_CHAVE = 0 SELECT @ITEM_CHAVE = 0 SELECT @DET_CHAVE = '' END SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND D.ID_PARCELA = CAST(@DET_CHAVE AS VARCHAR(2)) AND D.VALOR_A_RECEBER > 0 IF @LANCAMENTO_MOV IS NULL SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND D.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR AND D.VALOR_A_RECEBER > 0 END /* FIM BAIXA CREDIÁRIO */ IF @LANCAMENTO_MOV IS NOT NULL AND @ITEM_MOV IS NOT NULL AND ( @SUB_ITEM_MOV IS NOT NULL OR @ID_PARCELA_MOV IS NOT NULL ) BEGIN SELECT @VALOR_DESCONTO = 0.00 SELECT @VALOR_DESCONTO = CASE WHEN @JUROS < 0 THEN ABS(@JUROS) ELSE 0.00 END SELECT @JUROS = CASE WHEN @JUROS < 0 THEN 0.00 ELSE @JUROS END SELECT @DEBITO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR) - @JUROS + @VALOR_DESCONTO ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO_BAIXA_CUR SELECT @CREDITO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR) - @JUROS + @VALOR_DESCONTO ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO_BAIXA_CUR SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, @COD_CLIFOR_VALE_CLIENTE, @CONTA_CONTABIL_BAIXA, @LX_TIPO_LANCAMENTO_BAIXA_CUR, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO_BAIXA, @RATEIO_FILIAL_BAIXA, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END --BAIXA DE AVISO DE CRÉDITO IF @LANCAMENTO_MOV IS NOT NULL AND @SUB_ITEM_MOV IS NOT NULL BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV WHERE LANCAMENTO_MOV = @LANCAMENTO_MOV AND LANCAMENTO = @LANCAMENTO AND ITEM_MOV = @ITEM_MOV AND EMPRESA = @EMPRESA AND ITEM = @ITEM AND SUB_ITEM = @SUB_ITEM_MOV) UPDATE #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV SET VALOR_MOV = VALOR_MOV + @VALOR WHERE LANCAMENTO_MOV = @LANCAMENTO_MOV AND LANCAMENTO = @LANCAMENTO AND ITEM_MOV = @ITEM_MOV AND EMPRESA = @EMPRESA AND ITEM = @ITEM AND SUB_ITEM = @SUB_ITEM_MOV ELSE INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, @LANCAMENTO_MOV, @ITEM_MOV, @SUB_ITEM_MOV, @DATA_VENDA, @VALOR, @VALOR) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO_MOV' GOTO ERROR END END IF @LANCAMENTO_MOV IS NOT NULL AND @ID_PARCELA_MOV IS NOT NULL BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_MOV WHERE LANCAMENTO_MOV = @LANCAMENTO_MOV AND LANCAMENTO = @LANCAMENTO AND ITEM_MOV = @ITEM_MOV AND EMPRESA = @EMPRESA AND ITEM = @ITEM AND ID_PARCELA = @ID_PARCELA_MOV) UPDATE #INTEGRA_LOJA_CTB_A_RECEBER_MOV SET VALOR_MOV = VALOR_MOV + ( @VALOR - @JUROS + @VALOR_DESCONTO ) WHERE LANCAMENTO_MOV = @LANCAMENTO_MOV AND LANCAMENTO = @LANCAMENTO AND ITEM_MOV = @ITEM_MOV AND EMPRESA = @EMPRESA AND ITEM = @ITEM AND ID_PARCELA = @ID_PARCELA_MOV ELSE INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, ID_PARCELA, VALOR_MOV, VALOR_MOV_PADRAO, VALOR_JUROS_GERADO, VALOR_JUROS_PAGO, VALOR_JUROS_PAGO_PADRAO, DATA_PAGAMENTO, DESCONTO_CONCEDIDO, DESCONTO_EFETIVADO, DESCONTO_EFETIVADO_PADRAO, PGTO_CARTORIO, VALOR_MULTA_GERADA, VALOR_MULTA_PAGA, VALOR_MULTA_PAGA_PADRAO) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, @LANCAMENTO_MOV, @ITEM_MOV, @ID_PARCELA_MOV, @VALOR - @JUROS + @VALOR_DESCONTO, @VALOR - @JUROS + @VALOR_DESCONTO, @JUROS, @JUROS, @JUROS, @DATA_VENDA, @VALOR_DESCONTO, @VALOR_DESCONTO, @VALOR_DESCONTO, NULL, 0.00, 0.00, 0.00 ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_MOV' GOTO ERROR END IF @VALOR_DESCONTO > 0 BEGIN SELECT @DEBITO_DESCONTO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR_DESCONTO) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = 'LDC' SELECT @CREDITO_DESCONTO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR_DESCONTO) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = 'LDC' IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = 'LDC') BEGIN UPDATE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM SET CREDITO = CREDITO + @CREDITO_DESCONTO, DEBITO = DEBITO + @DEBITO_DESCONTO, CREDITO_MOEDA = CREDITO + @CREDITO_DESCONTO, DEBITO_MOEDA = DEBITO + @DEBITO_DESCONTO WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = 'LDC' END ELSE BEGIN SELECT @CONTA_CONTABIL_DESCONTO = CONTA_PADRAO FROM CTB_LX_LANCAMENTO_TIPO A WHERE LX_TIPO_LANCAMENTO = 'LDC' SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, NULL, @CONTA_CONTABIL_DESCONTO, 'LDC', @DEBITO_DESCONTO, @CREDITO_DESCONTO, 'DESCONTO CONCEDIDO', NULL, @RATEIO_CENTRO_CUSTO_BAIXA, @RATEIO_FILIAL_BAIXA, 0, @MOEDA, 0, 0, @DEBITO_DESCONTO, @CREDITO_DESCONTO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END END END IF @JUROS > 0 BEGIN SELECT @DEBITO_JUROS = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@JUROS) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = 'LJR' SELECT @CREDITO_JUROS = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@JUROS) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = 'LJR' IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = 'LJR') BEGIN UPDATE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM SET CREDITO = CREDITO + @CREDITO_JUROS, DEBITO = DEBITO + @DEBITO_JUROS, CREDITO_MOEDA = CREDITO + @CREDITO_JUROS, DEBITO_MOEDA = DEBITO + @DEBITO_JUROS WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND LX_TIPO_LANCAMENTO = 'LJR' END ELSE BEGIN SELECT @CONTA_CONTABIL_JUROS = CONTA_PADRAO FROM CTB_LX_LANCAMENTO_TIPO A WHERE LX_TIPO_LANCAMENTO = 'LJR' SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES ( @EMPRESA, @LANCAMENTO, @ITEM, NULL, @CONTA_CONTABIL_JUROS, 'LJR', @DEBITO_JUROS, @CREDITO_JUROS, 'JUROS RECEBIDOS', NULL, @RATEIO_CENTRO_CUSTO_BAIXA, @RATEIO_FILIAL_BAIXA, 0, @MOEDA, 0, 0, @DEBITO_JUROS, @CREDITO_JUROS, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END END END END END --#4# ELSE BEGIN SELECT @FATURA_CREDIARIO = B.FATURA, @CODIGO_CONSUMIDOR_CREDIARIO = B.CODIGO_CONSUMIDOR, @ID_PARCELA_CREDIARIO = D.ID_PARCELA, @VALOR_A_RECEBER_CREDIARIO = D.VALOR_A_RECEBER FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND D.ID_PARCELA = CAST(@DET_CHAVE AS VARCHAR(2)) AND D.VALOR_A_RECEBER = 0 --#12# --IF ISNULL(@FATURA_CREDIARIO,'') <> '' AND @VALOR_A_RECEBER_CREDIARIO = 0.00 IF ISNULL(@FATURA_CREDIARIO, '') <> '' AND @VALOR_A_RECEBER_CREDIARIO = 0.00 AND @BAIXA_CREDIARIO IS NOT NULL BEGIN SELECT @ERRMSG = 'NÃO SERÁ POSSÍVEL EFETUAR A BAIXA DO CREDIÁRIO, POIS A FATURA: ' + @FATURA_CREDIARIO + ' PARCELA: ' + @ID_PARCELA_CREDIARIO + ' DO CONSUMIDOR: ' + @CODIGO_CONSUMIDOR_CREDIARIO + ' JÁ FOI BAIXADA.' GOTO ERROR END END END -- FIM - ROTINA BAIXA IAD --VOLTANDO OS BACKUPS SELECT @ITEM = @ITEM_BKP SELECT @LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO_BAK --VOLTANDO BACKUP AUXILIAR SELECT @RATEIO_CENTRO_CUSTO = @RATEIO_CENTRO_CUSTO_BKP, @CODIGO_HISTORICO = @CODIGO_HISTORICO_BKP, @HISTORICO = @HISTORICO_BKP, @CONTA_CONTABIL = @CONTA_CONTABIL_BKP, @INDICA_ID_CONTABIL_TERCEIRO = @INDICA_ID_CONTABIL_TERCEIRO_BKP --VOLTANDO O INDICADOR DO TERCEIRO SELECT @INDICA_ID_CONTABIL_TERCEIRO = INDICA_ID_CONTABIL_TERCEIRO FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO /*INCLUI BRINDE*/ -- IF @LX_TIPO_LANCAMENTO='LDD' AND @TIPO_PGTO='X' IF @TIPO_PGTO = 'X' BEGIN SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0 END SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, 'BRINDE Nº:' + RTRIM(@NUMERO_TITULO) + '/' + @FILIAL + '/' + @DESC_TIPO_PGTO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END END /*VENDA JURÍDICA DE LOJA*/ IF @LX_TIPO_LANCAMENTO = 'ITR' AND @TIPO_PGTO = 'J' BEGIN SELECT @ITEM_OLD = @ITEM --#10# SELECT @FATURA_J = CASE WHEN @INDICA_NUMERO_TITULO = 1 THEN @NUMERO_TITULO ELSE @COD_FILIAL + RIGHT(@TERMINAL, 1) + RTRIM(COALESCE(CAST(@PEDIDO AS CHAR(8)), @NUMERO_CUPOM_FISCAL_CUR, @TICKET)) /*#55#*/ + ISNULL(@PARCELA, '') /*#39#*/ END --#14# #16# IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND COD_CLIFOR = CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END AND FATURA = @FATURA_J) --#10# BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_OLD = @ITEM SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0 END INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM.' GOTO ERROR END --#14# INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_FATURA (CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO) VALUES (@CODIGO_CLIENTE, ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)), @COD_FILIAL, @EMPRESA, CASE WHEN @INDICA_NUMERO_TITULO = 1 THEN @NUMERO_TITULO ELSE @COD_FILIAL + RIGHT(@TERMINAL, 1) + RTRIM(COALESCE(CAST(@PEDIDO AS CHAR(8)), @NUMERO_CUPOM_FISCAL_CUR, @TICKET)) /*#55#*/ + ISNULL(@PARCELA, '') /*#39#*/ END,/*#16#*/ 0, @ITEM, 0, @LANCAMENTO, @LX_TIPO_DOCUMENTO, @MOEDA, 0, 0, 'LJ', @DATA_VENDA) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_FATURA' GOTO ERROR END END ELSE BEGIN SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.COD_CLIFOR = CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END AND B.FATURA = @FATURA_J --#10# UPDATE A SET DEBITO = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END, DEBITO_MOEDA = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO_MOEDA = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A JOIN CTB_LANCAMENTO C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_LX_LANCAMENTO_TIPO D ON A.LX_TIPO_LANCAMENTO = D.LX_TIPO_LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND A.ITEM = @ITEM AND C.LOTE_LANCAMENTO = @LOTE_LANCAMENTO IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATUALIZAR CTB_LANCAMENTO_ITEM.' GOTO ERROR END END SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.COD_CLIFOR = CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END AND B.FATURA = @FATURA_J --#10# INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA (AGENCIA, CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO) VALUES (@AGENCIA, @CONTA_CONTABIL, @EMPRESA, @PARCELA, @ITEM, @LANCAMENTO, @VALOR, @VALOR, @VENCIMENTO) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_PARCELA' GOTO ERROR END SELECT @ITEM = @ITEM_OLD END /*VALE FUNCIONÁRIO GERANDO ITR*/ IF @LX_TIPO_LANCAMENTO = 'ITR' AND @TIPO_PGTO = 'F' BEGIN SELECT @ITEM_OLD = @ITEM IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND FATURA = ( CASE WHEN @INDICA_NUMERO_TITULO = 1 THEN @NUMERO_TITULO ELSE RTRIM(ISNULL(CAST(@PEDIDO AS CHAR(8)), @TICKET)) /*#55#*/ END )) BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_OLD = @ITEM SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0 END INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM.' GOTO ERROR END INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_FATURA (CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO) VALUES (@CODIGO_CLIENTE, ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)), @COD_FILIAL, @EMPRESA, CASE WHEN @INDICA_NUMERO_TITULO = 1 THEN @NUMERO_TITULO ELSE RTRIM(ISNULL(CAST(@PEDIDO AS CHAR(8)), @TICKET)) /*#55#*/ END, 0, @ITEM, 0, @LANCAMENTO, @LX_TIPO_DOCUMENTO, @MOEDA, 0, 0, 'LJ', @DATA_VENDA) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_FATURA' GOTO ERROR END END ELSE BEGIN SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.FATURA = @TICKET UPDATE A SET DEBITO = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END, DEBITO_MOEDA = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO_MOEDA = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A JOIN CTB_LANCAMENTO C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_LX_LANCAMENTO_TIPO D ON A.LX_TIPO_LANCAMENTO = D.LX_TIPO_LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND A.ITEM = @ITEM AND C.LOTE_LANCAMENTO = @LOTE_LANCAMENTO IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATUALIZAR CTB_LANCAMENTO_ITEM.' GOTO ERROR END END SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.FATURA = @TICKET INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA (AGENCIA, CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO) VALUES (@AGENCIA, @CONTA_CONTABIL, @EMPRESA, @PARCELA, @ITEM, @LANCAMENTO, @VALOR, @VALOR, @VENCIMENTO) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_PARCELA' GOTO ERROR END SELECT @ITEM = @ITEM_OLD END /*VALE CLIENTE GERANDO ITR*/ IF @LX_TIPO_LANCAMENTO = 'ITR' AND @TIPO_PGTO IN ( 'V' /*, 'W' #48#*/ ) BEGIN SELECT @ITEM_OLD = @ITEM -- IF NOT EXISTS(SELECT * FROM W_CTB_A_RECEBER_PARCELA WHERE EMPRESA=@EMPRESA AND LANCAMENTO=@LANCAMENTO AND ITEM=@ITEM AND FATURA=@TICKET) IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND FATURA = @TICKET) BEGIN SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_OLD = @ITEM SELECT @DEBITO = CASE WHEN @CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0 END SELECT @CREDITO = CASE WHEN @CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0 END INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM.' GOTO ERROR END -- BUSCA SEQUENCIAL PARA VALE CLIENTE SELECT @SEQ_VALE_CLIENTE = NULL IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM SEQUENCIAIS WHERE TABELA_COLUNA = 'SEQ_VALE_CLIENTE') BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA = 'SEQ_VALE_CLIENTE', @EMPRESA= @EMPRESA, @SEQUENCIA= @SEQUENCIA OUTPUT SELECT @SEQ_VALE_CLIENTE = @SEQUENCIA END -- FIM SELECT @CHAVE_UNICA = REPLICATE('0', 2 - LEN(@EMPRESA)) + RTRIM(CAST(@EMPRESA AS VARCHAR(2))) + '-' SELECT @CHAVE_UNICA = @CHAVE_UNICA + REPLICATE('0', 8 - LEN(@LANCAMENTO)) + RTRIM(CAST(@LANCAMENTO AS VARCHAR(8))) + '-' SELECT @CHAVE_UNICA = @CHAVE_UNICA + REPLICATE('0', 3 - LEN(@ITEM)) + RTRIM( CAST(@ITEM AS VARCHAR(3))) INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_FATURA (CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO, DOCUMENTO) VALUES -- RETIRAR (@CODIGO_CLIENTE,ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)),@COD_FILIAL,@EMPRESA,@TICKET,0,@ITEM,0,@LANCAMENTO,@LX_TIPO_DOCUMENTO,@MOEDA,0,0,'LJ',@DATA_VENDA, ISNULL(@SEQ_VALE_CLIENTE, @CHAVE_UNICA)) (@CODIGO_CLIENTE, ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)), @COD_FILIAL, @EMPRESA, /*#38#*/--@TICKET, CASE WHEN @INDICA_NUMERO_TITULO = 1 THEN @NUMERO_TITULO ELSE RTRIM(LTRIM(@COD_FILIAL)) + LTRIM(RTRIM(RIGHT(@TERMINAL, 1))) + LTRIM(RTRIM(COALESCE(CAST(@PEDIDO AS CHAR(8)), @NUMERO_CUPOM_FISCAL_CUR, @TICKET))) /*#55#*/ + ISNULL(@PARCELA, '') /*#39#*/ END, 0, @ITEM, 0, @LANCAMENTO, @LX_TIPO_DOCUMENTO, @MOEDA, 0, 0, 'LJ', @DATA_VENDA, CASE WHEN RTRIM(ISNULL(@NUMERO_TITULO, '')) = '' THEN @CHAVE_UNICA ELSE RTRIM(@NUMERO_TITULO) END ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_FATURA' GOTO ERROR END END ELSE BEGIN SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.FATURA = @TICKET UPDATE A SET DEBITO = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END, DEBITO_MOEDA = DEBITO + CASE WHEN D.CREDITO_DEBITO = 'D' THEN @VALOR ELSE 0.00 END, CREDITO_MOEDA = CREDITO + CASE WHEN D.CREDITO_DEBITO = 'C' THEN @VALOR ELSE 0.00 END FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A JOIN CTB_LANCAMENTO C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_LX_LANCAMENTO_TIPO D ON A.LX_TIPO_LANCAMENTO = D.LX_TIPO_LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND A.ITEM = @ITEM AND C.LOTE_LANCAMENTO = @LOTE_LANCAMENTO IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATUALIZAR CTB_LANCAMENTO_ITEM.' GOTO ERROR END END SELECT @ITEM = A.ITEM FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA A JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM WHERE A.EMPRESA = @EMPRESA AND A.LANCAMENTO = @LANCAMENTO AND B.FATURA = @TICKET INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA (AGENCIA, CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO, LOJA_CHAVE) VALUES (@AGENCIA, @CONTA_CONTABIL, @EMPRESA, @PARCELA, @ITEM, @LANCAMENTO, @VALOR, @VALOR, @VENCIMENTO, RTRIM(@CODIGO_FILIAL) + '-' + RTRIM(@TERMINAL) + '-' + RTRIM(@LANCAMENTO_CAIXA) + '-' + RTRIM(@PARCELA)) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_PARCELA' GOTO ERROR END SELECT @ITEM = @ITEM_OLD END FETCH NEXT FROM CUR_LOJA_VENDA_PARCELAS INTO @TICKET, @PEDIDO /*#27#*/, @PARCELA, @CODIGO_CLIENTE, @CHEQUE_CARTAO, @VALOR, @AGENCIA, @BANCO, @VENCIMENTO, @CONTA_CORRENTE, @NUMERO_LOTE, @NUMERO_APROVACAO_CARTAO, @NUMERO_TITULO, @PARCELAS_CARTAO, @VALOR, @TERMINAL, @LANCAMENTO_CAIXA, @INDICA_ID_CONTABIL_TERCEIRO, @NUMERO_CUPOM_FISCAL_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS, @LX_TIPO_LANCAMENTO_BAIXA_CUR END CLOSE CUR_LOJA_VENDA_PARCELAS DEALLOCATE CUR_LOJA_VENDA_PARCELAS FETCH NEXT FROM CUR_LANCAMENTO_VENDA INTO @EMPRESA, @LOCALIDADE, @CODIGO_ADMINISTRADORA, @LX_TIPO_LANCAMENTO, @MOEDA, @ADMINISTRADORA, @CREDITO_DEBITO, @RATEIO_CENTRO_CUSTO, @CODIGO_HISTORICO, @HISTORICO, @COD_FILIAL, @CONTA_CONTABIL, @VALOR_ITEM, @INDICA_ID_CONTABIL_TERCEIRO, @COTACAO_CUR , @VALOR_MOEDA_CUR, @COD_CLIFOR_LANC_PADRAO_CUR, @CODIGO_CLIENTE_CADASTRAR_CUR, @LANCAMENTO_CAIXA_ICR_CUR /*SE FOR O FIM DO LANCAMENTO E TIVER VALOR DE TAXA DE ADMINISTRAÇÃO CRIA O ITEM*/ IF ( ( @LOCALIDADE > 0 AND @TIPO_MOVIMENTO <> @MOVIMENTO_PADRAO ) OR @@FETCH_STATUS <> 0 ) AND @VALOR_LTA > 0 BEGIN SELECT @DEBITO = CASE WHEN B.CREDITO_DEBITO = 'D' THEN @VALOR_LTA ELSE 0 END, @CREDITO = CASE WHEN B.CREDITO_DEBITO = 'C' THEN @VALOR_LTA ELSE 0 END, @INDICA_ID_CONTABIL_TERCEIRO = B.INDICA_ID_CONTABIL_TERCEIRO, @CONTA_CONTABIL = COALESCE(@CONTA_CONTABIL,A.CONTA_CONTABIL, B.CONTA_PADRAO), --#72# @CODIGO_HISTORICO = ISNULL(@CODIGO_HISTORICO, A.CODIGO_HISTORICO), --#72# @HISTORICO = C.HISTORICO_PADRAO, @RATEIO_CENTRO_CUSTO = COALESCE(@RATEIO_CENTRO_CUSTO, A.RATEIO_CENTRO_CUSTO, @RATEIO_CCUSTO_PADRAO_LOJA) /*#70#*/ --#72# FROM CTB_LANC_PADRAO_ITEM A JOIN CTB_LX_LANCAMENTO_TIPO B ON A.LX_TIPO_LANCAMENTO = B.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO C ON A.CODIGO_HISTORICO = C.CODIGO_HISTORICO WHERE A.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND A.LX_TIPO_LANCAMENTO = 'LTA' AND A.CODIGO_ADMINISTRADORA IS NULL --#72# SELECT @ITEM = ISNULL(@ITEM, 0) /*#72# SELECT @ITEM = @ITEM + 1 INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL, 'LTA', @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1) #72#*/ /*#72#*/ INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) SELECT @EMPRESA, @LANCAMENTO, @ITEM + ROW_NUMBER() OVER (ORDER BY CONTA_CONTABIL), CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, ISNULL(CONTA_CONTABIL,@CONTA_CONTABIL), 'LTA', SUM(VALOR), @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, SUM(VALOR), @CREDITO, 1, @HOJE1, 1 FROM #CTB_LANCAMENTO_ITEM_LTA GROUP BY CONTA_CONTABIL /*#72#*/ IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END --VOLTANDO BACKUP AUXILIAR SELECT @RATEIO_CENTRO_CUSTO = @RATEIO_CENTRO_CUSTO_BKP, @CODIGO_HISTORICO = @CODIGO_HISTORICO_BKP, @HISTORICO = @HISTORICO_BKP, @CONTA_CONTABIL = @CONTA_CONTABIL_BKP, @INDICA_ID_CONTABIL_TERCEIRO = @INDICA_ID_CONTABIL_TERCEIRO_BKP SELECT @VALOR_LTA = 0 END END CLOSE CUR_LANCAMENTO_VENDA DEALLOCATE CUR_LANCAMENTO_VENDA /*CREDIÁRIO - INTEGRAR VENDAS*/ IF @TIPO_PGTO = '#' BEGIN DECLARE @LANCAMENTO_CRED INT, @LANCAMENTO_CRED_DOT INT, @ITEM_CRED INT, @ITEM_OLD_CRED INT, @EMPRESA_CRED INT, @RATEIO_CENTRO_CUSTO_CRED VARCHAR(15), @CODIGO_HISTORICO_CRED CHAR(4), @HISTORICO_CRED VARCHAR(250), @TIPO_COMPROVANTE_CRED VARCHAR(3), @CONTA_CONTABIL_CRED VARCHAR(20), @CODIGO_FILIAL_CRED VARCHAR(6), @CODIGO_LOJA_CRED VARCHAR(6), @ID_CONTRATO_CUR INT, @ID_CONTRATO_PARCELA_CUR SMALLINT, @CODIGO_CLIENTE_CUR VARCHAR(14), @MOEDA_CUR CHAR(6), @CODIGO_FILIAL_CUR CHAR(6), @EMISSAO_CUR DATETIME, @DOCUMENTO_CUR VARCHAR(20), @NUMERO_PARCELAS_CUR TINYINT, @VALOR_TOTAL_CUR NUMERIC(14, 2), @PARCELA_CRED_CUR VARCHAR(2), @VENCIMENTO_CUR DATETIME, @VALOR_ORIGINAL_CUR NUMERIC(14, 2), @VALOR_JUROS_CUR NUMERIC(14, 2), @VALOR_MULTA_CUR NUMERIC(14, 2), @VALOR_DESCONTO_CUR NUMERIC(14, 2), @VALOR_A_RECEBER_CUR NUMERIC(14, 2) SELECT @CODIGO_FILIAL_CRED = C.COD_FILIAL, @EMPRESA_CRED = C.EMPRESA, @CODIGO_LOJA_CRED = A.CODIGO_FILIAL FROM LOJAS_VAREJO A JOIN CADASTRO_CLI_FOR B ON A.FILIAL = B.NOME_CLIFOR JOIN FILIAIS C ON B.CLIFOR = C.COD_FILIAL WHERE A.FILIAL = @FILIAL SELECT @TIPO_COMPROVANTE_CRED = TIPO_COMPROVANTE ,@TIPO_MOVIMENTO = TIPO_MOVIMENTO FROM CTB_LANC_PADRAO WHERE LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO SELECT @RATEIO_CENTRO_CUSTO_CRED = COALESCE(B.RATEIO_CENTRO_CUSTO, @RATEIO_CCUSTO_PADRAO_LOJA), /*#70#*/ @CODIGO_HISTORICO_CRED = B.CODIGO_HISTORICO, @HISTORICO_CRED = D.HISTORICO_PADRAO, @CONTA_CONTABIL_CRED = B.CONTA_CONTABIL FROM CTB_LANC_PADRAO_ITEM B LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO WHERE B.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND B.TIPO_PGTO = @TIPO_PGTO SET @LANCAMENTO_CRED = NULL WHILE @LANCAMENTO_CRED IS NULL BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA= 'CTB_LANCAMENTO.LANCAMENTO', @EMPRESA = @EMPRESA_CRED, @SEQUENCIA = @SEQUENCIA OUTPUT SELECT @LANCAMENTO_CRED = CONVERT(INT, @SEQUENCIA) IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO WHERE EMPRESA = @EMPRESA_CRED AND LANCAMENTO = @LANCAMENTO_CRED) BEGIN SELECT @LANCAMENTO_CRED = NULL CONTINUE END END WHILE @LANCAMENTO_CRED_DOT IS NULL BEGIN EXEC LX_SEQUENCIAL @TABELA_COLUNA= 'CTB_LANCAMENTO.LANCAMENTO', @EMPRESA = @EMPRESA_CRED, @SEQUENCIA = @SEQUENCIA OUTPUT SELECT @LANCAMENTO_CRED_DOT = CONVERT(INT, @SEQUENCIA) IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANCAMENTO WHERE EMPRESA = @EMPRESA_CRED AND LANCAMENTO = @LANCAMENTO_CRED_DOT) BEGIN SELECT @LANCAMENTO_CRED_DOT = NULL CONTINUE END END INSERT INTO CTB_LANCAMENTO (EMPRESA, LANCAMENTO, COD_FILIAL, DATA_DIGITACAO, DATA_LANCAMENTO, LANCAMENTO_PADRAO, GERADO_INTEGRACAO, TIPO_MOVIMENTO, LOTE_LANCAMENTO, TIPO_COMPROVANTE) VALUES (@EMPRESA_CRED, @LANCAMENTO_CRED, @CODIGO_FILIAL_CRED, @HOJE1, @DATA_VENDA, @LANCAMENTO_PADRAO, 1, @TIPO_MOVIMENTO, @LOTE_LANCAMENTO, @TIPO_COMPROVANTE_CRED) INSERT INTO CTB_LANCAMENTO (EMPRESA, LANCAMENTO, COD_FILIAL, DATA_DIGITACAO, DATA_LANCAMENTO, LANCAMENTO_PADRAO, GERADO_INTEGRACAO, TIPO_MOVIMENTO, LOTE_LANCAMENTO, TIPO_COMPROVANTE) VALUES (@EMPRESA_CRED, @LANCAMENTO_CRED_DOT, @CODIGO_FILIAL_CRED, @HOJE1, @DATA_VENDA, @LANCAMENTO_PADRAO, 1, @MOVIMENTO_PADRAO, @LOTE_LANCAMENTO, @TIPO_COMPROVANTE_CRED) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO' GOTO ERROR END --INCLUSÃO DOS TITULOS A RECEBER DECLARE CUR_CREDIARIO CURSOR FOR SELECT DISTINCT A.ID_CONTRATO, A.CODIGO_CLIENTE, A.MOEDA, A.CODIGO_FILIAL, A.EMISSAO, A.DOCUMENTO, A.NUMERO_PARCELAS, A.VALOR_TOTAL , CASE WHEN ISNULL(B.LOCALIDADE,0) = 0 THEN @TIPO_MOVIMENTO ELSE 2 END AS LOCALIDADE FROM LJ_CREDIARIO_CONTRATO A JOIN W_CTB_LOJA_VENDA_PARCELA B ON A.LANCAMENTO_CAIXA = B.LANCAMENTO_CAIXA AND A.CODIGO_FILIAL = B.CODIGO_FILIAL AND A.TERMINAL = B.TERMINAL AND B.TIPO_PGTO='#' --#67# SÓ INTEGRAR QUANDO VENDA JA SUBIU NA RETAGUARDA PARA PEGAR LOCALIDADE WHERE A.EMISSAO = CONVERT(VARCHAR, @DATA_VENDA,112) --#31# AND A.CODIGO_FILIAL = @CODIGO_LOJA_CRED AND A.CONTRATO_CONFIRMADO = 1 AND A.CONTRATO_CANCELADO = 0 AND A.LANCAMENTO IS NULL --#65# - CARLOS MEGASULT, NAO PEGAR CONTRATOS JÁ INTEGRADOS OU GERADOS NA RETAGUARDA --#65# - CARLOS MEGASULT, COMENTADO NO #31# POIS NAO PRECISA DO IF, O WHILE ABAIXO JÁ FAZ A VERIFICACAO DO CONTEUDO DO CURSOR, DECLARE CURSOR NAO PREENCHE DADOS EM @@ROWCOUNT, FAZENDO COM QUE NAO ENTRASE NO IF --IF @@ROWCOUNT > 0 --#31# -- BEGIN --#31# OPEN CUR_CREDIARIO FETCH NEXT FROM CUR_CREDIARIO INTO @ID_CONTRATO_CUR, @CODIGO_CLIENTE_CUR, @MOEDA_CUR, @CODIGO_FILIAL_CUR, @EMISSAO_CUR, @DOCUMENTO_CUR, @NUMERO_PARCELAS_CUR, @VALOR_TOTAL_CUR, @TIPO_MOVIMENTO --#67# SET @ITEM_CRED = 1 --SET @ITEM_OLD_CRED = @ITEM_CRED --#65# - DEVE FICAR DENTRO DO WHILE DO CURSOR --#18 WHILE @@FETCH_STATUS = 0 BEGIN SET @ITEM_OLD_CRED = @ITEM_CRED --#65# - INCLUIDO DENTRO DO WHILE DO CURSOR --#65# - CARLOS MEGASULT - INICIO - ESTE INSERT ESTAVA FORA DO WHILE, E PRECISA FICAR DENTRO, TBM DEVE BUSCAR O * E NAO DEFINIR OS CAMPOS, POIS A TABELA TEMPORARIA É CRIADA COM TODOS OS CAMPOS -- #18 JOAO GONZALES 180714 --#75#INSERT INTO #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA --#75#SELECT * FROM LJ_CREDIARIO_PARCELA --#75#WHERE ID_CONTRATO = @ID_CONTRATO_CUR INSERT INTO #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA ( ID_CONTRATO , ID_CONTRATO_PARCELA , LANCAMENTO , ITEM , ID_PARCELA , EMPRESA , VENCIMENTO , VALOR_ORIGINAL , VALOR_JUROS , VALOR_MULTA , VALOR_DESCONTO , VALOR_A_RECEBER , TEXTO_RECIBO , TEXTO_CANCELAMENTO , LX_ORIGEM , EM_RENEGOCIACAO ) SELECT ID_CONTRATO , ID_CONTRATO_PARCELA , LANCAMENTO , ITEM , ID_PARCELA , EMPRESA , VENCIMENTO , VALOR_ORIGINAL , VALOR_JUROS , VALOR_MULTA , VALOR_DESCONTO , VALOR_A_RECEBER , TEXTO_RECIBO , TEXTO_CANCELAMENTO , LX_ORIGEM , EM_RENEGOCIACAO FROM LJ_CREDIARIO_PARCELA WHERE ID_CONTRATO = @ID_CONTRATO_CUR --#75# --#65# - CARLOS MEGASULT - INCLUIDO NOVOS CAMPOS TEXTO_CONTRATO NO INSERT, E INCLUIDO INSERT DENTRO DO WHILE DO CURSOR INSERT INTO #INTEGRA_LOJA_LJ_CREDIARIO_CONTRATO (ID_CONTRATO,LANCAMENTO,ITEM,EMPRESA,CODIGO_CLIENTE,MOEDA,CODIGO_FILIAL,TERMINAL,LANCAMENTO_CAIXA,ID_PLANO,EMISSAO,DOCUMENTO, NUMERO_PARCELAS,VALOR_CREDITO,VALOR_ENCARGOS,VALOR_TOTAL,ID_CONTRATO_ORIGINAL,CONTRATO_CONFIRMADO,DATA_CANCELAMENTO,CONTRATO_CANCELADO,CONTRATO_ENCERRADO, TEXTO_CONTRATO,TEXTO_CARNE,TEXTO_CANCELAMENTO) SELECT ID_CONTRATO,LANCAMENTO,ITEM,EMPRESA,CODIGO_CLIENTE,MOEDA,CODIGO_FILIAL,TERMINAL,LANCAMENTO_CAIXA,ID_PLANO,EMISSAO,DOCUMENTO,NUMERO_PARCELAS,VALOR_CREDITO, VALOR_ENCARGOS,VALOR_TOTAL,ID_CONTRATO_ORIGINAL,CONTRATO_CONFIRMADO,DATA_CANCELAMENTO,CONTRATO_CANCELADO,CONTRATO_ENCERRADO,TEXTO_CONTRATO,TEXTO_CARNE,TEXTO_CANCELAMENTO FROM LJ_CREDIARIO_CONTRATO WHERE ID_CONTRATO = @ID_CONTRATO_CUR IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA WHERE EMPRESA = @EMPRESA_CRED AND LANCAMENTO = @LANCAMENTO_CRED AND FATURA = @DOCUMENTO_CUR AND ITEM = @ITEM_CRED) AND NOT EXISTS (SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA WHERE EMPRESA = @EMPRESA_CRED AND LANCAMENTO = @LANCAMENTO_CRED_DOT AND FATURA = @DOCUMENTO_CUR AND ITEM = @ITEM_CRED) BEGIN INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA_CRED, CASE WHEN @TIPO_MOVIMENTO = 1 THEN @LANCAMENTO_CRED ELSE @LANCAMENTO_CRED_DOT END, @ITEM_CRED, @CODIGO_FILIAL_CRED, @CONTA_CONTABIL_CRED, 'ITR', @VALOR_TOTAL_CUR, 0.00, @HISTORICO_CRED, @CODIGO_HISTORICO_CRED, @RATEIO_CENTRO_CUSTO_CRED, @CODIGO_FILIAL_CRED, 0, @MOEDA_CUR, 0, 0, @VALOR_TOTAL_CUR, 0.00, 1, @HOJE1, 1) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM.' GOTO ERROR END INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_FATURA (CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO) VALUES (@CODIGO_CLIENTE_CUR, @CODIGO_FILIAL_CRED, @CODIGO_FILIAL_CRED, @EMPRESA_CRED, @DOCUMENTO_CUR, 0, @ITEM_CRED, 0, CASE WHEN @TIPO_MOVIMENTO = 1 THEN @LANCAMENTO_CRED ELSE @LANCAMENTO_CRED_DOT END, --#67# @LX_TIPO_DOCUMENTO, @MOEDA_CUR, 0, 0, 'LJ', @EMISSAO_CUR) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_FATURA' GOTO ERROR END DECLARE CUR_CREDIARIO_PARCELAS CURSOR FOR SELECT ID_CONTRATO_PARCELA, RIGHT('00' + CONVERT(VARCHAR(2), ID_CONTRATO_PARCELA), 2) PARCELA, VENCIMENTO, VALOR_ORIGINAL, VALOR_JUROS, VALOR_MULTA, VALOR_DESCONTO, VALOR_A_RECEBER FROM LJ_CREDIARIO_PARCELA WHERE ID_CONTRATO = @ID_CONTRATO_CUR OPEN CUR_CREDIARIO_PARCELAS FETCH NEXT FROM CUR_CREDIARIO_PARCELAS INTO @ID_CONTRATO_PARCELA_CUR, @PARCELA_CRED_CUR, @VENCIMENTO_CUR, @VALOR_ORIGINAL_CUR, @VALOR_JUROS_CUR, @VALOR_MULTA_CUR, @VALOR_DESCONTO_CUR, @VALOR_A_RECEBER_CUR WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA (CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO, VALOR_A_RECEBER) VALUES (@CONTA_CONTABIL_CRED, @EMPRESA_CRED, @PARCELA_CRED_CUR, @ITEM_CRED, CASE WHEN @TIPO_MOVIMENTO = 1 THEN @LANCAMENTO_CRED ELSE @LANCAMENTO_CRED_DOT END, --#67# @VALOR_ORIGINAL_CUR, @VALOR_ORIGINAL_CUR, @VENCIMENTO_CUR, @VALOR_A_RECEBER_CUR) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_A_RECEBER_PARCELA' GOTO ERROR END --COMENTADO POR JOAO GONZALES PARA ATENDER O REQUISITO DE PERFORMANCE E PERMANECER NO PADRAO DA FABRICA. --UPDATE LJ_CREDIARIO_PARCELA --SET LANCAMENTO = @LANCAMENTO_CRED,ITEM = @ITEM_CRED,EMPRESA = @EMPRESA_CRED, -- ID_PARCELA = @PARCELA_CRED_CUR --WHERE ID_CONTRATO = @ID_CONTRATO_CUR -- AND ID_CONTRATO_PARCELA = @ID_CONTRATO_PARCELA_CUR -- #18 FAZ UPDATE NA TABELA TEMPORARIA UPDATE #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA SET LANCAMENTO = CASE WHEN @TIPO_MOVIMENTO = 1 THEN @LANCAMENTO_CRED ELSE @LANCAMENTO_CRED_DOT END, --#67# ITEM = @ITEM_CRED, EMPRESA = @EMPRESA_CRED, ID_PARCELA = @PARCELA_CRED_CUR WHERE ID_CONTRATO = @ID_CONTRATO_CUR AND ID_CONTRATO_PARCELA = @ID_CONTRATO_PARCELA_CUR -- #18 IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO AUTALIZAR CTB_A_RECEBER_PARCELA' GOTO ERROR END FETCH NEXT FROM CUR_CREDIARIO_PARCELAS INTO @ID_CONTRATO_PARCELA_CUR, @PARCELA_CRED_CUR, @VENCIMENTO_CUR, @VALOR_ORIGINAL_CUR, @VALOR_JUROS_CUR, @VALOR_MULTA_CUR, @VALOR_DESCONTO_CUR, @VALOR_A_RECEBER_CUR END CLOSE CUR_CREDIARIO_PARCELAS DEALLOCATE CUR_CREDIARIO_PARCELAS --COMENTADO POR JOAO GONZALES PARA ATENDER O REQUISITO DE PERFORMANCE E PERMANECER NO PADRAO DA FABRICA. --UPDATE LJ_CREDIARIO_CONTRATO --SET LANCAMENTO = @LANCAMENTO_CRED,ITEM = @ITEM_CRED,EMPRESA = @EMPRESA_CRED --WHERE ID_CONTRATO = @ID_CONTRATO_CUR -- #18 FAZ UPDATE NA TABELA TEMPORARIA UPDATE #INTEGRA_LOJA_LJ_CREDIARIO_CONTRATO SET LANCAMENTO = CASE WHEN @TIPO_MOVIMENTO = 1 THEN @LANCAMENTO_CRED ELSE @LANCAMENTO_CRED_DOT END, --#67#, ITEM = @ITEM_CRED, EMPRESA = @EMPRESA_CRED WHERE ID_CONTRATO = @ID_CONTRATO_CUR -- #18 IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO AUTALIZAR CTB_A_RECEBER_PARCELA' GOTO ERROR END END SET @ITEM_CRED = @ITEM_CRED + 1 FETCH NEXT FROM CUR_CREDIARIO INTO @ID_CONTRATO_CUR, @CODIGO_CLIENTE_CUR, @MOEDA_CUR, @CODIGO_FILIAL_CUR, @EMISSAO_CUR, @DOCUMENTO_CUR, @NUMERO_PARCELAS_CUR, @VALOR_TOTAL_CUR, @TIPO_MOVIMENTO --#67# END CLOSE CUR_CREDIARIO --END --#65# -- REMOVIDO "END" DO IF --#67# IF NOT EXISTS (SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_LJ_CREDIARIO_CONTRATO WHERE LANCAMENTO = @LANCAMENTO_CRED_DOT AND EMPRESA = @EMPRESA_CRED) BEGIN DELETE FROM CTB_LANCAMENTO WHERE EMPRESA=@EMPRESA_CRED AND LANCAMENTO = @LANCAMENTO_CRED_DOT IF @@ERROR <> 0 GOTO ERROR SET @LANCAMENTO_CRED_DOT = null END --#67# IF CURSOR_STATUS('global','CUR_CREDIARIO') >= -1 --#31# BEGIN --#31# DEALLOCATE CUR_CREDIARIO END --#31# --FIM DA INCLUSÃO DOS TITULOS A RECEBER] /*FECHA OS CAIXA CREDIARIO*/ INSERT INTO LOJA_CAIXA_LANCAMENTOS (DATA, CODIGO_FILIAL, TERMINAL, LANCAMENTO_CAIXA, TIPO_LANCAMENTO_CAIXA, DIGITACAO, ENTRADA_CAIXA, SAIDA_CAIXA, HISTORICO, VALOR_CANCELADO, PERIODO_FECHAMENTO, CTB_LANCAMENTO, EMPRESA) SELECT DISTINCT DATA = @DATA_VENDA, CODIGO_FILIAL = @CODIGO_LOJA_CRED, TERMINAL = TERMINAL, LANCAMENTO_CAIXA = @DATA_CAIXA + CAST(0 AS VARCHAR(1)) + --CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END,TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END, #3# CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, DIGITACAO = @HOJE1, ENTRADA_CAIXA = 0, SAIDA_CAIXA = 0, HISTORICO = 'FECHAMENTO DE CAIXA PELA CONTABILIDADE', VALOR_CANCELADO = 0, PERIODO_FECHAMENTO = '01', CTB_LANCAMENTO = @LANCAMENTO_CRED, EMPRESA = @EMPRESA_CRED FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_LOJA_CRED GROUP BY TERMINAL UNION ALL SELECT DISTINCT DATA = @DATA_VENDA, CODIGO_FILIAL = @CODIGO_LOJA_CRED, TERMINAL = TERMINAL, LANCAMENTO_CAIXA = @DATA_CAIXA + CAST(2 AS VARCHAR(1)) + --CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END,TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @BAIXA_VALE_CLIENTE IS NULL THEN @TIPO_PGTO ELSE 'Y' END, #3# CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN 'N' ELSE @TIPO_PGTO END + CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, TIPO_LANCAMENTO_CAIXA = 'F' + CASE WHEN @TIPO_PGTO_BAIXA IS NULL THEN @TIPO_PGTO ELSE @TIPO_PGTO_BAIXA END, DIGITACAO = @HOJE1, ENTRADA_CAIXA = 0, SAIDA_CAIXA = 0, HISTORICO = 'FECHAMENTO DE CAIXA PELA CONTABILIDADE', VALOR_CANCELADO = 0, PERIODO_FECHAMENTO = '01', CTB_LANCAMENTO = @LANCAMENTO_CRED_DOT, EMPRESA = @EMPRESA_CRED FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_LOJA_CRED AND @LANCAMENTO_CRED_DOT IS NOT NULL GROUP BY TERMINAL /*FIM FECHA OS CAIXA CREDIARIO*/ END /*FIM CREDIÁRIO*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO) BEGIN UPDATE CTB_LANCAMENTO SET GERADO_INTEGRACAO = 2 WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND GERADO_INTEGRACAO <> 2 IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATUALIZAR O GERADO_INTEGRACAO DA TABELA CTB_LANCAMENTO' GOTO ERROR END END ELSE BEGIN UPDATE CTB_LANCAMENTO SET GERADO_INTEGRACAO = 1 WHERE EMPRESA = @EMPRESA AND LANCAMENTO = @LANCAMENTO AND GERADO_INTEGRACAO <> 1 AND ISNULL(RTRIM(LTRIM(@TIPO_PGTO_BAIXA)), '') <> '<' --#3# IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO ATUALIZAR O GERADO_INTEGRACAO DA TABELA CTB_LANCAMENTO' GOTO ERROR END END IF @@ERROR <> 0 GOTO ERROR INSERT CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA, CAMBIO_NA_DATA) (SELECT EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA, CAMBIO_NA_DATA FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM) IF @@ERROR <> 0 GOTO ERROR INSERT CTB_IMPOSTO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, VALOR_IMPOSTO, ID_SUB_ITEM_APURACAO, TAXA_IMPOSTO, BASE_IMPOSTO) (SELECT EMPRESA, LANCAMENTO, ITEM, ID_IMPOSTO, VALOR_IMPOSTO, ID_SUB_ITEM_APURACAO, TAXA_IMPOSTO, BASE_IMPOSTO FROM #INTEGRA_LOJA_CTB_IMPOSTO_LANCAMENTO) IF @@ERROR <> 0 GOTO ERROR INSERT CTB_CHEQUE_CARTAO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CONTA_PORTADOR, LX_TIPO_DOCUMENTO, CODIGO_CONSUMIDOR, COD_FILIAL, CODIGO_ADMINISTRADORA, DATA_EMISSAO, VENDA_DOCUMENTO, LOJA_PARCELA, NUMERO_CHEQUE_CARTAO, DATA_DIGITACAO, VENDA_TOTAL_PARCELAMENTO, INDICA_CARTAO, CHEQUE_AGENCIA, VENCIMENTO, CHEQUE_CONTA_CORRENTE, PRORROGACAO, ORIGEM, VALOR_ORIGINAL, NUMERO_DEVOLUCOES, TAXA_ADMINISTRACAO, GUIA_ENVIO, CHEQUE_BANCO, VENDA_PARCELAMENTO, CMC7_CVCARTAO, DATA_PARA_TRANSFERENCIA, COD_CLIFOR, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, NUMERO_APROVACAO_CARTAO, LOJA_TIPO_PGTO, VALOR_ORIGINAL_PADRAO, MOEDA, CAMBIO_NA_DATA_EMISSAO, IMPOSTO_DEDUTIVEL, IMPOSTO_RETIDO, VALOR_A_RECEBER, LX_PARCELA, VENCIMENTO_REAL, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ (SELECT EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CONTA_PORTADOR, LX_TIPO_DOCUMENTO, CODIGO_CONSUMIDOR, COD_FILIAL, CODIGO_ADMINISTRADORA, DATA_EMISSAO, VENDA_DOCUMENTO, LOJA_PARCELA, NUMERO_CHEQUE_CARTAO, DATA_DIGITACAO, VENDA_TOTAL_PARCELAMENTO, INDICA_CARTAO, CHEQUE_AGENCIA, VENCIMENTO, CHEQUE_CONTA_CORRENTE, PRORROGACAO, ORIGEM, VALOR_ORIGINAL, NUMERO_DEVOLUCOES, TAXA_ADMINISTRACAO, GUIA_ENVIO, CHEQUE_BANCO, VENDA_PARCELAMENTO, CMC7_CVCARTAO, DATA_PARA_TRANSFERENCIA, COD_CLIFOR, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, NUMERO_APROVACAO_CARTAO, LOJA_TIPO_PGTO, VALOR_ORIGINAL_PADRAO, MOEDA, CAMBIO_NA_DATA_EMISSAO, IMPOSTO_DEDUTIVEL, IMPOSTO_RETIDO, VALOR_A_RECEBER, LX_PARCELA, VENCIMENTO_REAL, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO /*#73#*/ FROM #INTEGRA_LOJA_CTB_CHEQUE_CARTAO) IF @@ERROR <> 0 GOTO ERROR SELECT * FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO INSERT CTB_AVISO_LANCAMENTO (EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CODIGO_CONSUMIDOR, CODIGO_FISCAL_OPERACAO, LX_TIPO_DOCUMENTO, AVISO_LANCAMENTO, VENCIMENTO, EMISSAO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, STATUS_APROVACAO, DESC_AVISO_LANCAMENTO, COD_CLIFOR, MOEDA, USUARIO, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, LOJA_PARCELA, LOJA_CHAVE, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO) /*#73#*/ (SELECT EMPRESA, LANCAMENTO, ITEM, SUB_ITEM, CODIGO_CONSUMIDOR, CODIGO_FISCAL_OPERACAO, LX_TIPO_DOCUMENTO, AVISO_LANCAMENTO, VENCIMENTO, EMISSAO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, STATUS_APROVACAO, DESC_AVISO_LANCAMENTO, COD_CLIFOR, MOEDA, USUARIO, LOJA_TERMINAL, LOJA_LANCAMENTO_CAIXA, LOJA_PARCELA, LOJA_CHAVE, PEDIDO_ID_ORIGEM, /*#73#*/ NF_NUMERO /*#73#*/ FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO) IF @@ERROR <> 0 GOTO ERROR INSERT CTB_AVISO_LANCAMENTO_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV) (SELECT EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV) IF @@ERROR <> 0 GOTO ERROR INSERT CTB_A_RECEBER_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, ID_PARCELA, VALOR_MOV, VALOR_MOV_PADRAO, VALOR_JUROS_GERADO, VALOR_JUROS_PAGO, VALOR_JUROS_PAGO_PADRAO, DATA_PAGAMENTO, DESCONTO_CONCEDIDO, DESCONTO_EFETIVADO, DESCONTO_EFETIVADO_PADRAO, PGTO_CARTORIO, VALOR_MULTA_GERADA, VALOR_MULTA_PAGA, VALOR_MULTA_PAGA_PADRAO) (SELECT EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, ID_PARCELA, VALOR_MOV, VALOR_MOV_PADRAO, VALOR_JUROS_GERADO, VALOR_JUROS_PAGO, VALOR_JUROS_PAGO_PADRAO, DATA_PAGAMENTO, DESCONTO_CONCEDIDO, DESCONTO_EFETIVADO, DESCONTO_EFETIVADO_PADRAO, PGTO_CARTORIO, VALOR_MULTA_GERADA, VALOR_MULTA_PAGA, VALOR_MULTA_PAGA_PADRAO FROM #INTEGRA_LOJA_CTB_A_RECEBER_MOV) IF @@ERROR <> 0 GOTO ERROR --#9# SET @FATURA_RETORNO = NULL SELECT DISTINCT A.FATURA INTO #TEMP_FATURA_RETORNO FROM CTB_A_RECEBER_FATURA AS A INNER JOIN #INTEGRA_LOJA_CTB_A_RECEBER_FATURA AS B ON A.COD_EMISSOR = B.COD_EMISSOR AND A.SERIE = B.SERIE AND A.FATURA = B.FATURA IF EXISTS (SELECT TOP 1 1 /*#75#*/ FROM #TEMP_FATURA_RETORNO) BEGIN SET @FATURA_RETORNO ='' SELECT TOP 1 @FATURA_RETORNO_PROX = FATURA FROM #TEMP_FATURA_RETORNO WHILE @@ROWCOUNT <> 0 BEGIN SET @FATURA_RETORNO = RTRIM(LTRIM(@FATURA_RETORNO)) + ', ' + RTRIM(LTRIM(@FATURA_RETORNO_PROX)) DELETE #TEMP_FATURA_RETORNO WHERE RTRIM(LTRIM(FATURA)) = RTRIM(LTRIM(@FATURA_RETORNO_PROX)) SELECT TOP 1 @FATURA_RETORNO_PROX = ISNULL(FATURA, '') FROM #TEMP_FATURA_RETORNO END DROP TABLE #TEMP_FATURA_RETORNO SELECT @ERRMSG = 'A(S) FATURA(S) Nº ' + @FATURA_RETORNO + ' JÁ EXISTE(M) PARA ESTE EMISSOR E SÉRIE = LJ' END ELSE BEGIN INSERT CTB_A_RECEBER_FATURA (CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO) (SELECT CODIGO_CONSUMIDOR, COD_CLIFOR, COD_EMISSOR, EMPRESA, FATURA, FATURA_IMPRESSA, ITEM, JUROS_POR_ATRASO, LANCAMENTO, LX_TIPO_DOCUMENTO, MOEDA, MULTA_POR_ATRASO, POSSUI_SAIDA, SERIE, EMISSAO FROM #INTEGRA_LOJA_CTB_A_RECEBER_FATURA) --#9# END IF LEN(@ERRMSG) > 0 GOTO ERROR --#13# INSERT CTB_A_RECEBER_PARCELA (AGENCIA, CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO, VALOR_A_RECEBER, LOJA_CHAVE) (SELECT DISTINCT AGENCIA, CONTA_PORTADOR, EMPRESA, ID_PARCELA, ITEM, LANCAMENTO, VALOR_ORIGINAL, VALOR_ORIGINAL_PADRAO, VENCIMENTO, ISNULL(VALOR_A_RECEBER, VALOR_ORIGINAL),--#5# LOJA_CHAVE --#5# FROM #INTEGRA_LOJA_CTB_A_RECEBER_PARCELA) -- #18 ATUALIZA A TABELA OFICIAL SE BASEANDO NA TABELA TEMPORARIA UPDATE A SET LANCAMENTO = B.LANCAMENTO, ITEM = B.ITEM, EMPRESA = B.EMPRESA, ID_PARCELA = B.ID_PARCELA FROM LJ_CREDIARIO_PARCELA A JOIN #INTEGRA_LOJA_LJ_CREDIARIO_PARCELA B ON A.ID_CONTRATO = B.ID_CONTRATO AND A.ID_CONTRATO_PARCELA = B.ID_CONTRATO_PARCELA UPDATE A SET LANCAMENTO = B.LANCAMENTO, ITEM = B.ITEM, EMPRESA = B.EMPRESA FROM LJ_CREDIARIO_CONTRATO A JOIN #INTEGRA_LOJA_LJ_CREDIARIO_CONTRATO B ON A.ID_CONTRATO = B.ID_CONTRATO -- #18 IF @@ERROR <> 0 GOTO ERROR --/*#61#*/COMMIT TRANSACTION GERAR_LOJA /*#24#*/ --ESTA CHAMADA DA PROC PARA TROCAS FOI REALOCADA PARA DEPOIS DA INSERÇÃO DAS BAIXAS DE VALE PRODUTO QUE OCORRERAM NO MESMO DIA DA EMISSÃO /* IF NOT EXISTS(SELECT 1 FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND TIPO_LANCAMENTO_CAIXA = 'FT') AND @SEGUNDA_CHAMADA = 0 BEGIN EXEC DBO.LX_CTB_INTEGRAR_LOJAS @DATA_VENDA, @FILIAL, 'T', 0, NULL, 1 IF @@ERROR <> 0 GOTO ERROR END */ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- --TRATAMENTO FEITO PARA SE CASO EXISTA NO MOVIMENTO DE LOJA UMA VENDA DE VALE PRODUTO E NO MESMO DIA O RECEBIMENTO DESTE VALE -- #15# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- /*#24#*/ - INÍCIO ------------------------------------------------------- DELETE #CTB_AVISO_LANCAMENTO_BAIXA DELETE #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM DELETE #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV DECLARE CUR_LOJA_VENDA_PARCELAS CURSOR LOCAL FAST_FORWARD FOR SELECT A.TICKET, A.PEDIDO, /*#27#*/ A.PARCELA, A.CODIGO_CLIENTE, A.CHEQUE_CARTAO, A.VALOR, A.AGENCIA, A.BANCO, A.VENCIMENTO, A.CONTA_CORRENTE, A.NUMERO_LOTE, A.NUMERO_APROVACAO_CARTAO, ISNULL(A.NUMERO_TITULO, 'INDEFINIDO'), A.PARCELAS_CARTAO, A.VALOR, A.TERMINAL, A.LANCAMENTO_CAIXA, C.INDICA_ID_CONTABIL_TERCEIRO, A.NUMERO_CUPOM_FISCAL, A.CHEQUE_CARTAO_QUITADO, A.JUROS, A.LX_TIPO_LANCAMENTO_BAIXA FROM #CTB_MOVIMENTO_LOJAS A JOIN CTB_LANC_PADRAO_ITEM B ON A.LANCAMENTO_PADRAO = B.LANCAMENTO_PADRAO AND A.TIPO_PGTO = B.TIPO_PGTO AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(B.CODIGO_ADMINISTRADORA, CHAR(0)) AND ( ( A.VALOR >= 0 AND ISNULL(B.TIPO_PGTO_NEGATIVO, 0) = 0 ) OR ( A.VALOR < 0 AND ( B.TIPO_PGTO_NEGATIVO = 1 OR NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM CTB_LANC_PADRAO_ITEM X WHERE X.LANCAMENTO_PADRAO = A.LANCAMENTO_PADRAO AND X.TIPO_PGTO = A.TIPO_PGTO AND X.TIPO_PGTO_NEGATIVO = 1) ) ) ) JOIN CTB_LX_LANCAMENTO_TIPO C ON B.LX_TIPO_LANCAMENTO = C.LX_TIPO_LANCAMENTO LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO WHERE A.DATA_VENDA = @DATA_VENDA AND A.FILIAL = @FILIAL AND A.TIPO_PGTO = @TIPO_PGTO AND NOT ( B.LX_TIPO_LANCAMENTO = 'IAD' --AND A.TIPO_PGTO IN ( 'R', '&', 'Q' ) ) /*#37#*/ ) AND A.EMPRESA = @EMPRESA /*#31#*/--AND A.LOCALIDADE = @LOCALIDADE AND B.LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO AND CASE WHEN @CODIGO_CLIENTE_CADASTRAR_CUR IS NOT NULL THEN A.CODIGO_CLIENTE ELSE '' END = ISNULL(@CODIGO_CLIENTE_CADASTRAR_CUR, '') AND ISNULL(CASE WHEN ISNULL(LTRIM(RTRIM(A.MOEDA)), '') = '' THEN @MOEDA_PADRAO ELSE A.MOEDA END, @MOEDA_PADRAO) = @MOEDA AND ISNULL(A.CODIGO_ADMINISTRADORA, CHAR(0)) = ISNULL(@CODIGO_ADMINISTRADORA, CHAR(0)) AND CASE WHEN ISNULL(@NAO_AGRUPA_CARTAO, 0) = 1 AND A.TIPO_PGTO IN ( 'B', 'E', 'I', 'A', '+' /*#68#*/, 'K', 'H' ) THEN ISNULL(RTRIM(LANCAMENTO_CAIXA) + '##' + RTRIM(NUMERO_TITULO) + RTRIM(PARCELA), '') WHEN ISNULL(@NAO_AGRUPA_CHEQUE, 0) = 1 AND A.TIPO_PGTO IN ( 'C', 'P' ) THEN ISNULL(RTRIM(LANCAMENTO_CAIXA) + '##' + RTRIM(NUMERO_TITULO) + RTRIM(PARCELA), '') ELSE '' END = ISNULL(@LANCAMENTO_CAIXA_ICR_CUR, '') ORDER BY A.VALOR OPEN CUR_LOJA_VENDA_PARCELAS FETCH NEXT FROM CUR_LOJA_VENDA_PARCELAS INTO @TICKET, @PEDIDO /*#27#*/, @PARCELA, @CODIGO_CLIENTE, @CHEQUE_CARTAO, @VALOR, @AGENCIA, @BANCO, @VENCIMENTO, @CONTA_CORRENTE, @NUMERO_LOTE, @NUMERO_APROVACAO_CARTAO, @NUMERO_TITULO, @PARCELAS_CARTAO, @VALOR, @TERMINAL, @LANCAMENTO_CAIXA, @INDICA_ID_CONTABIL_TERCEIRO, @NUMERO_CUPOM_FISCAL_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS, @LX_TIPO_LANCAMENTO_BAIXA_CUR WHILE @@FETCH_STATUS = 0 BEGIN SELECT @LANCAMENTO_MOV = NULL, @ITEM_MOV = NULL, @SUB_ITEM_MOV = NULL IF @LX_TIPOS_LANC_MOV = 'BAC' BEGIN SET @LX_TIPO_LANCAMENTO = 'BAC' END IF @LX_TIPO_LANCAMENTO = 'BAC' --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q', 'W' /*#48#*/, 'Y', '>' /*#49#*/, 'G' /*#57#*/, '\' /*#63#*/ ) /*#37#*/ AND @VALOR > 0 BEGIN DELETE #CTB_AVISO_LANCAMENTO_BAIXA INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAC' AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA /*#43#*/ AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO /*#52#*/ ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC /*#59#*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) --AND @TIPO_PGTO IN ( 'R', 'W', 'Y') BEGIN INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAC' AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND B.LOJA_CHAVE = @CHEQUE_CARTAO AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC END /*#59#*/ IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) BEGIN INSERT #CTB_AVISO_LANCAMENTO_BAIXA (EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, LANCAMENTO, ITEM, CONTA_CONTABIL) SELECT B.EMPRESA, B.LANCAMENTO, B.ITEM, B.SUB_ITEM, VALOR_AVISO_PADRAO, NULL, NULL, A.CONTA_CONTABIL FROM CTB_LANCAMENTO_ITEM A JOIN W_CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE A.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO IN ( 'IAC' ) AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND ( ( B.CODIGO_CONSUMIDOR IS NULL AND B.AVISO_LANCAMENTO = @NUMERO_TITULO AND ( LOJA_LANCAMENTO_CAIXA IS NOT NULL ) ) OR ( (B.CODIGO_CONSUMIDOR = @CODIGO_CLIENTE OR @TIPO_PGTO IN ('@', '&', 'W' /*#48#*/, 'Y', '>' /*#49#*/, '\' /*#63#*/)) --#29# /*#41#*/ AND B.AVISO_LANCAMENTO = @NUMERO_TITULO ) ) AND B.VALOR_AVISO > 0 AND B.EMISSAO = @DATA_VENDA /*#43#*/ AND B.LX_TIPO_DOCUMENTO = @LX_TIPO_DOCUMENTO /*#52#*/ ORDER BY C.DATA_LANCAMENTO DESC, B.VALOR_AVISO ASC END END SELECT @RATEIO_CENTRO_CUSTO = COALESCE(B.RATEIO_CENTRO_CUSTO, @RATEIO_CCUSTO_PADRAO_LOJA, @RATEIO_CENTRO_CUSTO), /*#70#*/ @CODIGO_HISTORICO = ISNULL(B.CODIGO_HISTORICO, @CODIGO_HISTORICO), @HISTORICO = ISNULL(D.HISTORICO_PADRAO, @HISTORICO), @CONTA_CONTABIL = ISNULL(B.CONTA_CONTABIL, @CONTA_CONTABIL) FROM CTB_LANC_PADRAO_ITEM B LEFT JOIN CTB_HIST_PADRAO D ON B.CODIGO_HISTORICO = D.CODIGO_HISTORICO WHERE B.LANCAMENTO_PADRAO = @LANCAMENTO_PADRAO AND B.TIPO_PGTO = @TIPO_PGTO AND B.LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @INDICA_ID_CONTABIL_TERCEIRO = INDICA_ID_CONTABIL_TERCEIRO FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO IF @LX_TIPO_LANCAMENTO IN ( 'BAC', 'IAD', 'LSC', 'LRF' ) --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q' /*#25#*/ /*#37#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) AND @VALOR > 0 BEGIN SELECT @DEBITO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @CREDITO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO BEGIN DECLARE CUR_BAIXA_BAC CURSOR FOR SELECT EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, VALOR_AVISO_PADRAO, CONTA_CONTABIL FROM #CTB_AVISO_LANCAMENTO_BAIXA ORDER BY VALOR_AVISO_PADRAO OPEN CUR_BAIXA_BAC FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @VALOR_AVISO_PADRAO_CUR, @CONTA_CONTABIL_CUR SELECT @VALOR_FALTANTE = ABS(@VALOR) SELECT @FIM = 0 WHILE @@FETCH_STATUS = 0 BEGIN SELECT @VALOR_FALTANTE = @VALOR_FALTANTE - @VALOR_AVISO_PADRAO_CUR IF @VALOR_FALTANTE < 0 BEGIN SELECT @FIM = @FIM + 1 IF @FIM > 1 BREAK SELECT @VALOR_BAIXA = @VALOR_AVISO_PADRAO_CUR - ABS(@VALOR_FALTANTE) END ELSE SELECT @VALOR_BAIXA = @VALOR_AVISO_PADRAO_CUR SELECT @ITEM = ISNULL(@ITEM, 0) SELECT @ITEM = @ITEM + 1 SELECT @ITEM_BKP = @ITEM UPDATE #CTB_AVISO_LANCAMENTO_BAIXA SET LANCAMENTO = @LANCAMENTO, ITEM = @ITEM, VALOR_BAIXA = @VALOR_BAIXA WHERE EMPRESA = @EMPRESA_CUR AND LANCAMENTO_MOV = @LANCAMENTO_MOV_CUR AND ITEM_MOV = @ITEM_MOV_CUR AND SUB_ITEM = @SUB_ITEM_CUR SELECT @DEBITO = CASE WHEN CREDITO_DEBITO = 'D' THEN ABS(@VALOR_BAIXA) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO SELECT @CREDITO = CASE WHEN CREDITO_DEBITO = 'C' THEN ABS(@VALOR_BAIXA) ELSE 0 END FROM CTB_LX_LANCAMENTO_TIPO WHERE LX_TIPO_LANCAMENTO = @LX_TIPO_LANCAMENTO INSERT INTO #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA) VALUES (@EMPRESA, @LANCAMENTO, @ITEM, CASE WHEN @INDICA_ID_CONTABIL_TERCEIRO = 1 THEN ISNULL(@COD_CLIFOR_NOVO, ISNULL(@COD_CLIFOR_LANC_PADRAO_CUR, @COD_FILIAL)) ELSE NULL END, @CONTA_CONTABIL_CUR, @LX_TIPO_LANCAMENTO, @DEBITO, @CREDITO, @HISTORICO, @CODIGO_HISTORICO, @RATEIO_CENTRO_CUSTO, @COD_FILIAL, 0, @MOEDA, 0, 0, @DEBITO, @CREDITO, 1, @HOJE1, 1 ) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_LANCAMENTO_ITEM' GOTO ERROR END FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @VALOR_AVISO_PADRAO_CUR, @CONTA_CONTABIL_CUR END CLOSE CUR_BAIXA_BAC DEALLOCATE CUR_BAIXA_BAC END END IF @LX_TIPO_LANCAMENTO IN ( 'BAC', 'IAD' ) --AND @TIPO_PGTO IN ( 'R', '&', '@', 'Q' /*#25#*/ /*#37#*/, 'W' /*#48#*/, 'Y', '>' /*#49#*/ , 'G' /*#57#*/, '\' /*#63#*/) AND @VALOR > 0 BEGIN IF EXISTS(SELECT TOP 1 1 /*#75#*/ FROM #CTB_AVISO_LANCAMENTO_BAIXA) AND @LX_TIPO_LANCAMENTO = 'BAC' BEGIN DECLARE CUR_BAIXA_BAC CURSOR FOR SELECT EMPRESA, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, LANCAMENTO, ITEM, VALOR_BAIXA, CONTA_CONTABIL FROM #CTB_AVISO_LANCAMENTO_BAIXA WHERE LANCAMENTO IS NOT NULL OPEN CUR_BAIXA_BAC FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @VALOR_BAIXA_CUR, @CONTA_CONTABIL_CUR WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV) VALUES (@EMPRESA_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @DATA_VENDA, @VALOR, @VALOR_BAIXA_CUR) IF @@ERROR <> 0 BEGIN SELECT @ERRMSG = 'ERRO AO INSERIR CTB_AVISO_LANCAMENTO_MOV' GOTO ERROR END FETCH NEXT FROM CUR_BAIXA_BAC INTO @EMPRESA_CUR, @LANCAMENTO_MOV_CUR, @ITEM_MOV_CUR, @SUB_ITEM_CUR, @LANCAMENTO_CUR, @ITEM_CUR, @VALOR_BAIXA_CUR, @CONTA_CONTABIL_CUR END CLOSE CUR_BAIXA_BAC DEALLOCATE CUR_BAIXA_BAC END IF @LX_TIPO_LANCAMENTO_BAIXA_CUR = 'BAD' BEGIN SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @SUB_ITEM_MOV = B.SUB_ITEM, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE B.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAD' AND B.LANCAMENTO = @LANCAMENTO_CHAVE AND B.ITEM = @ITEM_CHAVE AND B.SUB_ITEM = CAST(@DET_CHAVE AS INT) AND B.VALOR_AVISO >= @VALOR AND B.VALOR_AVISO > 0 IF @LANCAMENTO_MOV IS NULL SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @SUB_ITEM_MOV = B.SUB_ITEM, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_AVISO_LANCAMENTO B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON ( A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO ) WHERE B.EMPRESA = @EMPRESA AND A.LX_TIPO_LANCAMENTO = 'IAD' AND B.VALOR_AVISO >= @VALOR AND B.VALOR_AVISO > 0 AND B.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR END ELSE BEGIN SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND A.LANCAMENTO = @LANCAMENTO_CHAVE AND A.ITEM = @ITEM_CHAVE AND D.ID_PARCELA = CAST(@DET_CHAVE AS VARCHAR(2)) AND D.VALOR_A_RECEBER > 0 IF @LANCAMENTO_MOV IS NULL SELECT @LANCAMENTO_MOV = A.LANCAMENTO, @ITEM_MOV = A.ITEM, @ID_PARCELA_MOV = D.ID_PARCELA, @CONTA_CONTABIL_BAIXA = A.CONTA_CONTABIL, @RATEIO_FILIAL_BAIXA = A.RATEIO_FILIAL, @RATEIO_CENTRO_CUSTO_BAIXA = A.RATEIO_CENTRO_CUSTO, @COD_CLIFOR_VALE_CLIENTE = B.COD_CLIFOR FROM CTB_LANCAMENTO_ITEM A JOIN CTB_A_RECEBER_FATURA B ON A.EMPRESA = B.EMPRESA AND A.LANCAMENTO = B.LANCAMENTO AND A.ITEM = B.ITEM JOIN CTB_LANCAMENTO AS C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO JOIN CTB_A_RECEBER_PARCELA D ON B.EMPRESA = D.EMPRESA AND B.LANCAMENTO = D.LANCAMENTO AND B.ITEM = D.ITEM WHERE A.EMPRESA = @EMPRESA AND C.TIPO_MOVIMENTO = @TIPO_MOVIMENTO AND D.LOJA_CHAVE = @CHEQUE_CARTAO_QUITADO_CUR AND D.VALOR_A_RECEBER > 0 END END FETCH NEXT FROM CUR_LOJA_VENDA_PARCELAS INTO @TICKET, @PEDIDO /*#27#*/, @PARCELA, @CODIGO_CLIENTE, @CHEQUE_CARTAO, @VALOR, @AGENCIA, @BANCO, @VENCIMENTO, @CONTA_CORRENTE, @NUMERO_LOTE, @NUMERO_APROVACAO_CARTAO, @NUMERO_TITULO, @PARCELAS_CARTAO, @VALOR, @TERMINAL, @LANCAMENTO_CAIXA, @INDICA_ID_CONTABIL_TERCEIRO, @NUMERO_CUPOM_FISCAL_CUR, @CHEQUE_CARTAO_QUITADO_CUR, @JUROS, @LX_TIPO_LANCAMENTO_BAIXA_CUR END CLOSE CUR_LOJA_VENDA_PARCELAS DEALLOCATE CUR_LOJA_VENDA_PARCELAS INSERT CTB_LANCAMENTO_ITEM (EMPRESA, LANCAMENTO, ITEM, COD_CLIFOR, CONTA_CONTABIL, LX_TIPO_LANCAMENTO, DEBITO, CREDITO, HISTORICO, CODIGO_HISTORICO, RATEIO_CENTRO_CUSTO, RATEIO_FILIAL, CONCILIADO, MOEDA, PERMITE_ALTERACAO, DISPARA_FORMULA, DEBITO_MOEDA, CREDITO_MOEDA, GERADO_AUTOMATICO_TIPO, DATA_DIGITACAO, ID_CONTRAPARTIDA, CAMBIO_NA_DATA) (SELECT A.EMPRESA, A.LANCAMENTO, A.ITEM, A.COD_CLIFOR, A.CONTA_CONTABIL, A.LX_TIPO_LANCAMENTO, A.DEBITO, A.CREDITO, A.HISTORICO, A.CODIGO_HISTORICO, A.RATEIO_CENTRO_CUSTO, A.RATEIO_FILIAL, A.CONCILIADO, A.MOEDA, A.PERMITE_ALTERACAO, A.DISPARA_FORMULA, A.DEBITO_MOEDA, A.CREDITO_MOEDA, A.GERADO_AUTOMATICO_TIPO, A.DATA_DIGITACAO, A.ID_CONTRAPARTIDA, A.CAMBIO_NA_DATA FROM #INTEGRA_LOJA_CTB_LANCAMENTO_ITEM A) IF @@ERROR <> 0 GOTO ERROR INSERT CTB_AVISO_LANCAMENTO_MOV (EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV) (SELECT EMPRESA, LANCAMENTO, ITEM, LANCAMENTO_MOV, ITEM_MOV, SUB_ITEM, DATA_PAGAMENTO, VALOR_MOV_PADRAO, VALOR_MOV FROM #INTEGRA_LOJA_CTB_AVISO_LANCAMENTO_MOV) IF @@ERROR <> 0 GOTO ERROR IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM LOJA_CAIXA_LANCAMENTOS WHERE DATA = @DATA_VENDA AND CODIGO_FILIAL = @CODIGO_FILIAL AND TIPO_LANCAMENTO_CAIXA = 'FT') AND @SEGUNDA_CHAMADA = 0 AND @INTEGRA_TROCA = 1 /*#74#*/ BEGIN EXEC DBO.LX_CTB_INTEGRAR_LOJAS @DATA_VENDA, @FILIAL, 'T', 0, NULL, 1 IF @@ERROR <> 0 GOTO ERROR END -------------------------------------------------- /*#24#*/ - FIM ------------------------------------------------------- COMMIT TRANSACTION GERAR_LOJA; /*#61#*/ -- #71# -- MONITOR FFC -------------------------------- IF EXISTS (SELECT TOP 1 1 FROM SYS.OBJECTS WHERE TYPE = 'P' AND NAME = 'LX_FFC_GRAVA_STATUS_MONITOR') BEGIN IF NOT EXISTS(SELECT 1 FROM PARAMETROS WHERE PARAMETRO = 'INTEGRAR_CAIXA_AUTOMATICO') OR (SELECT VALOR_ATUAL FROM PARAMETROS WHERE PARAMETRO = 'INTEGRAR_CAIXA_AUTOMATICO') = '.F.' BEGIN DELETE FFC_MONITOR_LOG WHERE ID_PROCESSO =1 AND ID_ITEM IN (2,3) AND DATA_PROCESSO = @DATA_VENDA AND COD_FILIAL =@CODIGO_FILIAL END EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,1,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,99,NULL,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,2,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,99,NULL,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; /*#78#*/ EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,3,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,99,NULL,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; /*#78#*/ END; -- #71# -- MONITOR FFC -------------------------------- RETURN -------------------------------------------------------------------------------------------------------------------------- ERROR: IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION --GERAR_LOJA IF @ERRMSG IS NOT NULL BEGIN --#71# IF EXISTS (SELECT TOP 1 1 FROM SYS.OBJECTS WHERE TYPE = 'P' AND NAME = 'LX_FFC_GRAVA_STATUS_MONITOR') BEGIN EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,1,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,30,@ERRMSG,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,2,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,30,@ERRMSG,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; /*#78#*/ EXEC DBO.LX_FFC_GRAVA_STATUS_MONITOR 1,3,@CODIGO_FILIAL,@DATA_VENDA,@DATA_VENDA,30,@ERRMSG,'LX_CTB_INTEGRAR_LOJAS',NULL,NULL; /*#78#*/ END; --#71# IF @GERAR_LOG = 1 BEGIN IF NOT EXISTS(SELECT TOP 1 1 /*#75#*/ FROM SYSOBJECTS WHERE NAME = 'LOG_INTEGRACAO_LOJA') CREATE TABLE LOG_INTEGRACAO_LOJA ( DATA_HORA DATETIME, MENSAGEM VARCHAR(400), DATA_VENDA DATETIME, FILIAL VARCHAR(25), TIPO_PGTO CHAR(1) ) INSERT INTO LOG_INTEGRACAO_LOJA (DATA_HORA, MENSAGEM, DATA_VENDA, FILIAL, TIPO_PGTO) VALUES (GETDATE(), @ERRMSG, @DATA_VENDA, @FILIAL, @TIPO_PGTO) END ELSE BEGIN SELECT @ERRMSG = @MESSAGE + @ERRMSG RAISERROR (@ERRMSG,11,1) END END