;** ExpCadPr *******************************************************************
;*  Exportacao do Cadastro de Produtos p/ DADOS.TXT                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 08/03/2005 por Jos‚ Luˇs Ameno da Silva
;Ultima Alteracao: 22/03/2005 por Davi Pereira Carrano
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 14/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 28/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado o campo [NBM] 

;*******************************************************************************
;* Rotina p/ Selecionar Registros - Itens                                      *
;*******************************************************************************
Proc SelecionaP()
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item       ] Check Example "cod"
Moveto [Descricao do Item    ] Check
Moveto [Unidade Fiscal       ] Check
Moveto [Tributacao de ICMS   ] Typein "S"
;Moveto [NBM                  ] Check
                             
{Ask} {\\Sistemas\\Estoque\\Sdestq}
Moveto [Codigo do Item       ] Example "cod"
Moveto [Ano Referencia       ] Typein "~ANO.."
Moveto [Mes Referencia       ] Typein "~MES.."
Moveto [Codigo da Empresa    ] TypeIn "~VSDGEMPRESA.."
Moveto [Saldo Atual          ] Check
Moveto [Custo Total Atual    ] Check

Do_It!
ClearAll

Existe=True
If IsEmpty("Answer")
   Then Existe=False
        Return
EndIf


If DirExists("\\Sistemas\\Exporta\\Dados")=0
   Then Cria_Pasta("\\Sistemas\\Exporta\\Dados")
EndIf

ARQ ="\\Sistemas\\Exporta\\Dados\\DADOS.TXT"
Deleta_Arquivo(ARQ)

EndProc   ; (SelecionaP)

;*******************************************************************************
;* Gera Arquivo Texto -- Produtos                                              *
;*******************************************************************************
Proc EXPORTAP()
ClearAll

NR=NRecords("Answer")
CC=0

View "Answer"
Scan

  Barra(NR, RecNo())
  AGUARDE("Aguarde, Exportando Produtos "+BARRA_STRING)

  If IsBlank([Custo Total Atual]) Or
     IsBlank([Saldo Atual      ]) Or
     [Custo Total Atual] <=0 Or
     [Saldo Atual      ] <=0
     Then Loop
  EndIf
  PRECO_MEDIO = [Custo Total Atual]/[Saldo Atual]
  If PRECO_MEDIO < 0.10
     Then Loop
  EndIf
  Print File ARQ Spaces(10)                                                     ;Format("W10,AL",[NBM])
  Print File ARQ Format("W10,AL",[Unidade Fiscal])
  Print File ARQ Format("W50,AL",[Descricao do Item])
  Print File ARQ Valor_Str([Saldo Atual],11,3)
  Print File ARQ Valor_Str(PRECO_MEDIO,11,3)

  Print File ARQ "035"
  Print File ARQ "018"
  Print File ARQ "\n"

EndScan
ClearAll
EndProc ;(ExportaP)

;********************************************************************************
;* 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
If Len(Vrtit)>=11
   Then Vrtit=SubStr(Vrtit,1,11)
   Else VrTit=Fill("0",Tam-Len(VrTit))+VrTit
EndIf

Return VrTit
EndProc  ; (Valor_Str)

;*******************************************************************************
;* 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_MESANO"        : Campo="TG_EMPRESA"
            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"    :
                         If IsBlank(VSDGEMPRESA)
                            Then Mensagem("Empresa Invalida !")
                            Else Campo="TG_MESANO"
                         EndIf
                    Case Campo="TG_MESANO"     :
                         VSDGMESANO=ControlValue("TG_MESANO")
                         Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA":
       MSG_CAMPO="Informe uma Empresa"
  Case Campo="TG_MESANO":
       MSG_CAMPO="Informe o mes e o ano"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGEMPRESA      =""
VSDGMESANO       =""

While True
  ShowDialog "Evolu‡„o das compras mensais por familia" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 09 Width 56

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

    Label  @ 02,00 "Mes/Ano" For "TG_MESANO"
    Accept @ 03,01  Width 13 "A7"  Picture "##;.####" Tag "TG_MESANO" To VSDGMESANO

    Pushbutton @ 05,14 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 05,28 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If VSDGEMPRESA=""
     Then Mensagem("Empresa Invalida !")
          Loop
  EndIf

  MES=Substr(VSDGMESANO,1,2)
  ANO=Substr(VSDGMESANO,4,4)
  If NumVal(MES) > 12 Or NumVal(MES) <= 0
     Then Loop
  EndIf

  AGUARDE("Aguarde, Gerando Dados")

  SelecionaP()
  If Not Existe
     Then MENSAGEM("N„o Existem Registros a Processar !")
          Return
  EndIf

  ExportaP()
  LimpAguarde()
  Mensagem("// Gerado o arquivo: //["+SubStr(Directory(),1,2)+ARQ+"] ! //")
  ClearAll
  LimpAguarde()

EndWhile
ClearAll
Release Vars All
Release Procs All

