Histórico da Página
...
Aviso | ||
---|---|---|
| ||
A função MaPvlNfs não é responsável por validar os bloqueios dos itens liberados (SC9), fica a customização . 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 ] )
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 carregar o grupo de perguntas MT460A, se não 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 Saída While SC6->(!Eof() .And. C6_FILIAL == xFilial("SC6")) .And. 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_SEQUEN,; SC9->C9_QTDLIB,; nPrcVen,; SC9->C9_PRODUTO,; .F.,; SC9->(RecNo()),; SC5->(RecNo()),; SC6->(RecNo()),; SE4->(RecNo()),; SB1->(RecNo()),; SB2->(RecNo()),; SF4->(RecNo())}) EndIf SC6->(DbSkip()) EndDo SetFunName("MATA461") cDoc := MaPvlNfs( /*aPvlNfs*/ aPvlDocS,; // 01 - Array com os itens a serem gerados /*cSerieNFS*/ cSerie,; // 02 - Serie da Nota Fiscal /*lMostraCtb*/ .F.,; // 03 - Mostra Lançamento Contábil /*lAglutCtb*/ .F.,; // 04 - Aglutina Lançamento Contábil /*lCtbOnLine*/ .F.,; // 05 - Contabiliza On-Line /*lCtbCusto*/ .T.,; // 06 - Contabiliza Custo On-Line /*lReajuste*/ .F.,; // 07 - Reajuste de preço na Nota Fiscal /*nCalAcrs*/ 0,; // 08 - Tipo de Acréscimo Financeiro /*nArredPrcLis*/ 0,; // 09 - Tipo de Arredondamento /*lAtuSA7*/ .T.,; // 10 - Atualiza Amarração Cliente x Produto /*lECF*/ .F.,; // 11 - Cupom Fiscal /*cEmbExp*/ cEmbExp,; // 12 - Número do Embarque de Exportação /*bAtuFin*/ {||},; // 13 - Bloco de Código para complemento de atualização dos títulos financeiros /*bAtuPGerNF*/ {||},; // 14 - Bloco de Código para complemento de atualização dos dados após a geração da Nota Fiscal /*bAtuPvl*/ {||},; // 15 - Bloco de Código de atualização do Pedido de Venda antes da geração da Nota Fiscal /*bFatSE1*/ {|| .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. |
...
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
...