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)

Exemplos
#INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH"      // BIBLIOTECA #include "Protheus.ch"User Function r_mata116()Local aCabec        := {}Local aItens        := {}Local aLinha        := {}Local nX            := 0Local nY            := 0Local lOk           := .T.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 produtodbSelectArea("SB1")dbSetOrder(1)If !SB1->(MsSeek(xFilial("SB1")+"1"))	lOk := .F.    ConOut("Cadastrar produto: 1")EndIf//-- Verifica informacoes da TESdbSelectArea("SF4")dbSetOrder(1)If !SF4->(MsSeek(xFilial("SF4")+"100"))	lOk := .F.    ConOut("Cadastrar TES: 100")EndIf//-- Verifica informacoes da condicao de pagamentodbSelectArea("SE4")dbSetOrder(1)If !SE4->(MsSeek(xFilial("SE4")+"1"))	lOk := .F.    ConOut("Cadastrar condicao de pagamento: 1")EndIf//-- Verifica fornecedordbSelectArea("SA2")dbSetOrder(1)If !SA2->(MsSeek(xFilial("SA2")+"1"))	lOk := .F.    ConOut("Cadastrar fornecedor: 1")EndIfIf 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) =="1     01")        	if nX<3            	aadd(aItens,{{"PRIMARYKEY",SubStr(&(IndexKey()),3)}})            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,{"","1     "})           //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","1     "})        aadd(aCabec,{"F1_LOJA","01"})        aadd(aCabec,{"","100"})              //TES        aadd(aCabec,{"F1_BASERET",0})        aadd(aCabec,{"F1_ICMRET",0})        aadd(aCabec,{"F1_COND","1"})        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    EndIfReturn(.T.)                    
Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB1Array of RecordContendo os valores para a geração da nota fiscal de conhecimento de Frete
PARAMIXB2Array of RecordContendo as notas fiscais que entrarão no rateio da Nota Fiscal de Conhecimento de Frete