Pagetitle |
---|
| MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete |
---|
| MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete |
---|
|
Função: MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete
Table Filter |
---|
id | 1536020054489_-1859990472 |
---|
| Versões: | Protheus 10 | Compatível Países: | Todos | Sistemas Operacionais: | Todos | Compatível às Bases de Dados: | Todos | Nível de Acesso: | Nível 1 (Acesso Clientes) | Idiomas: | Português (Brasil) |
|
Descrição:Esta rotina facilita a digitação dos conhecimentos de frete. Sintaxe:MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete ( [ PARAMIXB1 ] [ PARAMIXB2 ] ) --> nil ObservaçõesAs condições mais frequentes são para “FOB” FOB - o transporte do fornecedor até o cliente não está incluso no preço ou “CIF” CIF -, apenas está incluso o valor da entrega. A nota de conhecimento de frete é emitida quando o transporte é feito por uma transportadora do tipo “FOB”FOB. São efetuadas diversas entregas e ao final de um período definido pela empresa, é emitida uma nota fiscal para que sejam pagos os serviços da transportadora. Assim, para que a geração da nota fiscal seja possível, é necessário que a transportadora seja cadastrada como um fornecedor , para que um título a pagar seja gerado, caso a empresa possua o Financeiro Integrado. IMPORTANTE: O Exemplo exemplo abaixo deve ser adaptado conforme a necessidade do cliente, com informações válidas como: Fornecedor, TES, Produto, Condição de Pagamento, Valor da NF de Conhecimento de Frete , e as Notas Fiscais que participam do rateio de frete). Exemplo1:
Bloco de código |
---|
| // *Inclusão de Conhecimento considerando Tipo NF Normal*
| Exemplos // BIBLIOTECA #include "
#INCLUDE "Protheus.ch"
User Function | r_mata116aCabeccCodFor := "COM003"
Local cLojFor := "01"
Local | {}aItens "1"
Local aCabec := {}
Local | aLinhaaItens := {}
Local aLinha := {}
Local | nXaRateio := {}
Local aCCItem := | 0Local0
Local nY := 0
Local nTamFilial := 0
Local | 0Local lOk .T.""
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
//------------------------//| Abertura do ambiente |//------------------------
//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SB1","SD1","SF1"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| | VerificacaoVerificação do ambiente para teste |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//-- Verifica informações | |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ//-- Verifica informacoes de produtodbSelectArea(de produto
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+" | 1
ConOut("Cadastrar produto: | 1001")
EndIf
//-- Verifica | informacoesTESdbSelectAreaTES
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+" | 100 100001")
EndIf
//-- Verifica | informacoescondicaopagamentodbSelectAreapagamento
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+" | 1 condicao1001")
EndIf
//-- Verifica | fornecedordbSelectAreafornecedor
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+" | 1
ConOut("Cadastrar fornecedor: | 1EndIfIf lOk
EndIf
If lOk
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Carrega ate 3 documentos de origem - Fornecedor | 000001|//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ dbSelectArea("SF1") |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SF1")
dbSetOrder(1) |
IF (Alltrim(SF1->F1_FORNECE+SF1->F1_LOJA) ==" | 1COM00301")
if nX<3
cFilSF1 | 01:= xFilial("SF1")
nTamFilial := | if nX<3 Len(cFilSF1)
aadd(aItens,{{"PRIMARYKEY",AllTrim(SubStr(&(IndexKey()), | 3nTamFilial + 1))}}) //Tratamento para Gestao Empresas
else
exit | else exit Endif nX++ EndIf dbskip() EndDo IF nX >0 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Teste de Inclusao | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Endif
nX++
EndIf
dbskip()
EndDo
IF nX >0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusão |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(aCabec,{"", | dDataBase-90 dDataBase //2-Inclusao;1=Exclusao //2-Inclusao;1=Exclusao
aadd(aCabec,{"", | "1 " //Fornecedor do documento de Origem | aadd(aCabec"01" //Tipo da nota de origem: 1=Normal;2=Devol/Benef | aadd(aCabec2 //1=Aglutina;2=Nao aglutina |
aadd(aCabec,{"F1_EST",""}) | aadd
aadd(aCabec,{"F1_FORMUL", | 12}) // Utiliza Formulario proprio ? | 1-Nao,2-Sim
aadd(aCabec,{"F1_DOC", | "000043" //..Numero da NF de Conhecimento de Frete | "CF "
aadd(aCabec,{"F1_FORNECE", | "1 "}) cCodFor})
aadd(aCabec,{"F1_LOJA", | "01" 100
aadd(aCabec,{"F1_BASERET",0}) |
aadd(aCabec,{"F1_ICMRET",0}) | 1
aadd(aCabec,{"F1_EMISSAO",dDataBase}) |
aadd(aCabec,{"F1_ESPECIE","NF"})
//-- Rateio de Centro de Custos
AAdd | aaddaCabecE2NATUREZ aadd(acabec,{"F1_DESPESA",10}) aadd(acabec,{"F1_DESCONTO",20}) If Len(aItens)>0 MATA116(aCabec,aItens) EndIf If lMsErroAuto MostraErro() Alert("Erro!") Else Alert(aCCItem, {"DE_PERC",45})
AAdd (aCCItem, {"DE_CC","COM002"})
AAdd (aRatCC, aCCItem)
aCCItem := {}
AAdd (aCCItem, {"DE_ITEM","02"})
AAdd (aCCItem, {"DE_PERC",55})
AAdd (aCCItem, {"DE_CC","COM003"})
AAdd (aRatCC, aCCItem)
AAdd (aRateio, {"0001",aRatCC})
MATA116(aCabec,aItens,,,aRateio)
If lMsErroAuto
MostraErro()
Conout("Erro!")
Else
Conout("Ok!") | EndIf EndIfReturn(.T.) Parâmetros: Nome | Tipo | Descrição | Default | Obrigatório | Referência | PARAMIXB1 | Array of Record | Contendo os valores para a geração da nota fiscal de conhecimento de Frete | PARAMIXB2 | Array of Record | Contendo as notas fiscais que entrarão no rateio da Nota Fiscal de Conhecimento de Frete
EndIf
RESET ENVIRONMENT
Return(.T.)
****************************************************************************
// Inclusão de Conhecimento considerando Tipo NF Devol/Benef
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "Protheus.ch"
User Function mt116Dev()
Local cCliFor := "COM002"
Local cLclifor := "01"
Local cNumDoc := "COM116002"
Local cSerie := "1"
Local cTransp := "COM003"
Local cLtransp := "01"
Local cOrigem := "COM000013"
Local cSerie := "1 "
Local cSerieId
Local cEspecie := "CTR"
Local cTipo := "C"
Local nX := 0
Local nY := 0
Local aItens := {}
Local aLinha := {}
Local aCabec := {}
Local nTamFilial := 0
Local lOk := .T.
Local cFilSF1 := ""
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
//------------------------//| Abertura do ambiente |//------------------------
//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SB1","SD1","SF1"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verificação do ambiente para teste |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//-- Verifica informações de produto
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"X123456"))
lOk := .F.
ConOut("Cadastrar produto: 001")
EndIf
//-- Verifica informacões da TES
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"001"))
lOk := .F.
ConOut("Cadastrar TES: 001")
EndIf
//-- Verifica informações da condição de pagamento
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
lOk := .F.
ConOut("Cadastrar condição de pagamento: 001")
EndIf
//-- Verifica fornecedor
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"000002"))
lOk := .F.
ConOut("Cadastrar fornecedor: 001")
EndIf
If lOk
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Carrega ate 3 documentos de origem - Fornecedor 000001 |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SF1")
dbSetOrder(1)
MsSeek(xFilial("SF1"))
While !EOF()
IF (Alltrim(SF1->F1_FORNECE+SF1->F1_LOJA) =="COM00201")
if nX<3
cFilSF1 := xFilial("SF1")
nTamFilial := Len(cFilSF1)
aadd(aItens,{{"PRIMARYKEY",AllTrim(SubStr(&(IndexKey()),nTamFilial + 1))}}) //Tratamento para Gestao Empresas
else
exit
Endif
nX++
EndIf
dbskip()
EndDo
IF nX >0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusão |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(aCabec,{"",Ctod("01/01/2015")}) //Data Inicial
aadd(aCabec,{"",Ctod("01/12/2015")}) //Data Final
aadd(aCabec,{"",2}) //2-Inclusao;1=Exclusao
aadd(aCabec,{"",cCliFor}) //Fornecedor do documento de Origem
aadd(aCabec,{"",cLclifor}) //Loja de origem
aadd(aCabec,{"",2}) //Tipo da nota de origem: 1=Normal;2=Devol/Benef
aadd(aCabec,{"",1}) //1=Aglutina;2=Nao aglutina
aadd(aCabec,{"F1_EST",""})
aadd(aCabec,{"",150}) //Valor do conhecimento
aadd(aCabec,{"F1_FORMUL",1}) // Utiliza Formulario proprio ? 1-Nao,2-Sim
aadd(aCabec,{"F1_DOC",cNumDoc}) //..Numero da NF de Conhecimento de Frete
aadd(aCabec,{"F1_SERIE",cSerie})
aadd(aCabec,{"F1_FORNECE",cTransp})
aadd(aCabec,{"F1_LOJA",cLtransp})
aadd(aCabec,{"","001"}) //TES
aadd(aCabec,{"F1_BASERET",0})
aadd(aCabec,{"F1_ICMRET",0})
aadd(aCabec,{"F1_COND","001"})
aadd(aCabec,{"F1_EMISSAO",dDataBase})
aadd(aCabec,{"F1_ESPECIE",cEspecie})
//aadd(aItens,{"PRIMARYKEY",cOrigem})
MSExecAuto({|x,y| Mata116(x,y)},aCabec,aItens)
If lMsErroAuto
MostraErro()
Conout("Erro!")
Else
Conout("Ok!")
Endif
EndIf
EndIf
RESET ENVIRONMENT
Return(.T.)
|
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | PARAMIXB1 | Array of Record | Contendo os valores para a geração da nota fiscal de conhecimento de Frete. |
|
|
| PARAMIXB2 | Array of Record | Contendo as notas fiscais que entrarão no rateio da Nota Fiscal de Conhecimento de Frete. |
|
|
| PARAMIXB3 | Array of Record | Contendo as informações para rateio por centro de custo |
|
|
| PARAMIXB4 | Array of Record | Conteúdo de gravação das naturezas de rendimentos e dados de suspensão |
|
|
|
Parâmetros SX6: Nome da Variável | MV_AZFRETE | Conteúdo Padrão | .T. | Descrição | Indica se no conhecimento de frete, deve zerar a alíquota do item que tiver alíquota zerada na Nota Fiscal de origem. | Comportamento | Caso a alíquota da NF de origem seja zerada, o sistema não calculará a alíquota no caso do parâmetro estar habilitado. Essa é a configuração padrão. Para que o sistema calcule a alíquota nessa situação, esse parâmetro deve ser desabilitado. |
|