;* Exp_Site ********************************************************************
;* Geracao de Dados p/ Site - Sistema de Site TrayCorp                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/06/2020 por Bruno Carvalho
;Ultima Alteracao: 10/07/2020 por Bruno Carvalho  
;Motivo Alteracao: Ajustes [CodigoProduto] recebendo a REFERENCIA e [AgrupadorProduto] recebendo "" 
;Ultima Alteracao: 14/07/2020 por Bruno Carvalho  
;Motivo Alteracao: Ajustes em campos para corrigir a acentua‡Æo 
;Ultima Alteracao: 07/08/2020 por Bruno Carvalho  
;Motivo Alteracao: Adicionado op‡Æo de filtro p/ exportar itens com ou sem estoque   
;Ultima Alteracao: 07/08/2020 por Bruno Carvalho  
;Motivo Alteracao:  Ajustes p/ ignorar ID em branco na proc Gera_Excel_Preco() e Gera_Excel_Estoque()

;*******************************************************************************
;* CONVERTE VALOR PARA STRING                                                  *
;*******************************************************************************
Proc Valor_Str(Valor,Tam,Dec)
Private VrTit,Valor,Tam,Dec,Part1,Part2

VrTit=StrVal(Valor)
If SearchFrom(".",VrTit,1)>0
   Then Part1=SubStr(VrTit,1,SearchFrom(".",VrTit,1)-1)
        Part2=SubStr(VRTit,SearchFrom(".",VrTit,1)+1,Dec)
        Part2=PART2+Fill(0,DEC-Len(Part2))
   Else Part1=VrTit
        Part2=Fill(0,Dec)
EndIf
Vrtit=Part1+Part2
VrTit=Fill("0",Tam-Len(VrTit))+VrTit
Return VrTit

EndProc  ; (Valor_Str)

;*******************************************************************************
;* CONVERTE VALOR PARA STRING                                                  *
;*******************************************************************************
Proc Tira_PontoVirgula(Valor)

PosI=Search(";",Valor)
If PosI>0
   Then While PosI>0
          Valor = Substr(Valor,1,PosI-1)+Substr(Valor,PosI+1,LEN(Valor))
          PosI=Search(";",Valor)
        Endwhile  
EndIf
Return Valor

EndProc                   
  
;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Gera_Tabela()
Private i,ii,prec,AUX_DATA,CODTAB,PARAM_ASK

TabelaREF               = ""
AuxItem                  = ""
ItemPreco                = ""
ItemEstoqueAtual         = ""
ItemAExcluirDtManutencao = ""

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item          ] Check TypeIn "_CodI"
Moveto [Codigo de Barras        ] Check
Moveto [Descricao do Item       ] Check
Moveto [Descricao Complementar  ] Check
Moveto [Tipo do Item            ] Check TypeIn "P Or T"
Moveto [Codigo da Familia       ] Check TypeIn "~VSDGFAMI.."
Moveto [Descricao da Familia    ] Check
Moveto [Codigo do Grupo         ] Check TypeIn "~VSDGGRP.."
Moveto [Descricao do Grupo      ] Check
Moveto [Codigo da Marca         ] Check TypeIn "~VSDGMARCA.."
Moveto [Descricao da Marca      ] Check
Moveto [Codigo da Cor_Tecido    ] Check
Moveto [Referencia              ] Check TypeIn "~VSDGREFERENCIA.."
Moveto [Inativo                 ] TypeIn "Not S"
Moveto [Codigo do Departamento  ] Check
Moveto [Codigo Fornecedor       ] Check
Moveto [Observacao              ] Check
Moveto [Pais                    ] Check
Moveto [Peso Liquido            ] Check
Moveto [Data_Cadastro           ] Check
Moveto [Data da Manutencao      ] Check
Do_it!
ClearAll 
                       
CRIAR_TABELA = False
Adiciona_Campo("Answer","Codigo da Empresa(A4),"+
                        "Preco Unitario($),"+     
                        "Saldo Atual Hoje(N),"+
                        "Saldo Atual(N),"+
                        "Valor Unitario($),"+
                        "Custo Total Atual($),"+
                        "Sdestq(A1),"+
                        "Data Ultimo Reajuste(D),"+
                        "Data de Inatividade(D),"+
                        "Flag(A1),"+
                        "TbPreco(A1)")

TabelaREF=Adiciona_Indice_Temp("Codigo da Empresa,Codigo do Item") 

{Ask} TypeIn TabelaREF Enter
Moveto [Codigo da Empresa] TypeIn "Changeto ~VSDGEMPRESA"
Do_It!
ClearAll

For i From 1 To 3
  Switch
    Case i = 1 : If VSDGDTINI = BlankDate() And VSDGDTFIM=BlankDate() Then Loop EndIf    
                 ;---- Data de Manuten‡Æo --------------------------------------
                 For ii From 1 To 2
                    Switch
                      Case ii = 1 : {Ask} TypeIn TabelaREF Enter Check
                                    Moveto [Data da Manutencao] TypeIn "Blank"
                                    Moveto [Data_Cadastro     ] TypeIn "<~VSDGDTINI Or >~VSDGDTFIM"
                                    Do_it!
                                    ClearAll
                                     
                                    ItemAExcluirDtManutencao=Cria_Temp(PrivDir())
                                    Copy "Answer" ItemAExcluirDtManutencao
                                                                                                             
                      Case ii = 2 : {Ask} TypeIn TabelaREF Enter Check
                                    Moveto [Data da Manutencao] TypeIn "Not Blank, <~VSDGDTINI Or >~VSDGDTFIM"
                                    Do_it!
                                    ClearAll
                                    
                                    Add "Answer" ItemAExcluirDtManutencao
                    EndSwitch
                 EndFor
                 {Ask} TypeIn ItemAExcluirDtManutencao Enter Check
                 Do_it!
                 ClearAll
                  
                 ItemAExcluirDtManutencao = Adiciona_Indice_Temp("Codigo do Item")
    Case i = 2 : If VSDGFINAL=3 Then Loop EndIf
                 View "\\Sistemas\\Vendas\\TbPrIte"
                 CoEdit TabelaREF
                 Scan
                   Barra(NRecords(TabelaREF), RecNo())
                   Aguarde("Aguarde, verificando o pre‡o do item "+BARRA_STRING)
                   
                   CopyToArray REG_ITEM
                   
                   ACHOU_PRECO=False
                   GetRecord "\\Sistemas\\Vendas\\TbPrIte" VSDGTABELA,REG_ITEM["Codigo do Item"] To REG_PRECO
                   If RetVal
                      Then ACHOU_PRECO = True
                      Else GetRecord "\\Sistemas\\Vendas\\TbPrIte" VSDGTABELA,PegaCodigoRaiz(REG_ITEM["Codigo do Item"]) To REG_PRECO  
                           If RetVal
                              Then ACHOU_PRECO = True
                           EndIf
                   EndIf
                   Moveto TabelaREF
                   If ACHOU_PRECO
                      Then[Preco Unitario] = REG_PRECO["Preco Unitario"]
                   EndIf        
                 EndScan
                 Do_It!
                 ClearAll                                    
                   
    Case i = 3 : If VSDGFINAL=2 Then Loop EndIf
                 {Ask} TypeIn TabelaREF Enter Check 
                 Moveto [Codigo do Item   ]       TypeIn "_CodI"                 
                 {Ask} {\\Sistemas\\Estoque\\SdEstq}
                 Moveto [Codigo da Empresa] Check TypeIn "~VSDGEMPRESA" 
                 Moveto [Codigo do Item   ] Check TypeIn "_CodI" 
                 Moveto [Ano Referencia   ]       TypeIn "~VSDGANO"
                 Moveto [Mes Referencia   ]       TypeIn "~VSDGMES"                              
                 Moveto [Saldo Atual      ] Check TypeIn "Not Blank, as Saldo"
                 Do_It!
                 ClearAll
                 ItemEstoqueAtual = Adiciona_Indice_Temp("Codigo da Empresa,Codigo do Item")
  EndSwitch     
EndFor

{Ask} TypeIn TabelaREF Enter Check
Do_It!
ClearAll

TabelaREF=Adiciona_Indice_Temp("Codigo da Empresa,Codigo do Item") 

;---- Desprezando Itens com Data de Manuten‡Æo inferior ao informado ------
If IsTable(ItemAExcluirDtManutencao)
   Then {Ask} TypeIn ItemAExcluirDtManutencao Enter 
        Moveto [Codigo do Item] Example "Ite"
        {Ask} TypeIn TabelaRef Enter 
        Moveto [Codigo do Item] Example "Ite"
        Moveto [Flag          ] TypeIn "Changeto X"
        Do_it!
        Clearall
EndIf

If VSDGFINAL=1 Or VSDGFINAL=3
   Then {Ask} TypeIn ItemEstoqueAtual Enter
        Moveto [Codigo da Empresa] Example "Cemp" 
        Moveto [Codigo do Item   ] Example "CodI"
        Moveto [Saldo            ] Example "Sald" 
        {Ask} TypeIn TabelaREF Enter ;TypeIn "Fast"
        Moveto [Codigo da Empresa] Example "Cemp" 
        Moveto [Codigo do Item   ] Example "CodI"
        Moveto [Saldo Atual Hoje ] TypeIn "Changeto _Sald"
        Moveto [Sdestq           ] TypeIn "Changeto X" 
        Do_It!
        ClearAll
EndIf

;If VSDGFINAL=1 Or VSDGFINAL=3
;   Then ;*****Invent rio do dia anterior **************************************
;        SetDir "\\Sistemas\\Estoque"
;        Play "RM_0011C"
;        SetDir "\\Sistemas\\Exporta"
;EndIf 
   
;If IsTable(ItemPreco)        Then Delete ItemPreco        EndIf                
;If IsTable(ItemEstoqueAtual) Then Delete ItemEstoqueAtual EndIf  

EndProc ;Gera_Tabela()  

;*******************************************************************************
;* Gera Arquivo Texto p/ Produtos                                              *
;*******************************************************************************
Proc Gera_Excel_NovosItens()                      
Private DESC_NCM,REG_ITEM,CONTADOR
ClearAll 

If Not IsAssigned(TabelaREF) Or IsEmpty(TabelaREF)
   Then Return
EndIf

GetRecord "\\Sistemas\\Cadastro\\Empresas" VSDGEMPRESA To REG_EMPRESA
If RetVal
   Then FABRICANTE = REG_EMPRESA["Nome Fantasia Empresa"]
   Else FABRICANTE = ""
EndIf        

CONTADOR = 0
View "\\Sistemas\\Estoque\\Site_Err"
View "\\Sistemas\\Estoque\\Itens"
View "\\Sistemas\\Estoque\\Iten_Eco"
View TabelaSite
CoEdit TabelaREF
Scan
  Barra(NRecords(TabelaREF), RecNo())
  Aguarde("Aguarde, gerando arquivo em excel "+BARRA_STRING)
                  
  CopyToArray REG_ITEM
  
  ;Ignorar itens LD
  If Upper(SubStr(REG_ITEM["Referencia"],Len(REG_ITEM["Referencia"])-1,2))= "LD"
     Then Loop
  EndIf
  
  If Not VSDGOPCAO[1] And Not NumVal(REG_ITEM["Saldo Atual Hoje"])>0
     Then Loop
  EndIf
  
  ;REG_ITEM["Descricao Complementar"  ]
  ;REG_ITEM["Tipo do Item"            ]
  ;REG_ITEM["Codigo da Familia"       ]
  ;REG_ITEM["Descricao da Familia"    ]
  ;REG_ITEM["Codigo do Grupo"         ]
  ;REG_ITEM["Descricao do Grupo"      ]
  ;REG_ITEM["Codigo da Marca"         ]
  ;REG_ITEM["Descricao da Marca"      ]
  ;REG_ITEM["Codigo da Cor_Tecido"    ]
  ;REG_ITEM["Inativo"                 ]
  ;REG_ITEM["Codigo do Departamento"  ]
  ;REG_ITEM["Observacao"              ]
  ;REG_ITEM["Pais"                    ]
  ;REG_ITEM["Data_Cadastro"           ]
  ;REG_ITEM["Data da Manutencao"      ]
            
  ;StrVal(REG_ITEM["Saldo Atual"      ])
  
  COD_FAMILIA = ""
  FAMILIA     = ""
  COD_BARRA   = ""
  TAMANHO     = ""
  COR         = ""
  INATIVO     = ""
  GetRecord "\\Sistemas\\Estoque\\Itens" REG_ITEM["Codigo do Item"] To REG_ITENS
  If RetVal
     Then If Search("EAN",Upper(REG_ITENS["Tipo Codigo_Barras"]))>0
             Then COD_BARRA = REG_ITENS["Codigo de Barras"]
          EndIf
          TAMANHO     = REG_ITENS["DTamanho"]                   
          COR         = REG_ITENS["Descricao da Cor_Tecido"]
          COD_FAMILIA = REG_ITENS["Codigo da Familia"] 
          FAMILIA     = Tira_CharEspecial(REG_ITENS["Descricao da Familia"])
          INATIVO     = REG_ITENS["Inativo"]
  EndIf   
  
  ;---- Pre‡o do Item ----------------------------------------------------------
  PRECO = Ltrim(Rtrim(REG_ITEM["Preco Unitario"]))
  
  ;---- Itens e-Commerce -------------------------------------------------------
  PESO          = Ltrim(Rtrim(StrVal(REG_ITEM["Peso Liquido"])))
  LARGURA       = ""
  ALTURA        = ""
  COMPRIMENTO   = ""
  LINK_IMAGEM   = ""
  CATEGORIA_COD = ""
  CATEGORIA_DES = ""
  COD_GENERO    = ""
  GENERO        = ""
  COD_COLECAO   = ""
  COLECAO       = ""
  DESCRICAO     = ""
  GetRecord "\\Sistemas\\Estoque\\Iten_Eco" REG_ITEM["Codigo do Item"] To REG_ITENECO
  If RetVal
     Then LARGURA       = StrVal(REG_ITENECO["Largura"])
          ALTURA        = StrVal(REG_ITENECO["Altura"])
          COMPRIMENTO   = StrVal(REG_ITENECO["Comprimento"])
          LINK_IMAGEM   = REG_ITENECO["Link_Imagem"]
          CATEGORIA_COD = REG_ITENECO["Codigo da Categoria"] 
          CATEGORIA_DES = Tira_CharEspecial(REG_ITENECO["Descricao da Categoria"])
          COD_GENERO    = REG_ITENECO["Codigo do Genero"]
          GENERO        = Tira_CharEspecial(REG_ITENECO["Descricao do Genero"]) 
          COD_COLECAO   = REG_ITENECO["Codigo da Colecao"] 
          COLECAO       = Tira_CharEspecial(REG_ITENECO["Descricao da Colecao"])     
          DESCRICAO     = REG_ITENECO["Descricao_Item"]                                                     
  EndIf         
  
  TITULO_ERRO=""
  Switch
    Case IsBlank(PRECO)         : TITULO_ERRO = "PRECO" 
    Case IsBlank(PESO)          : TITULO_ERRO = "PEDO" 
    Case IsBlank(CATEGORIA_DES) : TITULO_ERRO = "CATEGORIA"                     ;Categoria
    Case IsBlank(GENERO)        : TITULO_ERRO = "GENERO"                        ;SubCategoria
    Case IsBlank(FAMILIA)       : TITULO_ERRO = "FAMILIA"                       ;SubSubCategoria
    Case IsBlank(COLECAO)       : TITULO_ERRO = "COLECAO"
  EndSwitch
  
  If TITULO_ERRO<>""
     Then CONTADOR = CONTADOR + 1
          ARRAY_ERRO[CONTADOR] = Format("W20",TITULO_ERRO)+Format("W10",REG_ITEM["Codigo do Item"])
          
          Moveto "\\Sistemas\\Estoque\\Site_Err"
          End Down
          [Codigo do Item        ] = REG_ITEM["Codigo do Item"] 
          [Descricao do Item     ] = REG_ITEM["Descricao do Item"]
          [Codigo do Grupo       ] = REG_ITEM["Codigo do Grupo"]
          [Descricao do Grupo    ] = Tira_CharEspecial(REG_ITEM["Descricao do Grupo"])
          If Not IsBlank(PRECO)
             Then [Preco Unitario] = NumVal(PRECO)
          EndIf   
          If Not IsBlank(PESO)
             Then [Peso Liquido  ] = NumVal(PESO)
          EndIf    
          [Codigo da Categoria   ] = CATEGORIA_COD
          [Descricao da Categoria] = CATEGORIA_DES
          [Codigo do Genero      ] = COD_GENERO
          [Descricao do Genero   ] = GENERO
          [Codigo da Familia     ] = COD_FAMILIA
          [Descricao da Familia  ] = FAMILIA
          [Codigo da Colecao     ] = COD_COLECAO
          [Descricao da Colecao  ] = COLECAO
          UnLockRecord
  EndIf   
  
  ;A COLECAO nÆo ‚ campo obrigat¢rio 
  If IsBlank(PRECO)         Or
     IsBlank(PESO)          Or
     IsBlank(CATEGORIA_DES) Or
     IsBlank(GENERO)        Or
     IsBlank(FAMILIA)
     Then Moveto TabelaREF
          Loop
  EndIf   
    
   ;If IsBlank(CATEGORIA_DES) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a categoria da pe‡a informado!"
   ;If IsBlank(FABRICANTE) Then MSG = "NÆo foi informado o FABRICANTE do item "+REG_ITEM["Codigo do Item"])        
   ;If IsBlank(REG_ITEM["Peso Liquido"]) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem o Peso L¡quido informado!"
   ;If IsBlank(COMPRIMENTO) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem o comprimento da pe‡a informado!"
   ;If IsBlank(LARGURA) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a largura da pe‡a informado!"
   ;If IsBlank(ALTURA) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a altura da pe‡a informado!"
   ;If Not REG_ITEM["Saldo Atual Hoje"]>0 Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem etoque informado!"
   ;If IsBlank(COR) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a cor da pe‡a informado!"
   ;If IsBlank(TAMANHO) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem o tamanho da pe‡a informado!"
   ;If IsBlank(COLECAO) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a cole‡Æo da pe‡a informado!"
   ;If IsBlank(GENERO) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem o gˆnero da pe‡a informado!"
   ;If IsBlank(FAMILIA) Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem a fam¡lia da pe‡a informado!"
   ;If Not REG_ITEM["Preco Unitario"]>0 Then MSG = "Item "+REG_ITEM["Codigo do Item"])+" sem pre‡o informado!"  
  
  ;Todos os campos com coment rios a frente sÆo obrigat¢rios, com exce‡Æo da [SubCategoria] e [SubSubCategoria] 
   
  Moveto TabelaSite
  End Down 
  [SKU                     ]=REG_ITEM["Codigo do Item"]                         ;O termo Stock Keeping Unit (SKU), em portuguˆs Unidade de Manuten‡Æo de Estoque, 
                                                                                ;‚ definido como um identificador £nico de um produto.  
  [CodigoProduto           ]=REG_ITEM["Referencia"]                             ;COR 
  [AgrupadorProduto        ]=""
  [NomeProduto             ]=TiraCorTamanhoDescricaoItem(REG_ITEM["Descricao do Item"]) ;T¡tulo do produto]
  [NomeProdutoVariante     ]=TiraTamanhoDescricaoItem(REG_ITEM["Descricao do Item"]) ;T¡tulo do produto variante, essa descri‡Æo ‚ uti+B2:F46lizada no   
                                                                                     ;spot e na p gina do produto, se nÆo informar o [C¢digo do Produto] 
                                                                                     ;os produtos com o mesmo 
                                                                                     ;[Nome do Produto Variante], serÆo agrupados.
  [PrecoDe                 ]=Ltrim(Rtrim(REG_ITEM["Preco Unitario"]))                ;Se o produto tiver [pre‡o de] e [pre‡o por] diferentes, [pre‡o de] ser    
                                                                                     ;exibido riscado, se forem iguais nÆo ser  exibido o [pre‡o de].
  [PrecoPor                ]=[PrecoDe]                                               ;Pre‡o que ser  exibido no spot e na p gina do produto.
  [Fabricante              ]=FABRICANTE                                              ;Fabricante do produto. A plataforma automaticamente ir  criar o Hotsite com
                                                                                     ;os produtos deste Fabricante.     
  [Categoria               ]=CATEGORIA_DES                                      ;M‚todo de organiza‡Æo. A plataforma cria automaticamente o hotsite da categoria 
                                                                                ;e agrupa os produtos nesta p gina, a partir do 3ø n¡vel (SubSubSubCategoria)
                                                                                ;gera filtro automaticamente.
  [SubCategoria            ]=GENERO                                             ;Genero
  [SubSubCategoria         ]=FAMILIA                                            ;FAMILIA     
  [SubSubSubCategoria      ]=""                    
  [SubSubSubSubCategoria   ]=""                    
  [Categoria2              ]=""                    
  [SubCategoria2           ]=""                    
  [SubSubCategoria2        ]=""                    
  [SubSubSubCategoria2     ]=""                    
  [SubSubSubSubCategoria2  ]=""                    
  [Categoria3              ]=""                    
  [SubCategoria3           ]=""                    
  [SubSubCategoria3        ]=""                    
  [SubSubSubCategoria3     ]=""                    
  [SubSubSubSubCategoria3  ]=""                    
  [Categoria4              ]=""                    
  [SubCategoria4           ]=""                    
  [SubSubCategoria4        ]=""                    
  [SubSubSubCategoria4     ]=""                    
  [SubSubSubSubCategoria4  ]=""
  [Categoria5              ]=""         
  [SubCategoria5           ]=""                    
  [SubSubCategoria5        ]=""                    
  [SubSubSubCategoria5     ]=""                    
  [SubSubSubSubCategoria5  ]=""                    
  [Categoria6              ]=""                    
  [SubCategoria6           ]=""                    
  [SubSubCategoria6        ]=""                    
  [SubSubSubCategoria6     ]=""                    
  [SubSubSubSubCategoria6  ]=""                    
  [Categoria7              ]=""                    
  [SubCategoria7           ]=""                    
  [SubSubCategoria7        ]=""                    
  [SubSubSubCategoria7     ]=""                   
  [SubSubSubSubCategoria7  ]=""                    
  [Categoria8              ]=""                    
  [SubCategoria8           ]=""                    
  [SubSubCategoria8        ]=""                    
  [SubSubSubCategoria8     ]=""                    
  [SubSubSubSubCategoria8  ]=""                    
  [Autor                   ]=""                    
  [Editora                 ]=""                    
  [Colecao                 ]=COLECAO                     
  [Genero                  ]=GENERO  
  [FreteGratis_tipo        ]="3"                                                ;"1 = Sempre ir  ter frete gr tis"ÿ
                                                                                ;"2 = Nunca ser  frete gr tis, independente de houver promo‡Æo."
                                                                                ;"3 = Neutro, se houver promo‡Æo para este produto, receber  o frete gr tis"                      
  [Exibir SPOT             ]="SIM"
  [Exibir Pagina Produto   ]="SIM"                                         ;NAO ‚ como se o item estivesse INATIVO               
  [Exibir Marketplace      ]="SIM"                    
  [Exibir Somente Parceiros]="NAO"                                              ;ALT + 0227 = Æ
  [Exibir Buy Box          ]="NAO"                                              ;ALT + 0195 = Ç
  [PrazoEntrega            ]="1"                                                ;Quantidade de dias ou semanas para a entrega do produto                    
  [TipoPrazo               ]="Semanas"                                          ;"Dias" ou "Semanas"
  [PrazoConsumo            ]=""                    
  [Garantia_meses          ]=""                    
  [EAN                     ]=COD_BARRA                    
  [LocalizacaoEstoque      ]=""                    
  [Televendas              ]="0"                                                ;Utilizado para produtos do televendas.ÿ
                                                                                ;0 = NÆo
                                                                                ;1 = Sim
  [Exibir                  ]="1"                                                ;Utilize 0 (nÆo exibir) para produtos somente brinde.
                                                                                ;0 = NÆo exibe no site.
                                                                                ;1 = Sim, exibe no site.
  [Condicao                ]="Novo"                                             ;Novo
                                                                                ;Usado
                                                                                ;Renovado
                                                                                ;Danificado
  [Peso_GRAMAS             ]=PESO                                               ;Peso em gramas do produto, utilizado para c lculo do frete. Exemplo 10000 gramas.
  [Comprimento_CM          ]=Format("W10.2,EIC",COMPRIMENTO)                    ;Comprimento em cent¡metros do produto, utilizado para c lculo do frete. Exemplo 100 cent¡metros.                     
  [Largura_CM              ]=Format("W10.2,EIC",LARGURA)                        ;Largura em cent¡metros do produto, utilizado para c lculo do frete. Exemplo 100 cent¡metros.
  [Espessura_CM            ]=Format("W10.2,EIC",ALTURA)                         ;Espessura em cent¡metros do produto, utilizado para c lculo do frete. Exemplo 100 cent¡metros.
  [Estoque                 ]=StrVal(REG_ITEM["Saldo Atual Hoje"])               ;Quantidade em estoque f¡sico do produto.
  If TAMANHO<>""
    Then [NomeAtributo1    ]="Tamanho"                    
         [ValorAtributo1   ]=TAMANHO                                               
  EndIf                               
  If COR<>""                      
     Then [NomeAtributo2   ]="Cor"                     
          [ValorAtributo2  ]=COR      
  EndIf  
  [NomeAtributo3           ]=""                    
  [ValorAtributo3          ]=""                    
  [NomeAtributo4           ]=""                   
  [ValorAtributo4          ]=""                    
  [NomeAtributo5           ]=""                   
  [ValorAtributo5          ]=""                    
  [NomeAtributo6           ]=""                    
  [ValorAtributo6          ]=""                    
  [NomeAtributo6           ]=""                   
  [ValorAtributo6          ]=""                    
  [NomeAtributo7           ]=""                   
  [ValorAtributo7          ]=""                    
  [NomeAtributo8           ]=""                   
  [ValorAtributo8          ]=""                    
  [NomeAtributo9           ]=""                    
  [ValorAtributo9          ]=""
  [InformacaoProduto1      ]="" ;Especificacoes"                                   ;VALOR REFERENTE    
  [TituloInformacao1       ]="" ;Especificacao"                                    ;Modelo
  [ValorInformacao1        ]="" ;DESCRICAO                                         ;FT-3603
  [InformacaoProduto2      ]=""             
  [TituloInformacao2       ]=""                    
  [ValorInformacao2        ]=""                    
  [InformacaoProduto3      ]=""                    
  [TituloInformacao3       ]=""                   
  [ValorInformacao3        ]=""
  [InformacaoProduto4      ]=""                    
  [TituloInformacao4       ]=""                   
  [ValorInformacao4        ]=""                   
  [InformacaoProduto5      ]=""                    
  [TituloInformacao5       ]=""                   
  [ValorInformacao5        ]=""                    
  [InformacaoProduto6      ]=""                    
  [TituloInformacao6       ]=""
  [ValorInformacao6        ]=""                   
  [InformacaoProduto7      ]=""                    
  [TituloInformacao7       ]=""                     
  [ValorInformacao7        ]=""
  UnLockRecord
  
  Moveto TabelaREF
EndScan
Do_it!
ClearAll
  
EndProc ;Gera_Excel_NovosItens()

;*******************************************************************************
;* Gera Arquivo Texto p/ Pre‡o                                              *
;*******************************************************************************
Proc Gera_Excel_Preco()
ClearAll 

If Not IsAssigned(TabelaREF) Or IsEmpty(TabelaREF)
   Then Return
EndIf

CONTADOR = 0
View "\\Sistemas\\Estoque\\Site_Err"
View "\\Sistemas\\Estoque\\Itens"
View TabelaSite
CoEdit TabelaREF
Scan
  Barra(NRecords(TabelaREF), RecNo())
  Aguarde("Aguarde, gerando arquivo em excel "+BARRA_STRING)
  
  CopyToArray REG_ITEM
  
  ;Ignorar itens LD
  If Upper(SubStr(REG_ITEM["Referencia"],Len(REG_ITEM["Referencia"])-1,2))= "LD"
     Then Loop
  EndIf
  
  If Not NumVal(REG_ITEM["Preco Unitario"])>0
     Then Loop
  EndIf    
  
  TITULO_ERRO=""  
  GetRecord "\\Sistemas\\Estoque\\Iten_Eco" REG_ITEM["Codigo do Item"] To REG_ITENECO
  If RetVal
     Then ID_SITE = REG_ITENECO["IdSite"]
     Else ID_SITE = ""
          TITULO_ERRO = "SEM ID DO SITE"
  EndIf

  if Rtrim(Ltrim(ID_SITE))="" then loop endif
  
  PRECO=[Preco Unitario] 
  If IsBlank(PRECO) 
     Then TITULO_ERRO = "PRECO"
  EndIf
  
  If TITULO_ERRO<>""
     Then CONTADOR = CONTADOR + 1
          ARRAY_ERRO[CONTADOR] = Format("W20",TITULO_ERRO)+Format("W10",REG_ITEM["Codigo do Item"])
          
          Moveto "\\Sistemas\\Estoque\\Site_Err"
          End Down
          [Codigo do Item        ] = REG_ITEM["Codigo do Item"]
          [Descricao do Item     ] = REG_ITEM["Descricao do Item"]
          [Titulo do Erro        ] = TITULO_ERRO
          [Codigo do Grupo       ] = REG_ITEM["Codigo do Grupo"]
          [Descricao do Grupo    ] = Tira_CharEspecial(REG_ITEM["Descricao do Grupo"])
          UnLockRecord
          
          Moveto TabelaREF
          Loop
  EndIf 
      
  Moveto TabelaSite
  End Down 
  [Produto Variante Id     ]=Rtrim(Ltrim(ID_SITE))                              ;???????????? VER
  [SKU                     ]=REG_ITEM["Codigo do Item"]                         ;O termo Stock Keeping Unit (SKU), em portuguˆs Unidade de Manuten‡Æo de Estoque,
  [Nome                    ]=TiraCorTamanhoDescricaoItem(REG_ITEM["Descricao do Item"])       ;????????????????? VER
  [Preco De                ]=Format("W10.2,EIC",REG_ITEM["Preco Unitario"])     ;Se o produto tiver [pre‡o de] e [pre‡o por] diferentes, [pre‡o de] ser    
                                                                                ;exibido riscado, se forem iguais nÆo ser  exibido o [pre‡o de].
  [Preco Por               ]=[Preco De]                                         ;Pre‡o que ser  exibido no spot e na p gina do produto.
  [Preco Custo             ]=Format("W10.2,EIC","0")
  UnLockRecord
  
  Moveto TabelaREF
EndScan
Do_it!
ClearAll  

EndProc ;Gera_Excel_Preco()

;*******************************************************************************
;* Gera Arquivo Texto p/ Estoque                                              *
;*******************************************************************************
Proc Gera_Excel_Estoque()
ClearAll 

If Not IsAssigned(TabelaREF) Or IsEmpty(TabelaREF)
   Then Return
EndIf

CONTADOR = 0
View "\\Sistemas\\Estoque\\Site_Err"
View "\\Sistemas\\Estoque\\Itens"
View TabelaSite
CoEdit TabelaREF
Scan
  Barra(NRecords(TabelaREF), RecNo())
  Aguarde("Aguarde, gerando arquivo em excel "+BARRA_STRING)
  
  CopyToArray REG_ITEM
  
  ;Ignorar itens LD
  If Upper(SubStr(REG_ITEM["Referencia"],Len(REG_ITEM["Referencia"])-1,2))= "LD"
     Then Loop
  EndIf           
  
  If Not VSDGOPCAO[1] And Not NumVal(REG_ITEM["Saldo Atual Hoje"])>0
     Then Loop
  EndIf
  
  TITULO_ERRO=""  
  GetRecord "\\Sistemas\\Estoque\\Iten_Eco" REG_ITEM["Codigo do Item"] To REG_ITENECO
  If RetVal
     Then ID_SITE = REG_ITENECO["IdSite"]
     Else ID_SITE = ""
          TITULO_ERRO = "SEM ID DO SITE" 
  EndIf

  if Rtrim(Ltrim(ID_SITE))="" then loop endif
    
  If IsBlank([Saldo Atual Hoje]) 
     Then TITULO_ERRO="SEM ESTOQUE" 
  EndIf
    
  If TITULO_ERRO<>""
     Then CONTADOR = CONTADOR + 1
          ARRAY_ERRO[CONTADOR] = Format("W20",TITULO_ERRO)+Format("W10",REG_ITEM["Codigo do Item"])
          
          Moveto "\\Sistemas\\Estoque\\Site_Err"
          End Down
          [Codigo do Item        ] = REG_ITEM["Codigo do Item"]
          [Descricao do Item     ] = REG_ITEM["Descricao do Item"]
          [Titulo do Erro        ] = TITULO_ERRO
          [Codigo do Grupo       ] = REG_ITEM["Codigo do Grupo"]
          [Descricao do Grupo    ] = Tira_CharEspecial(REG_ITEM["Descricao do Grupo"])
          UnLockRecord
          
          Moveto TabelaREF
          Loop
  EndIf                
                  
  Moveto TabelaSite
  End Down 
  [Produto Variante Id     ]=Rtrim(Ltrim(ID_SITE))                              ;???????????? VER
  [SKU                     ]=REG_ITEM["Codigo do Item"]                         ;O termo Stock Keeping Unit (SKU), em portuguˆs Unidade de Manuten‡Æo de Estoque,
  [Nome                    ]=TiraCorTamanhoDescricaoItem(REG_ITEM["Descricao do Item"])         ;????????????????? VER
  [Estoque                 ]=Format("W10",REG_ITEM["Saldo Atual Hoje"])
  UnLockRecord
        
  Moveto TabelaREF
EndScan
Do_it!
ClearAll  

EndProc ;Gera_Excel_Estoque()
  
;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Cria_Tabela_Site(PARAM)

;"NOVOS ITENS"
;"ATUALIZAR PRECO"
;"ATUALIZAR ESTOQUE"

Switch 
 Case PARAM="NOVOS ITENS" :
      Array ARRAY_TABELA[113]
      
      ARRAY_TABELA[1]   = "SKU"                                                       ;SIM
      ARRAY_TABELA[2]   = "CodigoProduto"                                             
      ARRAY_TABELA[3]   = "AgrupadorProduto"
      ARRAY_TABELA[4]   = "NomeProduto"                                               ;SIM
      ARRAY_TABELA[5]   = "NomeProdutoVariante"                                       ;SIM
      ARRAY_TABELA[6]   = "PrecoDe"                                                   ;SIM
      ARRAY_TABELA[7]   = "PrecoPor"                                                  ;SIM
      ARRAY_TABELA[8]   = "Fabricante"                                                ;SIM
      ARRAY_TABELA[9]   = "Categoria"                                                 ;SIM
      ARRAY_TABELA[10]  = "SubCategoria"
      ARRAY_TABELA[11]  = "SubSubCategoria"
      ARRAY_TABELA[12]  = "SubSubSubCategoria"
      ARRAY_TABELA[13]  = "SubSubSubSubCategoria"
      ARRAY_TABELA[14]  = "Categoria2"
      ARRAY_TABELA[15]  = "SubCategoria2"
      ARRAY_TABELA[16]  = "SubSubCategoria2"
      ARRAY_TABELA[17]  = "SubSubSubCategoria2"
      ARRAY_TABELA[18]  = "SubSubSubSubCategoria2"
      ARRAY_TABELA[19]  = "Categoria3"
      ARRAY_TABELA[20]  = "SubCategoria3"
      ARRAY_TABELA[21]  = "SubSubCategoria3"
      ARRAY_TABELA[22]  = "SubSubSubCategoria3"
      ARRAY_TABELA[23]  = "SubSubSubSubCategoria3"
      ARRAY_TABELA[24]  = "Categoria4"
      ARRAY_TABELA[25]  = "SubCategoria4"
      ARRAY_TABELA[26]  = "SubSubCategoria4"
      ARRAY_TABELA[27]  = "SubSubSubCategoria4"
      ARRAY_TABELA[28]  = "SubSubSubSubCategoria4"
      ARRAY_TABELA[29]  = "Categoria5"
      ARRAY_TABELA[30]  = "SubCategoria5"
      ARRAY_TABELA[31]  = "SubSubCategoria5"
      ARRAY_TABELA[32]  = "SubSubSubCategoria5"
      ARRAY_TABELA[33]  = "SubSubSubSubCategoria5"
      ARRAY_TABELA[34]  = "Categoria6"
      ARRAY_TABELA[35]  = "SubCategoria6"
      ARRAY_TABELA[36]  = "SubSubCategoria6"
      ARRAY_TABELA[37]  = "SubSubSubCategoria6"
      ARRAY_TABELA[38]  = "SubSubSubSubCategoria6"
      ARRAY_TABELA[39]  = "Categoria7"
      ARRAY_TABELA[40]  = "SubCategoria7"
      ARRAY_TABELA[41]  = "SubSubCategoria7"
      ARRAY_TABELA[42]  = "SubSubSubCategoria7"
      ARRAY_TABELA[43]  = "SubSubSubSubCategoria7"
      ARRAY_TABELA[44]  = "Categoria8"
      ARRAY_TABELA[45]  = "SubCategoria8"
      ARRAY_TABELA[46]  = "SubSubCategoria8"
      ARRAY_TABELA[47]  = "SubSubSubCategoria8"
      ARRAY_TABELA[48]  = "SubSubSubSubCategoria8"
      ARRAY_TABELA[49]  = "Autor"
      ARRAY_TABELA[50]  = "Editora"
      ARRAY_TABELA[51]  = "Colecao"
      ARRAY_TABELA[52]  = "Genero"
      ARRAY_TABELA[53]  = "FreteGratis_tipo"                                          ;SIM
      ARRAY_TABELA[54]  = "Exibir SPOT"
      ARRAY_TABELA[55]  = "Exibir Pagina Produto"
      ARRAY_TABELA[56]  = "Exibir Marketplace"
      ARRAY_TABELA[57]  = "Exibir Somente Parceiros"
      ARRAY_TABELA[58]  = "Exibir Buy Box"
      ARRAY_TABELA[59]  = "PrazoEntrega"                                              ;SIM
      ARRAY_TABELA[60]  = "TipoPrazo"                                                 ;SIM
      ARRAY_TABELA[61]  = "PrazoConsumo"
      ARRAY_TABELA[62]  = "Garantia_meses"
      ARRAY_TABELA[63]  = "EAN"
      ARRAY_TABELA[64]  = "LocalizacaoEstoque"
      ARRAY_TABELA[65]  = "Televendas"                                                ;SIM
      ARRAY_TABELA[66]  = "Exibir"                                                    ;SIM
      ARRAY_TABELA[67]  = "Condicao"                                                  ;SIM
      ARRAY_TABELA[68]  = "Peso_GRAMAS"                                               ;SIM
      ARRAY_TABELA[69]  = "Comprimento_CM"                                            ;SIM
      ARRAY_TABELA[70]  = "Largura_CM"                                                ;SIM
      ARRAY_TABELA[71]  = "Espessura_CM"                                              ;SIM
      ARRAY_TABELA[72]  = "Estoque"                                                   ;SIM
      ARRAY_TABELA[73]  = "NomeAtributo1"                                             
      ARRAY_TABELA[74]  = "ValorAtributo1"                         
      ARRAY_TABELA[75]  = "NomeAtributo2"
      ARRAY_TABELA[76]  = "ValorAtributo2"
      ARRAY_TABELA[77]  = "NomeAtributo3" 
      ARRAY_TABELA[78]  = "ValorAtributo3"
      ARRAY_TABELA[79]  = "NomeAtributo4"
      ARRAY_TABELA[80]  = "ValorAtributo4"
      ARRAY_TABELA[81]  = "NomeAtributo5"
      ARRAY_TABELA[82]  = "ValorAtributo5"
      ARRAY_TABELA[83]  = "NomeAtributo6"
      ARRAY_TABELA[84]  = "ValorAtributo6"
      ARRAY_TABELA[85]  = "NomeAtributo6"
      ARRAY_TABELA[86]  = "ValorAtributo6"
      ARRAY_TABELA[87]  = "NomeAtributo7"
      ARRAY_TABELA[88]  = "ValorAtributo7"
      ARRAY_TABELA[89]  = "NomeAtributo8"
      ARRAY_TABELA[90]  = "ValorAtributo8"
      ARRAY_TABELA[91]  = "NomeAtributo9"
      ARRAY_TABELA[92]  = "ValorAtributo9"
      ARRAY_TABELA[93]  = "InformacaoProduto1"
      ARRAY_TABELA[94]  = "TituloInformacao1"
      ARRAY_TABELA[95]  = "ValorInformacao1"
      ARRAY_TABELA[96]  = "InformacaoProduto2"
      ARRAY_TABELA[97]  = "TituloInformacao2"
      ARRAY_TABELA[98]  = "ValorInformacao2"
      ARRAY_TABELA[99]  = "InformacaoProduto3"
      ARRAY_TABELA[100] = "TituloInformacao3"
      ARRAY_TABELA[101] = "ValorInformacao3"
      ARRAY_TABELA[102] = "InformacaoProduto4"
      ARRAY_TABELA[103] = "TituloInformacao4"
      ARRAY_TABELA[104] = "ValorInformacao4"
      ARRAY_TABELA[105] = "InformacaoProduto5"
      ARRAY_TABELA[106] = "TituloInformacao5"  
      ARRAY_TABELA[107] = "ValorInformacao5"
      ARRAY_TABELA[108] = "InformacaoProduto6"
      ARRAY_TABELA[109] = "TituloInformacao6"
      ARRAY_TABELA[110] = "ValorInformacao6"
      ARRAY_TABELA[111] = "InformacaoProduto7"
      ARRAY_TABELA[112] = "TituloInformacao7"
      ARRAY_TABELA[113] = "ValorInformacao7"
      
 Case PARAM="ATUALIZAR PRECO" :
      Array ARRAY_TABELA[6]
      
      ARRAY_TABELA[1]   = "Produto Variante Id"
      ARRAY_TABELA[2]   = "SKU"
      ARRAY_TABELA[3]   = "Nome"
      ARRAY_TABELA[4]   = "Preco De"                                                               
      ARRAY_TABELA[5]   = "Preco Por"
      ARRAY_TABELA[6]   = "Preco Custo"
      
 Case PARAM="ATUALIZAR ESTOQUE" :
      Array ARRAY_TABELA[4]
      
      ARRAY_TABELA[1]   = "Produto Variante Id"
      ARRAY_TABELA[2]   = "SKU"
      ARRAY_TABELA[3]   = "Nome"
      ARRAY_TABELA[4]   = "Estoque"
      
EndSwitch                                    

TabelaSite=Cria_Temp(PrivDir())

CAMPOS = ""
For wi From 1 To ArraySize(ARRAY_TABELA) 
  CAMPOS = CAMPOS + ARRAY_TABELA[wi]+"(A30)"
  If wi<>ArraySize(ARRAY_TABELA)
     Then CAMPOS = CAMPOS + ", "
  EndIf
EndFor

Cria_Tabela(TabelaSite,CAMPOS)
                         
EndProc ;Cria_Tabela_Site()

;*******************************************************************************
;* Rotina para impressao de erros                                              *
;*******************************************************************************
Proc Imprime_Erro()

If ConfGeral("Deseja gerar o arquivo com os erros?")
   Then ;---- Gera o Arquivo com Erros para Correcao ---------------------------
        DISPOSITIVO_OPCAO   = "A"
        TIPO_DOCTO          = 2 ;Excel
        ARQUIVO             = "SIT_ERRO"
        GERA_ARQUIVO_OCULTO = False
  
        TABELA = "\\Sistemas\\Estoque\\Site_err"  
        IMPRIREL(TABELA,"R")
     
        ;COR_MENSAGEM="ALERTA"
        ;If ConfGeral("Deseja tamb‚m visualizar o relat¢rio de erros?")
        ;   Then DISPOSITIVO()
        ;        If OK="" 
        ;           Then COR_MENSAGEM="ALERTA"
        ;                Mensagem("Relat¢rio de erros cancelado!")
        ;                Return  
        ;        EndIf
        ;        
        ;        ARQIMP=PrivDir()+"ERRO.Txt"
        ;        If IsFile(ARQIMP)
        ;           Then Deleta_Arquivo(ARQIMP)
        ;        EndIf   
        ;        
        ;        LINHA  = 0
        ;        For ii From 1 To DynArraySize(ARRAY_ERRO)
        ;          If LINHA = 0
        ;             Then ;Cabecalho 
        ;                  Print File ARQIMP CI_15CPP
        ;                  Print File ARQIMP "\n"
        ;                  Print File ARQIMP Spaces(2)+Fill("-",135) + "\n"
        ;                  Print File ARQIMP Spaces(2)+Format("W135,AC","Erros Localizados na Importa‡Æo")+ "\n"
        ;                  Print File ARQIMP Spaces(2)+Fill("-",135)+ "\n"
        ;                  Print File ARQIMP Spaces(2)+"MENSAGEM DE ERRO                 "+ "\n"
        ;                  Print File ARQIMP Spaces(2)+"---------------------------------"+ "\n" 
        ;                  LINHA = 6
        ;          EndIf
        ;          
        ;          DADOS = ARRAY_ERRO[ii]
        ;          LINHA = LINHA + 1       
        ;          Print File ARQIMP Spaces(2)+DADOS+"\n"
        ;          If LINHA >= 66
        ;             Then Print File ARQIMP "\f"
        ;                  LINHA = 0
        ;          EndIf
        ;        EndFor
        ;        ImpriArq(ARQIMP)
        ;        Deleta_Arquivo(ARQIMP)
        ;EndIf          
EndIf      

EndProc ;Imprime_Erro()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA=""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: 
          Dialog_F1()            
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch                                 
            Case Campo="TG_EMPRESA"     : Campo="NO"
            Case Campo="TG_FAMI"        : Campo="TG_EMPRESA"                       
            Case Campo="TG_GRP"         : Campo="TG_FAMI"                               
            Case Campo="TG_MARCA"       : Campo="TG_GRP"                              
            Case Campo="TG_REFERENCIA"  : Campo="TG_MARCA"                       
            Case Campo="TG_TABELA"      : Campo="TG_REFERENCIA"                      
            Case Campo="TG_MESANO"      : Campo="TG_TABELA"                          
            Case Campo="TG_DTREF"       : Campo="TG_MESANO"                           
            Case Campo="TG_DTINI"       : Campo="TG_DTREF"                            
            Case Campo="TG_DTFIM"       : Campo="TG_DTINI"
            Case Campo="TG_OPCOES"      : Campo="TG_DTFIM"                             
            Case Campo="TG_FINALIDADE"  : Campo="TG_OPCOES"                          
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          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_EMPRESA"     : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"        : Campo="TG_GRP"                              
                    Case Campo="TG_GRP"         : Campo="TG_MARCA"                              
                    Case Campo="TG_MARCA"       : Campo="TG_REFERENCIA"                       
                    Case Campo="TG_REFERENCIA"  : Campo="TG_TABELA"                      
                    Case Campo="TG_TABELA"      : Campo="TG_MESANO"                             
                    Case Campo="TG_MESANO"      : Campo="TG_DTREF"                           
                    Case Campo="TG_DTREF"       : Campo="TG_DTINI"                            
                    Case Campo="TG_DTINI"       : Campo="TG_DTFIM"                            
                    Case Campo="TG_DTFIM"       : Campo="TG_OPCOES"
                    Case Campo="TG_OPCOES"      : Campo="TG_FINALIDADE"                           
                    Case Campo="TG_FINALIDADE"  : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
 Case Campo=""              : MSG_CAMPO=""
 Case Campo="TG_FINALIDADE" : MensagemRadioButtons()
 Case Campo="TG_OPCOES"     : MensagemCheckBoxes()
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc ;SD_Dialog()                                                         

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
VSDGDIAREF = AlinhM(StrVal(Day(Today()-1)),2)
VSDGDIA    = AlinhM(StrVal(Day(Today())),2)
VSDGMES    = AlinhM(StrVal(Month(Today())),2)
VSDGANO    = AlinhM(StrVal( Year(Today())),4)
HORA       = Substr(Time(),1,2)+Substr(Time(),4,2)+Substr(Time(),7,2)

VSDGEMPRESA    = ""            
VSDGNOMEMP     = ""            
VSDGFAMI       = ""            
VSDGNOMFAMI    = ""            
VSDGGRP        = ""            
VSDGNOMGRP     = ""            
VSDGMARCA      = ""            
VSDGNOMMARCA   = ""            
VSDGREFERENCIA = ""            
VSDGTABELA     = ""            
VSDGNOMTAB     = ""            
VSDGMESANO     = ""            
VSDGDTREF      = BlankDate()   
VSDGDTINI      = BlankDate()   
VSDGDTFIM      = BlankDate()

Array VSDGOPCAO[1]
VSDGOPCAO[1]= False   

For ii From 1 To 2
  Switch
    Case ii = 1 : ARQUIVO = "SIT_ERRO.XLS"
    Case ii = 2 : ARQUIVO = "TEMP.XLS"
  EndSwitch
  If IsFile(SubStr(Directory(),1,2)+"\\Sistemas\\Exporta\\Dados\\TRAYCORP\\"+ARQUIVO)
     Then Deleta_Arquivo(SubStr(Directory(),1,2)+"\\Sistemas\\Exporta\\Dados\\TRAYCORP\\"+ARQUIVO)
  EndIf
EndFor

While True
 ShowDialog "Exporta‡„o de dados p/ Site [TRAYCORP]" Proc "SD_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","F1",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140    
     @ 05,12 Height 20 Width 72
     
    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA" To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMP" To VSDGNOMEMP

    Label  @ 02,00 "Familia"  For "TG_FAMI"                                                           
    Accept @ 03,02 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI" To VSDGFAMI                             
    Accept @ 03,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI                       
                                                                                                      
    Label  @ 04,00 "Grupo"  For "TG_GRP"                                                              
    Accept @ 05,02 Width 06 "A3"  Picture "#*#" Tag "TG_GRP" To VSDGGRP                               
    Accept @ 05,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP                         
                                                                                                      
    Label  @ 06,00 "Marca"  For "TG_MARCA"                                                            
    Accept @ 07,02 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA                        
    Accept @ 07,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA                     
                                                                                                      
    Label  @ 08,00 "Referˆncia"  For "TG_REFERENCIA"                                                  
    Accept @ 09,01 Width 21 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA             
                                                                                                      
    Label  @ 00,35 "Tabela de Preco"  For "TG_TABELA"                                                 
    Accept @ 01,36 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA                         
    Accept @ 01,44 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB                         
                                                                                                      
    Label  @ 02,35 "Mˆs/Ano"  For "TG_MESANO"                                                         
    Accept @ 03,36  Width 10 "A07"  Picture "##.####" Tag "TG_MESANO" To VSDGMESANO                   
                                                                                                      
    Label  @ 02,44 "Data Final" For "TG_DTREF"                                                        
    Accept @ 03,44 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF               
                                                                                                      
    Label  @ 04,35 "Per¡odo Referente de" For "TG_DTINI"                                              
    Accept @ 05,36 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI               
    Label  @ 05,49 "at‚" For "TG_DTFIM"
    Accept @ 05,54 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
    
    CheckBoxes @09,35 Height 3 Width 35 Tag "TG_OPCOES"
    "Exportar produtos sem estoque" To VSDGOPCAO[1]
        
    Label @ 11,00 "Op‡äess" For "TG_FINALIDADE"
    RadioButtons @ 12,00 Height 3 Width 28
      "~1~ Novos Itens",
      "~2~ Atualizar Pre‡o",
      "~3~ Atualizar Estoque"
        Tag "TG_FINALIDADE"
        To VSDGFINAL       
            
    Pushbutton @ 16,22 width 13 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 16,36 width 13 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
                 
  Switch
    Case IsBlank(VSDGEMPRESA) : 
         Mensagem("A empresa deve ser informada!")
         Loop
    Case IsBlank(VSDGTABELA) :
         If VSDGFINAL=1 Or VSDGFINAL=2 
            Then Mensagem("A tabela de pre‡o deve ser informada!")
                 Loop
         EndIf        
  EndSwitch

  CI_20CPP            = Chr(27)+Chr(77)+Chr(15)
  CI_F_TIMES          = CI_20CPP
  PDFZEBRA            = False
  DISPOSITIVO_OPCAO   = "A"
  TIPO_DOCTO          = 2 ;Excel

  VSDGMES    = AlinhM(SubStr(VSDGMESANO,1,2),2)
  VSDGANO    = SubStr(VSDGMESANO,4,4)
  HORA       = Substr(Time(),1,2)+Substr(Time(),4,2)+Substr(Time(),7,2)

  ;Diret¢rio de Origem/Trabalho
  DIR_SITE =  SubStr(Directory(),1,2) + "\\Sistemas\\Exporta\\Modelo\\TRAYCORP"
  DIREPORT = "\\Sistemas\\Exporta\\Dados\\TRAYCORP"
  
  If DirExists(DIREPORT)=0
     Then Cria_Pasta(DIREPORT)
          Sleep 2000
  EndIf

  Empty "\\Sistemas\\Estoque\\Site_Err"
  
  DynArray ARRAY_ERRO[]
  DIREPORT = SubStr(Directory(),1,2) + DIREPORT + "\\"
  Gera_Tabela()
  
  ;Novos Itens
  Switch
    Case VSDGFINAL=1 :
         IMPORTA="IMP_SITE"          
         Copia_Arquivo(DIR_SITE + "\\SITE.xlsx" + " " + DIREPORT + "SITE.xlsx")
         Copia_Arquivo(DIR_SITE + "\\IMP_SITE.xlsm" + " " + DIREPORT + "IMP_SITE.xlsm")
         Cria_Tabela_Site("NOVOS ITENS")
         Gera_Excel_NovosItens()
    Case VSDGFINAL=2 : 
         IMPORTA="IMP_PREC"
         Copia_Arquivo(DIR_SITE + "\\PRECO.xlsx" + " " + DIREPORT + "PRECO.xlsx")
         Copia_Arquivo(DIR_SITE + "\\IMP_PREC.xlsm" + " " + DIREPORT + "IMP_PREC.xlsm")
         Cria_Tabela_Site("ATUALIZAR PRECO")
         Gera_Excel_Preco()
    Case VSDGFINAL=3 :
         IMPORTA="IMP_ESTQ"
         Copia_Arquivo(DIR_SITE + "\\SALDO.xlsx" + " " + DIREPORT + "SALDO.xlsx")
         Copia_Arquivo(DIR_SITE + "\\IMP_ESTQ.xlsm" + " " + DIREPORT + "IMP_ESTQ.xlsm")
         Cria_Tabela_Site("ATUALIZAR ESTOQUE")
         Gera_Excel_Estoque()
  EndSwitch   
  
  If DynArraySize(ARRAY_ERRO)>0
     Then Imprime_Erro()
  EndIf   
  
  If IsEmpty(TabelaSite)
     Then Mensagem("N„o existem registros a processar")
          Loop
  EndIf
  
  ARQUIVO             = "TEMP"
  GERA_ARQUIVO_OCULTO = True   
    
  TABELA = DIREPORT + "TEMP.DB"
  view tabelasite
  IMPRIREL(TabelaSite,"R")
                
  FileWrite PrivDir() + "funcao1.txt"  From  "EXEF|" + DIREPORT + IMPORTA+".xlsm"               
  ExecVise(PrivDir()+"funcao1.txt")
      
  Delete TabelaSite   
EndWhile
