Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
CNTA120 - Medição do contrato
CNTA120 - Medição do contrato

Função: CNTA120 - Medição do contrato

 

Abrangências: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:Espanhol , Inglês

 

Descrição:
Esta rotina é utilizada para cadastrar a medição do contrato. A medição, na verdade, funciona como umuma espelhoprevisão da nota fiscal que deverá ser emitida pelo fornecedor/empresa quando do faturamento e é sempre anterior a este. No momento do cadastro de cada medição, o usuário deverá, obrigatoriamente, indicar todos os campos quantitativos para àquela etapa do contrato.
Sintaxe:

CNTA120 - Medição do contrato ( [ ] )

Retorno:
    ()
Observações
Os items da Medição do Contrato não são considerados no exemplo pelo motivo da rotina automatica inserí-lo automaticamente, sem a manipulação do usuário. Ou seja, a partir do momento que é definido o cabeçalho na rotina automática, os itens serão incluídos automaticamente a partir dos itens da planilha do contrato.
Exemplos
#include "protheus.ch"#include "tbiconn.ch"User Function MyCNTA120()Local aCabec := {}Local aItem  := {}Local cDoc   := ""Local cArqTrb:= ""Local cContra := ""Local cRevisa := ""                          Local dData    := date()//Data AtualLocal dDataI   := dData-0//Data de inicioPrivate lMsHelpAuto := .T.PRIVATE lMsErroAuto := .F.//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| Abertura do ambiente                                         |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙConOut(Repl("-",80))ConOut(PadC("Rotina Automática para a Medição do Contrato de Compras e Vendas",80))//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "GCT" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| Verificacao do ambiente para teste                           |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙdbSelectArea("CN9")dbgoto(Recno())    cContra := CN9->CN9_NUMEROcRevisa := CN9->CN9_REVISAConOut("Inicio: "+Time())       	//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| Teste de Inclusao                                            |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙdbSelectArea("CN9")dbSetOrder(1)If !dbSeek(xFilial("CN9")+cContra+cRevisa)	ConOut("Cadastrar contrato: "+cContra)EndIf	aCabec := {}aItens := {}      //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//³ Filtra parcelas de contratos automaticos ³//³ pendentes para a data atual              ³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙcArqTrb	:= CriaTrab( nil, .F. )cQuery := "SELECT CNF.CNF_COMPET,CNF.CNF_CONTRA,CNF.CNF_REVISA,CNA.CNA_NUMERO,CNF.CNF_PARCEL,CN9.CN9_FILIAL FROM " + RetSQLName("CNF") + " CNF, " + RetSQLName("CNA") + " CNA, "+ RetSQLName("CN9") +" CN9 WHERE "cQuery += "CNF.CNF_FILIAL = '"+ xFilial("CNF") +"' AND "cQuery += "CNA.CNA_FILIAL = '"+ xFilial("CNA") +"' AND "cQuery += "CN9.CN9_FILIAL = '"+ xFilial("CN9") +"' AND "     cQuery += "CN9.CN9_NUMERO = '"+cContra+"' AND "cQuery += "CN9.CN9_REVISA = '"+cRevisa+"' AND "	cQuery += "CNF.CNF_NUMERO = CNA.CNA_CRONOG AND "cQuery += "CNF.CNF_CONTRA = CNA.CNA_CONTRA AND "cQuery += "CNF.CNF_REVISA = CNA.CNA_REVISA AND "cQuery += "CNF.CNF_CONTRA = CN9.CN9_NUMERO AND "cQuery += "CNF.CNF_REVISA = CN9.CN9_REVISA AND "cQuery += "CN9.CN9_SITUAC =  '05' AND "cQuery += "CNF.CNF_PRUMED >= '"+ DTOS(dDataI) +"' AND "cQuery += "CNF.CNF_PRUMED <= '"+ DTOS(dData) +"' AND "cQuery += "CNF.CNF_SALDO  > 0 AND "cQuery += "CNA.CNA_SALDO  > 0 AND "cQuery += "CNF.D_E_L_E_T_ = ' ' AND "cQuery += "CNA.D_E_L_E_T_ = ' '"cQuery := ChangeQuery( cQuery )dbUseArea( .T., "TopConn", TCGenQry(,,cQuery), cArqTrb, .T., .T. )     If (cArqTrb)->(Eof())    	ConOut("Nao e possivel medir esse contrato! "+cContra)	EndIfWhile !(cArqTrb)->(Eof())	cDoc := CriaVar("CND_NUMMED")	aAdd(aCabec,{"CND_CONTRA",(cArqTrb)->CNF_CONTRA,NIL})	aAdd(aCabec,{"CND_REVISA",(cArqTrb)->CNF_REVISA,NIL})	aAdd(aCabec,{"CND_COMPET",(cArqTrb)->CNF_COMPET,NIL})	aAdd(aCabec,{"CND_NUMERO",(cArqTrb)->CNA_NUMERO,NIL})	aAdd(aCabec,{"CND_NUMMED",cDoc,NIL})	If !Empty(CND->( FieldPos( "CND_PARCEL" ) ))		aAdd(aCabec,{"CND_PARCEL",(cArqTrb)->CNF_PARCEL,NIL})	EndIf			//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿	//³ Executa rotina automatica para gerar as medicoes ³	//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ	CNTA120(aCabec,aItem,3,.F.)	//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿	//³ Executa rotina automatica para encerrar as medicoes ³	//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ	CNTA120(aCabEC,aItem,6,.F.)	If !lMsErroAuto		ConOut("Incluido com sucesso! "+cDoc)		Else		ConOut("Erro na inclusao!")	EndIf	(cArqTrb)->(dbSkip())EndDo	(cArqTrb)->(dbCloseArea())//RESET ENVIRONMENTReturn(.T.)             
Parâmetros:

 

 Nome  Tipo  Descrição  Default  Obrigatório  Referência 
    Array of Record