;** Ft_Imp *********************************************************************
;*  Manutencao                                                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 27/07/2011 por Bruno Carvalho
;Ultima Alteracao: 12/07/2012 por Bruno Carvalho 
;Motivo Alteracao: Ajustes Titulo ShowDialog

;*******************************************************************************
;* Rotina p/ iniciar variaveis p/ showdialog                                   *
;*******************************************************************************
Proc Inicia_Variaveis(CARREGA_REGISTRO)
Private CARREGA_REGISTRO
DEBUG
WHI = 0

If CARREGA_IMP
   Then CARREGA_IMP=False
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaC"
           Else Moveto "FaturaC"
        EndIf
        UnLockRecord
        FormKey
        
        If APLIC_ORIGEM="NOTA"                   
           Then Moveto "NotaI"
                Moveto [Codigo da Empresa]
                Locate EMPRESA,NUMDOC,SERIE,SEQIT
                If RetVal
                   Then VSD_II_BC        =[II_BC             ]
                        VSD_II_Valor_Desp=[II_Valor DespAduan]
                        VSD_II_Valor_IOF =[II_Valor IOF      ]
                        VSD_II_Valor_Imp =[II_Valor Imposto  ]
                   Else VSD_II_BC        =BlankNum()
                        VSD_II_Valor_Desp=BlankNum()
                        VSD_II_Valor_IOF =BlankNum()
                        VSD_II_Valor_Imp =BlankNum()
               EndIf
          Else Moveto "FaturaI"
               Moveto [Numero da OF]
               Locate ORDFAT,SEQIT
               If RetVal
                  Then VSD_II_BC        =[II_BC             ]
                       VSD_II_Valor_Desp=[II_Valor DespAduan]
                       VSD_II_Valor_IOF =[II_Valor IOF      ]
                       VSD_II_Valor_Imp =[II_Valor Imposto  ]
                  Else VSD_II_BC        =BlankNum()
                       VSD_II_Valor_Desp=BlankNum()
                       VSD_II_Valor_IOF =BlankNum()
                       VSD_II_Valor_Imp =BlankNum() 
               EndIf
        EndIf
EndIf

If CARREGA_REGISTRO="FATIDD"
   Then DynArray Array_Lista[]

        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaiDD"
           	  	Moveto [Codigo da Empresa]
           	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT
                If RetVal
                   Then While [Codigo da Empresa  ]=EMPRESA And
                              [Numero do Documento]=NUMDOC  And
                              [Serie do Documento ]=SERIE   And
                              [Item do Documento  ]=SEQIT
                              WHI=WHI+1
                              Array_Lista[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Spaces(2)+Completa([Numero_DocImportacao],11," ")+
                                               Format("D13",[Data_Registro_DI_DSI_DA])+Spaces(2)+Completa([Codigo_Exportador],5," ")+
                                               Completa([Nome_Exportador],13," ")+Spaces(01)+[UF_Desembaraco]+Spaces(2)+Completa([Local_Desembaraco],13," ")+
                                               Spaces(01)+Format("D13",[Data_Desembaraco])
                              Skip
                              If EOT() Then QuitLoop EndIf
                        EndWhile
                EndIf   
           Else Moveto "FaturIDD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                              WHI=WHI+1
                              Array_Lista[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Spaces(2)+Completa([Numero_DocImportacao],11," ")+
                                               Format("D13",[Data_Registro_DI_DSI_DA])+Spaces(2)+Completa([Codigo_Exportador],5," ")+
                                               Completa([Nome_Exportador],13," ")+Spaces(01)+[UF_Desembaraco]+Spaces(2)+Completa([Local_Desembaraco],13," ")+
                                               Spaces(01)+Format("D13",[Data_Desembaraco])
                              Skip
                              If EOT() Then QuitLoop EndIf
                        EndWhile
                EndIf   
        EndIf
EndIf

If CARREGA_REGISTRO="FATIAD"
   Then Wi=0
        If IsAssigned(Array_ListaB)
           Then Release Vars Array_ListaB
        EndIf
        DynArray Array_ListaB[]
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaiAD"
           	  	Moveto [Codigo da Empresa]
           	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE
                If RetVal
                   Then While [Codigo da Empresa       ]=EMPRESA And
                              [Numero do Documento     ]=NUMDOC  And
                              [Serie do Documento      ]=SERIE   And
                              [Item do Documento       ]=SEQIT   And
                              [Sequencia_Doc_Importacao]=INDICE

                              Wi=Wi+1
                              Array_ListaB[Wi]=Alinhm(StrVal([Sequencia_Adicao]),2)+Spaces(2)+Completa(StrVal([Numero_Adicao]),11," ")+
                                               Completa([Codigo_Fabricante],5," ")+Completa([Nome_Fabricante],20," ")+Spaces(01)+
                                               Format("W10.2",[Valor_Desconto_Adicao])
                              Skip
                              If EOT()
                                 Then QuitLoop
                              EndIf
                        EndWhile
                EndIf 
           Else Moveto "FaturIAD"
                Moveto [Numero da OF]                        
                Locate ORDFAT,SEQIT,INDICE
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT And [Sequencia_Doc_Importacao]=INDICE                            
                              Wi=Wi+1
                              Array_ListaB[Wi]=Alinhm(StrVal([Sequencia_Adicao]),2)+Spaces(2)+Completa(StrVal([Numero_Adicao]),11," ")+
                                               Completa([Codigo_Fabricante],5," ")+Completa([Nome_Fabricante],20," ")+Spaces(01)+
                                               Format("W10.2",[Valor_Desconto_Adicao])
                              
                              
                              Skip
                              If EOT()
                                 Then QuitLoop
                              EndIf
                        EndWhile
                EndIf      
        EndIf        
EndIf

EndProc

;*******************************************************************************
;* Rotina p/ organizar array                                                   *
;*******************************************************************************
Proc Declaracao_Importacao()
Private INDICE,CARREGA_VARIAVEL_IMPORTACAO

CARREGA_VARIAVEL_IMPORTACAO=False

If (VSD_II_BC+VSD_II_Valor_Desp+VSD_II_Valor_IOF+VSD_II_Valor_Imp)=0
   Then Mensagem("Valores de Importa‡„o Inv lidos!")
        Return
EndIf

If Evento["KeyCode"] = -82
   Then INDICE=""
   Else INDICE=ControlValue("TG_RegistroA")
        If INDICE=""
           Then Return
        EndIf
        INDICE=NumVal(AlinhM(SubStr(Array_Lista[INDICE],1,2),2))
        If INDICE<>""
           Then INDICE =NumVal(INDICE) 
        EndIf
EndIF

If IsAssigned(Array_ListaB)  Then Release Vars Array_ListaB  EndIf
DynArray Array_ListaB[]

If INDICE="" Or Evento["KeyCode"] = -82
   Then VSD_I_NumR         =""       
        VSD_I_DataR        =BlankDate()
        VSD_I_CodExportador=""
        VSDGNOMExportador  =""
        VSD_I_UF_DEC       =""
        VSD_I_Local_DEC    =""
        VSD_I_DATA_DEC     =BlankDate()
   Else If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaiDD"
           	  	Moveto [Codigo da Empresa]
           	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE
                If RetVal
                   Then CARREGA_VARIAVEL_IMPORTACAO=True
                EndIf   
           Else Moveto "FaturIDD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT,INDICE
                If RetVal
                   Then CARREGA_VARIAVEL_IMPORTACAO=True    
                EndIf  
        EndIf
        If CARREGA_VARIAVEL_IMPORTACAO=True
           Then VSD_I_NumR         =[Numero_DocImportacao   ]
                VSD_I_DataR        =[Data_Registro_DI_DSI_DA]
                VSD_I_CodExportador=[Codigo_Exportador      ]
                VSDGNOMExportador  =[Nome_Exportador        ]
                VSD_I_UF_DEC       =[UF_Desembaraco         ]
                VSD_I_Local_DEC    =[Local_Desembaraco      ]
                VSD_I_DATA_DEC     =[Data_Desembaraco       ] 
           
                Inicia_Variaveis("FATIAD")
                
           Else VSD_I_NumR         =""  
                VSD_I_DataR        =BlankDate()
                VSD_I_CodExportador=""
                VSDGNOMExportador  =""
                VSD_I_UF_DEC       =""
                VSD_I_Local_DEC    =""
                VSD_I_DATA_DEC     =BlankDate()     
        EndIf
EndIf

VSD_I_Seq_A      = BlankNum()
VSD_I_NumA       = BlankNum()
VSD_I_Fabricante = ""
VSDGNOMFabricante= ""
VSD_I_Desconto   = BlankNum()
TELA             = 2
INICIO_DIALOG    = True
Mouse Hide 

Showdialog "Declara‡„o de Importa‡„o" Proc "Sd_Adicionais"
   Trigger "OPEN"
   ;;;,"ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","PGDN","ClearArea",-66,-6,-147,"F3",-61,-81
     @ 07,00 height 16 width 80                                                     
     
   Label  @ 00,00 "N£mero DI/DSI/DA " For "I_NumR"                                                      
   Accept @ 01,01 Width 16 "A10" picture "!*!" Tag "I_NumR" to VSD_I_NumR                                
                                                                                                       
   Label  @ 00,19 "Data Registro " For "I_DataR"                                                       
   Accept @ 01,20 Width 13 "D" picture "#[#];.##;.##[##]" Tag "I_DataR" to VSD_I_DataR                    
                                                                                                     
   Label  @ 00,35 "C¢digo Exportador " For "I_CodExportador"
   Accept @ 01,36 Width 07 "A4" picture "[&,#][#*#]" Tag "I_CodExportador" to VSD_I_CodExportador
   Accept @ 01,44 Width 32 "A20" Picture "!*!" Tag "TG_NOMExportador" To VSDGNOMExportador
   
   Label  @ 02,00 "UF " For "I_UF_DEC"
   Accept @ 03,01 Width 05 "A2" picture "!*!" Tag "I_UF_DEC" to VSD_I_UF_DEC     
     
   Label  @ 02,08 "Local " For "I_Local_DEC"
   Accept @ 03,09 Width 51 "A45" picture "!*!" Tag "I_Local_DEC" to VSD_I_Local_DEC

   Label  @ 02,62 "Data " For "I_DATA_DEC"
   Accept @ 03,63 Width 13 "D" picture "#[#];.##;.##[##]" Tag "I_DATA_DEC" to VSD_I_DATA_DEC

   Frame Single From 04,00 to 13,77
   @ 04,01 ?? " Adi‡„o "
          
   Label  @ 05,01 "Seq. " For "I_Seq_A"
   Accept @ 06,02 Width 06 "N" picture "##" Tag "I_Seq_A" to VSD_I_Seq_A     
          
   Label  @ 05,09 "N£mero " For "I_NumA"
   Accept @ 06,10 Width 06 "N" picture "###" Tag "I_NumA" to VSD_I_NumA
  
   Label  @ 05,17 "Fabricante " For "I_Fabricante"
   Accept @ 06,18 Width 07 "A4" picture "[&,#][#*#]" Tag "I_Fabricante" to VSD_I_Fabricante
   Accept @ 06,26 Width 34 "A20" Picture "!*!" Tag "TG_NOMFabricante" To VSDGNOMFabricante

   Label  @ 05,62 "Desconto " For "I_Desconto"
   Accept @ 06,63 Width 13 "N" picture "#*#.[##]" Tag "I_Desconto" to VSD_I_Desconto

   @ 08,01 ?? "  Seq N£mero     Fabricante                 Desconto" 
               ;XXXX 9999999999 XXXX 999999999999999999999 9999.99
   PickDynArray @09,02 Height 4 width 74
   Columns 1
    Array_ListaB
     Tag "TG_RegistroB"
      To ArrayElement 

EndDialog

TELA = 1
Mouse Show

EndProc
;*******************************************************************************
;* Grava Registros                                                             *
;*******************************************************************************
Proc Gravar_Registros(GRAVA_TABELA)  
Private GRAVA_TABELA, TAB_REF, CARREGA_FATI
DEBUG
Switch
   Case GRAVA_TABELA = "FATI"   : 
       
        CARREGA_FATI = False
        TAB_REF      = Table()  
        
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaI"
           	  	Moveto [Codigo da Empresa]
           	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT
                If RetVal
                   Then CARREGA_FATI=True
                EndIf   
           Else Moveto "FaturaI"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then CARREGA_FATI=True
                EndIf   
        EndIF
        If CARREGA_FATI
           Then RegItem["II_BC"]             =VSD_II_BC
                RegItem["II_Valor DespAduan"]=VSD_II_Valor_Desp
                RegItem["II_Valor IOF"]      =VSD_II_Valor_IOF
                RegItem["II_Valor Imposto"]  =VSD_II_Valor_Imp

                [II_BC             ]=VSD_II_BC        
                [II_Valor DespAduan]=VSD_II_Valor_Desp
                [II_Valor IOF      ]=VSD_II_Valor_IOF 
                [II_Valor Imposto  ]=VSD_II_Valor_Imp 
                SaveTables
                UnLockRecord
        EndIf
        
        Moveto TAB_REF              
                                   
   Case GRAVA_TABELA = "FATIDD" :     
        If VSD_I_NumR=""
           Then Return
        EndIf
        
        If INDICE<>""
           Then If APLIC_ORIGEM="NOTA"
            	     Then Moveto "NotaiDD"
                				Moveto [Codigo da Empresa]
                				Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE
                				If RetVal
                           Then  Del
                				EndIf
                   Else Moveto "FaturIDD"
                        Moveto [Numero da OF]
                        Locate ORDFAT,SEQIT,INDICE
                        If RetVal
                           Then Del
                        EndIf
                EndIf
                End Down
                If APLIC_ORIGEM="NOTA"
                   Then [Codigo da Empresa  ]=EMPRESA
                        [Numero do Documento]=NUMDOC
                        [Serie do Documento ]=SERIE
                        [Item do Documento  ]=NumVal(SEQIT) 
                   Else [Numero da OF       ]=ORDFAT
                        [Item da OF         ]=NumVal(SEQIT)
                EndIf
                [Sequencia_Doc_Importacao   ]=INDICE
                UnLockRecord
           Else SEQDOCIMP=0
                If APLIC_ORIGEM="NOTA"
            	     Then Moveto "NotaiDD"
                				Moveto [Codigo da Empresa]
                				Locate EMPRESA,NUMDOC,SERIE,SEQIT
                				If RetVal
                           Then While [Codigo da Empresa  ]=EMPRESA And
                                      [Numero do Documento]=NUMDOC  And
                                      [Serie do Documento ]=SERIE   And
                                      [Item do Documento  ]=SEQIT
                                      If SEQDOCIMP < [Sequencia_Doc_Importacao]
                                         Then SEQDOCIMP=[Sequencia_Doc_Importacao]
                                      EndIf
                                      Skip
                                      If EOT() Then QuitLoop EndIf
                                EndWhile
                				EndIf
                        End Down
                        [Codigo da Empresa  ]=EMPRESA
                        [Numero do Documento]=NUMDOC
                        [Serie do Documento ]=SERIE
                        [Item do Documento  ]=NumVal(SEQIT) 
                   Else Moveto "FaturIDD"
                        Moveto [Numero da OF]
                        Locate ORDFAT,SEQIT
                        If RetVal
                           Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                                      If SEQDOCIMP < [Sequencia_Doc_Importacao]
                                         Then SEQDOCIMP=[Sequencia_Doc_Importacao]
                                      EndIf
                                      Skip
                                      If EOT() Then QuitLoop EndIf
                                EndWhile
                        EndIf
                        End Down
                        [Numero da OF]=ORDFAT
                        [Item da OF  ]=NumVal(SEQIT) 
                EndIf
                [Sequencia_Doc_Importacao]=SEQDOCIMP+1
                SEQDOCIMP=[Sequencia_Doc_Importacao]    
        EndIF
DEBUG
        If INDICE<>""
           Then If APLIC_ORIGEM="NOTA"
                   Then Moveto [Codigo da Empresa]
                        Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE
                   Else Moveto [Numero da OF]
                        Locate ORDFAT,SEQIT,INDICE
                EndIf        
        EndIf               
        
        [Numero_DocImportacao   ]=VSD_I_NumR
        [Data_Registro_DI_DSI_DA]=VSD_I_DataR
        [Codigo_Exportador      ]=VSD_I_CodExportador
        [Nome_Exportador        ]=VSDGNOMExportador
        [UF_Desembaraco         ]=VSD_I_UF_DEC
        [Local_Desembaraco      ]=VSD_I_Local_DEC
        [Data_Desembaraco       ]=VSD_I_DATA_DEC
        UnLockRecord
        SaveTables
        IsLockRecord()   
        Inicia_Variaveis("FATIDD") 
        
   Case GRAVA_TABELA = "FATIAD" :  
        If INDICE=""
           Then SEQDOCIMP=0
                If APLIC_ORIGEM="NOTA"
            	     Then Moveto "NotaiDD"
                				Moveto [Codigo da Empresa]
                				Locate EMPRESA,NUMDOC,SERIE,SEQIT
                				If RetVal
                           Then While [Codigo da Empresa  ]=EMPRESA And
                                      [Numero do Documento]=NUMDOC  And
                                      [Serie do Documento ]=SERIE   And
                                      [Item do Documento  ]=SEQIT
                                      If SEQDOCIMP < [Sequencia_Doc_Importacao]
                                         Then SEQDOCIMP=[Sequencia_Doc_Importacao]
                                      EndIf
                                      Skip
                                      If EOT() Then QuitLoop EndIf
                                EndWhile
                				EndIf
                   Else Moveto "FaturIDD"
                        Moveto [Numero da OF]
                        Locate ORDFAT,SEQIT
                        If RetVal
                           Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                                      If SEQDOCIMP < [Sequencia_Doc_Importacao]
                                         Then SEQDOCIMP=[Sequencia_Doc_Importacao]
                                      EndIf
                                      Skip
                                      If EOT() Then QuitLoop EndIf
                                EndWhile
                        EndIf
                EndIf
                INDICE=SEQDOCIMP+1
        EndIf

        If APLIC_ORIGEM="NOTA"
    	     Then Moveto "NotaiAD"
        				Moveto [Codigo da Empresa]
        				Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE
        				If RetVal
                   Then While [Codigo da Empresa       ]=EMPRESA And
                              [Numero do Documento     ]=NUMDOC  And
                              [Serie do Documento      ]=SERIE   And
                              [Item do Documento       ]=SEQIT   And
                              [Sequencia_Doc_Importacao]=INDICE
                              Del
                        EndWhile
        				EndIf
           Else Moveto "FaturIAD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT,INDICE
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT And [Sequencia_Doc_Importacao]=INDICE
                              Del
                        EndWhile
                EndIf
        EndIf
                                                                       
        For FCI From 1 To DynArraySize(Array_ListaB)
            If Not IsAssigned(Array_ListaB[FCI])
               Then Loop
            EndIf
            VSD_I_Seq_A      =NumVal(AlinhM(SubStr(Array_ListaB[FCI],1,2),2))
            VSD_I_NumA       =NumVal(Rtrim(SubStr(Array_ListaB[FCI],5,10)))
            VSD_I_Fabricante =RTrim(SubStr(Array_ListaB[FCI],16,4))
            VSDGNOMFabricante=RTrim(SubStr(Array_ListaB[FCI],21,21))
            VSD_I_Desconto   =NumVal(SubStr(Array_ListaB[FCI],42,10))

            If APLIC_ORIGEM="NOTA"
               Then Moveto "NotaIAD"
                    End Down
                    [Codigo da Empresa  ]=EMPRESA
                    [Numero do Documento]=NUMDOC
                    [Serie do Documento ]=SERIE
                    [Item do Documento  ]=NumVal(SEQIT) 
               Else Moveto "FaturIAD"
                    End Down
                    [Numero da OF       ]=ORDFAT
                    [Item da OF         ]=NumVal(SEQIT) 
            EndIF   
            [Sequencia_Doc_Importacao]=INDICE
            [Sequencia_Adicao        ]=VSD_I_Seq_A
            [Numero_Adicao           ]=VSD_I_NumA
            [Codigo_Fabricante       ]=VSD_I_Fabricante
            [Nome_Fabricante         ]=VSDGNOMFabricante
            [Valor_Desconto_Adicao   ]=VSD_I_Desconto
        EndFor 
        UnLockRecord
        SaveTables
EndSwitch

EndProc ;Declaracao_Importacao()

;*******************************************************************************
;* Rotina de Controle p/ ShowDialog                                            *
;*******************************************************************************
Proc Sd_Adicionais(Disparo,Campo,Evento,Elemento)
Private Disparo,Campo,Evento,Elemento,Tab_Ref,TABELA 

Temp=True

If INICIO_DIALOG
   Then INICIO_DIALOG=False
        Switch
          Case Tela=1: Campo="II_BC"
            Dynarray WinArray52[]
            Window Handle Dialog to JANELA2
            Window GetAttributes JANELA2 To WinArray52

          Case Tela=2: Campo="I_NumR"
            Dynarray WinArray53[]
            Window Handle Dialog to JANELA3
            Window GetAttributes JANELA3 To WinArray53
        EndSwitch
EndIf

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
       Case Evento["KeyCode"] = -82 Or Evento["KeyCode"] = "INS" :
            If Campo="TG_RegistroA" 
               Then Declaracao_Importacao()
            EndIf   
       Case Evento["KeyCode"] = 9:
            Temp=False
            
       Case Evento["KeyCode"] = -59 :  
            Tab_Ref = Table()
            
            If Campo="I_DataR"    Or
               Campo="I_DATA_DEC"
               Then ShowPopup " Data " CENTERED
                    Format("D13",Today())                     +" : ~H~oje"         : " Data de Hoje"                      : "HOJE",
                    Format("D13",Primeiro_Dia_Data(Today()))  +" : mes ~A~tual"    : " Primeiro dia do mes Atual"         : "ATUAL",
                     "~C~ancelar"                                                  : " Cancelar a Opera‡„o"               : "CANCELAR"
                    EndMenu
                    To MenuVar
                    Switch
                      Case MenuVar="CANCELAR" Or
                           MenuVar="Esc"          : Return False
                      Case MenuVar="HOJE"         : If Campo="I_DataR"
                                                       Then VSD_I_DataR    = DateVal(Today())
                                                       Else VSD_I_DATA_DEC = DateVal(Today())
                                                    EndIf
                      Case MenuVar="ATUAL"        : If Campo="I_DataR"
                                                       Then VSD_I_DataR    = Primeiro_Dia_Data(Today())
                                                       Else VSD_I_DATA_DEC = Primeiro_Dia_Data(Today())
                                                    EndIf
                    EndSwitch
                    Temp=False

               Else If Campo="I_CodExportador" Or
                       Campo="I_UF_DEC"        Or
                       Campo="I_Fabricante"    
                       Then WinArray53["FLOATING"]=False
                            Window SetAttributes JANELA3 From WinArray53

                            WinArray52["FLOATING"]=False
                            Window SetAttributes JANELA2 From WinArray52

                            WinArray51["FLOATING"]=False
                            Window SetAttributes JANELA1 From WinArray51

                            If APLIC_ORIGEM="NOTA"
                               Then Switch
                                      Case Campo="I_CodExportador" : Moveto [NotaIDD->Codigo_Exportador ]  
                                      Case Campo="I_UF_DEC"        : Moveto [NotaIDD->UF_Desembaraco    ]
                                      Case Campo="I_Fabricante"    : Moveto [NotaIAD->Codigo_Fabricante ]
                                    EndSwitch 
                               Else Switch
                                      Case Campo="I_CodExportador" : Moveto [FaturIDD->Codigo_Exportador]  
                                      Case Campo="I_UF_DEC"        : Moveto [FaturIDD->UF_Desembaraco   ]
                                      Case Campo="I_Fabricante"    : Moveto [FaturIAD->Codigo_Fabricante]
                                    EndSwitch 
                            EndIf

                            If ConsultaF1()   
                               Then Switch
                                      Case Campo="I_CodExportador":
                                           VSD_I_CodExportador=Reg_ConsultaF1["Codigo"]
                                           If Reg_ConsultaF1["Nome Fantasia EmitDest"]<>"DIVERSOS"
                                              Then VSDGNOMExportador=Reg_ConsultaF1["Razao Social"]
                                           EndIf
                                      Case Campo="I_UF_DEC"       :   
                                           VSD_I_UF_DEC=Reg_ConsultaF1["UF"]
                                      Case Campo="I_Fabricante"   :        
                                           VSD_I_Fabricante=Reg_ConsultaF1["Codigo"]
                                           If Reg_ConsultaF1["Nome Fantasia EmitDest"]<>"DIVERSOS"
                                              Then VSDGNOMFabricante=Reg_ConsultaF1["Razao Social"]
                                           EndIf 
                                    EndSwitch        
                            EndIf                          
                       
                       
                            Window Select JANELA1
                            WinArray51["FLOATING"]=True
                            Window SetAttributes JANELA1 From WinArray51
                       
                            Window Select JANELA2
                            WinArray52["FLOATING"]=True
                            Window SetAttributes JANELA2 From WinArray52
                      
                            Window Select JANELA3
                            WinArray53["FLOATING"]=True
                            Window SetAttributes JANELA3 From WinArray53
                      
                            Echo Normal
                            Echo Off
                            
                            Moveto Tab_Ref
                            Release Vars Tab_Ref
                            
                            Temp=False        
                    EndIf
            EndIf        
       Case Evento["KeyCode"] =-147:
            Switch
              Case Campo="TG_RegistroA"   : If IsAssigned(Array_Lista) And DynArraySize(Array_Lista)<>0 
                                               Then ConfGeral("Confirma a exclus„o deste registro ?")
                                                    If OK="S"
                                                       Then Exclusao_Declaracao()
                                                    EndIF
                                            EndIf
              Case Campo="TG_RegistroB"   : If IsAssigned(Array_ListaB) And DynArraySize(Array_ListaB)<>0  
                                               Then ConfGeral("Confirma a exclus„o deste registro ?")
                                                    If OK="S"
                                                       Then Exclusao_Declaracao()
                                                    EndIF
                                            EndIf
           EndSwitch                                
      Case Evento["KeyCode"] = "F3" Or  Evento["KeyCode"] = -61 : 
           If TELA=2 
              Then Campo="TG_RegistroB"
              Else Campo="TG_RegistroA"
           EndIf
                                   
      Case Evento["KeyCode"] = "PGDN" Or  Evento["KeyCode"] = -81 : 
           If TELA=2 
              Then Gravar_Registros("FATIDD")   
                   CancelDialog
              Else Gravar_Registros("FATI")     
                   CancelDialog
           EndIF   
      Case Evento["KeyCode"] = 27:  
           Switch
             Case Campo="II_BC"              : Gravar_Registros("FATI")
                                               CancelDialog
             Case Campo="II_Valor DespAduan" : Campo="II_BC"
             Case Campo="II_Valor IOF"       : Campo="II_Valor DespAduan"
             Case Campo="II_Valor Imposto"   : Campo="II_Valor IOF"
             Case Campo="TG_RegistroA"       : Campo="II_Valor Imposto"

             Case Campo="I_NumR"             : Gravar_Registros("FATIDD") 
                                               CancelDialog  
             Case Campo="I_DataR"            : Campo="I_NumR"
             Case Campo="I_CodExportador"    : Campo="I_DataR"
             Case Campo="I_UF_DEC"           : Campo="I_CodExportador"
             Case Campo="I_Local_DEC"        : Campo="I_UF_DEC"
             Case Campo="I_DATA_DEC"         : Campo="I_Local_DEC"
             Case Campo="I_Seq_A"            : Campo="I_DATA_DEC"   
             Case Campo="I_NumA"             : Campo="I_Seq_A"
             Case Campo="I_Fabricante"       : Campo="I_NumA"
             Case Campo="I_Desconto"         : Campo="I_Fabricante"
             Case Campo="TG_RegistroB"       : Campo="I_Seq_A" 
           EndSwitch

      Case Evento["KeyCode"] = 13:  
           Switch
             Case Campo="II_BC"               : Campo="II_Valor DespAduan" 
                  VSD_II_BC=ControlValue("II_BC")
             Case Campo="II_Valor DespAduan"  : Campo="II_Valor IOF" 
                  VSD_II_Valor_Desp=ControlValue("II_Valor DespAduan")
             Case Campo="II_Valor IOF"        : Campo="II_Valor Imposto" 
                  VSD_II_Valor_IOF=ControlValue("II_Valor IOF")
             Case Campo="II_Valor Imposto"    : 
                  VSD_II_Valor_Imp=ControlValue("II_Valor Imposto")
                  If (VSD_II_BC+VSD_II_Valor_Desp+VSD_II_Valor_IOF+VSD_II_Valor_Imp)=0
                     Then Mensagem("Valores de Importa‡„o Inv lidos!")
                          Campo="II_BC"
                     Else Campo="TG_RegistroA"
                  EndIf
             Case Campo="TG_RegistroA"        : 
                  Declaracao_Importacao()
             Case Campo="I_NumR"          : Campo="I_DataR"
                  VSD_I_NumR=ControlValue("I_NumR")
             Case Campo="I_DataR"         : Campo="I_CodExportador"
                  VSD_I_DataR=ControlValue("I_DataR")
             Case Campo="I_CodExportador" : 
                  VSD_I_CodExportador=ControlValue("I_CodExportador")
                  If Not IsBlank(VSD_I_CodExportador)
                     Then If APLIC_ORIGEM="NOTA"
                             Then TABELA="NotaIDD"
                             Else TABELA="FaturIDD"
                          EndIf
                          Moveto TABELA
                          Moveto [Codigo_Exportador]
                          Ativa_Lookup()
                          Moveto [Codigo]
                          Locate VSD_I_CodExportador     
                          If RetVal
                             Then VSDGNOMExportador=[Razao Social] 
                                  KeyPress "ESC"
                                  Moveto TABELA
                                  [Codigo_Exportador]=VSD_I_CodExportador
                                  [Nome_Exportador  ]=VSDGNOMExportador
                                  Campo="I_UF_DEC"
                             Else Mensagem("Exportador n„o Cadastrado !")
                                  KeyPress "ESC"
                                  Moveto TABELA
                                  Campo="I_CodExportador"
                         EndIf
                         Echo Off
                 EndIf
             Case Campo="I_UF_DEC"        : 
                  VSD_I_UF_DEC=ControlValue("I_UF_DEC")
                  If Not IsBlank(VSD_I_UF_DEC)
                     Then If APLIC_ORIGEM="NOTA"
                             Then TABELA="NotaIDD"
                             Else TABELA="FaturIDD"
                          EndIf
                          Moveto TABELA
                          Moveto [UF_Desembaraco]
                          Ativa_Lookup()
                          Moveto [UF]
                          Locate VSD_I_UF_DEC
                          If RetVal
                             Then KeyPress "ESC"
                                  Moveto TABELA
                                  [UF_Desembaraco]=VSD_I_UF_DEC      
                                  Campo="I_Local_DEC"
                             Else Mensagem("UF Inv lido!")
                                  KeyPress "ESC"
                                  Moveto TABELA
                                  Campo="I_UF_DEC"
                         EndIf
                         Echo Off
                 EndIf                   
             Case Campo="I_Local_DEC"     : Campo="I_DATA_DEC"
                  VSD_I_Local_DEC=ControlValue("I_Local_DEC")
             Case Campo="I_DATA_DEC"      : Campo="I_Seq_A"
                  VSD_I_DATA_DEC=ControlValue("I_DATA_DEC")                                 
             Case Campo="I_Seq_A"         : Campo="I_NumA" 
                  VSD_I_Seq_A=ControlValue("I_Seq_A")
                  
                  If IsBlank(VSD_I_Seq_A) Or VSD_I_Seq_A = 0 
                     Then If Not IsAssigned(Array_ListaB) Or DynArraySize(Array_ListaB)=0
                             Then VSD_I_Seq_A = 1
                             Else VSD_I_Seq_A = 0
                                  For FCI From 1 To DynArraySize(Array_ListaB)
                                    If VSD_I_Seq_A < NumVal(AlinhM(SubStr(Array_ListaB[FCI],1,2),2)) 
                                       Then VSD_I_Seq_A=NumVal(AlinhM(SubStr(Array_ListaB[FCI],1,2),2)) 
                                    EndIf
                                  EndFor
                                  VSD_I_Seq_A=VSD_I_Seq_A+1
                          EndIf
                  EndIf   
                  If Not IsBlank(VSD_I_Seq_A)
                     Then VSD_I_Seq_A = NumVal(AlinhM(SubStr(StrVal(VSD_I_Seq_A),1,2),2))
                          INDICECO=0
                          For FCI From 1 To DynArraySize(Array_ListaB)
                              If SubStr(Array_ListaB[FCI],1,2)=AlinhM(StrVal(VSD_I_Seq_A),2)
                                 Then INDICECO=FCI
                                      VSD_I_NumA       =NumVal(Rtrim(SubStr(Array_ListaB[FCI],5,10)))
                                      VSD_I_Fabricante =RTrim(SubStr(Array_ListaB[FCI],16,4))
                                      VSDGNOMFabricante=RTrim(SubStr(Array_ListaB[FCI],21,21))
                                      VSD_I_Desconto   =NumVal(SubStr(Array_ListaB[FCI],42,10))
                                      QuitLoop
                                 Else VSD_I_NumA       =""
                                      VSD_I_Fabricante =""
                                      VSDGNOMFabricante=""
                                      VSD_I_Desconto   =BlankNum()
                              EndIf
                          EndFor
                  EndIf
             Case Campo="I_NumA"          : Campo="I_Fabricante"
                  VSD_I_NumA=ControlValue("I_NumA")
                  If IsBlank(VSD_I_NumA)
                     Then Campo="I_NumA"
                     Else Campo="I_Fabricante"
                  EndIf
             Case Campo="I_Fabricante"    : 
                  VSD_I_Fabricante=ControlValue("I_Fabricante")
                  If Not IsBlank(VSD_I_Fabricante)
                     Then If APLIC_ORIGEM="NOTA"
                             Then TABELA="NotaIAD"
                             Else TABELA="FaturIAD"
                          EndIf
                          
                          Moveto TABELA
                          Moveto [Codigo_Fabricante]
                          Ativa_Lookup()
                          Moveto [Codigo]
                          Locate VSD_I_Fabricante
                          If RetVal
                             Then VSDGNOMFabricante=[Razao Social]
                                  KeyPress "ESC"
                                  Moveto TABELA
                                  [Codigo_Fabricante]=VSD_I_Fabricante
                                  [Nome_Fabricante  ]=VSDGNOMFabricante
                                  Campo="I_Desconto"
                             Else Mensagem("Fabricante n„o Cadastrado !")
                                  KeyPress "ESC"
                                  Moveto TABELA
                                  Campo="I_Fabricante"
                         EndIf
                         Echo Off
                 EndIf
             Case Campo="I_Desconto"      : 
                  VSD_I_Desconto=ControlValue("I_Desconto")
                  If IsBlank(VSD_I_Desconto)
                     Then VSD_I_Desconto=0
                  EndIf
                  If Len(VSD_I_Desconto)>=10
                     Then Mensagem("Informe um valor v lido!")
                          Campo="I_Desconto"   
                     Else If INDICECO>0
                             Then FCI=INDICECO
                             Else FCI=DynArraySize(Array_ListaB)+1
                          EndIf
                          Array_ListaB[FCI]=Alinhm(StrVal(VSD_I_Seq_A),2)+Spaces(2)+Completa(StrVal(VSD_I_NumA),11," ")+
                                            Completa(VSD_I_Fabricante,5," ")+Completa(VSDGNOMFabricante,20," ")+
                                            Spaces(1)+Format("W10.2",VSD_I_Desconto)
        
                          Campo="I_Seq_A"
        
                          Gravar_Registros("FATIAD")
        
                          VSD_I_Seq_A      =BlankNum()
                          VSD_I_NumA       =BlankNum()
                          VSD_I_Fabricante =""
                          VSDGNOMFabricante=""
                          VSD_I_Desconto   =BlankNum()
                  EndIf
           EndSwitch
   EndSwitch
EndIf

SelectControl Campo

If TELA = 1 
   Then TECLA=" Esc=Retornar  PGDN=Finalizar  F3=Visualiza‡„o"
   Else TECLA=" Esc=Retornar"
EndIf

If Campo="I_CodExportador" Or Campo="I_UF_DEC" Or Campo="I_Fabricante"
   Then TECLA=TECLA+"  F1=Ajuda"
EndIf

If Campo="I_Seq_A" Or Campo="I_NumA" Or Campo="I_Fabricante" Or Campo="I_Desconto"  
   Then TECLA=TECLA+"  PGDN=Finalizar  F3=Visualiza‡„o"
EndIf

If Campo="TG_RegistroA"
   Then TECLA=" Esc=Retornar  PGDN=Finalizar  Ins=Novo  Enter=Editar  Ctrl+Del=Excluir"
   Else If Campo="TG_RegistroB"
           Then TECLA=TECLA+"  PGDN=Finalizar  Ctrl+Del=Excluir  "+"=Selecionar"
        EndIf
EndIf

Switch 
  Case Campo="II_BC"              : MSGCAMPO="Base de C lculo"
  Case Campo="II_Valor DespAduan" : MSGCAMPO="Valor de Despesas Aduaneiras"
  Case Campo="II_Valor IOF"       : MSGCAMPO="Valor IOF"
  Case Campo="II_Valor Imposto"   : MSGCAMPO="Valor dos Impostos"
  Case Campo="I_Desconto"         : MSGCAMPO="Valor  do Desconto do Item da DI - Adi‡„o"
  Case Campo="I_Fabricante"       : MSGCAMPO="C¢digo do Fabricante Estrangeiro"
  Case Campo="I_NumA"             : MSGCAMPO="N£mero da Adi‡„o"
  Case Campo="I_DATA_DEC"         : MSGCAMPO="Data do Desembara‡o Aduaneiro"
  Case Campo="I_Local_DEC"        : MSGCAMPO="Local de Desembara‡o"
  Case Campo="I_UF_DEC"           : MSGCAMPO="Sigla da UF onde ocorreu o Desembara‡o Aduaneiro"
  Case Campo="I_CodExportador"    : MSGCAMPO="C¢digo do Exportador"
  Case Campo="I_DataR"            : MSGCAMPO="Data de Registro da DI/DSI/DA"
  Case Campo="I_NumR"             : MSGCAMPO="N£mero do Documento de Importa‡„o DI/DSI/DA"
  OtherWise                       : MSGCAMPO=""
EndSwitch                             

@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))             
PaintCanvas Attribute 31 24,0,24,79
Message(MSGCAMPO)
RefreshDialog
Return TEMP
EndProc     ;  (Geral_Dialog)

;*******************************************************************************
;* Exclusao das Informa‡äes Adicionais do Item                                 *
;*******************************************************************************
Proc Exclusao_Declaracao()
Private HQC, IND, SEQ, Item

Switch 
  Case Campo="TG_RegistroA" :
       IND=NumVal(ControlValue("TG_RegistroA"))
       IND=NumVal(AlinhM(SubStr(Array_Lista[IND],1,2),2))

       If APLIC_ORIGEM="NOTA"
          Then Moveto "NotaiDD"
       			 	 Moveto [Codigo da Empresa]
       			 	 Locate EMPRESA,NUMDOC,SERIE,SEQIT,IND
       				 If RetVal
                  Then  Del
       				 EndIf
       				 Moveto "NotaiAD"
         			 Moveto [Codigo da Empresa]
       				 Locate EMPRESA,NUMDOC,SERIE,SEQIT,IND
       				 If RetVal
                  Then If [Codigo da Empresa       ]=EMPRESA And
                          [Numero do Documento     ]=NUMDOC  And
                          [Serie do Documento      ]=SERIE   And
                          [Item do Documento       ]=SEQIT   And
                          [Sequencia_Doc_Importacao]=IND
                          Then Del
                      EndIf
      				 EndIf
          Else Moveto "FaturIDD"
               Moveto [Numero da OF]
               Locate ORDFAT,SEQIT,IND
               If RetVal
                  Then Del
               EndIf
               
               Moveto "FaturIAD"
               Moveto [Numero da OF]
               Locate ORDFAT,SEQIT,IND
               If RetVal
                  Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT And [Sequencia_Doc_Importacao]=IND
                             Del
                       EndWhile
               EndIf
       EndIf
         
       Inicia_Variaveis("FATIDD") 
                              
   Case Campo="TG_RegistroB" :  
        IND=NumVal(ControlValue("TG_RegistroB"))
        IND=NumVal(AlinhM(SubStr(Array_ListaB[IND],1,2),2))
        If INDICE=""
           Then INDICE=SEQDOCIMP
        EndIf

        If APLIC_ORIGEM="NOTA"
     	     Then Moveto "NotaiAD"
          			Moveto [Codigo da Empresa]
        				Locate EMPRESA,NUMDOC,SERIE,SEQIT,INDICE,IND
        				If RetVal
                   Then If [Codigo da Empresa       ]=EMPRESA And
                           [Numero do Documento     ]=NUMDOC  And
                           [Serie do Documento      ]=SERIE   And
                           [Item do Documento       ]=SEQIT   
                           Then Del
                        EndIf
        				EndIf
           Else Moveto "FaturIAD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT,INDICE,IND
                If RetVal
                   Then If [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                            Then Del
                        EndIf
                EndIf
        EndIf

        UnLockRecord
        SaveTables

        Inicia_Variaveis("FATIAD")

   Case CHAVEI=8  :  
        Tab_Ref=Table()

        If APLIC_ORIGEM="NOTA"
            Then Moveto "NotaC"
            Else Moveto "FaturaC"
        EndIf

        UnLockRecord
        FormKey
              
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaIDD"
                Moveto [Codigo da Empresa]
                Locate EMPRESA,NUMDOC,SERIE,SEQIT
                If RetVal 
                   Then While [Codigo da Empresa  ]=EMPRESA And
                              [Numero do Documento]=NUMDOC  And
                              [Serie do Documento ]=SERIE   And
                              [Item do Documento  ]=SEQIT
                              Del
                        EndWhile
                EndIf   
                Moveto "NotaIAD"
                Moveto [Codigo da Empresa]
                Locate EMPRESA,NUMDOC,SERIE,SEQIT
                If RetVal 
                   Then While [Codigo da Empresa  ]=EMPRESA And
                              [Numero do Documento]=NUMDOC  And
                              [Serie do Documento ]=SERIE   And
                              [Item do Documento  ]=SEQIT
                              Del
                        EndWhile
                EndIf

           Else Moveto "FaturIDD"  
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                          Del
                        EndWhile
                EndIf
                
                Moveto "FaturIAD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                          Del
                        EndWhile
                EndIf
        EndIf
                 
        UnLockRecord
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaC"
           Else Moveto "FaturaC"
        EndIf
        UnLockRecord
        FormKey
        
        Moveto Tab_Ref
        Moveto [Codigo do Item]
        Home

   Case Cancelar_Importacao=True  :  
        Tab_Ref=Table()
        Item = [Codigo do Item]

        [II_BC             ]=VSD_II_BC_TEMP          
        [II_Valor DespAduan]=VSD_II_Valor_Desp_TEMP  
        [II_Valor IOF      ]=VSD_II_Valor_IOF_TEMP   
        [II_Valor Imposto  ]=VSD_II_Valor_Imp_TEMP   
        SaveTables

        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaC"
           Else Moveto "FaturaC"
        EndIf
        UnLockRecord
        FormKey

        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaiDD"
          			Moveto [Codigo da Empresa]
          			Locate EMPRESA,NUMDOC,SERIE,SEQIT
                			 If RetVal
                          Then While [Codigo da Empresa  ]=EMPRESA And
                                     [Numero do Documento]=NUMDOC  And
                                     [Serie do Documento ]=SERIE   And
                                     [Item do Documento  ]=SEQIT
                                     Del
                               EndWhile 
                				EndIf
           Else Moveto "FaturIDD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                              Del
                        EndWhile
                EndIf
        EndIf  

        If DynArraySize(Array_Lista_TEMP)>0
           Then For HQC From 1 To DynArraySize(Array_Lista_TEMP)
                    If APLIC_ORIGEM="NOTA"
                       Then End Down
                            [Codigo da Empresa  ]=EMPRESA
                            [Numero do Documento]=NUMDOC           
                            [Serie do Documento ]=SERIE
                            [Item do Documento  ]=NumVal(SEQIT)   
                       Else End Down
                            [Numero da OF       ]=ORDFAT
                            [Item da OF         ]=NumVal(SEQIT)
                    EndIf
                    [Sequencia_Doc_Importacao]=NumVal(SubStr(Array_Lista_TEMP[HQC],1,2))
                    [Numero_DocImportacao    ]=RTrim(SubStr(Array_Lista_TEMP[HQC],3,10))

                    If Rtrim(SubStr(Array_Lista_TEMP[HQC],13,2))<>""
                       Then If Len(Ltrim(Rtrim(SubStr(Array_Lista_TEMP[HQC],13,2))))=1
                               Then DIA="0"+SubStr(Array_Lista_TEMP[HQC],14,1)  
                               Else DIA=SubStr(Array_Lista_TEMP[HQC],13,2)
                            EndIf
                            [Data_Registro_DI_DSI_DA]=DateVal(DIA+"."+SubStr(Array_Lista_TEMP[HQC],16,2)+"."+SubStr(Array_Lista_TEMP[HQC],19,4))
                    EndIf

                    [Codigo_Exportador       ]=RTrim(SubStr(Array_Lista_TEMP[HQC],23,4))
                    [Nome_Exportador         ]=RTrim(SubStr(Array_Lista_TEMP[HQC],27,20))
                    [UF_Desembaraco          ]=RTrim(SubStr(Array_Lista_TEMP[HQC],47,2))
                    [Local_Desembaraco       ]=RTrim(SubStr(Array_Lista_TEMP[HQC],49,60))

                    If Rtrim(SubStr(Array_Lista_TEMP[HQC],109,2))<>""
                       Then If Len(LTrim(Rtrim(SubStr(Array_Lista_TEMP[HQC],109,2))))=1
                               Then DIA="0"+SubStr(Array_Lista_TEMP[HQC],110,1)  
                               Else DIA=SubStr(Array_Lista_TEMP[HQC],109,2)
                            EndIf
                            [Data_Desembaraco]=DateVal(DIA+"."+SubStr(Array_Lista_TEMP[HQC],112,2)+"."+SubStr(Array_Lista_TEMP[HQC],115,4))
                    EndIf

                    If HQC = DynArraySize(Array_Lista_TEMP)
                       Then SaveTables
                            UnLockRecord
                    EndIf
                EndFor
        EndIf

        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaiAD"
          			Moveto [Codigo da Empresa]
          			Locate EMPRESA,NUMDOC,SERIE,SEQIT
                			 If RetVal
                          Then While [Codigo da Empresa  ]=EMPRESA And
                                     [Numero do Documento]=NUMDOC  And
                                     [Serie do Documento ]=SERIE   And
                                     [Item do Documento  ]=SEQIT
                                     Del
                               EndWhile 
                				EndIf
           Else Moveto "FaturIAD"
                Moveto [Numero da OF]
                Locate ORDFAT,SEQIT
                If RetVal
                   Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                              Del
                        EndWhile
                EndIf
        EndIf

        If DynArraySize(Array_ListaB_TEMP)>0 
           Then For HQC From 1 To DynArraySize(Array_ListaB_TEMP)
                    If APLIC_ORIGEM="NOTA"
                       Then End Down
                            [Codigo da Empresa  ]=EMPRESA
                            [Numero do Documento]=NUMDOC
                            [Serie do Documento ]=SERIE
                            [Item do Documento  ]=NumVal(SEQIT) 
                       Else End Down
                            [Numero da OF       ]=ORDFAT
                            [Item da OF         ]=NumVal(SEQIT)
                    EndIf
                    [Sequencia_Doc_Importacao]=NumVal(SubStr(Array_ListaB_TEMP[HQC],1,2))
                    [Sequencia_Adicao        ]=NumVal(SubStr(Array_ListaB_TEMP[HQC],3,2))
                    [Numero_Adicao           ]=NumVal(SubStr(Array_ListaB_TEMP[HQC],5,10))
                    [Codigo_Fabricante       ]=RTrim(SubStr(Array_ListaB_TEMP[HQC],15,4))
                    [Nome_Fabricante         ]=RTrim(SubStr(Array_ListaB_TEMP[HQC],19,20))
                    [Valor_Desconto_Adicao   ]=NumVal(SubStr(Array_ListaB_TEMP[HQC],39,10))
                                                    
                    If HQC = DynArraySize(Array_ListaB_TEMP)
                       Then SaveTables
                            UnLockRecord
                    EndIf
                EndFor
        EndIf    
                                                   
        Release Vars VSD_II_BC_TEMP, VSD_II_Valor_Desp_TEMP, VSD_II_Valor_IOF_TEMP, VSD_II_Valor_Imp_TEMP,
                     Array_Lista_TEMP, Array_ListaB_TEMP

        UnLockRecord
        If APLIC_ORIGEM="NOTA"
           Then Moveto "NotaC"
           Else Moveto "FaturaC"
        EndIf
        UnLockRecord
        FormKey
        Moveto Tab_Ref
        Moveto [Codigo do Item]
        Locate Item 
        
EndSwitch

EndProc   ;  Exclusao_Declaracao()       

;*******************************************************************************
;* Carrega Array e Verifica Altera‡Æo                                          *
;*******************************************************************************
Proc Carrega_Array_FTIMP()
Private WHI, Tab_Ref

Carrega_Array_FTIMP=False
CANCELA_IMPORTACAO_FTIMP=True

Tab_Ref=Table()                     

VSD_II_BC_TEMP         = RegItem["II_BC"]
VSD_II_Valor_Desp_TEMP = RegItem["II_Valor DespAduan"]
VSD_II_Valor_IOF_TEMP  = RegItem["II_Valor IOF"]
VSD_II_Valor_Imp_TEMP  = RegItem["II_Valor Imposto"]

WHI=0
DynArray Array_Lista_TEMP[]  

UnLockRecord

If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaC"
   Else Moveto "FaturaC"
EndIf

UnLockRecord
FormKey

;Array diferente dos realizados acima, pois estes apenas mantem as informa‡äes para grava‡Æo posterior!
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaiDD"
   	  	Moveto [Codigo da Empresa]
   	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT
        If RetVal 
           Then While [Codigo da Empresa  ]=EMPRESA And
                      [Numero do Documento]=NUMDOC  And
                      [Serie do Documento ]=SERIE   And
                      [Item do Documento  ]=SEQIT
                      WHI=WHI+1
                      Array_Lista_TEMP[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Completa([Numero_DocImportacao],10," ")+
                                            Format("D13",[Data_Registro_DI_DSI_DA])+Completa([Codigo_Exportador],4," ")+
                                            Completa([Nome_Exportador],20," ")+[UF_Desembaraco]+Completa([Local_Desembaraco],60," ")+Format("D13",[Data_Desembaraco]) 
                      Skip
                      If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf                
   Else Moveto "FaturIDD"
        Moveto [Numero da OF]
        Locate ORDFAT,SEQIT
        If RetVal
           Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                      WHI=WHI+1
                      Array_Lista_TEMP[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Completa([Numero_DocImportacao],10," ")+
                                            Format("D13",[Data_Registro_DI_DSI_DA])+Completa([Codigo_Exportador],4," ")+
                                            Completa([Nome_Exportador],20," ")+[UF_Desembaraco]+Completa([Local_Desembaraco],60," ")+Format("D13",[Data_Desembaraco]) 
                      Skip
                      If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf   
EndIf

WHI=0
DynArray Array_ListaB_TEMP[]
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaiAD"
   	  	Moveto [Codigo da Empresa]
   	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT
        If RetVal
           Then While [Codigo da Empresa       ]=EMPRESA And
                      [Numero do Documento     ]=NUMDOC  And
                      [Serie do Documento      ]=SERIE   And
                      [Item do Documento       ]=SEQIT   

                      WHI=WHI+1
                      Array_ListaB_TEMP[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Alinhm(StrVal([Sequencia_Adicao]),2)+
                                             Completa(StrVal([Numero_Adicao]),10," ")+Completa([Codigo_Fabricante],4," ")+
                                             Completa([Nome_Fabricante],20," ")+Format("W10.2",[Valor_Desconto_Adicao])  
                      Skip
                      If EOT()
                         Then QuitLoop
                      EndIf
                EndWhile
        EndIf
   Else Moveto "FaturIAD"
        Moveto [Numero da OF]
        Locate ORDFAT,SEQIT
        If RetVal
           Then While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                      WHI=WHI+1
                      Array_ListaB_TEMP[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Alinhm(StrVal([Sequencia_Adicao]),2)+
                                             Completa(StrVal([Numero_Adicao]),10," ")+Completa([Codigo_Fabricante],4," ")+
                                             Completa([Nome_Fabricante],20," ")+Format("W10.2",[Valor_Desconto_Adicao])  
                      Skip
                      If EOT()
                         Then QuitLoop
                      EndIf
                EndWhile
        EndIf
EndIf

UnLockRecord
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaC"
   Else Moveto "FaturaC"  
EndIf
UnLockRecord
FormKey
debug
Moveto Tab_Ref
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaI"
        Moveto [Item do Documento]
        Locate EMPRESA,NUMDOC,SERIE,SEQIT

   Else Moveto "FaturaI"
        Moveto [Item da OF]
        Locate ORDFAT,SEQIT
EndIf

EndProc ;Carrega_Array() 
;*******************************************************************************
;* Verifica Importa‡äes                                                        *
;*******************************************************************************
Proc Verifica_Importacao()
Private Tab_Ref,Campo_Ant,Item,WHI,VSD_II_BC,VSD_II_Valor_Desp,VSD_II_Valor_IOF,VSD_II_Valor_Imp   

Verifica_Importacao = False
Tab_Ref=Table()
Campo_Ant=Field()
Item=[Codigo do Item]

If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaC"
   Else Moveto "FaturaC"
EndIf
UnLockRecord
FormKey
DEBUG
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaI"
        Moveto [Codigo da Empresa]
        Locate EMPRESA,NUMDOC,SERIE,SEQIT
        If RetVal
           Then VSD_II_BC        =[II_BC]
                VSD_II_Valor_Desp=[II_Valor DespAduan]
                VSD_II_Valor_IOF =[II_Valor IOF]
                VSD_II_Valor_Imp =[II_Valor Imposto]
           Else VSD_II_BC        =BlankNum()
                VSD_II_Valor_Desp=BlankNum()
                VSD_II_Valor_IOF =BlankNum()
                VSD_II_Valor_Imp =BlankNum()
        EndIf
   Else Moveto "FaturaI"
        Moveto [Numero da OF]
        Locate ORDFAT,SEQIT
        If RetVal
           Then VSD_II_BC        =[II_BC]
                VSD_II_Valor_Desp=[II_Valor DespAduan]
                VSD_II_Valor_IOF =[II_Valor IOF]
                VSD_II_Valor_Imp =[II_Valor Imposto]
           Else VSD_II_BC        =BlankNum()
                VSD_II_Valor_Desp=BlankNum()
                VSD_II_Valor_IOF =BlankNum()
                VSD_II_Valor_Imp =BlankNum() 
        EndIf
EndIf

If (VSD_II_BC+VSD_II_Valor_Desp+VSD_II_Valor_IOF+VSD_II_Valor_Imp) <> 0
   Then Verifica_Importacao=True
EndIf

If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaiDD"
   	  	Moveto [Codigo da Empresa]
   	  	Locate EMPRESA,NUMDOC,SERIE,SEQIT
        If RetVal 
           Then WHI=0
                DynArray Array_Lista[]  
                While [Codigo da Empresa  ]=EMPRESA And
                      [Numero do Documento]=NUMDOC  And
                      [Serie do Documento ]=SERIE   And
                      [Item do Documento  ]=SEQIT
                      WHI=WHI+1
                      Array_Lista[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Spaces(2)+Completa([Numero_DocImportacao],11," ")+
                                       Format("D13",[Data_Registro_DI_DSI_DA])+Spaces(2)+Completa([Codigo_Exportador],5," ")+
                                       Completa([Nome_Exportador],13," ")+Spaces(01)+[UF_Desembaraco]+Spaces(2)+Completa([Local_Desembaraco],13," ")+
                                       Spaces(01)+Format("D13",[Data_Desembaraco]) 
                      Skip
                      If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf   
   Else Moveto "FaturIDD"
        Moveto [Numero da OF]
        Locate ORDFAT,SEQIT
        If RetVal
           Then WHI=0
                DynArray Array_Lista[]  
                While [Numero da OF]=ORDFAT And [Item da OF]=SEQIT
                      WHI=WHI+1
                      Array_Lista[WHI]=Alinhm(StrVal([Sequencia_Doc_Importacao]),2)+Spaces(2)+Completa([Numero_DocImportacao],11," ")+
                                       Format("D13",[Data_Registro_DI_DSI_DA])+Spaces(2)+Completa([Codigo_Exportador],5," ")+
                                       Completa([Nome_Exportador],13," ")+Spaces(01)+[UF_Desembaraco]+Spaces(2)+Completa([Local_Desembaraco],13," ")+
                                       Spaces(01)+Format("D13",[Data_Desembaraco])
                      Skip
                      If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf   
EndIf

If IsAssigned(Array_Lista) 
   Then Verifica_Importacao=True
        Release Vars Array_Lista 
EndIf

UnLockRecord
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaC"
   Else Moveto "FaturaC"  
EndIf
UnLockRecord
FormKey
Moveto Tab_Ref
Moveto [Codigo do Item] 
Locate Item

EndProc  ;Verifica_Importacao()
;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
If Not IsAssigned(Carrega_Array_FTIMP) Then Carrega_Array_FTIMP=False EndIf
If Not IsAssigned(Verifica_Importacao) Then Verifica_Importacao="NAO" EndIf
If Not IsAssigned(Cancelar_Importacao) Then Cancelar_Importacao=False EndIf
If Not IsAssigned(CANCELA_IMPORTACAO_FTIMP) Then CANCELA_IMPORTACAO_FTIMP=False EndIf

TABEL_REF = Table()
COD_REF   = [Codigo do Item]         

Switch
  Case CHAVEI=8                  : CAMPO="" 
                                   Exclusao_Declaracao()
                                   Return
  Case Verifica_Importacao="SIM" : Verifica_Importacao() 
                                   Return
  Case Cancelar_Importacao=True  : CAMPO="" 
                                   If CANCELA_IMPORTACAO_FTIMP 
                                      Then Exclusao_Declaracao()
                                           CANCELA_IMPORTACAO_FTIMP=False
                                   EndIF
                                   Cancelar_Importacao=False
                                   Return
EndSwitch           

TELA          = 1
INICIO_DIALOG = True
CARREGA_IMP   = True   ;Para Carregar Vari veis de Impostos Adicinoais
Mouse Hide                      
 
If Carrega_Array_FTIMP
   Then Carrega_Array_FTIMP()
EndIf

Inicia_Variaveis("FATIDD")

Showdialog "Imposto de Importa‡„o" Proc "Sd_Adicionais"
   Trigger "OPEN"
   ;;;,"ARRIVE"
    Key "F1","F3",-61,"TAB","ReverseTab","PGDN","ENTER","INS","ESC","ClearArea",-66,-6,-147,-82,-81
     @ 06,00 height 17 width 80

   Frame Single From 00,00 to 04,77
   @ 00,01 ?? " Valores de Importa‡„o "

   Label  @ 01,01 "Base de C lculo " For "II_BC"
   Accept @ 01,18 Width 12 "$" picture "#*#.[###]" Tag "II_BC" to VSD_II_BC

   Label  @ 01,33 "Valor de DespAduan " For "II_Valor DespAduan"
   Accept @ 01,54 Width 12 "$" picture "#*#.[###]" Tag "II_Valor DespAduan" to VSD_II_Valor_Desp

   Label  @ 02,01 "      Valor IOF " For "II_Valor IOF"
   Accept @ 02,18 Width 12 "$" picture "#*#.[###]" Tag "II_Valor IOF" to VSD_II_Valor_IOF
    
   Label  @ 02,33 "     Valor Imposto " For "II_Valor Imposto"
   Accept @ 02,54 Width 12 "$" picture "#*#.[###]" Tag "II_Valor Imposto" to VSD_II_Valor_Imp

   Frame Single From 06,00 to 14,77
   @ 06,01 ?? " Declara‡„o de Importa‡„o "
   @ 07,01 ?? " Seq N£mero     DtRegistro  Exportador         UF  Local         Data      "
              ;XXX 9999999999  99.99.9999  9999 999999999999  99  999999999999  99.99.9999
              ;4   10          D10         4    13            2   12            D10       
   PickDynArray @08,01 Height 6 width 76
   Columns 1
    Array_Lista
     Tag "TG_RegistroA"
      To ArrayElement

EndDialog
Mouse Show

UnLockRecord
If APLIC_ORIGEM="NOTA"
   Then Moveto "NotaC"
   Else Moveto "FaturaC"  
EndIf
UnLockRecord
FormKey
Moveto TABEL_REF
Moveto [Codigo do Item] 
Locate COD_REF           
IsLockRecord()

Release Vars  TELA, TABELA, CARREGA_REGISTRO, CARREGA_IMP, COD_REF, TABEL_REF, WHI, WI, VSD_II_BC,
              VSD_II_Valor_Desp, VSD_II_Valor_IOF, VSD_II_Valor_Imp, Array_Lista, Array_ListaB, 
              INDICE, IND, CARREGA_VARIAVEL_IMPORTACAO, VSD_I_NumR, VSD_I_DataR, VSD_I_CodExportador, 
              VSDGNOMExportador, VSD_I_UF_DEC, VSD_I_Local_DEC, VSD_I_DATA_DEC, VSD_I_Seq_A, 
              VSD_I_NumA, VSD_I_Fabricante, VSDGNOMFabricante, VSD_I_Desconto, GRAVA_TABELA, CARREGA_FATI,
              TAB_REF, SEQDOCIMP, TabelaRef, WinArray52, WinArray53, INDICECO, FCI, DIA, HQC
              
Release Procs Inicia_Variaveis, Declaracao_Importacao, Gravar_Registros, Exclusao_Declaracao, Verifica_Importacao, 
              Carrega_Array_FTIMP 
