;** RCargaP ********************************************************************
;*  Alteracao e Inclusao de Pedidos p/ Carrregamento                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 29/06/2006 por Davi Carrano
;Motivo Alteracao: Inclui a particularidade do Cliente 0079
;Ultima Alteracao: 25/01/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Etiqueta II ModaMil
;Ultima Alteracao: 28/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Tipo de Datas
;Ultima Alteracao: 03/04/2007 por Nikolas
;Motivo Alteracao: Inclusao novo Tipo de carregamento (D)
;Ultima Alteracao: 01/04/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Batizar Numero Carregamento
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes NCopias=Volumes/Etiqueta III GDA
;Ultima Alteracao: 31/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 01/09/2010 por Bruno Carvalho
;Motivo Alteracao: Inserido Nova Etiqueta
;Ultima Alteracao: 30/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 30/10/2012 por Kamila Gomes
;Motivo Alteracao: Inclu¡do modelo CarregH, itens por referencia
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape()                  
;Ultima Alteracao: 08/04/2015 por Luis Gustavo
;Motivo Alteracao: Retirado os Links do Report "6", nao estava fazendo a quebra por grupo. Adicionado os campos dos Link na tabela Rm_0300. 
;Ultima Alteracao: 16/03/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes para filtrar situa‡Æo do pedido - Michelle Cosm.
;Ultima Alteracao: 27/10/2016 por Nikolas
;Motivo Alteracao: Inclusao Modelo I modelo 8 do report tabela RM_0300
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Selecao()  
;Ultima Alteracao: 25/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SelecaoImprimir() Lista rela‡Æo de relatorios
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 11/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes c¢cigos modelo de relatorios
;Ultima Alteracao: 08/01/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes SELECIONA4() -> *Referencia e Descricao do Item do CADASTRO DE ITENS
;Ultima Alteracao: 08/01/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 09J #0167#
;Ultima Alteracao: 31/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes descri‡Æo modelos etiquetas,relatorios
;Ultima Alteracao: 27/03/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modelo 09J #0167#
;Ultima Alteracao: 10/02/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes de padroniza‡Æo nos campos [TG_CIDADE] e [TG_ESTADO]
;Ultima Alteracao: 19/05/2020 por Bruno Carvalho
;Motivo Alteracao: Alterado CopyReport "...\\Vendas\\PedidoC" p/ "...\\Vendas\\RM_0041"

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  Moveto [Sequencia]
  End
  CODIGO=[Sequencia]
  Down
  CODIGO=CODIGO+1
  [Sequencia]=CODIGO

  SetaCorRegistro("Editar")
  While true

  TECLA=""
  AguardaTeclasPadrao()

      If Retval=-33
         Then
           ShowPopup " Fun‡”es " CENTERED
            "~I~mprimir       [F4]": " Imprimir rela‡„o"                     : "F4",
            "~L~impar         [F5]": " Limpar rela‡„o"                       : "F5",
            "~S~ele‡„o        [F6]": " Selecionar Pedidos por criterio"      : "F6",
            "~N~§Carregamento [F8]": " Batizar N§Carregamento"               : "F8",
            "~C~ancelar"           : " Cancelar a Opera‡„o"                  : "CANCELAR"
           EndMenu
            To MenuVar
           echo off

           If MenuVar="CANCELAR" or MenuVar="Esc"
               Then Loop
           EndIf
           RetVal=MenuVar
      EndIf

  Switch
      Case RetVal="F3": SemFicha()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F5":
           If QuerExcluir("desta rela‡„o")
              Then EXCLUSAO()
                   QuitLoop
           EndIf
      Case RetVal="F4":
           Del
           SelecaoImprimir()
           QuitLoop
           
      Case RetVal="F6":
           Del
           Selecao()
           QuitLoop

      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME" And Field()="Sequencia":
           While True
             PAGINA("RCargaP","MR")
             If EDITAR="S"
                Then CHAVE=0
                     Controla_EdicaoC()
                Else If EXCLUIR="S"
                        Then If QuerExcluir("")
                                Then DEL
                                Else UnLockRecord
                             EndIf
                        Else QuitLoop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
           QuitLoop
      Case RetVal="F8":
           Del
           Selecao8()
           QuitLoop
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case Retval="ENTER":
           If IsBlank([])
              Then Loop
           EndIf
           CODIGO=[]
           Del
           Locate CODIGO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Down
                   [Sequencia]=CODIGO
           EndIf
           If IsLockRecord()
              Then QuitLoop
              Else Return
           EndIf
      EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITAC()

Moveto [Numero do Pedido]
While True

      TECLA=" Esc=Retornar  "
      If CHAVE=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf
      If Field()=[Numero do Pedido] or
         Field()=[Codigo do Documento]
         Then TECLA=TECLA+"F1=Tabelas  "
      EndIf

      Prompt TECLA


      Wait Field
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

      Switch

      Case Retval="F1":
           If Field()="Numero do Pedido" Or
              Field()="Codigo do Documento"
              Then CONSULTAF1()
           EndIf
      Case Retval="ESC":
           Switch
             Case Field()="Numero do Pedido":
                   If QuerDesfazer("")
                      Then If CHAVE=1
                              Then Del
                              Else Undo
                           EndIf
                           CHAVE=9
                           QuitLoop
                   Endif
             Case Field()="Codigo do Documento":
                  Moveto [Numero do Pedido]
             OtherWise: Left
           EndSwitch
      Case Retval="ENTER":
           Switch
             Case Field()="Numero do Pedido":
                  If IsBlank([])
                     Then Loop
                     Else Switch
                            Case SYS_CODIGO_CLIENTE="0199":
                              If Busca_Lookup("Numero do Pedido",[Numero do Pedido],"SM")
                                 Then [NCopias]=REG_BUSCA_LOOKUP["Numero de Volumes"]
                              EndIf
                          EndSwitch
                          Moveto [Codigo do Documento]
                  EndIf
             Case Field()="NCopias":
                  If IsBlank([])
                     Then []=1
                  EndIf
                  QuitLoop
             OtherWise: Right
           EndSwitch
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Del
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina De Exclusao                                                          *
;***************************************************+***************************
Proc EXCLUSAO()
Home
While RecordStatus("New")=False
  Del
EndWhile
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() 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 OP_SHOW="Selecao":
            Switch
              Case Campo="TG_EMPRESA"        : Campo="NO"
              Case Campo="TG_REPRESEN"       : Campo="TG_EMPRESA"
              Case Campo="TG_CIDADE"         : Campo="TG_REPRESEN"
              Case Campo="TG_ESTADO"         : Campo="TG_CIDADE"
              Case Campo="TG_NCARREG"        : Campo="TG_ESTADO"
              Case Campo="TG_OPDTPEEI"       : Campo="TG_NCARREG"
              Case Campo="TG_DTINI"          : Campo="TG_OPDTPEEI"
              Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
              Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_DTFIM"
              Case Campo="YES" Or Campo="NO" : Campo="TG_EMPRESA"
            EndSwitch
           Case OP_SHOW="Carregamento":
            Switch
              Case Campo="TG_NCARREG"       : Campo="NO"
              Case Campo="YES" Or Campo="NO": Campo="TG_NCARREG"
            EndSwitch
          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 OP_SHOW="Selecao":
										 Switch
											Case Campo="TG_EMPRESA"        :Campo="TG_REPRESEN"
											Case Campo="TG_REPRESEN"       :Campo="TG_CIDADE"
                                            Case Campo="TG_CIDADE"         :Campo="TG_ESTADO"
                                            Case Campo="TG_ESTADO"         :Campo="TG_NCARREG"
											Case Campo="TG_NCARREG"        :Campo="TG_OPDTPEEI"
											Case Campo="TG_OPDTPEEI"       :Campo="TG_DTINI"
											Case Campo="TG_DTINI"          :Campo="TG_DTFIM"
											Case Campo="TG_DTFIM"          :Campo="TG_SITUACAOPEDIDO"
                      Case Campo="TG_SITUACAOPEDIDO" :Campo="YES"
											
										 EndSwitch
									 Case OP_SHOW="Carregamento":
										 Switch
											Case Campo="TG_NCARREG"   :Campo="YES"
										 EndSwitch
									EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTFIM":
     MSG_CAMPO="Informe a Data Final"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao()
LimpAguarde()
Do_It!
ClearAll
Echo Normal
Echo Off

While True
  OP_SHOW="Selecao"

  ShowDialog "Sele‡Æo de Pedidos" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 17 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_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Representante"  For "TG_REPRESEN"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 04,00 "Cidade"  For "TG_CIDADE"
    Accept @ 05,01 Width 27 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE
                                   
    Label  @ 04,27 "Estado"  For "TG_ESTADO"
    Accept @ 05,28 Width 06 "A2"  Picture "!*!" Tag "TG_ESTADO" To VSDGESTADO

    Label  @ 06,00 "Carregamento" For "TG_NCARREG"
    Accept @ 07,01 Width 9  "A6"  Picture "[&,#][#*#]" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 07,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Label  @ 08,00 "Op‡äes de Datas" For "TG_OPDTPEEI"
    Accept @ 09,04 Width 04 "A1"  Picture "1,2,3"    Tag "TG_OPDTPEEI"     To VSDGOPDTPEEI
    Accept @ 09,09 Width 25 "A20" Picture "!*!"      Tag "TG_NOMOPDTPEEI"  To VSDGNOMOPDTPEEI
 
    Label  @ 10,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 11,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 11,16 "at‚" For "TG_DTFIM"
    Accept @ 11,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 00,35 "Situacao do Pedido"  For "TG_SITUACAOPEDIDO"
    Accept @ 01,36 Width 33 "A30"  Picture "ABERTO,SUSPENSO,CANCELADO,FATURADO,TODAS,!*!" Tag "TG_SITUACAOPEDIDO"  To VSDGSITUACAOPEDIDO

    Pushbutton @ 13,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 13,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog

  If Not RetVal
     Then QuitLoop
     Else LimpaRodape(0)
          Aguarde("Aguarde, Selecionando registros")
          ClearAll

          {Ask} {PedidoC} Check
          Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
          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
          If Upper(VSDGCIDADE)<>"TODAS"
             Then Moveto [Cidade         ] TypeIn "~VSDGCIDADE"
          EndIf
          Moveto [UF                     ] TypeIn "~VSDGESTADO.."
          Switch
            Case VSDGOPDTPEEI="1": Moveto [Data de Entrega ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
            Case VSDGOPDTPEEI="2": Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
            Case VSDGOPDTPEEI="3": Moveto [Data_Inclusao   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          EndSwitch
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Moveto [Descricao CondPagto    ] TypeIn "Not CONTRA APRES.."
          Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG.."
          Do_It!
          ClearAll
          If IsEmpty("Answer")
             Then Mensagem("N„o exitem registros conforme sele‡„o !")
                  Loop
             Else View "RCargaP"
                  Coedit "Answer"
                  Scan
                  Moveto "RCargaP"
                  End
                  SEQ=[Sequencia]
                  Down
                  [Sequencia        ]=SEQ+1
                  [Codigo da Empresa]=[Answer->Codigo da Empresa]
                  [Numero do Pedido ]=[Answer->Numero do Pedido ]
                  [Data de Emissao  ]=[Answer->Data de Emissao  ]
                  [Codigo           ]=[Answer->Codigo           ]
                  [NCopias          ]=1
                  SEQ                =[Sequencia                ]
                  UnLockRecord
                  Moveto "Answer"
                  EndScan
                  Do_It!
                  ClearAll

                  QuitLoop
          EndIf
  EndIf
EndWhile
ClearAll
If IsTable("Answer")
   Then Delete "Answer"
EndIf
CoEdit "RCargaP"
PickForm "F"

EndProc

;*******************************************************************************
;* Seleciona Pedidos para impressao                                            *
;*******************************************************************************
Proc SELECIONA()

{Ask} {RCargaP}
Moveto [Sequencia             ] Check
Moveto [Numero do Pedido      ] Example "NUM"
{Ask} {PedidoI} Check
Moveto [Numero do Pedido      ] Example "NUM"
{Ask} {PedidoC}
Moveto [Numero do Pedido      ] Example "NUM"
Moveto [Razao Social Transport] Check
Moveto [Numero_Carregamento   ] Check
Moveto [Nome Fantasia EmitDest] Check
Do_It!
ClearAll

TABELA  = Cria_Temp(PrivDir())
Rename "Answer" TABELA

;**** Salvar as informa‡oes que nao tem o numero do carregamento ****

{Ask} TypeIn TABELA Enter Check                       
Moveto [Numero_Carregamento   ] TypeIn "Blank"
Do_It!
ClearAll

Tabela2  = Cria_Temp(PrivDir())
Rename "Answer" Tabela2

;**** Pegar informa‡oes na Tabela Accarrgc. Pedido c/ N§ carregamento ****

{Ask} TypeIn TABELA Enter Check
Moveto [Numero_Carregamento    ] Example "numcarreg"
{Ask} {Accarrgc}
Moveto [Numero_Carregamento    ] Example "numcarreg"
Moveto [Nome Fantasia EmitDest ] Check
Moveto [Nome Fantasia Transport] Check
Do_It!
ClearAll

{Ask} "Answer" Enter
Moveto [Nome Fantasia EmitDest-1] Example TypeIn "EmitDest"
Moveto [Nome Fantasia EmitDest  ] TypeIn "changeto" Example TypeIn " EmitDest" 
Moveto [Nome Fantasia Transport ] Example TypeIn "RazTransp" 
Moveto [Razao Social Transport  ] TypeIn "changeto" Example TypeIn " RazTransp"
Do_It!
ClearAll

{Ask} "Answer" Enter Check
Moveto [Nome Fantasia EmitDest-1] Check
Moveto [Nome Fantasia Transport ] Check
Do_It!
ClearAll

Add "Answer" Tabela2

;         **** Pegar o Codigo da Familia dos itens ****
{Ask} TypeIn Tabela2 Enter Check
Moveto [Codigo do Item        ] Example "codite"
{Ask} "\\Sistemas\\Estoque\\Itens" Enter
Moveto [Codigo do Item        ] Example "codite"
Moveto [Codigo da Familia     ] Check
Do_It!
ClearAll

EndProc ;SELECIONA()

;*******************************************************************************
;* Ajusta Dados                          
;*******************************************************************************
Proc AJUSTA_DADOS()

;Informacoes Adicionais no relatorio foi ajustado para o tipo A200 e nÆo para campo MEMO.
;Pois foi preciso fazer este ajuste para fazer o grupo no report

{Modify} {Restructure} {Answer}
Moveto [Field Name]
Locate "Informacoes_Adicionais"
If RetVal
   Then Enter CtrlBackSpace TypeIn "A200" Enter
EndIF
Do_it!
        
While True
   Switch
     Case MenuChoice()="Trimming" : {Trimming}
     Case MenuChoice()="Delete"   : {Delete}
     OtherWise                    : QuitLoop    
   EndSwitch  
EndWhile
ClearAll   

EndProc ;AJUSTA_DADOS()
;*******************************************************************************
;* Seleciona Pedidos para impressao
;*******************************************************************************
Proc SELECIONA2()

{Ask} {RCargaP}
Moveto [Numero do Pedido] Example "NUM"
{Ask} {PedidoC} Check
Moveto [Numero do Pedido] Example "NUM"
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Seleciona Pedidos para impressao                                            *
;*******************************************************************************
Proc SELECIONA3()

{Ask} {RCargaP} Check
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Seleciona Pedidos para impressao                                            *
;*******************************************************************************
Proc SELECIONA4()

{Ask} {RCargaP}
Moveto [Sequencia             ] Check
Moveto [Numero do Pedido      ] Example "NUM"
{Ask} {PedidoI} Check
Moveto [Numero do Pedido      ] Example "NUM"
Moveto [Codigo do Item        ] Check Example "NItem"
Moveto [Descricao do Item     ] Check
Moveto [Referencia            ] Check
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item        ] Check Example "NItem"
Moveto [Descricao do Item     ] Check
Moveto [Referencia            ] Check
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Seleciona Pedidos para impressao
;*******************************************************************************
Proc SELECIONA5()

{Ask} {PedidoC}
Moveto [Numero do Pedido ] Example "NUM"
Moveto [Valor Nota Fiscal] typein "as Valor"
{Ask} {RCargaP} Check
Moveto [Numero do Pedido ] Example "NUM"
Moveto [Valor            ] check
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao8()
LimpAguarde()
Do_It!
ClearAll
Echo Normal
Echo Off

VSDGNCARREG=""
VSDGNOMNCARREG=""
While True
 OP_SHOW="Carregamento"
 ShowDialog "Batizar Pedido's com Carregamento ?" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
   Key "F1","ENTER","ESC","TAB"
    @ 05,01   Height 07 Width 72

    Label  @ 00,00 "Carregamento" For "TG_NCARREG"
    Accept @ 01,01 Width 9  "A6"  Picture "#*#" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Pushbutton @ 03,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 03,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

 EndDialog
 If RetVal
    Then If Not IsBlank(VSDGNCARREG)
            Then AtualizaCarreg()
            Else Mensagem("Carregamento invalido !")
                 Loop
         EndIf
 EndIf
 QuitLoop
EndWhile
ClearAll
CoEdit "RCargaP"
PickForm "F"

EndProc

;*******************************************************************************
;* Rotina p/ Atualizacao de duplicatas emitidas                                *
;*******************************************************************************
Proc AtualizaCarreg()
AGUARDE("Aguarde, Atualizando Pedidos")

CoEdit "PedidoC","RCargaP"
Scan
  Moveto "PedidoC"
  Moveto [Numero do Pedido]
  Locate [RCargaP->Numero do Pedido]
  If Not RetVal
     Then Mensagem("Pedido "+[RCargaP->Numero do Pedido]+" n„o encontrado !")
     Else If Not IsLockRecord()
             Then [Numero_Carregamento]=VSDGNCARREG
             Else Mensagem("Pedido "+[RCargaP->Numero do Pedido]+" n„o atualizado !")
          EndIf
  EndIf
  Moveto "RCargaP"
EndScan
Do_It!
ClearAll

Mensagem("Atualiza‡„o concluida !")
LIMPAGUARDE()
EndProc


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

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd(fill(chr(196),3)+" Carregamentos:")
ModeloRelatoriosAdd("02  Resumo Condi‡Æo de Pagamento")
ModeloRelatoriosAdd("03  Resumo dos Itens por C¢digo,Descri‡Æo,Unid,Qtde,VrTotal,VrM‚dio")
;;ModeloRelatoriosAdd("08  Resumo dos Itens por Representante") ; inutilizado verificar qual cliente quer usar ???
ModeloRelatoriosAdd("09D Resumo dos Itens por Cliente+C¢digo,Descri‡Æo,Unid,Qtde,PesoTot")
ModeloRelatoriosAdd("09I Resumo dos Itens por C¢digo+Descri‡Æo,Unid,Qtde,PesoTot")
ModeloRelatoriosAdd("10B Resumo dos Itens por C¢digo+Descri‡Æo,Unid,Qtde")
ModeloRelatoriosAdd("09J Resumo dos Itens por C¢digo+Descri‡Æo,Inf.Adicionais,Unid,Qtde,PesoTot")
ModeloRelatoriosAdd("10H Resumo dos Itens por Referˆncia+Descri‡Æo,Unid,Qtde")
ModeloRelatoriosAdd("01  Rela‡Æo Pedidos com Itens - Ordem Digita‡Æo")
ModeloRelatoriosAdd("01C Rela‡Æo Pedidos com Itens - Ordem Estado/Cidade/Bairro")
ModeloRelatoriosAdd("09  Rela‡Æo Pedidos com Itens +C¢digo,Descricao,Unid,qtde")
ModeloRelatoriosAdd("07  Rela‡Æo Pedidos sem itens - Ordem Digita‡Æo")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd(fill(chr(196),3)+" Etiquetas/Impresssora T‚rmica:")
ModeloRelatoriosAdd("04E   9,9x14,5cm-NF,Pedido,Cliente,Ender,Volume,Transp") ; tamanho etiqueta calculado via dots nÆo tem certeza
ModeloRelatoriosAdd("04F   9,7x10,8cm-NF,Pedido,Cliente,Ender,Bair,CEP,Cid,UF") 
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd(fill(chr(196),3)+" Etiquetas/Impressora Matricial:")
ModeloRelatoriosAdd("04   13,5x 2,5cm -1Col NF,Cliente,Ender,Bair,Cid,UF,Volume") ; tamanho calculado no visual nÆo tem certeza
ModeloRelatoriosAdd("04A  10,5x 4,5cm -2Col Pedido,Cliente,Ender,Bair,CEP,Cid,UF,NF")
ModeloRelatoriosAdd("04G   9,0x 2,5cm -1Col Cliente")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("05  Certificado Postal Individual")
ModeloRelatoriosAdd("06  Certificado Postal Multiplos")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc SelecaoImprimir()
private dmsg

campo="TG_CODMODELO"
if not Dialog_F1() 
   then return
endif

Do_It!
ClearAll

while true

  switch
  
    ;--- modelos report --------------------------------------------------------
    case VSDGCODMODELO="01"   or         
         VSDGCODMODELO="01C"  or 
         VSDGCODMODELO="02"   or 
         VSDGCODMODELO="03"   or 
         VSDGCODMODELO="07"   or 
         VSDGCODMODELO="08"   or 
         VSDGCODMODELO="09"   or 
         VSDGCODMODELO="09D"  or 
         VSDGCODMODELO="09I"  or
         VSDGCODMODELO="09J"  or 
         VSDGCODMODELO="10B"  or 
         VSDGCODMODELO="10H"  :  
  
      DISPOSITIVO()
      If OK=""
         Then quitLoop
      endif

      AGUARDE("Aguarde, selecionado dados")
      Switch
        Case VSDGCODMODELO="02"  : SELECIONA2()
        Case VSDGCODMODELO="07"  : SELECIONA3()
        Case VSDGCODMODELO="10H" : SELECIONA4()
        Case VSDGCODMODELO="09J" : ;COPIA do modelo 09I, por‚m adicionado informa‡äes adicionais e quebra pelo mesmo
                                   SELECIONA()
                                   AJUSTA_DADOS()
        OTherWise                : SELECIONA()
      EndSwitch

      If IsEmpty("Answer")
         Then MENSAGEM("N„o existem registros a processar")
              QuitLoop
      endif
                                       
      AGUARDE("Aguarde, gerando o relat¢rio")
      Switch
        Case VSDGCODMODELO="01" : CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "2" "Answer" "R"
        Case VSDGCODMODELO="01C": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "1" "Answer" "R"


        Case VSDGCODMODELO="02" : CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0041"  "1" "Answer" "R"


        Case VSDGCODMODELO="03" : CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "R" "Answer" "R"
        Case VSDGCODMODELO="07" : CopyReport  "\\Base\\Sistemas\\Vendas\\RCargaP"   "R" "Answer" "R"

        Case VSDGCODMODELO="08" : CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"   "3" "Answer" "R"
                                  IMPRIREL("Answer","R")
                    
                                  SELECIONA5()
                                  CopyReport  "\\Base\\Sistemas\\Vendas\\RCargaP"   "3" "Answer" "R"
                                  IMPRIREL("Answer","R")
                                 
				Case VSDGCODMODELO="09":  Sort "Answer" On "Numero do Pedido","Descricao do Item"
                                  ClearAll
                                  
                                  Play "OC_0117P"
                     
        Case VSDGCODMODELO="09D": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "6" "Answer" "R"
        Case VSDGCODMODELO="09I": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "8" "Answer" "R"
        Case VSDGCODMODELO="09J": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300a" "2" "Answer" "R"
        Case VSDGCODMODELO="10B": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300"  "5" "Answer" "R"
        Case VSDGCODMODELO="10H": CopyReport  "\\Base\\Sistemas\\Vendas\\RM_0300a" "R" "Answer" "R"
      EndSwitch
      IMPRIREL("Answer","R")


    ;--- modelos etiquetas e cerficado postal ----------------------------------
    case VSDGCODMODELO="04"  or        
         VSDGCODMODELO="04A" or 
         VSDGCODMODELO="04E" or 
         VSDGCODMODELO="04F" or 
         VSDGCODMODELO="04G" or 
         VSDGCODMODELO="05"  or 
         VSDGCODMODELO="06"    :  


      dmsg="FAT"
      switch
        case VSDGCODMODELO="04F" : dmsg="ET3" 
        case VSDGCODMODELO=" "   : dmsg="" 
      endswitch

      DispositivoI(dmsg)
      If OK=""
         Then QuitLoop
      EndIf

      switch
        case VSDGCODMODELO="04"  or 
             VSDGCODMODELO="04A" or 
             VSDGCODMODELO="04E" or 
             VSDGCODMODELO="04G" or 
             VSDGCODMODELO="05"  or 
             VSDGCODMODELO="06"  or 
             VSDGCODMODELO="04F" :  

          AGUARDE("Aguarde, selecionado dados")
          
          {Ask} {RCargaP} Check
          Do_It!
          ClearAll
          If IsEmpty("Answer")
             Then MENSAGEM("N„o existem registros a processar")
                  QuitLoop
          endif
          
          {Tools} {Copy} {JustFamily} {RCargaP} {Answer} {Replace}

        case VSDGCODMODELO="" :
          
      endswitch
      
      AGUARDE("Aguarde, imprimindo")
      Switch
       Case VSDGCODMODELO="04"  : Play "EV_0000"
      
       Case VSDGCODMODELO="04A" : Play "EV_0002"
      
       Case VSDGCODMODELO="04E" : Play "EV_0003"
      
       Case VSDGCODMODELO="04F" : Play "ET_ZSIRI"
      
       Case VSDGCODMODELO="04G" : Play "EV_0004"
      
       Case VSDGCODMODELO="05"  :
         Switch
           Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079"
           Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098"
           OtherWise                     : Play "CP_0000"
         EndSwitch

       Case VSDGCODMODELO="06" :
         Switch
           Case SYS_CODIGO_CLIENTE="0079": Play "CP_0079b"
           Case SYS_CODIGO_CLIENTE="0098": Play "CP_0098b"
           OtherWise                     : Play "CP_0002"
         EndSwitch
      
      EndSwitch
      
  Endswitch
  QuitLoop

Endwhile

if IsTable("Answer") then Delete "Answer" endif

CoEdit "RCargaP"
PickForm "F"

EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITAC()
If RecordStatus("Locked") Then UnLockRecord EndIf         
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf

ModeloRelatoriosCarregaLista()

VSDGEMPRESA  =""
VSDGREPRESEN =""
VSDGCIDADE   =""
VSDGESTADO   ="" 
VSDGNCARREG  =""
VSDGDTINI    =BlankDate()
VSDGDTFIM    =BlankDate()
VSDGOPDTPEEI       =""
VSDGSITUACAOPEDIDO =""

CoEdit "RCargaP"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
