VERSION 5.00
Object = "{00025600-0000-0000-C000-000000000046}#5.2#0"; "crystl32.ocx"
Begin VB.Form FDepartamento 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Departamento (01.250.00)"
   ClientHeight    =   2145
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   5355
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   2145
   ScaleWidth      =   5355
   Begin Crystal.CrystalReport CRDepartamento 
      Left            =   4080
      Top             =   480
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   348160
      PrintFileLinesPerPage=   60
   End
   Begin VB.TextBox txtDescripcion 
      Height          =   285
      Left            =   1560
      MaxLength       =   40
      TabIndex        =   2
      Top             =   1290
      Width           =   3255
   End
   Begin VB.TextBox txtCodigo 
      Height          =   285
      Left            =   1560
      MaxLength       =   5
      TabIndex        =   0
      Top             =   600
      Width           =   1095
   End
   Begin VB.CommandButton cmdBuscar 
      Enabled         =   0   'False
      Height          =   375
      Left            =   2760
      Picture         =   "0125000.frx":0000
      Style           =   1  'Graphical
      TabIndex        =   1
      ToolTipText     =   "Buscar"
      Top             =   600
      Width           =   375
   End
   Begin VB.Image Image1 
      Height          =   630
      Left            =   4170
      Picture         =   "0125000.frx":0532
      Stretch         =   -1  'True
      Top             =   330
      Width           =   585
   End
   Begin VB.Label lblDescripcion 
      AutoSize        =   -1  'True
      Caption         =   "Descripción :"
      Height          =   195
      Left            =   480
      TabIndex        =   4
      Top             =   1320
      Width           =   930
   End
   Begin VB.Label lblCodigo 
      AutoSize        =   -1  'True
      Caption         =   "Código :"
      Height          =   195
      Left            =   480
      TabIndex        =   3
      Top             =   600
      Width           =   585
   End
End
Attribute VB_Name = "FDepartamento"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False


Option Explicit
Public pb_editar As Boolean
Public pb_agregar As Boolean
Public pb_primerregistro As Boolean
Public pb_ultimoregistro As Boolean

Public pbderecho_agregar As Boolean
Public pbderecho_consultar As Boolean
Public pbderecho_editar As Boolean
Public pbderecho_borrar As Boolean
Public pbderecho_imprimir As Boolean
Public pb_tiposcreen As String

Public GrecibeUbicacion As BookmarkEnum
Public GrecibeColumnaID As String
Public GrecibeColumnaOpcional As String

Public rs_departamentos As ADODB.Recordset
Public objDepartamento As DB_MA_MANTENIMIENTOS.C_Departamento


Private Sub cmdBuscar_Click()
  'Lineas que llaman al Formulario de Búsqueda
  
  Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
  ArrayBusqueda(1, 1) = "Stateid"
  ArrayBusqueda(1, 2) = "Código "
  ArrayBusqueda(1, 3) = 1000
  ArrayBusqueda(2, 1) = "descr"
  ArrayBusqueda(2, 2) = "Descripción "
  ArrayBusqueda(2, 3) = 4000
    
        
  FBusquedasMa.GObtenerRegistros rs_departamentos, ArrayBusqueda, 2, 2
  FBusquedasMa.Show vbModal
  If GrecibeUbicacion <> 0 And GrecibeUbicacion <= rs_departamentos.RecordCount Then
        rs_departamentos.AbsolutePosition = GrecibeUbicacion
        asigna_campos
        Call gestadoactualrs(Me, rs_departamentos)
        Call gactualiza_barra(Me)
  End If
  
End Sub

Private Sub Form_Activate()

Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
Call gactualiza_barra(Me)
'lineas nuevas
If pbderecho_consultar = False Then
    Unload Me
End If

End Sub

Public Sub primer_registro()
Call Gprimer_registro(Me, rs_departamentos)
Call asigna_campos
End Sub

Public Sub ultimo_registro()
Call Gultimo_registro(Me, rs_departamentos)
Call asigna_campos
End Sub

Public Sub registro_anterior()
Call Gregistro_anterior(Me, rs_departamentos)
Call asigna_campos
End Sub
Public Sub registro_siguiente()
Call Gregistro_siguiente(Me, rs_departamentos)
Call asigna_campos
End Sub
Private Sub Form_Initialize()
Call gHabilitarReg(Me, False)
End Sub

Private Sub Form_Load()
'seguridad
Call gseguridad(Me)

If pbderecho_consultar Then
    Dim numreg As Long
    Set objDepartamento = New DB_MA_MANTENIMIENTOS.C_Departamento
    Call obtener_datos
    Call asigna_campos
    pb_primerregistro = True
'lineas nuevas
Else
    'Unload Me
   MsgBox ("No tiene Derechos de Consultar en este formulario"), vbCritical + vbDefaultButton1, "Mensaje"
End If
 Me.Top = 1300
 Me.Left = (Screen.Width - Me.Width) / 2
 
 
End Sub
Public Sub borrar_registro()

On Error GoTo errhandler

   objDepartamento.EliminarDepartamento txtCodigo
   Call gborrar_Registro(Me, rs_departamentos, txtCodigo)
   
Exit Sub
errhandler:
    MsgBox MensajedeError(ERR.Number, ERR.Description), vbDefaultButton1 + vbCritical, "Advertencia"
   
End Sub
Function valida_datos()
    If GVDATO(txtCodigo.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Código de Departamento", vbInformation, "Error"
        txtCodigo.SetFocus
        Exit Function
    End If
    
    If GVDATO(Txtdescripcion.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Descripción de Departamento", vbInformation, "Error"
        Txtdescripcion.SetFocus
        Exit Function
    End If
    
    valida_datos = True
End Function
Public Sub grabar_registro()

On Error GoTo errhandler

If valida_datos() = True Then
    ' llamada al proc de grabacion
    If pb_agregar Then
        objDepartamento.AgregarDepartamento Trim(txtCodigo), Trim(Txtdescripcion)
    Else
        objDepartamento.ActualizarDepartamento txtCodigo, Trim(Txtdescripcion)
    End If
    
    Call ggrabar_registro(Me)
    actualizar_registro
End If

Exit Sub
errhandler:
    MsgBox MensajedeError(ERR.Number, ERR.Description), vbDefaultButton1 + vbCritical, "Advertencia"

End Sub
Public Sub actualizar_registro()
'llamar al procedimiento de carga
Call obtener_datos
Call asigna_campos
'MsgBox ("Registros Actualizados")
End Sub
Public Sub agregar_registro()
    Call gagregar_registro(Me, txtCodigo)
End Sub
Public Sub modificar_registro()
    Call gmodificar_registro(Me, txtCodigo)
End Sub
Public Sub descartar_registro()
    ' Revertir cambios
    'adodc1.Recordset.CancelUpdate
    Call gdescartar_registro(Me)
    Call asigna_campos
End Sub


Sub obtener_datos()
    Set rs_departamentos = objDepartamento.ListarDepartamentos
End Sub

Sub salir_formulario()
' validar que no haya procesos pendientes
' si no hay problemas
MDIFMaestros.Toolbar1.Buttons(18).Caption = "Salir"    ' boton salir
Unload Me
End Sub

Sub asigna_campos() ' falta decidir si va ha ser public o private
If rs_departamentos.RecordCount <> 0 Then
    txtCodigo.Text = rs_departamentos!Stateid
    Txtdescripcion.Text = rs_departamentos!DESCR
End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If pb_editar Then
    If MsgBox("Desea Cancelar los Cambios", vbYesNo, "Esta Modificando un registro") = vbNo Then
        Cancel = True
    Else
        Call gdesactiva_barra
    End If
Else
    Call gdesactiva_barra
End If
  

End Sub

Private Sub Form_Unload(Cancel As Integer)
Set objDepartamento = Nothing
Set rs_departamentos = Nothing
End Sub

Private Sub txtCodigo_KeyPress(KeyAscii As Integer)
KeyAscii = GBloqueaCaracter(KeyAscii)
If KeyAscii = 13 Then
    Txtdescripcion.SetFocus
End If
End Sub

Sub imprimir()
  CRDepartamento.ReportFileName = GstrReportesInv + "rpt_departamentos.rpt"
  CRDepartamento.WindowTitle = "Reporte de Departamentos"
  CRDepartamento.Formulas(1) = "formusuario=stringvar strusuario; strusuario:='" & GCUSERID & "'"
  CRDepartamento.Formulas(2) = "formscreen=stringvar strscreen; strscreen:='01.250.00'"
  CRDepartamento.WindowState = crptMaximized
  CRDepartamento.WindowShowPrintSetupBtn = True
  CRDepartamento.Action = 1
End Sub
