01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Seguimento: | Serviços |
Módulo | Fiscal |
02. DESCRIÇÃO
Ponto de entrada utilizado para a geração da DIMESC para o registro tipo 48 onde pode ser alterado os campos de código de município, Tipo e o valor, estamos abrindo a possibilidade do usuário conseguir alterar essas informações para que seja possível atender algumas movimentações especificas como a de energia elétrica.
Importante
A utilização desse ponto de entrada é de responsabilidade exclusiva do cliente, pois terá impacto direto na escrituração das notas e dos livros fiscais.
Utilize com cautela!
03. Especificação
Para a geração do registro tipo 48 é necessário o preenchimento dos CFOPS nos seguintes parâmetros:
MV_RG48001, MV_RG48002, MV_RG48003, MV_RG48004, MV_RG48005, MV_RG48006, MV_RG48007, MV_RG48008, MV_RG48501 e MV_RG4850.
Sendo que para uso do ponto de entrada os cfops devem ser preenchidos em qualquer um dos parâmetros, para os registros sejam classificados para serem inseridos para a composição do registro tipo 48.
Parâmetros para a Função:
Os parâmetros são passados no Array Paramixb, é passado como uma matriz sendo o primeiro campo um descritivo para que seja possível o entendimento da informação que está sendo passado e o segundo campo é passado o valor, os valores são baseados na tabela SF3 onde buscamos as informações para montar o registro do tipo 48.
Segue abaixo campos passados pelo array Paramixb, para que possa ser utilizados no ponto de entrada.
Apelido | Campo |
---|---|
FILIAL | F3_FILIAL |
NUM.DOC | F3_NFISCAL |
SERIE | F3_SERIE |
DT. ENTRADA | F3_ENTRADA |
TIPO DOC. | F3_TIPO |
DT. CANCEL | F3_DTCANC |
OBSERVAÇÃO | F3_OBSERV |
CFOP | F3_CFO |
CLI/FOR | F3_CLIEFOR |
LOJA | F3_LOJA |
VAL DOC | F3_VALCONT |
ESTADO | F3_ESTADO |
TIPO REG | CTIPO |
COD. MUNICIPIO | CCODMUNIC |
Obs.: Para maiores informações sobre o campo poderá ser encontrado em documentações anteriores sobre a tabela “Livro fiscal por Item da Nf.”, com exceção dos campos Tipo Reg e código de Munícipio o conteúdo desses campos é referente ao tipo que está vinculado ao CFPO que foi cadastrado em um dos parâmetros para a geração do registro tipo 48 e o código do munícipio é decorrente do cadastro de clientes ou fornecedor que foi utilizado no documento fiscal.
Retorno:
O ponto de entrada deverá retornar uma variável do tipo array com o tamanho de 3 posições, sendo o primeiro campo deverá ser do tipo caractere e retornar o código de município, o segundo deverá ser o tipo de registro deve ser do tipo caractere, esse campo deve compor o tipo do registro 48. O terceiro campo deve ser o valor, deve ser do tipo caractere e caso exista mais de um registro com o mesmo código de município e tipo de registro o sistema vai somar os valores que serão passados, abaixo segue alguns exemplos do conteúdo que devem ser retornados.
Exemplo do primeiro campo a ser retornado no Array:
Município | Código |
---|---|
SAO PAULO | 50308 |
SAO PEDRO | 50407 |
SAO PEDRO DO TURVO | 50506 |
SAO ROQUE | 50605 |
SAO SEBASTIAO | 50704 |
Exemplo do Segundo campo a ser retornado no Array:
Conteúdo | Descrição |
---|---|
011 | Para a quantidade de energia elétrica de fonte hidráulica produzida no mês. |
012 | Para a saída da energia elétrica adquirida de terceiros e comercializada no mês |
013 | Para a entrada da energia elétrica adquirida de terceiros para comercialização. |
O terceiro campo deve ser retornado o valor do documento, o valor do documento é enviado como parâmetro no Paramixb na posição 11, o usuário poderá retornar esse valor ou modificar, mas deverá passar o valor na 3 posição.
Obs.: Caso o array não possua o tamanho de 3 posições o sistema vai ignorar as informações do ponto de entrada, caso o tipo do conteúdo do array não seja respeitado esse conteúdo será ignorado.
04. EXEMPLO DE UTILIZAÇÃO
#Include "PROTHEUS.CH" User Function DMSC48TP() Local aRet := {} //Retorno do ponto de entrada Local cMunic := "" Local cTipo := "" Local nValor := 0 Local aParam := ParamIxb Do Case Case AllTrim(aParam[8][2]) == '1251' cMunic := "51801" cTipo := "013" //energia elétrica adquirida de terceiros para comercialização nValor := aParam[11][2] Case AllTrim(aParam[8][2]) == "5102" cMunic := "50308" cTipo := "012" //energia elétrica adquirida de terceiros e comercializada no mês nValor := aParam[11][2] Case AllTrim(aParam[8][2]) == "1201" cMunic := aParam[14][2] cTipo := aParam[13][2] nValor := Round(aParam[11][2],2) // Caso não seja nenhum desses CFOPS Arredondo o valor Case !AllTrim(aParam[8][2]) $ "5102|1201|1251" cMunic := Nil cTipo := Nil nValor := Nil // Caso desejar manter os valores do padrão, sem tratamento do ponto de entrada EndCase AADD( aRet, cMunic ) AADD( aRet, cTipo ) AADD( aRet, nValor ) Return aRet
05. DEMAIS INFORMAÇÕES
Não há
06. ASSUNTOS RELACIONADOS
Não há.