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 aRatcc		:= {}
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_DESCONT",20})                      	    
	
		If Len(aItens)>0			
					    //item da nota    //Item do Rateio , Perc. Rate ,Cent.de Cus,,,, Alias,Linha Deletada,   Item 02 do Rateio.
			aRatcc := {{"0001"        ,{{'01'              ,50          ,"000000000",,,,"SDE",,.F.            },{'02',50,"000001",,,,"SDE",,.F.}}}} 
			MATA116(aCabec,aItens,,,aRatcc)   
		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.










PARAMIXB3

Array of Record

Contendo as informações para rateio por centro de custo