;** Rc_0120  *******************************************************************
;*  Listagem de Itens p/ Contagem                                              *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 14/11/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 01/09/2003 por Karen Lauar Nery
;Motivo Alteracao: Acrescimo Localizacao
;Ultima Alteracao: 29/12/2010 por Karina Andrade
;Motivo Alteracao: Add Report com Localizao Rc_Itens 2 e 3
;Ultima Alteracao: 26/12/2011 por Karina Andrade
;Motivo Alteracao: Ajustes VSDGLOCAL em Seleciona()
;Ultima Alteracao: 27/12/2011 por Karina Andrade
;Motivo Alteracao: Add Report por Localizao Rc_Itens 10 e 11
;Ultima Alteracao: 28/08/2012 por Kamila Gomes
;Motivo Alteracao: Add Report por Marca e Grupo Rc_Itens 12 e 13
;Ultima Alteracao: 06/09/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ ser exibido CodFornecedor ao inv‚s do CodItem no report "0319"
;Ultima Alteracao: 19/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substitui‡Æo Editor novo arquivo por FileWrite
;Ultima Alteracao: 14/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_LOCAL                          
;Ultima Alteracao: 16/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 18/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_LOCAL
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao TG_CODMODELO e modelo relatorio 08
;Ultima Alteracao: 19/06/2017 por Bruno Carvalho
;Motivo Alteracao: Op‡”es invertidas: 06 -> 07 e vice-versa
;Ultima Alteracao: 28/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: justes corre‡Æo da ordem novamente              
;Ultima Alteracao: 23/12/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Seta_Ordem_Report()                  
;Ultima Alteracao: 23/12/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 09                  
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 06/04/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo "10" Listagem de Itens por Grupo
;Ultima Alteracao: 13/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes descri‡Æo modelos relatorios 
;Ultima Alteracao: 18/05/2020 por Bruno Carvalho
;Motivo Alteracao: Alterado CopyReport "...\\Estoque\\Itens" p/ "...\\Estoque\\RM_0030"

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

{Ask} {Itens} Check
Moveto [Tipo do Item        ] TypeIn "~VSDGTPITEM.."
Moveto [Codigo da Familia   ] TypeIn "~VSDGFAMI.."
Moveto [Codigo do Grupo     ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Marca     ] TypeIn "~VSDGMARCA.."
Moveto [Codigo da Cor_Tecido] TypeIn "~VSDGCORTECIDO.."
if search("..",VSDGLOCAL)>0
   then Moveto [Localizacao         ] TypeIn VSDGLOCAL
   else Moveto [Codigo_Localizacao  ] TypeIn "~VSDGLOCAL.."
endif   
Moveto [Inativo             ]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
Do_It!
ClearAll

EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao

Switch
  Case Opcao="Ler":
       ModeloRelatoriosCarregaLista()
       
       If IsFile("OR_0120.sc")
           Then Play "OR_0120"
       EndIf
       
  Case Opcao="Gravar":
       FileWrite        "OR_0120.sc" From ";****** Variaveis de Configura‡„o Modelo Relatorio Vise Informatica"+"\n"
       FileWrite Append "OR_0120.sc" From "VSDGCODMODELO=\""+VSDGCODMODELO+"\"\n"
EndSwitch
EndProc ;

;*******************************************************************************
;* 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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_TPITEM"         : Campo="NO"
            Case Campo="TG_FAMI"           : Campo="TG_TPITEM"
            Case Campo="TG_GRP"            : Campo="TG_FAMI"
            Case Campo="TG_MARCA"          : Campo="TG_GRP"
            Case Campo="TG_COR_TECIDO"     : Campo="TG_MARCA"
            Case Campo="TG_STATUS"         : Campo="TG_COR_TECIDO"
            Case Campo="TG_LOCAL"          : Campo="TG_STATUS"
            Case Campo="TG_OPRELCODALF"    : Campo="TG_LOCAL"
            Case Campo="TG_CODMODELO"      : Campo="TG_OPRELCODALF"
            Case Campo="YES" Or Campo="NO" : Campo="TG_TPITEM"
          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_TPITEM"     : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"       : Campo="TG_GRP"
                    Case Campo="TG_GRP"        : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"      : Campo="TG_COR_TECIDO"
                    Case Campo="TG_COR_TECIDO" : Campo="TG_STATUS"
                    Case Campo="TG_STATUS"     : Campo="TG_LOCAL"
                    Case Campo="TG_LOCAL"      : Campo="TG_OPRELCODALF"
                    Case Campo="TG_OPRELCODALF": Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"  : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

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  Com Marca, ComissÆo")
ModeloRelatoriosAdd("04  Com Marca, ComissÆo, Descri‡Æo Complementar")
ModeloRelatoriosAdd("02  Com Marca, Localiza‡Æo")
ModeloRelatoriosAdd("10  Com Grupo")
ModeloRelatoriosAdd("03  Com Peso L¡quido")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("05  Por Marca       - Descr.Complementar, Marca, ComissÆo")
ModeloRelatoriosAdd("07  Por Marca/Grupo - Descr.Complementar, Marca, ComissÆo")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("06  Por Localiza‡Æo + Marca")
ModeloRelatoriosAdd("08  Por Localiza‡Æo + C¢digoBarras, Marca, Fam¡lia")
ModeloRelatoriosAdd("09  Por Localiza‡ÆoDescricao + Marca - Com quebra de pagina")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

sys_valor()

ConfOpcoes("Ler")
ClearAll

VSDGTPITEM     = ""
VSDGFAMI       = ""
VSDGGRP        = ""
VSDGMARCA      = ""
VSDGCORTECIDO  = ""
VSDGSTATUS     = ""
VSDGLOCAL      = ""
VSDGOPRELCODALF= ""

While True

  ShowDialog "Rela‡„o de Itens p/ Contagem" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
  @ 04,12   Height 22 Width 80

    Label  @ 00,00 "Tipo do Item"  For "TG_TPITEM"
    Accept @ 01,04 Width 04 "A1"  Picture "!" Tag "TG_TPITEM"      To VSDGTPITEM
    Accept @ 01,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTPITEM" To VSDGNOMTPITEM

    Label  @ 02,00 "Familia"  For "TG_FAMI"
    Accept @ 03,02 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI"      To VSDGFAMI
    Accept @ 03,09 Width 25 "A20" 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 "A20" 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 "A20" Picture "!*!" Tag "TG_NOMMARCA"  To VSDGNOMMARCA

    Label  @ 08,00 "Cor" For "TG_COR_TECIDO"
    Accept @ 09,01 Width 07 "A4"  Picture "#*#" Tag "TG_COR_TECIDO"    To VSDGCORTECIDO
    Accept @ 09,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMCOR_TECIDO" To VSDGNOMCORTECIDO

    Label  @ 00,35 "Status do Item" For "TG_STATUS"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2,3" Tag "TG_STATUS" To VSDGSTATUS
    Accept @ 01,44 Width 25 "A12" Picture "!*!" Tag "TG_NOMSTATUS" To VSDGNOMSTATUS

    Label  @ 02,35 "Localiza‡„o"  For "TG_LOCAL"
    Accept @ 03,36 Width 33 "A12"  Picture "!*!" Tag "TG_LOCAL" To VSDGLOCAL
    Accept @ 04,36 Width 33 "A20" Picture "!*!" Tag "TG_NOMLOCAL" To VSDGNOMLOCAL

    Label  @ 06,35 "Ordem" For "TG_OPRELCODALF"
    Accept @ 07,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELCODALF" To VSDGOPRELCODALF
    Accept @ 07,44 Width 25 "A12" Picture "!*!" Tag "TG_NOMOPRELCODALF" To VSDGNOMOPRELCODALF

    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 ValidarModelosRelatorios() then loop endif         

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")

  SELECIONA()

  If IsEmpty("Answer")
     Then MENSAGEM("N„o existem registros a processar")
          Loop
  EndIf
  
  If SYS_CODIGO_CLIENTE="0319"
     Then {Ask} {\\Sistemas\\Estoque\\Itens}
          Moveto [Codigo do Item   ] Example "CodI"
          Moveto [Codigo Fornecedor] Example "CodF"
          {Ask} {Answer}
          Moveto [Codigo do Item   ] Example "CodI" TypeIn " ,Changeto _CodF"
          Do_It!
          ClearAll
  EndIf   

  switch
    case VSDGCODMODELO="01"  : CopyReport "\\Base\\Sistemas\\Estoque\\RM_0030" "13"    "Answer" "R" 
    case VSDGCODMODELO="02"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "2"  "Answer" "R" 
    case VSDGCODMODELO="03"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "R"  "Answer" "R"
    case VSDGCODMODELO="04"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "4"  "Answer" "R"
    case VSDGCODMODELO="05"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "6"  "Answer" "R"
    case VSDGCODMODELO="06"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "10" "Answer" "R"
    case VSDGCODMODELO="07"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "12" "Answer" "R"
    case VSDGCODMODELO="08"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_0010c" "R"  "Answer" "R"
    case VSDGCODMODELO="09"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "14" "Answer" "R"
    case VSDGCODMODELO="10"  : CopyReport "\\Base\\Sistemas\\Estoque\\RC_Itens" "11" "Answer" "R"
  endswitch
  If VSDGOPRELCODALF="1"
     Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item","")
     Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
  EndIf

  IMPRIREL("Answer","R")

  ConfOpcoes("Gravar")

  Delete "Answer"
EndWhile
ClearAll
Release Vars All
Release Procs All

