Árvore de páginas

01. DADOS GERAIS 

Linha de Produto:Microsiga Protheus®
Seguimento:Serviços 
MóduloFiscal 



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.

ApelidoCampo

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. MUNICIPIOCCODMUNIC

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 
011Para a quantidade de energia elétrica de fonte hidráulica produzida no mês.
012Para a saída da energia elétrica adquirida de terceiros e comercializada no mês
013Para 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

PE DMSC48TP
#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á.