;** Rm_0011E *******************************************************************
;*  Inventario modo grade                                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    :   /  /     por                           
;Ultima Alteracao: 16/01/2018 por Bruno Carvalho             
;Motivo Alteracao: CopyReport TabelaI independente do MODO *Report sendo perdido no modelo 22 
;Ultima Alteracao: 19/01/2018 por Kamila Gomes
;Motivo Alteracao: Ajustes p/ copiar tabela RM_0011E do base 
;Ultima Alteracao: 27/08/2019 por Kamila Gomes
;Motivo Alteracao: Ajustes Cor_Tecido ordena‡Æo no report         
;Ultima Alteracao: 04/09/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cor_Tecido ordena‡Æo no report #0232 sequencia da cor
;Ultima Alteracao: 10/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes  modelo "22" descricao da cor
;Ultima Alteracao: 13/02/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 30 (Modelo 21, por‚m o modelo 30 ‚ separado por refereˆncia)
;Ultima Alteracao: 13/02/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 31 (Modelo 22, por‚m o modelo 31 ‚ separado por refereˆncia)

;*******************************************************************************
;* 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, Codigo_Cor, Descri_Cor
        
NR=NRecords(TabelaI)      

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

Copy "\\Base\\Sistemas\\Estoque\\RM_0011E" "RM_0011E"                   

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  = ""
    Codigo_Cor=""
    Descri_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       ]
                              Descri_Cor = [Descricao da Cor_Tecido]
                            
                            ;;Codigo_Cor= [Codigo da Cor_Tecido]
                              if sys_codigo_cliente="0232"
                                 then Codigo_Cor=strval([Sequencia da Cor_Tecido])
                              endif   
                              
                              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
            If VSDGEMPRESA="0000"
               Then [Codigo da Empresa      ] = ""   
                    [Nome Fantasia Empresa  ] = "TOTALIZA EMPRESAS"
               Else [Codigo da Empresa      ] = REG_EMPRESA["Codigo da Empresa"]   
                    [Nome Fantasia Empresa  ] = REG_EMPRESA["Nome Fantasia Empresa"]
            EndIf
            [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
                    [Codigo da Cor_Tecido   ] = Codigo_Cor
                    [Descricao da Cor_Tecido] = Descri_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
switch   
  Case VSDGCODMODELO="21"  : CopyReport "\\Base\\Sistemas\\Estoque\\RM_0011E" "1" TabelaI "R" 
  Case VSDGCODMODELO="22"  : CopyReport "\\Base\\Sistemas\\Estoque\\RM_0011E" "2" TabelaI "R"
  Case VSDGCODMODELO="30"  : CopyReport "\\Base\\Sistemas\\Estoque\\RM_0011E" "3" TabelaI "R"
  Case VSDGCODMODELO="31"  : CopyReport "\\Base\\Sistemas\\Estoque\\RM_0011E" "4" TabelaI "R"
endswitch   
ClearAll   
