VERSION 5.00
Object = "{F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0"; "MSDATLST.OCX"
Object = "{00025600-0000-0000-C000-000000000046}#5.2#0"; "crystl32.ocx"
Object = "{69F9D01E-F1DE-11D4-9536-002018603DA2}#7.0#0"; "ControlNumber.ocx"
Begin VB.Form FSubCategoria 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Sub Categoria (01.040.00)"
   ClientHeight    =   3960
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   6975
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   3960
   ScaleWidth      =   6975
   Begin VB.Frame fraToma 
      Caption         =   "Datos para la Toma de Inventario"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1935
      Left            =   120
      TabIndex        =   13
      Top             =   1800
      Width           =   6735
      Begin VB.CommandButton CMDBUSCARINGRESO 
         Height          =   375
         Left            =   6000
         Picture         =   "0104000.frx":0000
         Style           =   1  'Graphical
         TabIndex        =   6
         ToolTipText     =   "Buscar"
         Top             =   360
         Width           =   375
      End
      Begin VB.CommandButton CMDBUSCARSALIDA 
         Height          =   375
         Left            =   6000
         Picture         =   "0104000.frx":0532
         Style           =   1  'Graphical
         TabIndex        =   8
         ToolTipText     =   "Buscar"
         Top             =   960
         Width           =   375
      End
      Begin MiControl.CtrlNumber TXTPORCENTAJE 
         Height          =   375
         Left            =   1920
         TabIndex        =   9
         Top             =   1440
         Width           =   855
         _ExtentX        =   1508
         _ExtentY        =   661
         BackColor       =   -2147483643
         BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
            Name            =   "MS Sans Serif"
            Size            =   8.25
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
      End
      Begin MSDataListLib.DataCombo DTCTIPOINGRESO 
         Height          =   315
         Left            =   1920
         TabIndex        =   5
         Top             =   360
         Width           =   3975
         _ExtentX        =   7011
         _ExtentY        =   556
         _Version        =   393216
         Style           =   2
         Text            =   ""
      End
      Begin MSDataListLib.DataCombo DTCTIPOSALIDA 
         Height          =   315
         Left            =   1920
         TabIndex        =   7
         Top             =   960
         Width           =   3975
         _ExtentX        =   7011
         _ExtentY        =   556
         _Version        =   393216
         Style           =   2
         Text            =   ""
      End
      Begin VB.Label Label1 
         AutoSize        =   -1  'True
         Caption         =   "Doc.Salida Ajuste Automatico"
         Height          =   390
         Left            =   240
         TabIndex        =   16
         Top             =   960
         Width           =   1380
         WordWrap        =   -1  'True
      End
      Begin VB.Label Label2 
         AutoSize        =   -1  'True
         Caption         =   "Doc.Ingreso Ajuste Automatico"
         Height          =   390
         Left            =   240
         TabIndex        =   15
         Top             =   360
         Width           =   1485
         WordWrap        =   -1  'True
      End
      Begin VB.Label Label3 
         AutoSize        =   -1  'True
         Caption         =   "% Diferencia Maxima:"
         Height          =   195
         Left            =   240
         TabIndex        =   14
         Top             =   1560
         Width           =   1515
      End
   End
   Begin Crystal.CrystalReport crSubCategorias 
      Left            =   3960
      Top             =   360
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   348160
      PrintFileLinesPerPage=   60
   End
   Begin MSDataListLib.DataCombo dtcCategoria 
      Height          =   315
      Left            =   1440
      TabIndex        =   3
      Top             =   1320
      Width           =   3615
      _ExtentX        =   6376
      _ExtentY        =   556
      _Version        =   393216
      Style           =   2
      Text            =   ""
   End
   Begin VB.CommandButton cmdBuscaCategoria 
      Height          =   375
      Left            =   5160
      Picture         =   "0104000.frx":0A64
      Style           =   1  'Graphical
      TabIndex        =   4
      ToolTipText     =   "Buscar"
      Top             =   1320
      Width           =   375
   End
   Begin VB.CommandButton cmdBuscar 
      Enabled         =   0   'False
      Height          =   375
      Left            =   2640
      Picture         =   "0104000.frx":0F96
      Style           =   1  'Graphical
      TabIndex        =   1
      ToolTipText     =   "Buscar"
      Top             =   360
      Width           =   375
   End
   Begin VB.TextBox txtDescripcion 
      Height          =   285
      Left            =   1440
      MaxLength       =   40
      TabIndex        =   2
      Top             =   810
      Width           =   4095
   End
   Begin VB.TextBox txtCodigo 
      Height          =   285
      Left            =   1440
      MaxLength       =   5
      TabIndex        =   0
      Top             =   360
      Width           =   1095
   End
   Begin VB.Image Image1 
      Height          =   630
      Left            =   5850
      Picture         =   "0104000.frx":14C8
      Stretch         =   -1  'True
      Top             =   300
      Width           =   585
   End
   Begin VB.Label lblCategoria 
      AutoSize        =   -1  'True
      Caption         =   "Categoria"
      Height          =   195
      Left            =   240
      TabIndex        =   12
      Top             =   1320
      Width           =   675
   End
   Begin VB.Label lblDescripcion 
      AutoSize        =   -1  'True
      Caption         =   "Descripción :"
      Height          =   195
      Left            =   240
      TabIndex        =   11
      Top             =   840
      Width           =   930
   End
   Begin VB.Label lblCodigo 
      AutoSize        =   -1  'True
      Caption         =   "Código :"
      Height          =   195
      Left            =   240
      TabIndex        =   10
      Top             =   360
      Width           =   585
   End
End
Attribute VB_Name = "fSubCategoria"
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_subcategorias As ADODB.Recordset
Public objSubcategoria As DB_INV_MANTENIMIENTOS.C_SUBCATEGORIA
Public objCategoria As DB_INV_MANTENIMIENTOS.C_CATEGORIA
Public obj_tipomovimiento As DB_INV_MANTENIMIENTOS.C_TIPOMOVIMIENTO

Private Sub cmdBuscaCategoria_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "classid"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "descr"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasMa.GObtenerRegistros objCategoria.ListarCategorias, ArrayBusqueda, 2, 2
    FBusquedasMa.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
      DtcCategoria.BoundText = GrecibeColumnaID
    End If
End Sub

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) = "classubid"
      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_subcategorias, ArrayBusqueda, 2, 2
      FBusquedasMa.Show vbModal
      
      If GrecibeUbicacion <> 0 And GrecibeUbicacion <= rs_subcategorias.RecordCount Then
            rs_subcategorias.AbsolutePosition = GrecibeUbicacion
            asigna_campos
    
            Call gestadoactualrs(Me, rs_subcategorias)
            Call gactualiza_barra(Me)
      End If
End Sub

Private Sub CMDBUSCARINGRESO_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "TYPEDOCID"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "descr"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasMa.GObtenerRegistros obj_tipomovimiento.ListarTipoMovimientoDes(1), ArrayBusqueda, 2, 2
    FBusquedasMa.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
      DTCTIPOINGRESO.BoundText = GrecibeColumnaID
    End If
End Sub

Private Sub CMDBUSCARSALIDA_Click()
'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "TYPEDOCID"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "descr"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasMa.GObtenerRegistros obj_tipomovimiento.ListarTipoMovimientoDes(0), ArrayBusqueda, 2, 2
    FBusquedasMa.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
      DTCTIPOSALIDA.BoundText = GrecibeColumnaID
    End If
End Sub

Private Sub dtcCategoria_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        DTCTIPOINGRESO.SetFocus
    End If
End Sub

Private Sub DTCTIPOINGRESO_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        DTCTIPOSALIDA.SetFocus
    End If
End Sub

Private Sub DTCTIPOSALIDA_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        TXTPORCENTAJE.SetFocus
    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
    TXTPORCENTAJE.Enteros = 3
    TXTPORCENTAJE.Decimales = 2
End Sub

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

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

Public Sub registro_anterior()
    Call Gregistro_anterior(Me, rs_subcategorias)
    Call asigna_campos
End Sub
Public Sub registro_siguiente()
    Call Gregistro_siguiente(Me, rs_subcategorias)
    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
    
        Set objSubcategoria = New DB_INV_MANTENIMIENTOS.C_SUBCATEGORIA
        Set objCategoria = New DB_INV_MANTENIMIENTOS.C_CATEGORIA
        Set obj_tipomovimiento = New DB_INV_MANTENIMIENTOS.C_TIPOMOVIMIENTO
        
        Call obtener_datos
        Call GCargaDataCombo(DtcCategoria, objCategoria.ListarCategorias, "classid", "descr")
        
        Call GCargaDataCombo(DTCTIPOINGRESO, obj_tipomovimiento.ListarTipoMovimientoDes(1), "TYPEDOCID", "DESCR")
        Call GCargaDataCombo(DTCTIPOSALIDA, obj_tipomovimiento.ListarTipoMovimientoDes(0), "TYPEDOCID", "DESCR")
        
        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:

    objSubcategoria.EliminarSubCategoria txtCodigo, DtcCategoria.BoundText
    Call gborrar_Registro(Me, rs_subcategorias, txtCodigo)
    Call actualizar_registro
    
Exit Sub

errhandler:
    MsgBox MensajedeError(ERR.Number, ERR.Description), vbDefaultButton1 + vbCritical, "Error"
    
    
End Sub
Function valida_datos()
    If GVDATO(txtCodigo.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Código de Sub Categoria", vbInformation, "Error"
        txtCodigo.SetFocus
        Exit Function
    End If
    If GVDATO(Txtdescripcion.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Descripción de Sub Categoria", vbInformation, "Error"
        Txtdescripcion.SetFocus
        Exit Function
    End If
    If GVDATO(DtcCategoria.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Categoria", vbInformation, "Error"
        DtcCategoria.SetFocus
        Exit Function
    End If
    If GVDATO(DTCTIPOINGRESO.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Tipo Documento de ingreso para ajuste automatico de inventario", vbInformation, "Error"
        DTCTIPOINGRESO.SetFocus
        Exit Function
    End If
   If GVDATO(DTCTIPOSALIDA.Text) = Empty Then
        valida_datos = False
        MsgBox "Ingrese Tipo Documento de salida para ajuste automatico de inventario", vbInformation, "Error"
        DtcCategoria.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
            objSubcategoria.AgregarSubCategoria Trim(txtCodigo), DtcCategoria.BoundText, Trim(Txtdescripcion), DTCTIPOINGRESO.BoundText, DTCTIPOSALIDA.BoundText, Val(TXTPORCENTAJE.Text)
        Else
            objSubcategoria.ActualizarSubCategoria txtCodigo, DtcCategoria.BoundText, Trim(Txtdescripcion), DTCTIPOINGRESO.BoundText, DTCTIPOSALIDA.BoundText, Val(TXTPORCENTAJE.Text)
        End If
        
        Call ggrabar_registro(Me)
        actualizar_registro
    End If
    
Exit Sub
errhandler:
    MsgBox MensajedeError(ERR.Number, ERR.Description), vbDefaultButton1 + vbCritical, "Error"

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)
    'Modificado el 11/12/2002 - MYE
    Txtdescripcion.SetFocus
    DtcCategoria.Enabled = False
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_subcategorias = objSubcategoria.ListarSubCategorias
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_subcategorias.RecordCount <> 0 Then
        txtCodigo.Text = rs_subcategorias!classubid
        Txtdescripcion.Text = rs_subcategorias!DESCR
        DtcCategoria.BoundText = rs_subcategorias!classid
        DTCTIPOINGRESO.BoundText = rs_subcategorias!typedocfisin
        DTCTIPOSALIDA.BoundText = rs_subcategorias!typedocfisout
        TXTPORCENTAJE.Text = rs_subcategorias!porcentdifference
    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

'   Procedimiento GCargaDataCombo
'   Elaborado por : Edgar Cancho Ruiz
'   Fecha : 12/09/2002

Public Sub GCargaDataCombo(objDataCombo As DataCombo, rsSource As Recordset, istrCampo1 As String, istrCampo2 As String)
    If rsSource.RecordCount <> 0 Then
        Set objDataCombo.DataSource = rsSource
        objDataCombo.DataField = istrCampo2
        Set objDataCombo.RowSource = rsSource
        objDataCombo.ListField = istrCampo2
        objDataCombo.BoundColumn = istrCampo1
        objDataCombo.BoundText = rsSource.Fields(istrCampo2)
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set objSubcategoria = Nothing
    Set objCategoria = Nothing
    Set rs_subcategorias = Nothing
    Set obj_tipomovimiento = Nothing
End Sub

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

Private Sub txtDescripcion_KeyPress(KeyAscii As Integer)
    KeyAscii = GBloqueaCaracter(KeyAscii)
    If KeyAscii = 13 Then
        If DtcCategoria.Enabled = True Then
           DtcCategoria.SetFocus
        Else
           DTCTIPOINGRESO.SetFocus
        End If
    End If
End Sub

Sub imprimir()
       
    crSubCategorias.ReportFileName = GstrReportesInv + "rpt_SubCategorias.rpt"
    crSubCategorias.WindowTitle = "Reporte de SubCategorías"
    crSubCategorias.Formulas(1) = "formusuario=stringvar strusuario; strusuario:='" & GCUSERID & "'"
    crSubCategorias.Formulas(2) = "formscreen=stringvar strscreen; strscreen:='01.040.00'"
    crSubCategorias.WindowState = crptMaximized
    crSubCategorias.WindowShowPrintSetupBtn = True
    crSubCategorias.Action = 1
    
End Sub

