import.css=/download/attachments/327912/newLayout.css

Função: MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete

 

Abrangências:Microsiga Protheus 11 , Protheus 10
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.
Programa Fonte:
MATA116.PRW
Sintaxe:

MATA116 - Programa de digitação de Nota Fiscal de conhecimento de Frete ( [ PARAMIXB1 ] [ PARAMIXB2 ] ) --> nil

Retorno:
nil
    (nulo)
Observações

As condições mais frequentes são para “FOB” - o transporte do fornecedor até o cliente não está incluso no preço ou “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”. 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 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)

Exemplo:

 

#INCLUDE "RWMAKE.CH" 
#INCLUDE "TBICONN.CH"      
// BIBLIOTECA 
#include "Protheus.ch"
User Function rmata116()
Local aCabec        := {}
Local aItens        := {}
Local aLinha        := {}
Local nX            := 0
Local nY            := 0
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"
 
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verificacao do ambiente para teste                           |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
 
//-- Verifica informacoes de produto
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"001"))	
	lOk := .F.    
	ConOut("Cadastrar produto: 001")
EndIf
//-- Verifica informacoes da TES
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"001"))	
	lOk := .F.    
	ConOut("Cadastrar TES: 001")
EndIf
//-- Verifica informacoes da condicao de pagamento
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))	
	lOk := .F.    
	ConOut("Cadastrar condicao de pagamento: 001")
EndIf
//-- Verifica fornecedor
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"001"))	
	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 ((SF1->F1_FORNECE+SF1->F1_LOJA) =="001   01")        	
			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 Inclusao                                            |	    
		//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ	   
		aadd(aCabec,{"",dDataBase-90})       //Data Inicial        
		aadd(aCabec,{"",dDataBase})          //Data Final        
		aadd(aCabec,{"",2})                  //2-Inclusao;1=Exclusao        
		aadd(aCabec,{"","001   "})           //Fornecedor do documento de Origem          
		aadd(aCabec,{"","01"})               //Loja de origem        
		aadd(aCabec,{"",1})                  //Tipo da nota de origem: 1=Normal;2=Devol/Benef        
		aadd(aCabec,{"",2})                  //1=Aglutina;2=Nao aglutina        
		aadd(aCabec,{"F1_EST",""})        
		aadd(aCabec,{"",1000})               //Valor do conhecimento        
		aadd(aCabec,{"F1_FORMUL",1})        
		aadd(aCabec,{"F1_DOC","000043"})    //..Numero da NF de Conhecimento de Frete        
		aadd(aCabec,{"F1_SERIE","CF "})        
		aadd(aCabec,{"F1_FORNECE","001   "})        
		aadd(aCabec,{"F1_LOJA","01"})        
		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","NF"})        
		aadd(aCabec,{"E2_NATUREZ",""})        
		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("Ok!")	    
			Endif    
	EndIf    
	
EndIf
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