Histórico da Página
01. DADOS GERAIS
Linha do Produto | Microsiga Protheus® |
---|---|
Segmento | Serviços |
Módulo | Fiscal |
02.
...
DESCRIÇÃO
...
Ponto de Entrada para tratamento do Registro Tipo 70 - Conhecimento de Transporte, para ser gerado em conjunto com o ponto de entrada
...
MTATIP71 (Ponto de Entrada para tratamento do Registro Tipo 71 - Complemento Conhecimento de Transporte), para não haver divergências entre as informações.
03. ESPECIFICAÇÃO
Parâmetros do ponto de entrada
...
PE que não recebe parâmetros e sem retorno. Necessário reavaliação.
04. TELA XXXXX
Principais Campos e Parâmetros
...
Nome | Tipo | Descrição |
---|---|---|
PARAMIXB | Array of Record | Array com as informações da SF3 - Livros Fiscais: [1] - Informações da SF3 [1][1] - F3_NFISCAL |
Retorno:
Nome | Tipo | Descrição |
---|---|---|
Nil | Retorno Nulo |
04. EXEMPLO DE UTILIZAÇÃO
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include 'Protheus.ch'
User Function MtaTip70
Local aArray70 := PARAMIXB[1]
Local cCfopPR := GetNewPar('MV_CFOPPR','')
Local cTranspCGC := ''
Local cTranspIns := ''
Local cTranspEst := ''
Local cTranspOri := ''
Local cTpFrete := ''
If AModNot(aArray70[1][7])<>'01' .Or.;
(AModNot(aArray70[1][7])=='01' .And. Alltrim(aArray70[1][5])$cCfopPR)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica o cliente/fornecedor ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If (SubStr(aArray70[1][5],1,1)>='5' .And. aArray70[1][6]$'BD') .Or.;
(SubStr(aArray70[1][5],1,1)<'5' .And. !aArray70[1][6]$'BD') //Verificando CFOP # TIPO
dbSelectArea('SA2')
dbSetOrder(1)
SA2->(MsSeek(xFilial('SA2')+aArray70[1][3]+aArray70[1][4])) //F3_CLIEFOR
cTranspCGC := AFISFILL (Num2Chr (Val (SA2->A2_CGC), 14, 0), 14) //F3_LOJA
cTranspIns := ARETDIG(SA2->A2_INSCR,.T.,aArray70[1][22]) //F3_ESTADO
cTranspEst := SA2->A2_EST
cTranspOri := SA2->A2_CGC
Else
dbSelectArea('SA1')
dbSetOrder(1)
SA1->(MsSeek(xFilial('SA1')+aArray70[1][3]+aArray70[1][4])) //F3_CLIEFOR
cTranspCGC := AFISFILL (Num2Chr (Val (SA1->A1_CGC), 14, 0), 14) //F3_LOJA
cTranspIns := ARETDIG(SA1->A1_INSCR,.T.,aArray70[1][22]) //F3_ESTADO
cTranspEst := SA1->A1_EST
cTranspOri := SA1->A1_CGC
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Checando se frete CIF ou FOB ³
//³- com valor de frete na NF = 1 - CIF ³
//³- sem valor de frete na NF = 2 - FOB ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cTpFrete := '1'
If substr(aArray70[1][5],1,1)<'5' //F3_CFO
SF1->( dbSetOrder(1) )
SF1->( MsSeek(xFilial('SF1')+aArray70[1][1]+aArray70[1][2]+aArray70[1][3]+aArray70[1][4]))
If SF1->F1_FRETE = 0
cTpFrete := '1'
Endif
If SF1->F1_FRETE = 0 .And. SF1->F1_ORIGLAN=='F ' .And. SF1->F1_TIPO=='C' //NF Conhecimento Frete
cTpFrete := '2'
Endif
Else
SF2->( dbSetOrder(1) )
SF2->( MsSeek(xFilial('SF2')+aArray70[1][1]+aArray70[1][2]+aArray70[1][3]+aArray70[1][4]))
If SF2->F2_FRETE = 0
cTpFrete := '1'
Endif
Endif
RecLock('R70',.T.)
R70->A70_CNPJ := cTranspCGC
R70->A70_IE := cTranspIns
R70->A70_EMISS := aArray70[1][10]
R70->A70_UF := cTranspEst
R70->A70_MODELO := AModNot(aArray70[1][7])
R70->A70_SERIE := Substr(aArray70[1][2],1,1)
R70->A70_SUBSER := Substr(aArray70[1][2],2,2)
R70->A70_NFISC := aArray70[1][1]
R70->A70_CFOP := aArray70[1][5]
R70->A70_CIFFOB := cTpFrete
R70->A70_SITUAC := Iif(('CANCELAD'$aArray70[1][20] .Or. !Empty(aArray70[1][13])),'S','N')
R70->A70_CNORI := cTranspOri
R70->A70_CFOMOV := aArray70[1][5]
R70->A70_VALTOT += aArray70[1][17]
R70->A70_BSICM += aArray70[1][19]
R70->A70_VALICM += aArray70[1][16]
R70->A70_ISENTA += aArray70[1][12]
R70->A70_OUTRAS += aArray70[1][15]
MsUnlock()
Endif
Return |
05. DEMAIS INFORMAÇÕES
- Não há.