;** Rm_0080 ********************************************************************
;*  Emissao do Ranking de Pedidos I                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 25/07/2007 por Anivel Augusto Rodrigues
;Ultima Alteracao: 31/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Clientes 0003,0200
;Ultima Alteracao: 23/02/2010 por Cleber Alves            
;Motivo Alteracao: Ajustes Opcao da Data
;Ultima Alteracao: 18/08/2010 por Bruno Carvalho      
;Motivo Alteracao: Quebra por Familia no Report
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 06/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes de criterios
;Ultima Alteracao: 30/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao TG_COMVALOR       
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 10/04/2012 por Bruno Carvalho
;Motivo Alteracao: Add Report "Sem Valor" para Territorio (Existia, porem nao estava sendo usado) 
;Ultima Alteracao: 24/07/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes Diret¢rio Mˆs Fechado
;Ultima Alteracao: 02/10/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ alterar a descri‡Æo do item de acordo com o cadastro dele
;Ultima Alteracao: 12/04/2013 por Karina Andrade
;Motivo Alteracao: Ajustes TOTALIZA EMPRESAS
;Ultima Alteracao: 22/04/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes onde constava "DEBUG"
;Ultima Alteracao: 03/07/2013 por Bruno Carvalho
;Motivo Alteracao: Criado op‡Æo de modelo de relatorio, e adicionado relatorio por familia 
;Ultima Alteracao: 08/07/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Total % por Empresa e por Familia em cima das vendas
;Ultima Alteracao: 11/07/2013 por Bruno Carvalho
;Motivo Alteracao: Add novo modelo (impressÆo no proprio script) 
;Ultima Alteracao: 15/07/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes na impressÆo
;Ultima Alteracao: 17/07/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes para ser exibido na impressÆo o Codigo da Grade no Modelo 2
;Ultima Alteracao: 18/07/2013 por Bruno Carvalho
;Motivo Alteracao: Concatenado com a Descricao do Item o Codigo da Grade
;Ultima Alteracao: 22/07/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado campo "Porc Empresa" para coluna ser exibida no Excel
;Ultima Alteracao: 11/09/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes e novo modelo de relatorio #0222#
;Ultima Alteracao: 02/12/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado rorina de agrupamento no modelo VSDGOPRELCODALF="2" 
;Ultima Alteracao: 19/12/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado rotina para desmembrar kit #0222# 
;Ultima Alteracao: 22/01/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes rotina para desmembrar kit
;Ultima Alteracao: 23/09/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado opcao de incluir Suspenso
;Ultima Alteracao: 06/04/2015 por Luis Gustavo
;Motivo Alteracao: Adicionado filtro por Referencia
;Ultima Alteracao: 21/05/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Filtro por Situacao
;Ultima Alteracao: 07/07/2015 por Andrey,Heverton,Bruno e Kamila
;Motivo Alteracao: Ajustes Processa()
;Ultima Alteracao: 08/08/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes Desmembra_Kit() p/ setar vari vel apenas quando [Quantidade]<>"" e [Quantidade]<>BlankNum()
;Ultima Alteracao: 12/08/2016 por Bruno Carvalho  
;Motivo Alteracao: Ajustes onde foi add na Destin o campo [Atualiza Pedidos] e removido "..VEND.." do filtro da [Descricao da Destinacao} 
;                  Ajuda como comparativo do modelo RM_0402B do Vendas (PedidoI) 
;Ultima Alteracao: 16/09/2016 por Bruno Carvalho
;Motivo Alteracao: [Situacao do Pedido] estava sendo informado antes da verifica‡Æo -> VSDGSITUACAOPEDIDO<>"TODAS"
;Ultima Alteracao: 27/09/2016 por Bruno Carvalho
;Motivo Alteracao: Incluido [Descricao da Destinacao] TypeIn "..VEND.. Or ..DEVOL.. Or ..SAIDA.."
;Ultima Alteracao: 04/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: InclusÆo filtro representante/gerencia 
;Ultima Alteracao: 07/10/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes QTD_TOT na proc Desmembra_Kit()  e adicionado QTD_KIT_UN e ajustes nos reports nos totalizadores
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_SITUACAOPEDIDO  
;Ultima Alteracao: 17/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE                 
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog.      
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()              
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes TG_REFERENCIA
;Ultima Alteracao: 29/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica e reports                 
;Ultima Alteracao: 22/09/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Monta_Arquivo() p/ #0185#  -> Sol. 31672 
;Ultima Alteracao: 26/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtros                      
;Ultima Alteracao: 30/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes kits e excel                 
;Ultima Alteracao: 06/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes dados do item do cadastro    
;Ultima Alteracao: 07/03/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes ao fazer 1¦ ASK de itens, onde omitia CHECK em determinados campos utilizados -> Processa()
;Ultima Alteracao: 07/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes dados da empresa do cadastro    
;Ultima Alteracao: 19/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado novo modelo 04 SIRI                
;Ultima Alteracao: 04/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 04 SIRI sem grade      
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 14/09/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes periodo de data  mes fechado)
;Ultima Alteracao: 15/03/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes filtro operacao de pedido    
;Ultima Alteracao: 10/04/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes filtro departamentyo #0425   
;Ultima Alteracao: 02/10/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes separado impressÆo RM_0080A  
;Ultima Alteracao: 04/10/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes de pedidoig para pedidoi e novo modelo relatorio
;Ultima Alteracao: 09/10/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes novo modelo 02C
;Ultima Alteracao: 21/10/2019 por Bruno Carvalho 
;Motivo Alteracao: Adicionado [Total_Empresa] na proc Monta_Arquivo()
;Ultima Alteracao: 25/10/2019 por Bruno Carvalho 
;Motivo Alteracao: Adicionado processo para escolher mais de um representante 
;Ultima Alteracao: 27/11/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ask com representante nÆo cadastrado
;Ultima Alteracao: 12/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desfazer ask com representante nÆo cadastrado
;Ultima Alteracao: 04/02/2020 por Bruno Carvalho             
;Motivo Alteracao: Adicionado proc ListaRegra_Funcao(), onde foi ajustado ListaRegra_TGAtivado
;Ultima Alteracao: 06/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 03/07/2020 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes novo modelo 01A
;Ultima Alteracao: 26/09/2020 por Bruno Carvalho             
;Motivo Alteracao: Alterado Picture "TG_REPRESEN" de "[&,#][#*#]" para "!*!", permitir caracter "?" p/ ListaRegra

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona()
ClearAll

AGUARDE("Aguarde, selecionando dados")

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI")
   Then 
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
   
        {Ask} {\\Sistemas\\Vendas\\Destin}
        Moveto [Codigo da Destinacao   ] Example "cd"
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Atualiza Pedidos       ] TypeIn "S"
        
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
        Moveto [Numero do Pedido       ] Example "Pedido"
        Moveto [Codigo da Empresa      ] CheckPlus TypeIn "~VSDGEMPRESA2.."
        Moveto [Nome Fantasia Empresa  ] CheckPlus
        switch
          case ListaRegra_VSDGREPRESEN_Ativo  : Moveto [Codigo do Representante] CheckPlus Example "crep" TypeIn ","+ListaRegra_VSDGREPRESEN
          otherwise                           : Moveto [Codigo do Representante] CheckPlus Example "crep" TypeIn ",~VSDGREPRESEN.."
        endswitch
        Moveto [Nome Fantasia Represent] CheckPlus

        if VSDGOPDTPEEIR="1" Then Moveto [Data de Entrega ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        If VSDGOPDTPEEIR="2" Then Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        if VSDGOPDTPEEIR="3" Then Moveto [Data_Inclusao   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        
        Moveto [Codigo da Destinacao   ] Example "cd"        

        switch
          case VSDGOPERACAOPEDIDO="VENDAS"             : Moveto [Descricao da Destinacao] TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.."
          case VSDGOPERACAOPEDIDO="BONIFICACAO/BRINDE" : Moveto [Descricao da Destinacao] TypeIn "..BONIF.. Or ..BRINDE.."
          case VSDGOPERACAOPEDIDO="REMESSAS"           : Moveto [Descricao da Destinacao] TypeIn "..REMESSA.."
          case VSDGOPERACAOPEDIDO="VENDAS+REMESSAS"    : Moveto [Descricao da Destinacao] TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.. or ..REMESSA.."
        endswitch  

        Moveto [Situacao do Pedido     ]
        switch
          case VSDGSITUACAOPEDIDO="JUNTAR ABERTO+SUSPENSO"     : TypeIn "ABERTO or SUSPENSO"
          case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO+SUSPENSO" : TypeIn "not CANCELADO, not SUSPENSO"
          case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO"          : TypeIn "not CANCELADO"
          case VSDGSITUACAOPEDIDO<>"TODAS"                     : TypeIn "~VSDGSITUACAOPEDIDO.."
        endswitch
     
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI" Enter
        Moveto [Numero do Pedido       ] Example "Pedido"
        Moveto [Codigo do Item         ] CheckPlus     typein "_item,~VSDGITEM.."
        Moveto [Codigo da Cor_Tecido   ] CheckPlus        
        Moveto [Descricao da Cor_Tecido] CheckPlus         
        Moveto [Quantidade             ] CheckPlus 
        Moveto [Quantidade Faturada    ] CheckPlus 
        Moveto [Preco Total            ] CheckPlus
        Moveto [Valor Desconto Total   ] CheckPlus
        
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Example "item"
        Moveto [Codigo da Familia      ] CheckPlus TypeIn "~VSDGFAMI.."
        Moveto [Descricao da Familia   ] CheckPlus
        Moveto [Codigo do Grupo        ]           TypeIn "~VSDGGRP.."
        Moveto [Codigo da Marca        ] CheckPlus TypeIn "~VSDGMARCA.."
        Moveto [Descricao da Marca     ] CheckPlus
        Moveto [Referencia             ]           TypeIn "~VSDGREFERENCIA.."
        Moveto [Codigo do Departamento ]           TypeIn "~VSDGDEPART.."
        Do_It!
        ClearAll
EndIf  
      
EndProc

;*******************************************************************************
;* Rotina p/ processar os registros                                            *
;*******************************************************************************
Proc Processa()
private vrunit

AGUARDE("Aguarde, processando dados")
      
;***** Ajusta Dados ************************************
If VSDGEMPRESA="0000"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] TypeIn "changeto 0000"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto TOTALIZA EMPRESAS"
        Do_It!
        ClearAll
   Else {Ask} {\\Sistemas\\Cadastro\\Empresas}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] Example "nemp"
        {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto _nemp"
        Do_It!
        ClearAll
EndIf

if VSDGCODMODELO<>"21"
   then
        {Ask} TypeIn Tabela Enter typein "Fast"
        Moveto [Codigo do Representante ] TypeIn "changeto blank"
        Moveto [Nome Fantasia Represent ] TypeIn "changeto blank"
        Do_It!
        ClearAll
endif

{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Codigo do Representante] Check
Moveto [Nome Fantasia Represent] Check
Moveto [Codigo do Item         ] Check
Moveto [Codigo da Familia      ] Check
Moveto [Descricao da Familia   ] Check
Moveto [Codigo da Marca        ] Check
Moveto [Descricao da Marca     ] Check 
Moveto [Codigo da Cor_Tecido   ] Check
Moveto [Descricao da Cor_Tecido] Check
Moveto [Quantidade             ] TypeIn "Calc Sum As Quantidade" 
Moveto [Quantidade Faturada    ] TypeIn "Calc Sum As Quantidade Faturada" 
Moveto [Preco Total            ] TypeIn "Calc Sum As Preco Total"
Moveto [Valor Desconto Total   ] TypeIn "Calc Sum As Valor Desconto Total"
Do_It!
ClearAll
Rename "Answer" Tabela
ClearAll

Adiciona_Campo(Tabela,"Descricao do Item(A30),Tipo do Item(A1),Referencia(A20),Unidade Fiscal(A4),Codigo da Grade(A1),"+
                      "Qtd1(N),Qtd2(N),Qtd3(N),Qtd4(N),Qtd5(N),Qtd6(N),Qtd7(N),Qtd8(N),Qtd9(N),Qtd10(N),Qtd11(N),Qtd12(N)")

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item   ] Check
Moveto [Descricao do Item] Check
Moveto [Tipo do Item     ] Check 
Moveto [Referencia       ] Check  
Moveto [Unidade Fiscal   ] Check 
Moveto [Codigo da Grade  ] Check 
Do_It!
ClearAll

Adiciona_Indice("Answer","Codigo do Item")

{Ask} {Answer}
Moveto [Codigo do Item   ] Example "CodI"
Moveto [Descricao do Item] Example "DesI"
Moveto [Tipo do Item     ] Example "tpi"
Moveto [Referencia       ] Example "ref" 
Moveto [Unidade Fiscal   ] Example "unf"
Moveto [Codigo da Grade  ] Example "grd"
{Ask} TypeIn Tabela Enter typein "Fast"
Moveto [Codigo do Item   ] Example "CodI"
Moveto [Descricao do Item] TypeIn "Changeto _DesI" 
Moveto [Tipo do Item     ] TypeIn "Changeto _tpi"
Moveto [Referencia       ] TypeIn "Changeto _ref" 
Moveto [Unidade Fiscal   ] TypeIn "Changeto _unf"
Moveto [Codigo da Grade  ] TypeIn "Changeto _grd"
Do_It!
ClearAll

Ordem_Campo_Tabela(Tabela,"Codigo da Empresa,Nome Fantasia Empresa,Codigo do Item,Tipo do Item,Codigo da Familia,Descricao da Familia,"+
                          "Referencia,Descricao do Item,Codigo da Cor_Tecido,Descricao da Cor_Tecido,Unidade Fiscal,Codigo da Grade")

grdant="???"
Array Array_TM[12]
nr=nrecords(Tabela)

View "\\sistemas\\estoque\\tpgrade" ImageRights Readonly
Coedit Tabela
scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, processando grades "+BARRA_STRING)                  


  tmitem=PegaCampoTamanho([Codigo do Item])
  
  [Codigo do Item         ]=PegaCodigoRaiz([Codigo do Item])

  If [Codigo da Grade ]<>grdant
     Then grdant=[Codigo da Grade]
          For i From 1 to 12
            Array_TM[i]="F"
          EndFor

          getrecord "\\Sistemas\\Estoque\\TpGrade" grdant to regtpgrade
          If RetVal
             Then
                  Array_TM[1] ="F"+Completa(regtpgrade["Titulo Grade1"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item1"]))
                  Array_TM[2] ="F"+Completa(regtpgrade["Titulo Grade2"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item2"]))
                  Array_TM[3] ="F"+Completa(regtpgrade["Titulo Grade3"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item3"]))
                  Array_TM[4] ="F"+Completa(regtpgrade["Titulo Grade4"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item4"]))
                  Array_TM[5] ="F"+Completa(regtpgrade["Titulo Grade5"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item5"]))
                  Array_TM[6] ="F"+Completa(regtpgrade["Titulo Grade6"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item6"]))
                  Array_TM[7] ="F"+Completa(regtpgrade["Titulo Grade7"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item7"]))
                  Array_TM[8] ="F"+Completa(regtpgrade["Titulo Grade8"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item8"]))
                  Array_TM[9] ="F"+Completa(regtpgrade["Titulo Grade9"] ,2," ") +LTrim(RTrim(regtpgrade["Codigo Item9"]))
                  Array_TM[10]="F"+Completa(regtpgrade["Titulo Grade10"],2," ") +LTrim(RTrim(regtpgrade["Codigo Item10"]))
                  Array_TM[11]="F"+Completa(regtpgrade["Titulo Grade11"],2," ") +LTrim(RTrim(regtpgrade["Codigo Item11"]))
                  Array_TM[12]="F"+Completa(regtpgrade["Titulo Grade12"],2," ") +LTrim(RTrim(regtpgrade["Codigo Item12"]))
          EndIf   
  Endif        

  [Preco Total]=[Preco Total]-[Valor Desconto Total]
  vrunit       =[Preco Total]/[Quantidade          ]

  switch
    case VSDGCODMODELO="02B":
      if [Quantidade]>[Quantidade Faturada]
         then [Quantidade]=[Quantidade]-[Quantidade Faturada]
         else [Quantidade]=0
      endif

    case VSDGCODMODELO="02C":
      if [Quantidade Faturada]>0
         then [Quantidade]=[Quantidade Faturada]
         else [Quantidade]=0
      endif

  endswitch
  
  [Preco Total]=round(vrunit*[Quantidade],2)

  coluna=12
  For i From 1 to 12
    TM    = LTrim(RTrim(SuBstr(Array_TM[i],4,2)))
    if TM=tmitem then Coluna=i quitloop endif                 
  endfor

  Switch
    Case coluna=1 : [Qtd1 ]=[Quantidade]                 
    Case coluna=2 : [Qtd2 ]=[Quantidade]                 
    Case coluna=3 : [Qtd3 ]=[Quantidade]                 
    Case coluna=4 : [Qtd4 ]=[Quantidade]                 
    Case coluna=5 : [Qtd5 ]=[Quantidade]                 
    Case coluna=6 : [Qtd6 ]=[Quantidade]                 
    Case coluna=7 : [Qtd7 ]=[Quantidade]                 
    Case coluna=8 : [Qtd8 ]=[Quantidade]                 
    Case coluna=9 : [Qtd9 ]=[Quantidade]                 
    Case coluna=10: [Qtd10]=[Quantidade]                 
    Case coluna=11: [Qtd11]=[Quantidade]                 
    Case coluna=12: [Qtd12]=[Quantidade]    
    otherwise                      : 
  EndSwitch
  
endscan
Do_It!
ClearAll

release vars Array_TM, grdant, TM, tmitem

AGUARDE("Aguarde, totalizando dados")
      
if VSDGCODMODELO<>"04"
   then
        If VSDGOPANALISE="2"
           Then Edit Tabela
                Scan
                  If SYS_CLIENTE_CONFEC<>""
                     Then
                         [Descricao do Item      ]=TiraCorTamanhoDescricaoItem([Descricao do Item])
                         [Codigo da Cor_Tecido   ]=""
                         [Descricao da Cor_Tecido]=""
                  EndIf
        
                EndScan
                Do_It!
                ClearAll
        EndIf
        
        If VSDGOPANALISE="1"
           Then Edit Tabela
                Scan
                  If SYS_CLIENTE_CONFEC<>""
                     Then
                         [Descricao do Item]=TiraTamanhoDescricaoItem([Descricao do Item])
                  EndIf
        
                EndScan
                Do_It!
                ClearAll
        EndIf                     
EndIf

{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Codigo do Representante] Check
Moveto [Nome Fantasia Represent] Check
Moveto [Codigo do Item         ] Check
Moveto [Tipo do Item           ] Check
Moveto [Descricao do Item      ] Check
Moveto [Referencia             ] Check
Moveto [Codigo da Familia      ] Check
Moveto [Descricao da Familia   ] Check
Moveto [Codigo da Marca        ] Check
Moveto [Descricao da Marca     ] Check 
Moveto [Codigo da Cor_Tecido   ] Check
Moveto [Descricao da Cor_Tecido] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Codigo da Grade        ] Check
Moveto [Qtd1                   ] TypeIn "Calc Sum As Qtd1" 
Moveto [Qtd2                   ] TypeIn "Calc Sum As Qtd2"
Moveto [Qtd3                   ] TypeIn "Calc Sum As Qtd3"
Moveto [Qtd4                   ] TypeIn "Calc Sum As Qtd4"
Moveto [Qtd5                   ] TypeIn "Calc Sum As Qtd5"
Moveto [Qtd6                   ] TypeIn "Calc Sum As Qtd6"
Moveto [Qtd7                   ] TypeIn "Calc Sum As Qtd7"
Moveto [Qtd8                   ] TypeIn "Calc Sum As Qtd8"
Moveto [Qtd9                   ] TypeIn "Calc Sum As Qtd9"
Moveto [Qtd10                  ] TypeIn "Calc Sum As Qtd10"
Moveto [Qtd11                  ] TypeIn "Calc Sum As Qtd11"
Moveto [Qtd12                  ] TypeIn "Calc Sum As Qtd12"
Moveto [Quantidade             ] TypeIn "Calc Sum As Quantidade" 
Moveto [Preco Total            ] TypeIn "Calc Sum As Preco Total"
Do_It!
ClearAll

Rename "Answer" Tabela

If VSDGOPCAO[1] And UTILIZA_FORMULA_KIT And SYS_CODIGO_CLIENTE="0222"  
   Then Desmembra_Kit(UTILIZA_FORMULA_KIT)
EndIf   

If VSDGCODMODELO="04"
   then
        {Ask} TypeIn Tabela Enter typein "Fast"
        Moveto [Codigo da Cor_Tecido    ] TypeIn "_ccor"
        Moveto [Referencia              ] TypeIn "Changeto _ccor" 

        Moveto [Descricao da Cor_Tecido ] TypeIn "_dcor"
        Moveto [Descricao do Item       ] TypeIn "Changeto _dcor" 

        Moveto [Codigo do Item          ] TypeIn "changeto blank"
        Moveto [Tipo do Item            ] TypeIn "changeto blank"
        Moveto [Unidade Fiscal          ] TypeIn "changeto blank"
        Moveto [Codigo do Representante ] TypeIn "changeto blank"
        Moveto [Nome Fantasia Represent ] TypeIn "changeto blank"
        Moveto [Codigo da Familia       ] TypeIn "changeto blank"
        Moveto [Descricao da Familia    ] TypeIn "changeto blank"
        Moveto [Codigo da Marca         ] TypeIn "changeto blank"
        Moveto [Descricao da Marca      ] TypeIn "changeto blank"
        Moveto [Codigo da Grade         ] TypeIn "changeto blank"
        Do_It!
        ClearAll
      
        {Ask} TypeIn Tabela Enter
        Moveto [Codigo da Empresa      ] Check
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Codigo do Representante] Check
        Moveto [Nome Fantasia Represent] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Tipo do Item           ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Referencia             ] Check
        Moveto [Codigo da Familia      ] Check
        Moveto [Descricao da Familia   ] Check
        Moveto [Codigo da Marca        ] Check
        Moveto [Descricao da Marca     ] Check 
        Moveto [Codigo da Cor_Tecido   ] Check
        Moveto [Descricao da Cor_Tecido] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Codigo da Grade        ] Check
        Moveto [Qtd1                   ] TypeIn "Calc Sum As Qtd1" 
        Moveto [Qtd2                   ] TypeIn "Calc Sum As Qtd2"
        Moveto [Qtd3                   ] TypeIn "Calc Sum As Qtd3"
        Moveto [Qtd4                   ] TypeIn "Calc Sum As Qtd4"
        Moveto [Qtd5                   ] TypeIn "Calc Sum As Qtd5"
        Moveto [Qtd6                   ] TypeIn "Calc Sum As Qtd6"
        Moveto [Qtd7                   ] TypeIn "Calc Sum As Qtd7"
        Moveto [Qtd8                   ] TypeIn "Calc Sum As Qtd8"
        Moveto [Qtd9                   ] TypeIn "Calc Sum As Qtd9"
        Moveto [Qtd10                  ] TypeIn "Calc Sum As Qtd10"
        Moveto [Qtd11                  ] TypeIn "Calc Sum As Qtd11"
        Moveto [Qtd12                  ] TypeIn "Calc Sum As Qtd12"
        Moveto [Quantidade             ] TypeIn "Calc Sum As Quantidade" 
        Moveto [Preco Total            ] TypeIn "Calc Sum As Preco Total"
        Do_It!
        ClearAll
        
        Rename "Answer" Tabela
endif         

If VSDGCODMODELO="01"  or
   VSDGCODMODELO="01A" or
   VSDGCODMODELO="01B" or
   VSDGCODMODELO="02"  or
   VSDGCODMODELO="02B" or
   VSDGCODMODELO="02C" or
   VSDGCODMODELO="04" 
   then Ajusta_Dados()
endif

if VSDGCODMODELO="02B" or
   VSDGCODMODELO="02C"    
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
        Moveto [Quantidade   ] TypeIn "<=0"
        Do_It!
        ClearAll
EndIf   


If VSDGCOMVALOR="2"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Preco Total  ] TypeIn "Changeto Blank"
        Do_It!
        ClearAll
EndIf   
ClearAll

EndProc  ; (Seleciona)

;*******************************************************************************
;* Rotina para ajustador os dados e verificar a porcentagem de venda p/ Empresa*
;*******************************************************************************
Proc Ajusta_Dados()

AGUARDE("Aguarde, ajustando dados")

Adiciona_Campo(Tabela,"Total_Empresa(N),Porc Empresa(N)")

;*** Totaliza Quantidade *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Quantidade             ] TypeIn "Calc Sum as VendasQtd"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [VendasQtd              ] Example "vq"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Total_Empresa          ] TypeIn "changeto _vq"
Do_It!
ClearAll        

{Ask} TypeIn Tabela Enter typeIn "Fast" 
Moveto [Quantidade   ] TypeIn "_Qtd"
Moveto [Total_Empresa] TypeIn "_Emp"
Moveto [Porc Empresa ] TypeIn "Changeto (_Qtd /_Emp)*100"
Do_It!
ClearAll         

{Ask} TypeIn Tabela Enter 
Moveto [Codigo da Grade] Example "CodG"
{Ask} {\\Sistemas\\Estoque\\TpGrade} Check 
Moveto [Codigo da Grade] Example "CodG"
Do_It!
ClearAll        

Release Vars Grade  
DynArray Grade[]

NR=NRecords("Answer")
Contador = 0

Edit "Answer"
While True
  Contador = Contador + 1
  If Contador=NR       
     Then 
          switch
            Case VSDGCODMODELO="04" : Grade[Contador]="   "+Completa("Seq   Cor       ",48," ") 
            otherwise               : Grade[Contador]="   "+Completa("Seq   Referencia",48," ") 
          endswitch
     Else Grade[Contador]=Spaces(51) 
  EndIf
     
  Grade[Contador] = Grade[Contador] +  Completa("("+Rtrim([Codigo da Grade])+")",5," ")   
     
  For i From 1 To 12
    Switch
      Case i=1  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade1]),6," ") +Spaces(01)
      Case i=2  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade2]),6," ") +Spaces(01)
      Case i=3  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade3]),6," ") +Spaces(01)
      Case i=4  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade4]),6," ") +Spaces(01)
      Case i=5  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade5]),6," ") +Spaces(01)
      Case i=6  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade6]),6," ") +Spaces(01)
      Case i=7  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade7]),6," ") +Spaces(01)
      Case i=8  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade8]),6," ") +Spaces(01)
      Case i=9  : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade9]),6," ") +Spaces(01)
      Case i=10 : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade10]),6," ")+Spaces(01)
      Case i=11 : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade11]),6," ")+Spaces(01)
      Case i=12 : Grade[Contador] = Grade[Contador] + Completa(Format("W6,AR",[Titulo Grade12]),6," ")+Spaces(01)
    EndSwitch
  EndFor
  
  If Contador=NR
     Then Grade[Contador]=Grade[Contador]+"  Total          Valor   % Empresa"
  EndIf  

  Grade[Contador]=Grade[Contador]+"\n"
  
  Skip
  If Eot() Then QuitLoop EndIf
EndWhile
Do_It!
ClearAll              

EndProc ;Ajusta_Dados()                    

;*******************************************************************************
;* Rotina p/ Desmembrar Kits                                                                     *
;*******************************************************************************
Proc Desmembra_Kit(PARAM)
Private PARAM

AGUARDE("Aguarde, desmembrando kits")

Switch
  Case Not UTILIZA_FORMULA_KIT :           
    ;**** Totalizando a Quantidade de Kits ***************************
    If VSDGOPCAO[1] And Not UTILIZA_FORMULA_KIT
       Then QTD_TOT    = BlankNum()
            QTD_KIT_UN = BlankNum()
            QTD_KIT    = BlankNum()
            
            {Ask} TypeIn Tabela Enter
            Moveto [Descricao do Item] TypeIn "..Kit.."
            Moveto [Quantidade       ] TypeIn "Calc Sum as Quantidade"
            Do_It!
            If [Quantidade]<>"" And [Quantidade]<>BlankNum()
               Then QTD_KIT_UN = [Quantidade]
                    QTD_KIT    = ([Quantidade]*3)
            EndIf   
            ClearAll  
            
            {Ask} TypeIn Tabela Enter
            Moveto [Quantidade       ] TypeIn "Calc Sum as Quantidade"
            Do_It!
            If [Quantidade]<>"" And [Quantidade]<>BlankNum()
               Then QTD_TOT = [Quantidade] + (QTD_KIT_UN*2)
            EndIf
            ClearAll
    EndIf
  Case UTILIZA_FORMULA_KIT :
    ;**** Implementado em 17.12.2013 *******************************
    Array Array_TM[12]
    
    {Ask} {Answer} TypeIn "Delete"
    Moveto [Descricao do Item] TypeIn "..Kit.."
    Do_It!
    ClearAll
    
    Copy "Answer" Tabela
    grdant = "***"
    emp    = "****"
    
    View "\\Sistemas\\Estoque\\Itens"
    View "\\Sistemas\\Estoque\\TpGrade"
    View "\\Sistemas\\Producao\\FormulaI"
    View Tabela
    CoEdit "Deleted"
    Scan
      If emp<>[Codigo da Empresa]
         Then emp=[Codigo da Empresa]
              If VSDGEMPRESA<>"" And VSDGEMPRESA<>"TODAS"
                 Then GetRecord "\\Sistemas\\Cadastro\\Empresas" VSDGEMPRESA To EMPRESA
                      If RetVal
                         Then EMPRESA=EMPRESA["Nome Fantasia Empresa"] 
                         Else EMPRESA="" 
                      EndIf    
                 Else EMPRESA=""      
             EndIf
      EndIf
      
      ItemPesq   = [Codigo do Item]
      If [Codigo da Grade ]<>grdant
         Then grdant=[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 "Deleted"
                      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"]))
      Endif        
    
      For i From 1 to 12
        TM    = LTrim(RTrim(SuBstr(Array_TM[i],4,2)))
        CAMPO = "Qtd"+StrVal(i)
    
        Switch
          Case Len(Tm)=1 : ItemPesq=SubStr(ItemPesq,1,9) 
          Case Len(Tm)=2 : ItemPesq=SubStr(ItemPesq,1,8)
          OtherWise      : Loop 
        EndSwitch
    
        Item = ItemPesq + Tm
    
        ;***** Quantidade da Tabela Deleted *************
        Moveto "Deleted"
        Moveto Field CAMPO
        Quantidade = []
        If Quantidade<>"" And Quantidade<>BlankNum()
           Then Quantidade = NumVal([])
           Else Loop
        EndIf   
    
        Moveto "\\Sistemas\\Producao\\FormulaI"
        Moveto [Codigo do Produto]  
        Locate Item 
        If Not Retval 
           Then Moveto "Deleted"
                Loop  
        EndIf  
        
        While [Codigo do Produto]=Item
          Codigo_Item = [Codigo do Material]
          VrItem      = [Valor Unitario]
          QtdItem     = Quantidade*[Quantidade]                             ;Quantidade x Quantidade da Formula
            
          GetRecord "\\Sistemas\\Estoque\\Itens" Codigo_Item To REG_ITEM
          If RetVal
             Then itemok=True
             Else itemok=False 
          EndIf   
              
          Moveto Tabela
          End Down 
          [Codigo da Empresa      ] = VSDGEMPRESA   
          [Nome Fantasia Empresa  ] = EMPRESA   
          [Codigo do Item         ] = Codigo_Item
          
          If itemok
             Then [Tipo do Item           ] = REG_ITEM["Tipo do Item"]   
                  [Referencia             ] = REG_ITEM["Referencia"]   
                  [Descricao do Item      ] = REG_ITEM["Descricao do Item"]   
                  [Codigo da Cor_Tecido   ] = REG_ITEM["Codigo da Cor_Tecido"]   
                  [Descricao da Cor_Tecido] = REG_ITEM["Descricao da Cor_Tecido"]      
                  [Unidade Fiscal         ] = REG_ITEM["Unidade Fiscal"]   
                  [Codigo da Grade        ] = REG_ITEM["Codigo da Grade"]   
                  [Codigo da Familia      ] = REG_ITEM["Codigo da Familia"]      
                  [Descricao da Familia   ] = REG_ITEM["Descricao da Familia"]
          EndIf       
          [Preco Total            ] = QtdItem*VrItem
                  
          Moveto Field CAMPO
          [] = QtdItem  
    
          Moveto "\\Sistemas\\Producao\\FormulaI"
          Skip
          If Eot() Then QuitLoop EndIf
        EndWhile
      EndFor     
      Moveto "Deleted"
    EndScan
    Do_It!
    ClearAll
 
EndSwitch   
 
EndProc ;Desmembra_Kit()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Monta_Arquivo()

{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Codigo do Item         ] Check
Moveto [Tipo do Item           ] Check
Moveto [Referencia             ] Check
Moveto [Descricao do Item      ] Check
Moveto [Codigo da Cor_Tecido   ] Check
Moveto [Descricao da Cor_Tecido] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Codigo da Grade        ] Check
Moveto [Codigo da Familia      ] Check
Moveto [Descricao da Familia   ] Check
Moveto [Qtd1                   ] Check
Moveto [Qtd2                   ] Check
Moveto [Qtd3                   ] Check
Moveto [Qtd4                   ] Check
Moveto [Qtd5                   ] Check
Moveto [Qtd6                   ] Check
Moveto [Qtd7                   ] Check
Moveto [Qtd8                   ] Check
Moveto [Qtd9                   ] Check
Moveto [Qtd10                  ] Check
Moveto [Qtd11                  ] Check
Moveto [Qtd12                  ] Check
Moveto [Quantidade             ] Check
Moveto [Preco Total            ] Check      
Moveto [Total_Empresa          ] Check
Do_it!
ClearAll

Rename "Answer" Tabela

Sort Tabela On "Referencia","Codigo da Cor_Tecido"
ClearAll

EndProc ;Monta_Arquivo()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] = -60: If Campo="TG_REPRESEN"
                                      Then ListaRegra_F2() 
                                   EndIf
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESATE"      : Campo="NO"
            Case Campo="TG_GERENCIA"       : Campo="TG_EMPRESATE" 
            Case Campo="TG_REPRESEN"       : Campo="TG_GERENCIA"
            Case Campo="TG_FAMI"           : Campo="TG_REPRESEN"
            Case Campo="TG_GRP"            : Campo="TG_FAMI"
            Case Campo="TG_MARCA"          : Campo="TG_GRP" 
            Case Campo="TG_DEPART"         : Campo="TG_MARCA"
            Case Campo="TG_ITEM"           : Campo="TG_DEPART"
            Case Campo="TG_REFERENCIA"     : Campo="TG_ITEM"
            Case Campo="TG_OPDTPEEIR"      : Campo="TG_REFERENCIA"
            Case Campo="TG_DTINI"          : Campo="TG_OPDTPEEIR"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_OPANALISE"      : Campo="TG_DTFIM"
            Case Campo="TG_COMVALOR"       : Campo="TG_OPANALISE"
            Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_COMVALOR"
            Case Campo="TG_OPERACAOPEDIDO" : Campo="TG_SITUACAOPEDIDO"
            Case Campo="TG_OPCOES"         : Campo="TG_OPERACAOPEDIDO"
            Case Campo="TG_CODMODELO"      : Campo="TG_OPCOES"
            Case Campo="YES" Or Campo="NO" : Campo="TG_EMPRESATE"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESATE"      : Campo="TG_GERENCIA"
                    Case Campo="TG_GERENCIA"       : Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"       : Campo="TG_FAMI" 
                    Case Campo="TG_FAMI"           : Campo="TG_GRP"
                    Case Campo="TG_GRP"            : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"          : Campo="TG_DEPART"
                    Case Campo="TG_DEPART"         : Campo="TG_ITEM"
                    Case Campo="TG_ITEM"           : Campo="TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"     : Campo="TG_OPDTPEEIR"
                    Case Campo="TG_OPDTPEEIR"      : Campo="TG_DTINI" 
                    Case Campo="TG_DTINI"          : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"          : Campo="TG_OPANALISE"
                    Case Campo="TG_OPANALISE"      : Campo="TG_COMVALOR"
                         VSDGOPANALISE=ControlValue("TG_OPANALISE")
                         Switch
                           Case VSDGOPANALISE="2": VSDGNOMOPANALISE="SO REFERENCIA"
                           OtherWise             : VSDGNOMOPANALISE="REFERENCIA+COR"
                                                   VSDGOPANALISE="1"
                         EndSwitch                 
                    Case Campo="TG_COMVALOR"       : Campo="TG_SITUACAOPEDIDO"
                    Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_OPERACAOPEDIDO"
                    Case Campo="TG_OPERACAOPEDIDO" : Campo="TG_OPCOES"
                    Case Campo="TG_OPCOES"         : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"      : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_TPDATA":
       MSG_CAMPO="1 = EMISSAO  2 = ENTREGA"
  Case Campo="TG_OPANALISE":
       MSG_CAMPO="1=Referencia+Cor  2=Referencia"
  Case Campo="TG_OPCOES" :
       MensagemCheckBoxes()
       
EndSwitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  Por Tipo de Grade/Referˆncia/%Empresa")
ModeloRelatoriosAdd("01A Por Tipo de Grade/Agrupado por Referˆncia+Cor")
ModeloRelatoriosAdd("02  Por Referˆncia/%Empresa")
ModeloRelatoriosAdd("02B Por Referˆncia/%Empresa - A Faturar pra todas situa‡äes")
ModeloRelatoriosAdd("02C Por Referˆncia/%Empresa -  Faturado pra todas situa‡äes")
ModeloRelatoriosAdd("03  Por Familia/Tipo de Grade/Referˆncia")
ModeloRelatoriosAdd("21  Por Representante/Marca/Tipo de Grade/Referˆncia")
ModeloRelatoriosAdd("04  Por Cor/%Empresa")
ModeloRelatoriosAdd("Fim")

EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Proc"
If Not IsAssigned(SYS_CLIENTE_CONFEC) Then SYS_CLIENTE_CONFEC="" EndIF
If Not IsAssigned(SYS_CODIGO_CLIENTE) Then SYS_CODIGO_CLIENTE="" EndIF
LimpAguarde()

SYS_VALOR()

;**** Destivado em 22.01.2014 *******************
UTILIZA_FORMULA_KIT = False

VSDGEMPRESA        = ""
VSDGREPRESEN       = ""
VSDGGERENCIA       = ""
VSDGMARCA          = ""
VSDGFAMI           = ""
VSDGGRUP           = ""
VSDGITEM           = ""
VSDGREFERENCIA     = ""
VSDGOPDTPEEIR      = ""
VSDGDTINI          = BlankDate()
VSDGDTFIM          = BlankDate()
VSDGOPANALISE      = ""
VSDGCOMVALOR       = "1"
VSDGSITUACAOPEDIDO = ""
VSDGOPERACAOPEDIDO=""
VSDGDEPART         =""

Array VSDGOPCAO[1]
VSDGOPCAO[1]     = False

ListaRegra_Funcao("ListaRegra_TGAtivado","[TG_REPRESEN]")      

ModeloRelatoriosCarregaLista()

While True
  Mouse Show
  ShowDialog "Ranking de Pedidos com Grade" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140,-59,-60  
  @ 05,12   Height 22 Width 80

    Label  @ 00,00 "Empresa"  For "TG_EMPRESATE"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESATE"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Gerˆncia " For "TG_GERENCIA"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_GERENCIA" To VSDGGERENCIA
    Accept @ 03,09 Width 25 "A10"  Picture "!*!" Tag "TG_DESCGERENCIA" To VSDGDESCGERENCIA

    Label  @ 04,00 "Representante"  For "TG_REPRESEN"
    Accept @ 05,01 Width 07 "A4"  Picture "!*!" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 05,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMREPR" To VSDGNOMREPR

    Label  @ 06,00 "Familia"  For "TG_FAMI"
    Accept @ 07,02 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI"    To VSDGFAMI
    Accept @ 07,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 08,00 "Grupo"  For "TG_GRP"
    Accept @ 09,02 Width 06 "A3"  Picture "#*#" Tag "TG_GRP"    To VSDGGRP
    Accept @ 09,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 10,00 "Marca"  For "TG_MARCA"
    Accept @ 11,02 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 11,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 12,00 "Departamento"  For "TG_DEPART"
    Accept @ 13,02 Width 06 "A3"  Picture "#*#" Tag "TG_DEPART"    To VSDGDEPART
    Accept @ 13,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMDEPART" To VSDGNOMDEPART    

    Label  @ 14,00 "Item"  For "TG_ITEM"
    Accept @ 15,01 Width 33 "A10" Picture "#*#" Tag "TG_ITEM"     To VSDGITEM
    Accept @ 16,01 Width 33 "A35" Picture "!*!" Tag "TG_NOMITEM" To VSDGNOMITEM
    
    Label  @ 00,35 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 01,36 Width 33 "A20" Picture "!*!" Tag "TG_REFERENCIA" To VSDGREFERENCIA

    Label  @ 02,35 "Op‡äes de Datas" For "TG_OPDTPEEIR"
    Accept @ 03,39 Width 04 "A1"  Picture "1,2,3,4"  Tag "TG_OPDTPEEIR"    To VSDGOPDTPEEIR
    Accept @ 03,44 Width 25 "A20" Picture "!*!"      Tag "TG_NOMOPDTPEEIR" To VSDGNOMOPDTPEEIR
 
    Label  @ 04,35 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 05,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 05,51 "at‚" For "TG_DTFIM"
    Accept @ 05,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 06,35 "Op‡„o de An lise" For "TG_OPANALISE"
    Accept @ 07,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPANALISE" To VSDGOPANALISE
    Accept @ 07,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPANALISE" To VSDGNOMOPANALISE

    Label  @ 08,35 "Op‡„o de Valor" For "TG_COMVALOR"
    Accept @ 09,39 Width 04 "A1"  Picture "1,2" Tag "TG_COMVALOR" To VSDGCOMVALOR
    Accept @ 09,44 Width 25 "A10"  Picture "!*!" Tag "TG_NOMCOMVALOR" To VSDGNOMCOMVALOR
    
    Label  @ 10,35 "Situacao do Pedido"  For "TG_SITUACAOPEDIDO"
    Accept @ 11,36 Width 33 "A30"  Picture "ABERTO,SUSPENSO,CANCELADO,FATURADO,TODAS,!*!" Tag "TG_SITUACAOPEDIDO"  To VSDGSITUACAOPEDIDO

    Label  @ 12,35 "Opera‡Æo do Pedido"  For "TG_OPERACAOPEDIDO"
    Accept @ 13,36 Width 33 "A30"  Picture "VENDAS,BONIFICACAO/BRINDE,REMESSAS,TODAS,!*!" Tag "TG_OPERACAOPEDIDO"  To VSDGOPERACAOPEDIDO

    CheckBoxes @15,35 Height 3 Width 26 Tag "TG_OPCOES"
    "Desmembrar Kits" to VSDGOPCAO[1]
    
    Label  @ 17,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 18,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 18,06  Width 47 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO        

    Pushbutton @ 18,54 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 18,66 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf
  if not ValidarModelosRelatorios() then loop endif         

  If VSDGREPRESEN="" 
     Then VSDGNOMREPR = "TODOS"
  EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, Gerando Relat¢rio")
  
  If VSDGEMPRESA="0000"
     Then VSDGEMPRESA2=""
     Else VSDGEMPRESA2=VSDGEMPRESA
  EndIf

  Tabela=Cria_Temp(PrivDir())

  if not isblank(VSDGDTINI)
     then Monta_Dir_Trab(VSDGDTINI-365,VSDGDTFIM+365)
     Else Monta_Dir_Trab(Today()-365,VSDGDTFIM+365)
  endif   
  
  SetDir "\\Sistemas\\Vendas"
  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  
  While Novo_Dir_Trab()
    If IsTable("Answer") Then Delete "Answer" EndIf
    SELECIONA()
    If Not IsTable("Answer") Then Loop EndIf
    If IsTable(Tabela)
       Then Add "Answer" Tabela
       Else Rename "Answer" Tabela
    EndIf
  EndWhile
  
  Processa()  
  SetDir "\\Sistemas\\Producao"

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf
  
  ;---- VersÆo de estrutura de arquivo de 09.2016 ------------------------------
  If DISPOSITIVO_OPCAO="A" And SYS_CODIGO_CLIENTE="0185"
     Then Monta_Arquivo()
  EndIf   

  Impressao_Orientacao="Retrato"
  Switch
    Case VSDGCODMODELO="01"  :
         Impressao_Orientacao="Paisagem"
         CopyReport "\\Base\\Sistemas\\Producao\\RM_0080" "1" Tabela "R"
         IMPRIREL(Tabela,"R")
         
    Case VSDGCODMODELO="01A"  :
         Impressao_Orientacao="Paisagem"
         CopyReport "\\Base\\Sistemas\\Producao\\RM_0080" "8" Tabela "R"
         IMPRIREL(Tabela,"R")
         
    Case VSDGCODMODELO="02"  or
         VSDGCODMODELO="02B" or
         VSDGCODMODELO="02C" :
         Play "RM_0080A"
  
    Case VSDGCODMODELO="03" :
         If VSDGOPCAO[1] And Not UTILIZA_FORMULA_KIT And SYS_CODIGO_CLIENTE="0222" 
            Then Desmembra_Kit(UTILIZA_FORMULA_KIT)
         EndIf   
    
         CopyReport "\\Base\\Sistemas\\Producao\\RM_0080" "5" Tabela "R"
         IMPRIREL(Tabela,"R")

    Case VSDGCODMODELO="21" :
         CopyReport "\\Base\\Sistemas\\Producao\\RM_0081" "1" Tabela "R"
         IMPRIREL(Tabela,"R")
    
    Case VSDGCODMODELO="04" :
         Play "RM_0080C"

  EndSwitch
  If IsAssigned(Tabela) And IsTable(Tabela) Then Delete Tabela EndIf  
EndWhile
ClearAll
Release Vars All
Release Procs All
