/****************************************************************************** Desenvolvido por: Arã Mahatma Pasta Data: 24/01/2018 Motivo: Tratamento para manter o ICMS Cred. Efetivamente igual ao ICMS Normal herdado do XML(CPR-000MTNEL01). *******************************************************************************/ Definir Alfa xTNSPRO; Definir Numero xCODFOR; Definir Numero xCODEMP; Definir Alfa xCODPRO; Definir Alfa xCODDER; Definir Numero xNUMNFC; Definir Numero xSEQIPC; xTNSPRO = E440IPC.TNSPRO; xCODFOR = E440IPC.CODFOR; xCODEMP = E440IPC.CODEMP; xCODPRO = E440IPC.CODPRO; xCODDER = E440IPC.CODDER; xNUMNFC = E440IPC.NUMNFC; xSEQIPC = E440IPC.SEQIPC; @----- BUSCA SE O FORNECEDOR CREDITA ICMS -----@ Definir cursor xCur_Fornecedor; Definir Alfa xFor_RECICM; Definir Alfa xFor_RECIPI; Definir numero xFor_CGCCPF; xCur_Fornecedor.SQL "SELECT RECICM, CGCCPF, RECIPI FROM E095FOR WHERE CODFOR = :xCODFOR"; xCur_Fornecedor.Abrircursor(); Se(xCur_Fornecedor.Achou) inicio xFor_RECICM = xCur_Fornecedor.RECICM; xFor_RECIPI = xCur_Fornecedor.RECIPI; xFor_CGCCPF = xCur_Fornecedor.CGCCPF; fim; xCur_Fornecedor.fecharcursor(); @----- BUSCA SE A TRANSAÇÃO CREDITA ICMS -----@ Definir cursor xCur_Transacao; Definir Alfa xTns_CPRRIC; Definir Alfa xTns_CPRRIP; xCur_Transacao.sql "SELECT CPRRIC, CPRRIP FROM E001TNS WHERE CODEMP =:xCODEMP AND CODTNS = :xTNSPRO"; xCur_Transacao.Abrircursor(); Se(xCur_Transacao.Achou) inicio xTns_CPRRIC = xCur_Transacao.CPRRIC; xTns_CPRRIP = xCur_Transacao.CPRRIP; fim; xCur_Transacao.fecharcursor(); @----- BUSCA SE O PRODUTO CREDITA ICMS -----@ Definir cursor xCur_Produto; Definir Alfa xPro_RECICM; Definir Alfa xPro_RECIPI; Definir Alfa xPro_INDFPR; xCur_Produto.sql "SELECT RECICM, RECIPI, INDFPR FROM E075PRO WHERE CODEMP =:xCODEMP AND CODPRO =:xCODPRO"; xCur_Produto.Abrircursor(); Se(xCur_Produto.Achou) inicio xPro_RECICM = xCur_Produto.RECICM; xPro_RECIPI = xCur_Produto.RECIPI; xPro_INDFPR = xCur_Produto.INDFPR; fim; xCur_Produto.fecharcursor(); @----- BUSCA SE A LIGAÇÃO PRODUTO X FORNECEDOR CREDITA ICMS -----@ Definir cursor xCur_Ligacao; Definir Alfa xFpr_RECICM; Definir Alfa xFpr_RECIPI; xCur_Ligacao.sql "SELECT RECICM, RECIPI FROM E403FPR WHERE CODEMP =:xCODEMP AND CODFOR =:xCODFOR AND CODPRO =:xCODPRO AND CODDER =:xCODDER"; xCur_Ligacao.Abrircursor(); Se(xCur_Ligacao.Achou) inicio xFpr_RECICM = xCur_Ligacao.RECICM; xFpr_RECIPI = xCur_Ligacao.RECIPI; fim; xCur_Ligacao.fecharcursor(); @----- SE A NOTA CREDITA ICMS - SALVAR O VALOR DO ICMS CRED. EFETV. NA TABELA E000IPC -----@ definir numero xProd_Nulo; EstaNulo(E440IPC.CODPRO, xProd_Nulo); Se ((xTns_CPRRIC = 'S') e (xFor_RECICM = 'S') e ((xProd_Nulo = 1) ou ((xProd_Nulo = 0) e ((xPro_RECICM = 'S') e (xPro_INDFPR = 'N'))) ou ((xProd_Nulo = 0) e ((xFpr_RECICM = 'S') e (xPro_INDFPR = 'S') ou (((xFpr_RECICM <> 'S') e (xFpr_RECICM <> 'N')) e (xPro_RECICM = 'S')))))) inicio ExecSql "UPDATE E000IPC SET BECICM = VLRBIC, VECICM = VLRICM, PECICM = PERICM WHERE CGCFOR = :xFor_CGCCPF AND NUMNFC = :xNUMNFC AND SEQIPC = :xSEQIPC"; fim; @----- SE A NOTA CREDITA IPI - SALVAR O VALOR DO IPI CRED. EFETV. NA TABELA E000IPC -----@ Se ((xTns_CPRRIP = 'S') e (xFor_RECIPI = 'S') e ((xProd_Nulo = 1) ou ((xProd_Nulo = 0) e ((xPro_RECIPI = 'S') e (xPro_INDFPR = 'N'))) ou ((xProd_Nulo = 0) e ((xFpr_RECIPI = 'S') e (xPro_INDFPR = 'S') ou (((xFpr_RECIPI <> 'S') e (xFpr_RECIPI <> 'N')) e (xPro_RECIPI = 'S')))))) inicio ExecSql "UPDATE E000IPC SET BECIPI = VLRBIP, VECIPI = VLRIPI, PECIPI = PERIPI WHERE CGCFOR = :xFor_CGCCPF AND NUMNFC = :xNUMNFC AND SEQIPC = :xSEQIPC"; fim; /*******************************************************************************/