;*******************************************************************************
;* ROTINA PARA MONTAR REGISTROS GRADE                                          *
;*******************************************************************************
Proc Monta_Registros()
Private ItemPesq, Cod_Item, REG_EMPRESA, REG_ITEM, emp, refer, grdant, Array_TM, 
        TM, CAMPO, Pos, Item, Item_Cor, Cor, QTD, VR_MIN, VR_MAX, VR_MED, VR, 
        QTD_OP, NAO_ACHOU
        
NR=NRecords(TabelaI)      

grdant = "****"
emp    = "****"
refer  = "****"                     

Empty "RM_0011E"  

View "\\Sistemas\\Cadastro\\Empresas"
View "\\Sistemas\\Estoque\\Iten_Cor"
View "\\Sistemas\\Estoque\\Itens"
View "\\Sistemas\\Estoque\\TpGrade"        
View "RM_0011E"
Coedit TabelaI
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Verificando Estoque "+BARRA_STRING)  

  ;**** Dados da Empresa **********************************************************
  If emp<>[Codigo da Empresa]                                                                    
     Then emp=[Codigo da Empresa]
          GetRecord "\\Sistemas\\Cadastro\\Empresas" emp To REG_EMPRESA
          If Not RetVal
             Then Release Vars REG_EMPRESA
          EndIf
  EndIf  

  ;**** Dados do Item *************************************************************
  ItemPesq = [Codigo do Item]                                                        ; Codigo do Item
  Cod_Item = PegaCodigoRaiz([Codigo do Item])                                        ; Codigo Pai
  
  GetRecord "\\Sistemas\\Estoque\\Itens" Cod_Item To REG_ITEM
  If Not RetVal
     Then Loop       
  EndIf   
  
  ;**** Capturando a Grade ********************************************************
  If REG_ITEM["Codigo da Grade"]<>grdant
     Then Array Array_TM[12]
          grdant = REG_ITEM["Codigo da Grade"]
          For i From 1 to 12
            Array_TM[i]="F"
          EndFor

          Moveto "\\Sistemas\\Estoque\\TpGrade"
          Moveto [Codigo da Grade]
          Locate grdant
          If Not RetVal
             Then Moveto TabelaI
                  Loop
          EndIf   
          CopyToArray REG_BUSCA_LOOKUP

          Array_TM[1] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade1"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item1"]))
          Array_TM[2] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade2"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item2"]))
          Array_TM[3] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade3"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item3"]))
          Array_TM[4] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade4"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item4"]))
          Array_TM[5] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade5"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item5"]))
          Array_TM[6] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade6"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item6"]))
          Array_TM[7] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade7"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item7"]))
          Array_TM[8] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade8"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item8"]))
          Array_TM[9] ="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade9"] ,2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item9"]))
          Array_TM[10]="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade10"],2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item10"]))
          Array_TM[11]="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade11"],2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item11"]))
          Array_TM[12]="F"+Completa(REG_BUSCA_LOOKUP["Titulo Grade12"],2," ") +LTrim(RTrim(REG_BUSCA_LOOKUP["Codigo Item12"]))
          
          Moveto TabelaI
  Endif     

  ;**** Posi~]ao do Item **********************************************************
  For i From 1 to 12
    TM    = LTrim(RTrim(SuBstr(Array_TM[i],4,2)))
    CAMPO = "Qtd"+StrVal(i)

    Switch
      Case Len(Tm)=1 : Item = SubStr(ItemPesq,1,9)
                       Pos  = SubStr(ItemPesq,10,1)
      Case Len(Tm)=2 : Item = SubStr(ItemPesq,1,8)
                       Pos  = SubStr(ItemPesq,9,2)
      OtherWise      : Loop 
    EndSwitch

    If TM<>Pos Then Loop EndIf

    
    ;**** Cor do Item ***********************************************
    Item_Cor= ""
    If MODO="GRADE_COR"
       Then Cor = [Codigo da Cor_Tecido]
            Moveto "\\Sistemas\\Estoque\\Iten_Cor"
            Moveto [Codigo do Item]
            Locate Cod_Item
            If RetVal
               Then While Cod_Item=[Codigo do Item]
                      If Cor = [Codigo da Cor_Tecido]
                         Then Item_Cor = [Sigla Cor_Tecido]
                              QuitLoop
                      EndIf   
                      Skip
                      If Eot() Then QuitLoop EndIf
                    EndWhile
            EndIf    
            Moveto TabelaI
    EndIf        
    
    ;**** Quantidade do Item ****************************************
    QTD    = NumVal([Saldo Atual]) 
    
    ;**** Valor Unitario ********************************************
    If refer <> REG_ITEM["Referencia"]  
       Then refer = REG_ITEM["Referencia"]        
            VR_MIN = 0
            VR_MAX = 0
            VR_MED = 0
            VR     = 0
            QTD_OP = 0 
    EndIf   
    If [Valor Unitario] <> 0 And [Valor Unitario]<>BlankNum()
       Then QTD_OP  = QTD_OP + 1
            VR = [Valor Unitario]
            VR_MED = VR_MED + VR
            If VR_MIN = 0 And VR<>0
               Then VR_MIN = VR                                        
            EndIf     
            If VR < VR_MIN Then VR_MIN = VR EndIf   
            If VR_MAX < VR Then VR_MAX = VR EndIf   
    EndIf          
    
    NAO_ACHOU=True
    Moveto "RM_0011E"
    Moveto [Codigo do Item]
    Locate Cod_Item
    If RetVal
       Then While Cod_Item = [Codigo do Item]
              Switch
                Case Item_Cor=[Item_Cor] And MODO="GRADE_COR" : NAO_ACHOU=False
                Case MODO="GRADE"                             : NAO_ACHOU=False
              EndSwitch
              
              If Not NAO_ACHOU
                 Then Moveto Field CAMPO 
                      [] = [] + QTD
                      
                      If VR_MAX<>0 And VR_MAX > [Preco Unitario]  
                         Then [Preco Unitario ]= VR_MAX
                      EndIf           
                      [Quantidade             ] = [Quantidade]+QTD 
                      [Preco Maximo           ] = VR_MAX
                      [Preco Minimo           ] = VR_MIN
                      [Preco Media            ] = VR_MED / QTD_OP
                      [Preco Total            ] = [Quantidade]*[Preco Media]
                      QuitLoop
              EndIf
              
              Skip
              If Eot() Then QuitLoop EndIf
            EndWhile
    EndIf
    
    If NAO_ACHOU
       Then End Down
            [Codigo da Empresa      ] = REG_EMPRESA["Codigo da Empresa"]   
            [Nome Fantasia Empresa  ] = REG_EMPRESA["Nome Fantasia Empresa"]
            [Codigo do Item         ] = Cod_Item
            [Descricao do Item      ] = Completa(SubStr([Descricao do Item],1,24),24," ")+" "+Item_Cor
            [Referencia             ] = REG_ITEM["Referencia"]
            ;[Preco Unitario         ] = VR_MAX
            If MODO="GRADE_COR" 
               Then [Item_Cor       ] = Item_Cor
            EndIf   
            [Preco Maximo           ] = VR_MAX
            [Preco Minimo           ] = VR_MIN
            [Preco Media            ] = VR_MED / QTD_OP
            
            Moveto Field CAMPO
            [] = QTD
     
            [Quantidade             ] = [Quantidade]+QTD
            [Preco Total            ] = [Quantidade]*[Preco Media]
    EndIf   

    QuitLoop
  Endfor
    
  Moveto TabelaI
EndScan
Do_It!
ClearAll

EndProc ;Monsta_Registros()
  
;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
VTIPO="W15,EIC"
Monta_Registros()
  
Impressao_Orientacao="Paisagem"
Copy "RM_0011E" TabelaI
If MODO = "GRADE"
   Then CopyReport "RM_0011E" "1" TabelaI "R"
EndIf                                        
Empty "RM_0011E"
ClearAll       