VERSION 5.00
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "MSDATGRD.OCX"
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
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 FHistPreciosInv 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Historial de Precios de Inventario (01.275.00)"
   ClientHeight    =   6810
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   9465
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   6810
   ScaleWidth      =   9465
   Begin VB.CommandButton cmdActMaestra 
      Caption         =   "Actualizar Maestra"
      Enabled         =   0   'False
      Height          =   615
      Left            =   6960
      Picture         =   "0127500.frx":0000
      Style           =   1  'Graphical
      TabIndex        =   43
      ToolTipText     =   "Actualiza la maestra de articulos con la actual lista de precios"
      Top             =   960
      Width           =   1695
   End
   Begin Crystal.CrystalReport crListaPrecioInv 
      Left            =   5880
      Top             =   120
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   348160
      PrintFileLinesPerPage=   60
   End
   Begin VB.CommandButton cmdBuscar 
      Height          =   375
      Left            =   4440
      MouseIcon       =   "0127500.frx":014A
      MousePointer    =   99  'Custom
      Picture         =   "0127500.frx":029C
      Style           =   1  'Graphical
      TabIndex        =   36
      ToolTipText     =   "Buscar Lista de Precios"
      Top             =   120
      Width           =   375
   End
   Begin VB.CommandButton cmdEstado 
      Caption         =   "ACTIVAR / DESACTIVAR"
      Height          =   495
      Left            =   6480
      MouseIcon       =   "0127500.frx":07CE
      MousePointer    =   99  'Custom
      TabIndex        =   15
      ToolTipText     =   "Activar / Desactivar"
      Top             =   1680
      Width           =   2775
   End
   Begin VB.CommandButton cmdEmitir 
      Caption         =   "APROBAR"
      Height          =   735
      Left            =   7920
      MouseIcon       =   "0127500.frx":0AD8
      MousePointer    =   99  'Custom
      Picture         =   "0127500.frx":0DE2
      Style           =   1  'Graphical
      TabIndex        =   17
      ToolTipText     =   "Aprobar Lista de Precio"
      Top             =   2280
      Width           =   1335
   End
   Begin VB.CommandButton cmdImprimir 
      Caption         =   "IMPRIMIR"
      Height          =   735
      Left            =   6480
      MouseIcon       =   "0127500.frx":10EC
      MousePointer    =   99  'Custom
      Picture         =   "0127500.frx":13F6
      Style           =   1  'Graphical
      TabIndex        =   16
      ToolTipText     =   "Imprimir Lista de Precio"
      Top             =   2280
      Width           =   1335
   End
   Begin VB.CommandButton cmdCancelar 
      Caption         =   "Cancelar"
      Height          =   375
      Left            =   7200
      TabIndex        =   33
      Top             =   1680
      Visible         =   0   'False
      Width           =   375
   End
   Begin VB.CommandButton cmdGrabaLista 
      Caption         =   "Grabar"
      Height          =   375
      Left            =   7800
      TabIndex        =   32
      Top             =   1680
      Visible         =   0   'False
      Width           =   375
   End
   Begin VB.CommandButton cmdNuevaLista 
      Caption         =   "Nuevo"
      Height          =   375
      Left            =   6480
      TabIndex        =   31
      Top             =   1680
      Visible         =   0   'False
      Width           =   495
   End
   Begin VB.Frame FraDatosCab 
      Appearance      =   0  'Flat
      BackColor       =   &H80000004&
      Caption         =   "Datos Generales"
      ForeColor       =   &H80000008&
      Height          =   2535
      Left            =   120
      TabIndex        =   22
      Top             =   480
      Width           =   6135
      Begin VB.CommandButton cmdBusAlmacen 
         Height          =   375
         Left            =   5400
         MouseIcon       =   "0127500.frx":1700
         MousePointer    =   99  'Custom
         Picture         =   "0127500.frx":1852
         Style           =   1  'Graphical
         TabIndex        =   1
         ToolTipText     =   "Buscar Almacén"
         Top             =   360
         Width           =   375
      End
      Begin VB.CommandButton cmdBusPrecInv 
         Height          =   375
         Left            =   5400
         MouseIcon       =   "0127500.frx":1D84
         MousePointer    =   99  'Custom
         Picture         =   "0127500.frx":1ED6
         Style           =   1  'Graphical
         TabIndex        =   3
         ToolTipText     =   "Buscar Almacén"
         Top             =   840
         Width           =   375
      End
      Begin MSDataListLib.DataCombo dtcPrecioInv 
         Height          =   315
         Left            =   1560
         TabIndex        =   2
         Top             =   840
         Width           =   3735
         _ExtentX        =   6588
         _ExtentY        =   556
         _Version        =   393216
         Style           =   2
         Text            =   ""
      End
      Begin MSDataListLib.DataCombo dtcAlmacen 
         Height          =   315
         Left            =   1560
         TabIndex        =   0
         Top             =   360
         Width           =   3735
         _ExtentX        =   6588
         _ExtentY        =   556
         _Version        =   393216
         Style           =   2
         Text            =   ""
      End
      Begin MSComCtl2.DTPicker dtpFechaInicio 
         Height          =   375
         Left            =   1560
         TabIndex        =   4
         Top             =   1440
         Width           =   1335
         _ExtentX        =   2355
         _ExtentY        =   661
         _Version        =   393216
         Format          =   61341697
         CurrentDate     =   37567
      End
      Begin MSComCtl2.DTPicker dtpFechaFin 
         Height          =   375
         Left            =   1560
         TabIndex        =   5
         Top             =   1920
         Width           =   1335
         _ExtentX        =   2355
         _ExtentY        =   661
         _Version        =   393216
         Format          =   61341697
         CurrentDate     =   37567
      End
      Begin MSComCtl2.DTPicker dtpHoraInicio 
         Height          =   375
         Left            =   4680
         TabIndex        =   6
         Top             =   1440
         Width           =   1095
         _ExtentX        =   1931
         _ExtentY        =   661
         _Version        =   393216
         Format          =   61341698
         CurrentDate     =   37567
      End
      Begin MSComCtl2.DTPicker dtpHoraFin 
         Height          =   375
         Left            =   4680
         TabIndex        =   7
         Top             =   1920
         Width           =   1095
         _ExtentX        =   1931
         _ExtentY        =   661
         _Version        =   393216
         Format          =   61341698
         CurrentDate     =   37567
      End
      Begin VB.Label lblTipoPrecInv 
         Caption         =   "Tipo de Precio de Inventario"
         Height          =   495
         Left            =   360
         TabIndex        =   28
         Top             =   840
         Width           =   1095
      End
      Begin VB.Label lblHoraFin 
         AutoSize        =   -1  'True
         Caption         =   "Hora Fin"
         Height          =   195
         Left            =   3720
         TabIndex        =   27
         Top             =   1920
         Width           =   600
      End
      Begin VB.Label lblHoraInicio 
         AutoSize        =   -1  'True
         Caption         =   "Hora Inicio"
         Height          =   195
         Left            =   3720
         TabIndex        =   26
         Top             =   1440
         Width           =   765
      End
      Begin VB.Label lblFechaFin 
         AutoSize        =   -1  'True
         Caption         =   "Fecha Fin"
         Height          =   195
         Left            =   360
         TabIndex        =   25
         Top             =   1920
         Width           =   705
      End
      Begin VB.Label lblFechaInicio 
         AutoSize        =   -1  'True
         Caption         =   "Fecha Inicio"
         Height          =   195
         Left            =   360
         TabIndex        =   24
         Top             =   1440
         Width           =   870
      End
      Begin VB.Label lblAlmacen 
         AutoSize        =   -1  'True
         Caption         =   "Almacen"
         Height          =   195
         Left            =   360
         TabIndex        =   23
         Top             =   360
         Width           =   615
      End
   End
   Begin VB.Frame fraDatosItem 
      Appearance      =   0  'Flat
      BackColor       =   &H80000004&
      ForeColor       =   &H80000008&
      Height          =   1215
      Left            =   120
      TabIndex        =   18
      Top             =   5400
      Width           =   9135
      Begin VB.CommandButton cmdBuscaArticulo 
         Height          =   375
         Left            =   2760
         Picture         =   "0127500.frx":2408
         Style           =   1  'Graphical
         TabIndex        =   10
         TabStop         =   0   'False
         ToolTipText     =   "Buscar Artículo"
         Top             =   240
         Width           =   375
      End
      Begin VB.TextBox txtArticulo 
         Height          =   285
         Left            =   1080
         TabIndex        =   9
         Top             =   240
         Width           =   1575
      End
      Begin VB.CommandButton cmdEliminarItem 
         Caption         =   "Eliminar"
         Height          =   495
         Left            =   6480
         Picture         =   "0127500.frx":293A
         Style           =   1  'Graphical
         TabIndex        =   13
         Top             =   600
         Visible         =   0   'False
         Width           =   855
      End
      Begin VB.CommandButton cmdActualizaItem 
         Caption         =   "Actualizar"
         Height          =   495
         Left            =   7320
         MousePointer    =   99  'Custom
         Picture         =   "0127500.frx":2A3C
         Style           =   1  'Graphical
         TabIndex        =   14
         Top             =   600
         Visible         =   0   'False
         Width           =   855
      End
      Begin MiControl.CtrlNumber ctnPrecio 
         Height          =   375
         Left            =   1080
         TabIndex        =   11
         Top             =   645
         Width           =   1575
         _ExtentX        =   2778
         _ExtentY        =   661
         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 VB.CommandButton cmdNuevoItem 
         Caption         =   "Nuevo"
         Height          =   495
         Left            =   5640
         Picture         =   "0127500.frx":2F6E
         Style           =   1  'Graphical
         TabIndex        =   12
         Top             =   600
         Visible         =   0   'False
         Width           =   855
      End
      Begin VB.Label Label1 
         Caption         =   "Costo"
         Height          =   255
         Left            =   6480
         TabIndex        =   42
         Top             =   720
         Width           =   615
      End
      Begin VB.Label lblCosto 
         Alignment       =   1  'Right Justify
         BorderStyle     =   1  'Fixed Single
         Caption         =   "0"
         Height          =   255
         Left            =   7200
         TabIndex        =   38
         Top             =   720
         Width           =   1455
      End
      Begin VB.Label lblPrecioAnt 
         Alignment       =   1  'Right Justify
         BorderStyle     =   1  'Fixed Single
         Height          =   255
         Left            =   3960
         TabIndex        =   30
         Top             =   720
         Width           =   1575
      End
      Begin VB.Label lblPrecioAnterior 
         Caption         =   "Precio Anterior"
         Height          =   375
         Left            =   3240
         TabIndex        =   29
         Top             =   600
         Width           =   735
      End
      Begin VB.Label lblPrecio 
         Caption         =   "Nuevo Precio"
         Height          =   435
         Left            =   240
         TabIndex        =   21
         Top             =   645
         Width           =   495
      End
      Begin VB.Label lblArticulo 
         Caption         =   "Artículo"
         Height          =   255
         Left            =   240
         TabIndex        =   20
         Top             =   240
         Width           =   615
      End
      Begin VB.Label lblDescripcion 
         BorderStyle     =   1  'Fixed Single
         Height          =   285
         Left            =   3240
         TabIndex        =   19
         Top             =   240
         Width           =   5415
      End
   End
   Begin MSDataGridLib.DataGrid DBDetalle 
      Height          =   2175
      Left            =   120
      TabIndex        =   8
      Top             =   3120
      Width           =   9135
      _ExtentX        =   16113
      _ExtentY        =   3836
      _Version        =   393216
      HeadLines       =   1
      RowHeight       =   15
      BeginProperty HeadFont {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
      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
      Caption         =   "[Enter]_Modificar_[F3]_Eliminar Registro"
      ColumnCount     =   2
      BeginProperty Column00 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      BeginProperty Column01 
         DataField       =   ""
         Caption         =   ""
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   10250
            SubFormatType   =   0
         EndProperty
      EndProperty
      SplitCount      =   1
      BeginProperty Split0 
         BeginProperty Column00 
         EndProperty
         BeginProperty Column01 
         EndProperty
      EndProperty
   End
   Begin VB.CommandButton cmdSalir 
      Caption         =   "Salir"
      Height          =   255
      Left            =   7800
      TabIndex        =   41
      Top             =   1800
      Visible         =   0   'False
      Width           =   495
   End
   Begin VB.Label lblAprobar 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H80000004&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000002&
      Height          =   195
      Left            =   6840
      TabIndex        =   40
      Top             =   480
      Width           =   75
   End
   Begin VB.Label lblEstado 
      Appearance      =   0  'Flat
      AutoSize        =   -1  'True
      BackColor       =   &H80000004&
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000002&
      Height          =   120
      Left            =   6840
      TabIndex        =   39
      Top             =   240
      Width           =   75
   End
   Begin VB.Label lblEtiqueta 
      AutoSize        =   -1  'True
      Caption         =   "NUEVA LISTA DE PRECIO DE INVENTARIO"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H8000000D&
      Height          =   240
      Left            =   960
      TabIndex        =   37
      Top             =   120
      Width           =   4575
   End
   Begin VB.Label lblNroLista 
      AutoSize        =   -1  'True
      Caption         =   "Nro. Lista :"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H8000000D&
      Height          =   300
      Left            =   1320
      TabIndex        =   35
      Top             =   120
      Width           =   1320
   End
   Begin VB.Label lblNumero 
      Alignment       =   2  'Center
      BorderStyle     =   1  'Fixed Single
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Left            =   2760
      TabIndex        =   34
      Top             =   180
      Width           =   1575
   End
End
Attribute VB_Name = "FHistPreciosInv"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Modulo de Historico de Precios de Inventario
' Fecha : 08/11/2002

Option Explicit

'************************************
' Variables que almacenan la ubicacion
' de los Items en los Datacombos cuando
' se cambia de Screen

'Dim MstrTipoMovimiento As String
'Dim MstrAlmacen As String
'Dim MstrProveedor As String
'Dim MstrTipoDoc As String
'Dim MstrMoneda As String
'Dim MstrArticulo As String

'*************************************
'Variables para el Control de la Barra General
 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 pbderecho_anular As Boolean
 Public pbderecho_emitir As Boolean
 Public pb_tiposcreen As String
'*******************************************************************************************************************
' Variables para las ayudas
Public GrecibeUbicacion As BookmarkEnum
Public GrecibeColumnaID As String
Public GrecibeColumnaOpcional As String
Public GrecibeColumnaOpcional2 As String
Public GrecibeColumnaOpcional3 As String
'*************************************
' Objetos para cargar las ayudas
Private objTipoPrecioInv As DB_INV_MANTENIMIENTOS.C_TIPOPRECIO
Private objAlmacen As DB_INV_MANTENIMIENTOS.C_ALMACEN

Private objHist_Pre_Inv As DB_MA_MANTENIMIENTOS.C_HIST_PRE_INV

'*******************************************************************************

Dim objCorrelativo As DB_CORRELATIVO.C_Correlativos

Dim lngCorrelativo As Long 'correlativo por usuario, que se almacenara en cada insert en temporal
Dim lngNumeroListaPrecio As Long  'almacenara el correlativo de la lista de precio obtenido de In_Setup
Dim lngSecuencia As Long ' guardara el número de Item del detalle

Dim strHoraini As String
Dim strHorafin As String

Dim blnActualizandoItem As Boolean ' flag para controlar la modificación de un Item
Dim blnEditando As Boolean ' flag para controlar si se esta editando un documento
Dim intCancelar As Integer
Dim blnDatosOK As Boolean

Dim TTCambio As String

Private Sub cmdActMaestra_Click()
On Error GoTo TrataError
'SE ACTUALIZARA CUANDO SE ESTE EN VENTA MANUAL
    Dim LARRAY(1, 2) As Variant
    
    If MsgBox("Seguro que desea Actualizar Precio en Maestra", vbQuestion + vbYesNo, "Mensaje") = vbYes Then
       LARRAY(1, 1) = lblNumero.Caption
       LARRAY(1, 2) = dtcAlmacen.BoundText
       objHist_Pre_Inv.Auxiliar1 LARRAY
       MsgBox "Maestra actualizada con éxito", vbDefaultButton1 + vbExclamation, "Mensaje"
       lblEstado.Caption = "DESACTIVADO"
       cmdActMaestra.Enabled = False
    End If
    
    Exit Sub
TrataError:
    MsgBox ERR.Description, vbDefaultButton1 + vbExclamation, "Mensaje"
End Sub

Private Sub cmdActualizaItem_Click()
    Call objHist_Pre_Inv.ActualizaTmpDetalleHistPrecInv(txtArticulo.Text, DBDetalle.Columns(0).Text, _
                                         CDbl(lblPrecioAnt.Caption), CDbl(ctnPrecio.Text), lngCorrelativo)
                                         
    Call CargaGrid(lngCorrelativo)
    Call LimpiaCajaDetalle
    'Call PonerDatosGrig
    'blnActualizandoItem = False
    txtArticulo.Enabled = True
    txtArticulo.SetFocus
End Sub

Private Sub cmdBusAlmacen_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "siteid"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "name"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasMa.GObtenerRegistros objAlmacen.ListarAlmacenesPorStatus(1), ArrayBusqueda, 2, 2
    FBusquedasMa.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
        dtcAlmacen.BoundText = GrecibeColumnaID
    End If
End Sub

Private Sub cmdBuscaArticulo_Click()
   'Lineas que llaman al Formulario de Búsqueda
On Error GoTo TrataError
     GrecibeUbicacion = 0
     GrecibeColumnaID = Empty
     GrecibeColumnaOpcional = Empty
     GrecibeColumnaOpcional2 = Empty
     GrecibeColumnaOpcional3 = Empty
     
     Dim ArrayBusqueda(1 To 4, 1 To 3) As Variant
     Dim blnExiste As Boolean
     ArrayBusqueda(1, 1) = "Invtidsku"
     ArrayBusqueda(1, 2) = "Código "
     ArrayBusqueda(1, 3) = 1000
     ArrayBusqueda(2, 1) = "Descr"
     ArrayBusqueda(2, 2) = "Descripción "
     ArrayBusqueda(2, 3) = 4000
     ArrayBusqueda(3, 1) = "COSTO"
     ArrayBusqueda(3, 2) = "Costo "
     ArrayBusqueda(3, 3) = 4000
     ArrayBusqueda(4, 1) = "SLS_PRICE"
     ArrayBusqueda(4, 2) = "Precio"
     ArrayBusqueda(4, 3) = 4000
         
     FBusquedasMa.GObtenerRegistros objHist_Pre_Inv.ListarArticuloPorAlmacen(dtcAlmacen.BoundText, GstrCodMonedaBase, dtcPrecioInv.BoundText), ArrayBusqueda, 2, 2
     FBusquedasMa.Show vbModal
     
     If GrecibeUbicacion <> 0 Then
         txtArticulo.Text = GrecibeColumnaID
         lblDescripcion.Caption = GrecibeColumnaOpcional
         lblPrecioAnt.Caption = GrecibeColumnaOpcional3
         lblCosto.Caption = GrecibeColumnaOpcional2
         ctnPrecio.ValorPorDefecto
         blnExiste = objHist_Pre_Inv.ExisteArticulo(Trim(txtArticulo.Text), lngCorrelativo)
         If blnExiste Then
            LimpiaCajaDetalle
            MsgBox "Código de articulo ya registrado", vbExclamation, "Mensaje"
            Exit Sub
         End If
         'txtArticulo_KeyPress (13)
         On Error Resume Next
         lblPrecioAnt.Caption = GFormatodeNumero(objHist_Pre_Inv.ConvertirValor(CDbl(lblPrecioAnt.Caption), dtcAlmacen.BoundText, txtArticulo.Text, Now, dtcPrecioInv.BoundText, TTCambio, GintDecPrecio), GintDecPrecio)
         ctnPrecio.SetFocus
     End If
Exit Sub
TrataError:
If ERR.Number = 3021 Then
            LimpiaCajaDetalle
            MsgBox "No se le asigno moneda al producto", vbExclamation, "Mensaje"
            Exit Sub
         End If
End Sub

Private Sub cmdBuscar_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 4, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "Almacen"
    ArrayBusqueda(1, 2) = "Almacen "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "Nro_Lista"
    ArrayBusqueda(2, 2) = "Nro_Lista "
    ArrayBusqueda(2, 3) = 1000
    ArrayBusqueda(3, 1) = "Activado"
    ArrayBusqueda(3, 2) = "Activado "
    ArrayBusqueda(3, 3) = 1000
    ArrayBusqueda(4, 1) = "Aprobado"
    ArrayBusqueda(4, 2) = "Aprobado "
    ArrayBusqueda(4, 3) = 1000
      
          
    FBusquedasMa.GObtenerRegistros objHist_Pre_Inv.BusquedaListadePrecio(GstrSiteProce), ArrayBusqueda, 4, 2
    FBusquedasMa.Show vbModal
    If GrecibeUbicacion <> 0 Then
        Call CargaDatos(GrecibeColumnaID, GrecibeColumnaOpcional)
    End If
End Sub

Private Sub cmdBusPrecInv_Click()
    'Lineas que llaman al Formulario de Búsqueda
    
    Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
    ArrayBusqueda(1, 1) = "PRECLVID"
    ArrayBusqueda(1, 2) = "Código "
    ArrayBusqueda(1, 3) = 1000
    ArrayBusqueda(2, 1) = "DESCR"
    ArrayBusqueda(2, 2) = "Descripción "
    ArrayBusqueda(2, 3) = 4000
      
    FBusquedasMa.GObtenerRegistros objTipoPrecioInv.ListarTiposPrecioAyuda, ArrayBusqueda, 2, 2
    FBusquedasMa.Show vbModal
    
    If GrecibeUbicacion <> 0 Then
        dtcAlmacen.BoundText = GrecibeColumnaID
    End If
End Sub

Private Sub cmdcancelar_Click()
    'If MsgBox("Está seguro de Cancelar el Documento. ", vbQuestion + vbYesNo, "Cancelar") = vbNo Then
        'blnEditando = True
     '   Exit Sub
    'Else
        blnEditando = False
        
        'Call objMovimiento.EliminarTodoEnTmpIntraItem(lngCorrelativo)
        Call Limpiar
        Call HabilitaCampos(False)
        dtcAlmacen.Enabled = True
        dtcPrecioInv.Enabled = True
        cmdBusAlmacen.Enabled = True
        cmdBusPrecInv.Enabled = True
        cmdBuscar.Enabled = True
        Call HabilitaBotones(True)
    'End If
End Sub

Private Sub cmdEliminarItem_Click()
    If MsgBox("Está seguro de Eliminar. ", vbQuestion + vbYesNo, "Eliminar") = vbNo Then
        Exit Sub
    Else
        Call objHist_Pre_Inv.EliminarItemEnTmpDetalleHistPrecInv(DBDetalle.Columns(1).Text, lngCorrelativo)
        Call objHist_Pre_Inv.ActualizaNumRegEnTmpDetalleHistPrecInv(lngCorrelativo)
        Call CargaGrid(lngCorrelativo)
        Call LimpiaCajaDetalle
        Call PonerDatosGrig
    End If
End Sub

Private Sub cmdEmitir_Click()
On Error GoTo errhandler

    If lblNumero.Caption <> Empty Then
        If lblAprobar.Caption = "APROBADO" Then
            MsgBox "La Lista de Precios ya ha sido Aprobada", vbExclamation, "Aprobar"
            Exit Sub
        End If
        
        If lblEstado.Caption = "DESACTIVADO" Then
            MsgBox "No se puede Aprobar un Lista de Precio Desactivada", vbExclamation, "Aprobar"
            Exit Sub
        End If
        
        lngNumeroListaPrecio = lblNumero.Caption
        If MsgBox("Desea Aprobar el Documento? ", vbQuestion + vbYesNo, "Confirmar Aprobación") = vbNo Then
            Exit Sub
        Else
            objHist_Pre_Inv.AprobarLista dtcAlmacen.BoundText, lngNumeroListaPrecio, GCUSERID
            lblAprobar.Caption = "APROBADO" ' SE ACTUALIZA PANTALLA CON ESTADO APROBADO DE LA LISTA DE PRECIOS
            cmdActMaestra.Enabled = True
        End If
        
        If MsgBox("Documento Aprobado Correctamente.Desea Imprimir? ", vbQuestion + vbYesNo, "Aprobar") = vbNo Then
            GoTo SALTO
        Else
            Call cmdImprimir_Click
        End If
SALTO:
        'Call Limpiar
 
        Call HabilitaCampos(False)
        Call HabilitaBotones(True)
        Exit Sub
    Else
        MsgBox "Seleccione una Lista de Precios que desee Aprobar", vbExclamation, "Aprobar"
    End If
    
Exit Sub

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

Private Sub cmdEstado_Click()
On Error GoTo errhandler

    If lblNumero.Caption <> Empty Then
        
        lngNumeroListaPrecio = lblNumero.Caption
        If lblEstado.Caption = "ACTIVADO" Then
            If MsgBox("Desea Desactivar la Lista de Precio? ", vbQuestion + vbYesNo, "Confirmar Desactivación") = vbNo Then
                Exit Sub
            Else
                objHist_Pre_Inv.ActualizaEstado dtcAlmacen.BoundText, lngNumeroListaPrecio, 0
                lblEstado.Caption = "DESACTIVADO" ' SE ACTUALIZA PANTALLA CON ESTADO DEL DOCUMENTO
                cmdActMaestra.Enabled = False
            End If
        Else
            If MsgBox("Desea Activar la Lista de Precio? ", vbQuestion + vbYesNo, "Confirmar Activación") = vbNo Then
                Exit Sub
            Else
                objHist_Pre_Inv.ActualizaEstado dtcAlmacen.BoundText, lngNumeroListaPrecio, 1
                lblEstado.Caption = "ACTIVADO" ' SE ACTUALIZA PANTALLA CON ESTADO DEL DOCUMENTO
                
                If lblAprobar.Caption = "APROBADO" Then
                   cmdActMaestra.Enabled = True
                Else
                   cmdActMaestra.Enabled = False
                End If
                
            End If
        End If
        
        'PREGUNTO SI DESEA IMPRIMIR EL DOCUMENTO
        If MsgBox("Se cambio correctamente el estado de la Lista de Precio .Desea Imprimir? ", vbQuestion + vbYesNo, "Lista de Precio") = vbNo Then

            GoTo SALTO
        Else
            Call cmdImprimir_Click
        End If
SALTO:
        'Call Limpiar
        Call HabilitaCampos(False)
        Call HabilitaBotones(True)

        Exit Sub
    Else
        MsgBox "Seleccione una Lista de Precios que desee Activar/Desactivar", vbExclamation, "Lista de Precio"
    End If
    
Exit Sub

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

Private Sub cmdImprimir_Click()
Dim rsTemporal As ADODB.Recordset

Screen.MousePointer = 11

crListaPrecioInv.WindowState = crptMaximized
crListaPrecioInv.WindowShowPrintSetupBtn = True
crListaPrecioInv.WindowTitle = "HISTORIAL DE PRECIOS DE INVENTARIO"

If lblNumero.Caption <> Empty Then
    lngNumeroListaPrecio = lblNumero.Caption
    
        crListaPrecioInv.ReportFileName = GstrReportesInv & "rpt_ListaPrecioInvenrario.rpt"
    
        crListaPrecioInv.Formulas(1) = "formAlmacen= stringvar DescrAlmacen; DescrAlmacen:='" & dtcAlmacen.Text & "'"
        crListaPrecioInv.Formulas(2) = "formNroLista= stringvar NroLista; NroLista:='" & lngNumeroListaPrecio & "'"
        crListaPrecioInv.Formulas(3) = "formTipoPrecioInv= stringvar TipoPrecioInv; TipoPrecioInv:='" & dtcPrecioInv.Text & "'"
        crListaPrecioInv.Formulas(6) = "formStatus= stringvar Estado; Estado:='" & lblEstado.Caption & "'"
        crListaPrecioInv.Formulas(7) = "formNdPrecio=" & GintDecPrecio
        crListaPrecioInv.Formulas(8) = "formNdCosto=" & GintDecCosto
        crListaPrecioInv.Formulas(9) = "formTitulo= stringvar Titulo; Titulo:='HISTORIAL DE PRECIOS DE INVENTARIO'"
        crListaPrecioInv.Formulas(10) = "formScreen= stringvar Screen; Screen:='0127500'"
        crListaPrecioInv.Formulas(11) = "formUsuario=stringvar Usuario; Usuario:='" & GCUSERID & "'"
        crListaPrecioInv.Formulas(12) = "formFechaInicio= datevar FechaInicio; FechaInicio:=date(" & Format(dtpFechaInicio.Value, "YYYY,MM,dd") & ")"
        crListaPrecioInv.Formulas(13) = "formFechaFin= datevar FechaFin; FechaFin:=date(" & Format(dtpFechaFin.Value, "YYYY,MM,dd") & ")"
        crListaPrecioInv.Formulas(14) = "formHoraInicio='" & CStr(dtpHoraInicio.Value) & "'"
        crListaPrecioInv.Formulas(15) = "formHoraFin='" & CStr(dtpHoraFin.Value) & "'"
        crListaPrecioInv.Formulas(16) = "formAprobar='" & lblAprobar.Caption & "'"
        
        crListaPrecioInv.StoredProcParam(0) = dtcAlmacen.BoundText
        crListaPrecioInv.StoredProcParam(1) = lngNumeroListaPrecio
        
        crListaPrecioInv.Action = 1
        crListaPrecioInv.Reset

Else
    MsgBox "Seleccione una Lista de Precios que desee Imprimir", vbExclamation, "Imprimir"
End If

Screen.MousePointer = 0
End Sub

Private Sub cmdNuevaLista_Click()
    blnEditando = True
        
    Call HabilitaCampos(True)
    Call HabilitaBotones(False)
    Call Limpiar
    
    ' SE OBTIENE EL NUMERO DE CORRELATIVO INDENTIFICADOR POR USUARIO
    lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
   
    dtcAlmacen.SetFocus
End Sub

Private Sub cmdNuevoItem_Click()
    lngSecuencia = objCorrelativo.SgteItemEnDetalleHistPreInv(lngCorrelativo)

    objHist_Pre_Inv.AgregaEnTemporalDetallelleHistPrecInv lngCorrelativo, dtcAlmacen.BoundText, lngSecuencia, _
                                              txtArticulo.Text, lblDescripcion.Caption, GFormatodeNumero(CDbl(lblCosto.Caption), GintDecCosto), GFormatodeNumero(CDbl(lblPrecioAnt.Caption), GintDecPrecio), GFormatodeNumero(CDbl(lblPrecioAnt.Caption) - CDbl(ctnPrecio.Text), GintDecPrecio), GFormatodeNumero(CDbl(ctnPrecio.Text), GintDecPrecio)
    
    Call CargaGrid(lngCorrelativo)
    Call LimpiaCajaDetalle
    txtArticulo.SetFocus
End Sub

Private Sub cmdSalir_Click()
    Unload Me
End Sub

Private Sub ctnPrecio_GotFocus()
ctnPrecio.BackColor = GC_ColorEnfoque
End Sub

Private Sub ctnPrecio_KeyPress(KeyAscii As Integer)
On Error GoTo TrataError
    If KeyAscii = 13 Then
        If Val(ctnPrecio.Text) = 0 Then
            MsgBox "El Campo Precio no puede ser cero", vbExclamation, "Mensaje"
            ctnPrecio.SetFocus
            Exit Sub
        End If

        If CDbl(ctnPrecio.Text) < CDbl(lblCosto.Caption) Then
            MsgBox "El Campo Precio no puede ser menor que el costo", vbExclamation, "Mensaje"
            ctnPrecio.SetFocus
            Exit Sub
        End If
        
        If blnActualizandoItem Then
            Call cmdActualizaItem_Click
        Else
            Dim rsTemporal As ADODB.Recordset
            Set rsTemporal = objHist_Pre_Inv.ValidaCodigoIngresado(dtcAlmacen.BoundText, Trim(txtArticulo.Text), GstrCodMonedaBase, dtcPrecioInv.BoundText)
            
            If rsTemporal.RecordCount <> 0 Then ' si no esta vacio
                If objHist_Pre_Inv.ExisteArticulo(Trim(txtArticulo.Text), lngCorrelativo) Then
                        MsgBox "Código de articulo ya registrado", vbExclamation, "Mensaje"
                        txtArticulo.SetFocus
                        Exit Sub
                End If
                
                txtArticulo.Text = rsTemporal!INVTIDSKU
                lblDescripcion.Caption = rsTemporal!DESCR
                lblCosto.Caption = GFormatodeNumero(rsTemporal!COSTO, GintDecCosto)
                lblPrecioAnt.Caption = GFormatodeNumero(rsTemporal!SLS_PRICE, GintDecPrecio)
                lblPrecioAnt.Caption = GFormatodeNumero(objHist_Pre_Inv.ConvertirValor(CDbl(lblPrecioAnt.Caption), dtcAlmacen.BoundText, txtArticulo.Text, Now, dtcPrecioInv.BoundText, TTCambio, GintDecPrecio), GintDecPrecio)
                cmdNuevoItem_Click
            Else
                MsgBox "Código ingresado no existe", vbExclamation, "Mensaje"
                Set rsTemporal = Nothing
                txtArticulo.SetFocus
                Exit Sub
            End If
            
            Set rsTemporal = Nothing
        End If
        
    End If
Exit Sub
TrataError:
If ERR.Number = 3021 Then
            LimpiaCajaDetalle
            MsgBox "No se le asigno moneda al producto", vbExclamation, "Mensaje"
            Exit Sub
         End If
End Sub

Public Sub CargaDatos(strSITEID As String, strBATNBR As String)
On Error GoTo TrataError
    Call Limpiar
    Dim rsTemporal As ADODB.Recordset
    Set rsTemporal = objHist_Pre_Inv.SeleccionaEnCabecera(strSITEID, strBATNBR)
    
    ' CARGO LA CABECERA
    lblNumero.Caption = rsTemporal!BATNBRPRICELEVELTEM
    If rsTemporal!Status Then
        lblEstado.Caption = "ACTIVADO"
    Else
        lblEstado.Caption = "DESACTIVADO"
    End If
    
    If rsTemporal!STKPRICESEND Then
        lblAprobar.Caption = "APROBADO"
    Else
        lblAprobar.Caption = "NO APROBADO"
    End If
    
    If lblEstado.Caption = "ACTIVADO" And lblAprobar.Caption = "APROBADO" Then
       cmdActMaestra.Enabled = True
    Else
       cmdActMaestra.Enabled = False
    End If
           
    
    dtcAlmacen.BoundText = rsTemporal!SITEID
    dtcPrecioInv.BoundText = rsTemporal!PRECLVID
    dtpFechaInicio.Value = rsTemporal!STARTDATEPRICE
    dtpFechaFin.Value = rsTemporal!ENDDATEPRICE
    dtpHoraInicio.Value = CDate(rsTemporal!STARTTIMEPRICE)
    dtpHoraFin.Value = CDate(rsTemporal!ENDTIMEPRICE)

    ' CARGO EL DETALLE
    Set DBDetalle.DataSource = objHist_Pre_Inv.SeleccionaEnDetalle(strSITEID, strBATNBR)
    Call FormatoGrilla
    DBDetalle.Refresh
    
    Set rsTemporal = Nothing
    
    Call PonerDatosGrig
    
    Exit Sub
    
TrataError:
    Call Limpiar
    MsgBox "Nro de Ingreso no Registrado en Almacen Seleccionado", vbExclamation, "Error en Consulta"
End Sub

Private Sub ctnPrecio_LostFocus()
    blnActualizandoItem = False
    txtArticulo.Enabled = True
    cmdBuscaArticulo.Enabled = True
    ctnPrecio.BackColor = GC_ColorDefecto
End Sub

Private Sub DBDetalle_KeyUp(KeyCode As Integer, Shift As Integer)
    DBDetalle.Refresh
    PonerDatosGrig
    
    If pb_editar Then ' si se esta modificando una fórmula
        If KeyCode = vbKeyF3 Then
            If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
                cmdEliminarItem_Click
                Exit Sub
            End If
        End If
        If KeyCode = 13 Then
            If DBDetalle.Bookmark <> 0 Or Not IsNull(DBDetalle.Bookmark) Then
                    txtArticulo.Enabled = False
                    cmdBuscaArticulo.Enabled = False
                    blnActualizandoItem = True
                    ctnPrecio.SetFocus
                Exit Sub
            End If
        End If
    End If
End Sub

Private Sub PonerDatosGrig()
On Error GoTo TrataError
    If DBDetalle.Bookmark = 0 Or IsNull(DBDetalle.Bookmark) Then
        ctnPrecio.ValorPorDefecto
        txtArticulo.Text = Empty
        lblDescripcion.Caption = Empty
        lblPrecioAnt.Caption = Empty
        lblCosto.Caption = GFormatodeNumero(0, GintDecCosto)
    Else
        ctnPrecio.Text = Format(DBDetalle.Columns(5).Text, GMascara(GintDecPrecio))
        txtArticulo.Text = DBDetalle.Columns(1).Text
        lblDescripcion.Caption = DBDetalle.Columns(2).Text
        lblPrecioAnt.Caption = Format(DBDetalle.Columns(4).Text, GMascara(GintDecPrecio))
        lblCosto.Caption = GFormatodeNumero(DBDetalle.Columns(3).Text, GintDecCosto)
    End If
    Exit Sub
TrataError:
End Sub

Private Sub DBDetalle_LostFocus()
If Not blnActualizandoItem Then
    txtArticulo.Enabled = True
    blnActualizandoItem = False
Else
    txtArticulo.Enabled = False
    blnActualizandoItem = True
End If
End Sub

Private Sub DBDetalle_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    DBDetalle.Refresh
    PonerDatosGrig
End Sub

Private Sub dtcAlmacen_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        dtcPrecioInv.SetFocus
    End If
End Sub

Private Sub dtcPrecioInv_Click(Area As Integer)
   
   If Trim(dtcPrecioInv.BoundText) = "003" Or Trim(dtcPrecioInv.BoundText) = "004" Then
      dtpFechaInicio.Enabled = True
      dtpHoraInicio.Enabled = True
      dtpFechaFin.Enabled = False
      dtpHoraFin.Enabled = False
   Else
     If Trim(dtcPrecioInv.BoundText) = "005" Then
        dtpFechaInicio.Enabled = True
        dtpHoraInicio.Enabled = True
        dtpFechaFin.Enabled = True
        dtpHoraFin.Enabled = True
     Else
        dtpFechaInicio.Enabled = False
        dtpHoraInicio.Enabled = False
        dtpFechaFin.Enabled = False
        dtpHoraFin.Enabled = False
     End If
   End If
     
End Sub

Private Sub dtcPrecioInv_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        dtpFechaInicio.SetFocus
    End If
End Sub

Private Sub dtpFechaFin_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        dtpHoraInicio.SetFocus
    End If
End Sub

Private Sub dtpFechaInicio_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        dtpFechaFin.SetFocus
    End If
End Sub

Private Sub dtpHoraFin_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        txtArticulo.SetFocus
    End If
End Sub

Private Sub dtpHoraInicio_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        dtpHoraFin.SetFocus
    End If
End Sub

Private Sub Form_Activate()
    'Call UbicaItemEnDataCombo
 'On Error GoTo SALTO
  '  dtpFechaProceso.Enabled = objMovimiento.HabilitarFechaProceso
'SALTO:
 '********************************************************************************
 'Código que se Tiene que Copiar para Invocar a la Rutina de Seguridad para poder
    Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
    Call gactualiza_barra(Me)
    If pbderecho_consultar = False Then
       Unload Me
    End If
 '********************************************************************************
    Call Botones_Navegacion_barra ' desactiva los botones de navegacion
End Sub

Private Sub Form_Deactivate()
'    MstrTipoMovimiento = dtcTipoIngreso.BoundText
'    MstrAlmacen = dtcAlmacen.BoundText
'    MstrProveedor = dtcProveedor.BoundText
'    MstrTipoDoc = dtcTipoDoc.BoundText
'    MstrMoneda = dtcMoneda.BoundText
'    MstrArticulo = txtArticulo.Text
End Sub

Private Sub Form_Load()
Screen.MousePointer = 11
 '********************************************************************************
 'Código que se Tiene que Copiar para Invocar a la Rutina de Seguridad para poder
  Call gseguridad(Me)
  If pbderecho_consultar Then
  Else
     MsgBox ("No tiene Derechos de Consultar en este formulario"), vbCritical + vbDefaultButton1, "Mensaje"
     Screen.MousePointer = 0
     Exit Sub
  End If
 '********************************************************************************
         Call InstanciaObjetos
         Call CargaGrid(-1)
         ctnPrecio.Enteros = 10
         ctnPrecio.Decimales = GintDecPrecio
         ctnPrecio.PermitirNegativos = False
         ctnPrecio.ValorPorDefecto
         dtpFechaInicio.Value = Now
         dtpFechaFin.Value = Now
         Call HabilitaCampos(False)
         Call HabilitaBotones(True)
         Call LlenaDataCombos
    
        Me.Top = 100
        Me.Left = (Screen.Width - Me.Width) / 2
    
        TTCambio = GstrTipoCambioVentas
      
Screen.MousePointer = 0
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If blnEditando Then
        If MsgBox("Desea Salir y Cancelar la Lista de Precios actual? ", vbQuestion + vbYesNo, "Salir") = vbNo Then
            Cancel = 1
        Else
            Cancel = 0
            blnEditando = False
            pb_agregar = False
            pb_editar = False
            Call gdesactiva_barra
        End If
    Else
        Call gdesactiva_barra
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call DestruyeObjetos
End Sub
Private Sub LimpiaCajaDetalle()
    txtArticulo.Text = Empty
    lblDescripcion.Caption = Empty
    ctnPrecio.ValorPorDefecto
    lblPrecioAnt.Caption = Empty
    lblCosto.Caption = Empty
End Sub


' Procedimiento para cargar DataCombos
Public Sub CargaDataCombo(objDataCombo As DataCombo, rsSource As Recordset, istrCampo1 As String, istrCampo2 As String)

    Set objDataCombo.DataSource = rsSource
    objDataCombo.DataField = istrCampo2
    Set objDataCombo.RowSource = rsSource
    objDataCombo.ListField = istrCampo2
    objDataCombo.BoundColumn = istrCampo1
    
    If Not rsSource.EOF Then
        objDataCombo.BoundText = rsSource.Fields(istrCampo2)
    End If

End Sub

' Procedimiento de carga de los DataCombos del formulario
Private Sub LlenaDataCombos()
    Call CargaDataCombo(dtcPrecioInv, objTipoPrecioInv.ListarTiposPrecios, "PRECLVID", "DESCR")
    Call CargaDataCombo(dtcAlmacen, objAlmacen.ListarAlmacenesPorStatus(1), "SiteId", "Name")
End Sub

Private Sub UbicaItemEnDataCombo()
On Error Resume Next
'    dtcTipoIngreso.BoundText = MstrTipoMovimiento
'    dtcAlmacen.BoundText = MstrAlmacen
'    dtcProveedor.BoundText = MstrProveedor
'    dtcTipoDoc.BoundText = MstrTipoDoc
'    dtcMoneda.BoundText = MstrMoneda
'    txtArticulo.Text = MstrArticulo
End Sub

Private Sub InstanciaObjetos()
    Set objTipoPrecioInv = New DB_INV_MANTENIMIENTOS.C_TIPOPRECIO
    Set objAlmacen = New DB_INV_MANTENIMIENTOS.C_ALMACEN
    Set objCorrelativo = New DB_CORRELATIVO.C_Correlativos
    Set objHist_Pre_Inv = New DB_MA_MANTENIMIENTOS.C_HIST_PRE_INV
End Sub

Private Sub DestruyeObjetos()
    Set objTipoPrecioInv = Nothing
    Set objAlmacen = Nothing
    Set objCorrelativo = Nothing
    Set objHist_Pre_Inv = Nothing
End Sub

Private Sub HabilitaCampos(blnValor As Boolean)
    FraDatosCab.Enabled = blnValor
    fraDatosItem.Enabled = blnValor
    lblNroLista.Visible = Not blnValor
    lblNumero.Visible = Not blnValor
    cmdBuscar.Visible = Not blnValor
    lblEtiqueta.Visible = blnValor
End Sub

Private Sub HabilitaBotones(blnValor As Boolean)
    If blnValor Then
        cmdEstado.Enabled = pbderecho_emitir
        cmdImprimir.Enabled = pbderecho_imprimir
        cmdEmitir.Enabled = pbderecho_emitir
    Else
        cmdEstado.Enabled = blnValor
        cmdImprimir.Enabled = blnValor
        cmdEmitir.Enabled = blnValor
    End If
End Sub
Private Sub Limpiar()
'funcionabilidad    : pone en blanco todos los controles de un formulario

Dim curcontrol As Control
    With Me
    For Each curcontrol In .Controls
        If TypeOf curcontrol Is TextBox Then
                curcontrol.Text = ""
        End If
         If TypeOf curcontrol Is DataCombo Then
                 curcontrol.Text = ""
        End If
         If TypeOf curcontrol Is ComboBox Then
              curcontrol.Text = ""
        End If
        If TypeOf curcontrol Is CtrlNumber Then
              curcontrol.ValorPorDefecto
        End If
        If TypeOf curcontrol Is CheckBox Then
              curcontrol.Value = 0
        End If
        
        If TypeOf curcontrol Is DTPicker Then
              curcontrol.Value = Now
        End If
    
    Next
    End With
    
    'dtpFechaProceso.Value = GDatFechaProceso
    
    lblDescripcion.Caption = Empty
    lblNumero.Caption = Empty
    lblEstado.Caption = Empty
    lblAprobar.Caption = Empty
    lblPrecioAnt.Caption = Empty
    lblCosto.Caption = Empty
    Call CargaGrid(-1)
    Call LlenaDataCombos
    
End Sub

Private Sub CargaGrid(lngId As Long)
    
    Set DBDetalle.DataSource = objHist_Pre_Inv.SeleccionaEnTemporalDetalleHistPrecInv(lngId)
    Call FormatoGrilla
    DBDetalle.Refresh
    
End Sub
Private Sub FormatoGrilla()
    DBDetalle.Columns(0).Width = 800
    DBDetalle.Columns(1).Width = 900
    DBDetalle.Columns(2).Width = 4000
    DBDetalle.Columns(3).Width = 900
    DBDetalle.Columns(3).Alignment = dbgRight
    DBDetalle.Columns(3).NumberFormat = GMascara(GintDecCosto)
    DBDetalle.Columns(4).Width = 900
    DBDetalle.Columns(4).Alignment = dbgRight
    DBDetalle.Columns(4).NumberFormat = GMascara(GintDecPrecio)
    DBDetalle.Columns(5).Width = 1000
    DBDetalle.Columns(5).Alignment = dbgRight
    DBDetalle.Columns(5).NumberFormat = GMascara(GintDecPrecio)
End Sub

Private Sub cmdGrabaLista_Click()
On Error GoTo errhandler
    
    
    If ValidaDatos = True Then 'si los datos se ingresaron correctamente
        If MsgBox("Desea Grabar la Lista de Precios? ", vbQuestion + vbYesNo, "Confirmar Grabación") = vbNo Then
            Call cmdcancelar_Click
            Exit Sub
        End If

        strHoraini = CStr(Format(dtpHoraInicio.Value, "hh:mm"))
        strHorafin = CStr(Format(dtpHoraFin.Value, "hh:mm"))
        
        If dtcAlmacen.Enabled Then 'SI SE ESTA AGREGANDO UNA NUEVA LISTA
            lngNumeroListaPrecio = objHist_Pre_Inv.AgregarHistorialPrecInv(dtcAlmacen.BoundText, GstrSiteProce, GCUSERID, Now, Empty, Empty, dtcPrecioInv.BoundText, _
                                                                        dtpFechaInicio.Value, dtpFechaFin.Value, strHoraini, strHorafin, lngCorrelativo)
    
            lblNumero.Caption = lngNumeroListaPrecio ' se asigna el valor del numero de movimiento
            lblEstado.Caption = "ACTIVADO"
            lblAprobar.Caption = "NO APROBADO"
        Else
            objHist_Pre_Inv.ModificarHistorialPrecInv CLng(lblNumero.Caption), dtcAlmacen.BoundText, dtpFechaInicio.Value, dtpFechaFin.Value, strHoraini, strHorafin, lngCorrelativo
        End If
        
        blnEditando = False
        If MsgBox("Historial de Precio de Inventario Grabado Correctamente.Desea Imprimir? ", vbQuestion + vbYesNo, "Historial de Precio de Inventario Nro: " & lblNumero.Caption) = vbNo Then
           GoTo SALTO
        Else
             Call cmdImprimir_Click
        End If
        
SALTO:

        Call HabilitaCampos(False)
        Call HabilitaBotones(True)
        
    End If

Exit Sub

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

End Sub

Private Function ValidaDatos() As Boolean
ValidaDatos = True
blnDatosOK = True
    If Not (ValidaDatosCab) Then
        ValidaDatos = False
        blnDatosOK = False
        Exit Function
    End If
    If Not (ValidaDatosDet) Then
        ValidaDatos = False
        blnDatosOK = False
        Exit Function
    End If
End Function

Private Function ValidaDatosCab() As Boolean
ValidaDatosCab = True

If DBDetalle.Bookmark = 0 Or IsNull(DBDetalle.Bookmark) Then
    If dtcAlmacen.Text = Empty Then
        MsgBox "Ingrese Almacen", vbExclamation, "Mensaje"
        dtcAlmacen.SetFocus
        GoTo Final
    End If
    If dtcPrecioInv.Text = Empty Then
        MsgBox "Ingrese Tipo de Precio de Inventario", vbExclamation, "Mensaje"
        dtcPrecioInv.SetFocus
        GoTo Final
    End If
    If (dtpFechaInicio.Value > dtpFechaFin.Value) Then
        MsgBox "Error Ingresando Rango de Fechas", vbExclamation, "Mensaje"
        GoTo Final
    End If
    
End If
    Exit Function
    
Final:
    ValidaDatosCab = False
        
End Function

Private Function ValidaDatosDet() As Boolean
ValidaDatosDet = True

    If IsNull(DBDetalle.Bookmark) Then
        MsgBox "Debe existir al menos un registro en detalle de documento", vbExclamation, "Mensaje"
        ValidaDatosDet = False
        txtArticulo.SetFocus
    End If
    
End Function

Public Sub agregar_registro()
    Call cmdNuevaLista_Click
    pb_agregar = True
    pb_editar = True
    Call gactualiza_barra(Me) ', pb_primerregistro, pb_ultimoregistro)
    Call Botones_Navegacion_barra
    
End Sub

Public Sub descartar_registro()
    ' Revertir cambios
    Call cmdcancelar_Click
    pb_agregar = False
    pb_editar = False
    Call gactualiza_barra(Me)
    Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
        MsgBox ("Cambios Descartados"), vbInformation + vbDefaultButton1, "Mensaje"
    Call Botones_Navegacion_barra
End Sub

Public Sub Botones_Navegacion_barra()
    ' funcionabilidad   : desactiva todos los gbotones de la barra
    gformmdi.Toolbar1.Buttons(8).Enabled = False    ' Boton Refrescar
    gformmdi.Toolbar1.Buttons(10).Enabled = False   ' Boton Primero
    gformmdi.Toolbar1.Buttons(11).Enabled = False   ' Boton Anterior
    gformmdi.Toolbar1.Buttons(12).Enabled = False   ' Boton Siguiente
    gformmdi.Toolbar1.Buttons(13).Enabled = False   ' Boton Ultimo
End Sub

Public Sub modificar_registro()
    If lblNumero.Caption <> Empty Then
        If lblAprobar.Caption = "APROBADO" Then
            MsgBox "No se puede Modificar una Lista de Precio que ya fué aprobada", vbExclamation, "Lista de Precio"
            Exit Sub
        End If
        
        blnEditando = True
        pb_editar = True
        Call gactualiza_barra(Me)
        Call HabilitaBotones(False)
        Call DesabilitaCabecera
        
        cmdBuscaArticulo.Enabled = True
        Call LimpiaCajaDetalle
    
        lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
        Call objHist_Pre_Inv.CopiarDetalleListaPrecInvAlTemporal(lngCorrelativo, dtcAlmacen.BoundText, CLng(lblNumero.Caption))
        Call CargaGrid(lngCorrelativo)
    
        pb_agregar = True
        pb_editar = True
        Call gactualiza_barra(Me)
        Call Botones_Navegacion_barra
    Else
        MsgBox "Seleccione una Lista de Precios que desee Modificar", vbExclamation, "Lista de Precio"
    End If
    
Exit Sub

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

Public Sub grabar_registro()

    Call cmdGrabaLista_Click
    If blnDatosOK Then
        pb_agregar = False
        pb_editar = False
        Call gactualizaopcion(pbderecho_agregar, pbderecho_editar, pbderecho_borrar, pbderecho_imprimir)
        Call gactualiza_barra(Me)
        Call Botones_Navegacion_barra
        cmdBuscar.Enabled = True
    End If
    
End Sub

Private Sub txtArticulo_GotFocus()
txtArticulo.BackColor = GC_ColorEnfoque
End Sub

Private Sub txtArticulo_KeyDown(KeyCode As Integer, Shift As Integer)
   If KeyCode = vbKeyF2 Then cmdBuscaArticulo_Click
End Sub

Public Sub salir_formulario()
    cmdSalir_Click
End Sub

Private Sub DesabilitaCabecera()
    FraDatosCab.Enabled = True
    fraDatosItem.Enabled = True
    dtcAlmacen.Enabled = False
    dtcPrecioInv.Enabled = False
    cmdBusAlmacen.Enabled = False
    cmdBusPrecInv.Enabled = False
    dtpFechaInicio.Enabled = True
    dtpFechaFin.Enabled = True
    dtpHoraInicio.Enabled = True
    dtpHoraFin.Enabled = True
    ctnPrecio.Enabled = True
    cmdBuscar.Enabled = False
End Sub

Public Sub imprimir()
    cmdImprimir_Click
End Sub

Private Sub txtArticulo_KeyPress(KeyAscii As Integer)
On Error GoTo TrataError
KeyAscii = GBloqueaCaracter(KeyAscii)
    If KeyAscii = 13 Then
    
        Dim rsTemporal As ADODB.Recordset
        Set rsTemporal = objHist_Pre_Inv.ValidaCodigoIngresado(dtcAlmacen.BoundText, Trim(txtArticulo.Text), GstrCodMonedaBase, dtcPrecioInv.BoundText)
        
        If rsTemporal.RecordCount <> 0 Then ' si no esta vacio
            If objHist_Pre_Inv.ExisteArticulo(txtArticulo.Text, lngCorrelativo) Then
                    MsgBox "Código de articulo ya registrado", vbExclamation, "Mensaje"
                    txtArticulo.SetFocus
                    Exit Sub
            End If
            
            rsTemporal.MoveFirst ' muevete al primer registro
            
            'cargo valores
            txtArticulo.Text = rsTemporal!INVTIDSKU
            lblDescripcion.Caption = rsTemporal!DESCR
            lblCosto.Caption = GFormatodeNumero(rsTemporal!COSTO, GintDecCosto)
            lblPrecioAnt.Caption = GFormatodeNumero(rsTemporal!SLS_PRICE, GintDecPrecio)
            lblPrecioAnt.Caption = GFormatodeNumero(objHist_Pre_Inv.ConvertirValor(CDbl(lblPrecioAnt.Caption), dtcAlmacen.BoundText, txtArticulo.Text, Now, dtcPrecioInv.BoundText, TTCambio, GintDecPrecio), GintDecPrecio)
        Else
            MsgBox "Código ingresado no Exite", vbExclamation, "Ingresos"
            Set rsTemporal = Nothing
            txtArticulo.SetFocus
            Exit Sub
        End If
        
        Set rsTemporal = Nothing
        'devuelvo el enfoque al campo Precio
        ctnPrecio.SetFocus
    End If
Exit Sub
TrataError:
If ERR.Number = 3021 Then
            LimpiaCajaDetalle
            MsgBox "No se le asigno moneda al producto", vbExclamation, "Mensaje"
            Exit Sub
         End If
End Sub

Private Sub txtArticulo_LostFocus()
txtArticulo.BackColor = GC_ColorDefecto
End Sub


