01. DADOS GERAIS
Produto: | Solucoes_totvs_cross |
---|
SolucaoCross | TOTVS Backoffice |
---|
|
|
---|
Linha de Produto: | Linhas_totvs |
---|
Segmento | Distribuição |
---|
Region | Construção Projetos |
---|
Linha | Linha Protheus |
---|
|
|
---|
Segmento: | |
---|
Módulo: | SIGAFAT - Faturamento |
---|
Função: | MAPVLNFS - Geração de Documento de Saída a partir de Itens Liberados de do Pedido(s) de Venda |
---|
Abrangências: | Microsiga Protheus 12 |
---|
Versões: | Microsiga Protheus 12 |
---|
Compatível Países: | Todos |
---|
Sistemas Operacionais: | Todos |
---|
Compatível com as Bases de Dados: | Todos |
---|
Nível de Acesso: | Nível 1 (Acesso Clientes) |
---|
Idiomas: | Todos |
---|
02. DESCRIÇÃO
Função utilizada para a geração do Documento Fiscal de Saída a partir de itens Liberados de do Pedido de VendasVenda.
03. SINTAXE
Aviso |
---|
|
A função MaPvlNfs não é responsável por validar os bloqueios dos itens liberados (SC9). Desta forma, a customização se torna responsável pela verificação dos bloqueios de Estoque (C9_BLEST) e Crédito (C9_BLCRED) conforme regra de negócio implementada pelo desenvolvedor. |
03. SINTAXE
MaPvlNfs( < aPvlNfs >, < cSerieNFS >, [ lMostraCtb ], [ lAglutCtb ], [ lCtbOnLine ], [ lCtbCusto ], [ lReajuste ], [ nCalAcrs ], [ nArredPrcLis ], [ lAtuSA7 ], [ lECF ], [ cEmbExp ], [ bAtuFin ], [ bAtuPGerNF ], [ bAtuPvl ], [ bFatSE1 ], [ dDataMoe ], [ lJunta ] MaPvlNfs(aPvlNfs, cSerieNFS, lMostraCtb, lAglutCtb, lCtbOnLine, lCtbCusto, lReajuste, nCalAcrs, nArredPrcLis, lAtuSA7, lECF, cEmbExp, bAtuFin, bAtuPGerNF, bAtuPvl, bFatSE1, dDataMoe, lJunta )
04. PARÂMETROS
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|
aPvlNfs | Array | Array com os itens a serem gerados |
| Sim |
|
cSerieNFS | Caractere | Série da Nota Fiscal |
| Sim |
|
lMostraCtb | Lógico | Mostra Lançamento Contábil |
| Não |
|
lAglutCtb | Lógico | Aglutina Lançamento Contábil |
| Não |
|
lCtbOnLine | Lógico | Contabiliza On-Line |
| Não |
|
lCtbCusto | Lógico | Contabiliza Custo On-Line |
| Não |
|
lReajuste | Lógico | Reajuste de preço na Nota Fiscal |
| Não |
|
nCalAcrs | Numérico | Tipo de Acréscimo Financeiro |
| Não |
|
nArredPrcLis | Numérico | Tipo de Arredondamento |
| Não |
|
lAtuSA7 | Lógico | Atualiza Amarração Cliente x Produto |
| Não |
|
lECF | Lógico | Cupom Fiscal |
| Não |
|
cEmbExp | Caractere | Número do Embarque de Exportação |
| Não |
|
bAtuFin | Bloco de Código | Bloco de Código para complemento de atualização dos títulos financeiros |
| Não |
|
bAtuPGerNF | Bloco de Código | Bloco de Código para complemento de atualização dos dados após a geração da Nota Fiscal | {||} | Não |
|
bAtuPvl | Bloco de Código | Bloco de Código de atualização do Pedido de Venda antes da geração da Nota Fiscal | {||} | Não |
|
bFatSE1 | Bloco de Código | Bloco de Código para indicar se o valor do Título a Receber será gravado no campo F2_VALFAT quando o parâmetro MV_TMSMFAT estiver com o valor igual a "2". | {|| .T. } | Não |
|
dDataMoe | Data | Data da cotação para conversão dos valores da Moeda do Pedido de Venda para a Moeda Forte | dDatabase | Não |
|
lJunta | Lógico | Aglutina Pedido Iguais | .F. | Não |
|
05. RETORNO
cNumNFS - Tipo: Caractere - Número do Documento Fiscal de Saída
06. EXEMPLO
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function MyPVLNFS()
Local aPvlDocS := {}
Local nPrcVen := 0
Local cC5Num := "pcpAO9"
Local cSerie := "001"
Local cEmbExp := ""
Local cDoc := ""
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FAT" TABLES "SF2","SD2","SA1","SA2","SB1","SB2","SF4","SED","SE1"
SC5->(DbSetOrder(1))
SC5->(MsSeek(xFilial("SC5")+cC5Num))
SC6->(dbSetOrder(1))
SC6->(MsSeek(xFilial("SC6")+SC5->C5_NUM))
//É necessário Obtercarregar oso dadosgrupo de cadaperguntas itemMT460A, dose pedidonão de será executado com os valores default.
Pergunte("MT460A",.F.)
// Obter os dados de cada item do pedido de vendas liberado para gerar o Documento de SaidaSaída
While SC6->(!Eof() .And. C6_FILIAL == xFilial("SC6")) .And.;
SC6- SC6->C6_NUM == SC5->C5_NUM
SC9->(DbSetOrder(1))
SC9->(MsSeek(xFilial("SC9")+SC6->(C6_NUM+C6_ITEM))) //FILIAL+NUMERO+ITEM
SE4->(DbSetOrder(1))
SE4->(MsSeek(xFilial("SE4")+SC5->C5_CONDPAG) ) //FILIAL+CONDICAO PAGTO
SB1->(DbSetOrder(1))
SB1->(MsSeek(xFilial("SB1")+SC6->C6_PRODUTO)) //FILIAL+PRODUTO
SB2->(DbSetOrder(1))
SB2->(MsSeek(xFilial("SB2")+SC6->(C6_PRODUTO+C6_LOCAL))) //FILIAL+PRODUTO+LOCAL
SF4->(DbSetOrder(1))
SF4->(MsSeek(xFilial("SF4")+SC6->C6_TES)) //FILIAL+TES
nPrcVen := SC9->C9_PRCVEN
If ( SC5->C5_MOEDA <> 1 )
nPrcVen := xMoeda(nPrcVen,SC5->C5_MOEDA,1,dDataBase)
EndIf
If AllTrim(SC9->C9_BLEST) == "" .And. AllTrim(SC9->C9_BLCRED) == ""
AAdd(aPvlDocS,{ SC9->C9_PEDIDO,;
SC9->C9_ITEM,;
SC9->C9_SEQUENITEM,;
SC9->C9_QTDLIBSEQUEN,;
nPrcVen,;
SC9->C9_PRODUTOQTDLIB,;
.F.,;
SC9->(RecNo()) nPrcVen,;
SC5->(RecNo()),;
SC6->(RecNo()) SC9->C9_PRODUTO,;
SE4->(RecNo()),;
SB1->(RecNo()) .F.,;
SB2->(RecNo()),;
SF4 SC9->(RecNo())})
,;
SC6->(DbSkip())
EndDo
cNota := MaPvlNfs( /*aPvlNfs*/ SC5->(RecNo()),;
aPvlDocS,; // 01 - Array com os itens a serem gerados
SC6->(RecNo()),;
/*cSerieNFS*/ cSerie SE4->(RecNo()),;
// 02 - Série da Nota Fiscal
SB1->(RecNo()),;
/*lMostraCtb*/ .F.,; // 03 - Mostra Lançamento Contábil
SB2->(RecNo()),;
SF4->(RecNo())})
EndIf
/*lAglutCtb*/ SC6->(DbSkip())
.F.,; EndDo
SetFunName("MATA461")
// 04 - AglutinacDoc Lançamento Contábil
/*lCtbOnLine:= MaPvlNfs( /*aPvlNfs*/ .F. aPvlDocS,; // 01 - Array com //os 05itens -a Contabilizaserem On-Linegerados
/*lCtbCustocSerieNFS*/ .T.cSerie,; // 0602 - Serie Contabilizada CustoNota On-LineFiscal
/*lReajustelMostraCtb*/ .F.,; // 0703 - ReajusteMostra de preço na Nota Fiscal
Lançamento Contábil
/*nCalAcrslAglutCtb*/ 0.F.,; // 0804 - TipoAglutina deLançamento Acréscimo FinanceiroContábil
/*nArredPrcLislCtbOnLine*/ 0,; .F.,; // 0905 - Tipo de Arredondamento
Contabiliza On-Line
/*lAtuSA7lCtbCusto*/ .T.,; // 1006 - AtualizaContabiliza Amarração Cliente x Produto
Custo On-Line
/*lECFlReajuste*/ .F.,; // 1107 - CupomReajuste de preço na Nota Fiscal
/*cEmbExpnCalAcrs*/ cEmbExp0,; // 1208 - NúmeroTipo dode EmbarqueAcréscimo de ExportaçãoFinanceiro
/*bAtuFinnArredPrcLis*/ 0,; {||},; // 1309 - BlocoTipo de Código para complemento de atualização dos títulos financeiros
Arredondamento
/*bAtuPGerNFlAtuSA7*/ {||} .T.,; // 1410 - BlocoAtualiza deAmarração CódigoCliente para complemento de atualização dos dados após a geração da Nota Fiscal
x Produto
/*bAtuPvllECF*/ {||} .F.,; // 1511 - BlocoCupom deFiscal
Código de atualização do Pedido de Venda antes da geração da Nota Fiscal
/*cEmbExp*/ cEmbExp,; /*bFatSE1*/ 12 - Número do Embarque de Exportação
{|| .T. },; // 16 - Bloco de Código para indicar se o valor do Título a Receber será gravado no/*bAtuFin*/ campo F2_VALFAT quando o parâmetro MV_TMSMFAT estiver com o valor igual a "2".
{||},; // 13 - Bloco de Código para complemento de atualização dos títulos financeiros
/*dDataMoe*/ dDatabase,; /*bAtuPGerNF*/ 17 - Data da cotação para conversão dos valores da Moeda do Pedido de Venda para a Moeda Forte
{||},; // 14 - Bloco de Código para complemento de atualização dos dados após a geração da Nota Fiscal
/*lJunta*/ /*bAtuPvl*/ .F.) {||},; // 1815 - Aglutina Pedido Iguais
If !Empty(cNota) Bloco de Código de atualização do Pedido de Venda antes da geração da Nota Fiscal
Conout("Nota Fiscal: " + cSerie + "-" + cNota + ", gerada com sucesso!!!")
/*bFatSE1*/ EndIf
RESET ENVIRONMENT
Return .T. |
07. DEMAIS INFORMAÇÕES
Não há.
08. ASSUNTOS RELACIONADOS
{|| .T. },; // 16 - Bloco de Código para indicar se o valor do Titulo a Receber será gravado no campo F2_VALFAT quando o parâmetro MV_TMSMFAT estiver com o valor igual a "2".
/*dDataMoe*/ dDatabase,; // 17 - Data da cotação para conversão dos valores da Moeda do Pedido de Venda para a Moeda Forte
/*lJunta*/ .F.) // 18 - Aglutina Pedido Iguais
If !Empty(cDoc)
Conout("Documento de Saída: " + cSerie + "-" + cDoc + ", gerado com sucesso!!!")
EndIf
RESET ENVIRONMENT
Return .T. |
07. DEMAIS INFORMAÇÕES
Para a Geração do Título e Guia GNRE, a tela de perguntas da rotina de Geração de Documento de Saída (MATA460A) deverão estar preenchidas como "Sim" nas perguntas de Geração de Título e de Guia de ICMS Próprio, e o parâmetro MV_GNRENF deverá estar preenchido com o conteúdo .T. (Verdadeiro), quando for utilizado a função MaPvlNfs() para que a tela da GNRE/DIFAL não seja executada.
Aviso |
---|
|
O função MaPvlNfs gera um único Documento de Saída com todos os itens passados no array aPvlNfs, sendo assim, caso seja necessário gerar mais de um documento de saída, a função deverá ser chamada mais de uma vez com o array aPvlNfs contendo os itens referentes a cada nota a ser gerada. |
08. ASSUNTOS RELACIONADOS
HTML |
---|
<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;
}
.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after {
background: #FF9900; !important
}
.menu-item.active-tab {
border-bottom: none !important;
}
</style>
|