| Linha de Produto: | Microsiga Protheus® |
|---|---|
| Seguimento: | Serviços |
| Módulo | Fiscal |
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.
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! |
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.
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.
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.
#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
|
Não há
Não há.
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|