Árvore de páginas

01. DESCRIÇÃO

Ponto de entrada que verifica se produto será fabricado ou comprado COMPONENTE FABRICADO OU COMPRADO.

02.ESPECIFICAÇÃO

Parâmetros

  1.  Nome
  2.  Tipo  - Array 
  3. Descrição
  4. Default
  5. Obrigatório
  6. Referencia



03.EXEMPLO DE UTILIZAÇÃO


DCRECF
Static Function ProcEstru(cProd)
Local nRecno    := Recno()Local nQtdIt    := 
If dbSeek(xFilial("SG1")+cProd)	
    While !Eof() .And. SG1->G1_FILIAL+SG1->G1_COD == xFilial("SG1")+cProd		
    SB1->(dbsetorder(1))		
    SB1->(dbSeek(xFilial("SB1")+SG1->G1_COMP))		
        If lValPai			
            nQtdIt := ExplEstr(1,,SB1->B1_OPC,SB1->B1_REVATU)		//Validação do Componente		
        Endif        
        If nQtdIt > 0			
            ProcReg(SG1->G1_COMP,SG1->G1_COD,SG1->G1_QUANT)			
            ProcEstru(SG1->G1_COMP)		
        EndIf		
        dbSkip()	
    Enddo
Endif
dbGoTo(nRecno)
Return(.T.)

Static Function ProcReg(cComp,cProd,nQuant)
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Valida o Componente da Estrutura                                        ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If CheckComp(cComp)	
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿	
//³Processa Cadastro de Produtos                                           ³	
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ	
    dbSelectArea("SB1")	dbSetOrder(1)	
    If dbSeek(xFilial("SB1")+cComp)		
        //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿		
        //³Validacao Parametrizada ( MV_DCRE09 )                                   ³		
        //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ		
        If Eval(bValid)			
        //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿			
        //³Grava Componentes do Produtos                                           ³			
        //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ			
            If SB1->B1_ORIGEM $ "0 "										
                GravaReg2(cComp,nQuant)	//Registro Tipo 2 - Componente Nacional	  		
            ElseIf lReg3 .And. cProd<>cProdAnt					
                GravaReg3(cComp,cProd,nQuant)	//Registro Tipo 3 - SubComponente Importado				
            Else															
                GravaReg4(cComp,nQuant)			//Registro Tipo 4 - Componente Importado				
            Endif							
        Endif		
    Endif
Endif 
RestArea(aArea)
Return Nil
//******************************************************
Static Function CheckComp(cComp)
Local aArea		:= GetArea()
Local lRet		:= .T.
Local dDtValid	:= mv_par02		//Data de Validade do Componente
Local cRevisao	:= mv_par03		//Revisao da Estrutura
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Tratamento somente sera feito se a revisao for preenchida             ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If !Empty(cRevisao)	.And. !(cRevisao >= SG1->G1_REVINI .And. cRevisao <= SG1->G1_REVFIM)	
    lRet := .F.
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Tratamento da validade do componente na estrutura                     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      	
If lRet .And. !(dDtValid >= SG1->G1_INI .And. dDtValid <= SG1->G1_FIM)	
    lRet := .F.
Endif	
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se o componente e produzido ou comprado                      ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If lRet	
dbSelectArea("SG1")	
dbSetOrder(1)	
    If dbSeek(xFilial("SG1")+cComp)		
        lRet := .F.		
        While !Eof() .And. SG1->G1_FILIAL+SG1->G1_COD == xFilial("SG1")+cComp			
            If dDtValid >= SG1->G1_INI .And. dDtValid <= SG1->G1_FIM				
                lRet := .F.            	
                Exit   			
            Else				
                lRet := .T.   			   			
            Endif	    	
            dbSkip()		
        Enddo	
    Endif
Endif
RestArea(aArea)
Return(lRet)