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 = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
Object = "{F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0"; "MSDATLST.OCX"
Object = "{00025600-0000-0000-C000-000000000046}#5.2#0"; "crystl32.ocx"
Object = "{C4DED68B-C40F-11D6-AD1A-000795CA0957}#50.0#0"; "pry_list.ocx"
Object = "{69F9D01E-F1DE-11D4-9536-002018603DA2}#7.0#0"; "ControlNumber.ocx"
Begin VB.Form FHistPreciosCli 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Historial de Precios para Clientes (01.295.00)"
   ClientHeight    =   7755
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   9645
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   ScaleHeight     =   7755
   ScaleWidth      =   9645
   Begin TabDlg.SSTab SSTab1 
      Height          =   7755
      Left            =   0
      TabIndex        =   0
      Top             =   0
      Width           =   9645
      _ExtentX        =   17013
      _ExtentY        =   13679
      _Version        =   393216
      Tabs            =   2
      TabsPerRow      =   2
      TabHeight       =   520
      TabCaption(0)   =   "Datos TPC"
      TabPicture(0)   =   "0129500.frx":0000
      Tab(0).ControlEnabled=   -1  'True
      Tab(0).Control(0)=   "Label1"
      Tab(0).Control(0).Enabled=   0   'False
      Tab(0).Control(1)=   "lblCodLista"
      Tab(0).Control(1).Enabled=   0   'False
      Tab(0).Control(2)=   "lblEstado"
      Tab(0).Control(2).Enabled=   0   'False
      Tab(0).Control(3)=   "lblAprobar"
      Tab(0).Control(3).Enabled=   0   'False
      Tab(0).Control(4)=   "lblEtiqueta"
      Tab(0).Control(4).Enabled=   0   'False
      Tab(0).Control(5)=   "lblCodigo"
      Tab(0).Control(5).Enabled=   0   'False
      Tab(0).Control(6)=   "DBDetalle"
      Tab(0).Control(6).Enabled=   0   'False
      Tab(0).Control(7)=   "crListaPrecioCli"
      Tab(0).Control(7).Enabled=   0   'False
      Tab(0).Control(8)=   "cmbModalidad"
      Tab(0).Control(8).Enabled=   0   'False
      Tab(0).Control(9)=   "cmdSalir"
      Tab(0).Control(9).Enabled=   0   'False
      Tab(0).Control(10)=   "fraDatosItem"
      Tab(0).Control(10).Enabled=   0   'False
      Tab(0).Control(11)=   "cmdNuevaLista"
      Tab(0).Control(11).Enabled=   0   'False
      Tab(0).Control(12)=   "cmdGrabaLista"
      Tab(0).Control(12).Enabled=   0   'False
      Tab(0).Control(13)=   "cmdCancelar"
      Tab(0).Control(13).Enabled=   0   'False
      Tab(0).Control(14)=   "cmdImprimir"
      Tab(0).Control(14).Enabled=   0   'False
      Tab(0).Control(15)=   "cmdEmitir"
      Tab(0).Control(15).Enabled=   0   'False
      Tab(0).Control(16)=   "cmdBuscar"
      Tab(0).Control(16).Enabled=   0   'False
      Tab(0).Control(17)=   "cmdEstado"
      Tab(0).Control(17).Enabled=   0   'False
      Tab(0).Control(18)=   "FraDatosCab"
      Tab(0).Control(18).Enabled=   0   'False
      Tab(0).Control(19)=   "cmdRecalculo"
      Tab(0).Control(19).Enabled=   0   'False
      Tab(0).ControlCount=   20
      TabCaption(1)   =   "Estaciones"
      TabPicture(1)   =   "0129500.frx":001C
      Tab(1).ControlEnabled=   0   'False
      Tab(1).Control(0)=   "lstEstacion"
      Tab(1).Control(1)=   "Image1"
      Tab(1).Control(2)=   "Label2"
      Tab(1).Control(3)=   "Line2"
      Tab(1).Control(4)=   "Line1"
      Tab(1).ControlCount=   5
      Begin VB.CommandButton cmdRecalculo 
         BackColor       =   &H0080FFFF&
         Caption         =   "Recalcular"
         Enabled         =   0   'False
         Height          =   270
         Left            =   8235
         MousePointer    =   4  'Icon
         Style           =   1  'Graphical
         TabIndex        =   44
         Top             =   3600
         Width           =   1215
      End
      Begin VB.Frame FraDatosCab 
         Appearance      =   0  'Flat
         BackColor       =   &H80000004&
         Caption         =   "Datos Generales"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H80000008&
         Height          =   2325
         Left            =   120
         TabIndex        =   32
         Top             =   1080
         Width           =   6135
         Begin VB.TextBox txtCodigo 
            Height          =   315
            Left            =   1560
            MaxLength       =   10
            TabIndex        =   35
            Top             =   480
            Width           =   1815
         End
         Begin VB.TextBox txtObservacion 
            Height          =   315
            Left            =   1560
            TabIndex        =   34
            Top             =   1380
            Width           =   4215
         End
         Begin VB.CommandButton cmdBusMoneda 
            Height          =   375
            Left            =   5400
            MouseIcon       =   "0129500.frx":0038
            MousePointer    =   99  'Custom
            Picture         =   "0129500.frx":018A
            Style           =   1  'Graphical
            TabIndex        =   33
            ToolTipText     =   "Buscar Almacén"
            Top             =   960
            Width           =   375
         End
         Begin MSComCtl2.DTPicker dtpFechaFin 
            Height          =   375
            Left            =   4440
            TabIndex        =   36
            Top             =   1800
            Width           =   1335
            _ExtentX        =   2355
            _ExtentY        =   661
            _Version        =   393216
            Format          =   71106561
            CurrentDate     =   37567
         End
         Begin MSDataListLib.DataCombo dtcMoneda 
            Height          =   315
            Left            =   1560
            TabIndex        =   37
            Top             =   960
            Width           =   3735
            _ExtentX        =   6588
            _ExtentY        =   556
            _Version        =   393216
            Style           =   2
            Text            =   ""
         End
         Begin MSComCtl2.DTPicker dtpFechaInicio 
            Height          =   375
            Left            =   1560
            TabIndex        =   38
            Top             =   1800
            Width           =   1335
            _ExtentX        =   2355
            _ExtentY        =   661
            _Version        =   393216
            Format          =   71106561
            CurrentDate     =   37567
         End
         Begin VB.Label lblCod 
            AutoSize        =   -1  'True
            Caption         =   "Código"
            Height          =   195
            Left            =   360
            TabIndex        =   43
            Top             =   480
            Width           =   495
         End
         Begin VB.Label lblObservacion 
            AutoSize        =   -1  'True
            Caption         =   "Observación"
            Height          =   195
            Left            =   360
            TabIndex        =   42
            Top             =   1380
            Width           =   900
         End
         Begin VB.Label lblFechaFin 
            AutoSize        =   -1  'True
            Caption         =   "Fecha Fin"
            Height          =   195
            Left            =   3600
            TabIndex        =   41
            Top             =   1800
            Width           =   705
         End
         Begin VB.Label lblFechaInicio 
            AutoSize        =   -1  'True
            Caption         =   "Fecha Inicio"
            Height          =   195
            Left            =   360
            TabIndex        =   40
            Top             =   1800
            Width           =   870
         End
         Begin VB.Label lblMoneda 
            AutoSize        =   -1  'True
            Caption         =   "Moneda"
            Height          =   195
            Left            =   360
            TabIndex        =   39
            Top             =   960
            Width           =   585
         End
      End
      Begin VB.CommandButton cmdEstado 
         Caption         =   "ACTIVAR / DESACTIVAR"
         Height          =   495
         Left            =   6390
         MouseIcon       =   "0129500.frx":06BC
         MousePointer    =   99  'Custom
         TabIndex        =   2
         ToolTipText     =   "Activar / Desactivar"
         Top             =   2070
         Width           =   2775
      End
      Begin pry_list.ctrl_listarray lstEstacion 
         Height          =   4575
         Left            =   -74400
         TabIndex        =   30
         Top             =   1560
         Width           =   8175
         _ExtentX        =   14420
         _ExtentY        =   8070
      End
      Begin VB.CommandButton cmdBuscar 
         Height          =   375
         Left            =   3825
         MouseIcon       =   "0129500.frx":09C6
         MousePointer    =   99  'Custom
         Picture         =   "0129500.frx":0B18
         Style           =   1  'Graphical
         TabIndex        =   22
         ToolTipText     =   "Buscar Lista de Precios"
         Top             =   600
         Width           =   375
      End
      Begin VB.CommandButton cmdEmitir 
         Caption         =   "APROBAR"
         Height          =   735
         Left            =   7830
         MouseIcon       =   "0129500.frx":104A
         MousePointer    =   99  'Custom
         Picture         =   "0129500.frx":1354
         Style           =   1  'Graphical
         TabIndex        =   21
         ToolTipText     =   "Aprobar Lista de Precio"
         Top             =   2655
         Width           =   1335
      End
      Begin VB.CommandButton cmdImprimir 
         Caption         =   "IMPRIMIR"
         Height          =   735
         Left            =   6400
         MouseIcon       =   "0129500.frx":165E
         MousePointer    =   99  'Custom
         Picture         =   "0129500.frx":1968
         Style           =   1  'Graphical
         TabIndex        =   20
         ToolTipText     =   "Imprimir Lista de Precio"
         Top             =   2655
         Width           =   1335
      End
      Begin VB.CommandButton cmdCancelar 
         Caption         =   "Cancelar"
         Height          =   375
         Left            =   7200
         TabIndex        =   19
         Top             =   2160
         Visible         =   0   'False
         Width           =   375
      End
      Begin VB.CommandButton cmdGrabaLista 
         Caption         =   "Grabar"
         Height          =   375
         Left            =   7800
         TabIndex        =   18
         Top             =   2160
         Visible         =   0   'False
         Width           =   375
      End
      Begin VB.CommandButton cmdNuevaLista 
         Caption         =   "Nuevo"
         Height          =   375
         Left            =   6480
         TabIndex        =   17
         Top             =   2160
         Visible         =   0   'False
         Width           =   495
      End
      Begin VB.Frame fraDatosItem 
         Appearance      =   0  'Flat
         BackColor       =   &H80000004&
         ForeColor       =   &H80000008&
         Height          =   1125
         Left            =   90
         TabIndex        =   4
         Top             =   6480
         Width           =   9405
         Begin VB.CommandButton cmdBuscaArticulo 
            Height          =   375
            Left            =   3120
            Picture         =   "0129500.frx":1C72
            Style           =   1  'Graphical
            TabIndex        =   9
            TabStop         =   0   'False
            ToolTipText     =   "Buscar Artículo"
            Top             =   240
            Width           =   375
         End
         Begin VB.CommandButton cmdNuevoItem 
            Caption         =   "Nuevo"
            Height          =   495
            Left            =   6000
            Picture         =   "0129500.frx":21A4
            Style           =   1  'Graphical
            TabIndex        =   8
            Top             =   600
            Visible         =   0   'False
            Width           =   855
         End
         Begin VB.TextBox txtArticulo 
            Height          =   285
            Left            =   1440
            TabIndex        =   7
            Top             =   240
            Width           =   1575
         End
         Begin VB.CommandButton cmdEliminarItem 
            Caption         =   "Eliminar"
            Height          =   495
            Left            =   6840
            Picture         =   "0129500.frx":26D6
            Style           =   1  'Graphical
            TabIndex        =   6
            Top             =   600
            Visible         =   0   'False
            Width           =   855
         End
         Begin VB.CommandButton cmdActualizaItem 
            Caption         =   "Actualizar"
            Height          =   495
            Left            =   7680
            MousePointer    =   99  'Custom
            Picture         =   "0129500.frx":27D8
            Style           =   1  'Graphical
            TabIndex        =   5
            Top             =   600
            Visible         =   0   'False
            Width           =   855
         End
         Begin MiControl.CtrlNumber ctnValor 
            Height          =   375
            Left            =   1440
            TabIndex        =   10
            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.Label lblCosto 
            Height          =   255
            Left            =   6975
            TabIndex        =   16
            Top             =   675
            Visible         =   0   'False
            Width           =   1575
         End
         Begin VB.Label lblPrecioAnt 
            Alignment       =   1  'Right Justify
            BorderStyle     =   1  'Fixed Single
            Height          =   255
            Left            =   4320
            TabIndex        =   15
            Top             =   720
            Visible         =   0   'False
            Width           =   1575
         End
         Begin VB.Label lblPrecioAnterior 
            Caption         =   "Precio Anterior"
            Height          =   375
            Left            =   3600
            TabIndex        =   14
            Top             =   600
            Visible         =   0   'False
            Width           =   735
         End
         Begin VB.Label lblValor 
            Caption         =   "Descuento en Monto"
            Height          =   435
            Left            =   240
            TabIndex        =   13
            Top             =   645
            Width           =   1215
         End
         Begin VB.Label lblArticulo 
            Caption         =   "Artículo"
            Height          =   255
            Left            =   240
            TabIndex        =   12
            Top             =   240
            Width           =   615
         End
         Begin VB.Label lblDescripcion 
            BorderStyle     =   1  'Fixed Single
            Height          =   285
            Left            =   3600
            TabIndex        =   11
            Top             =   240
            Width           =   5415
         End
      End
      Begin VB.CommandButton cmdSalir 
         Caption         =   "Salir"
         Height          =   255
         Left            =   7800
         TabIndex        =   3
         Top             =   2280
         Visible         =   0   'False
         Width           =   495
      End
      Begin VB.ComboBox cmbModalidad 
         Height          =   315
         ItemData        =   "0129500.frx":2D0A
         Left            =   6400
         List            =   "0129500.frx":2D11
         Style           =   2  'Dropdown List
         TabIndex        =   1
         Top             =   1680
         Width           =   2775
      End
      Begin Crystal.CrystalReport crListaPrecioCli 
         Left            =   7440
         Top             =   720
         _ExtentX        =   741
         _ExtentY        =   741
         _Version        =   348160
         PrintFileLinesPerPage=   60
      End
      Begin MSDataGridLib.DataGrid DBDetalle 
         Height          =   2850
         Left            =   135
         TabIndex        =   23
         Top             =   3600
         Width           =   9345
         _ExtentX        =   16484
         _ExtentY        =   5027
         _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.Image Image1 
         Height          =   480
         Left            =   -74415
         Picture         =   "0129500.frx":2D29
         Top             =   540
         Width           =   480
      End
      Begin VB.Label Label2 
         Caption         =   "Seleccione los Almacenes a los que desee afecte la Lista de Precios"
         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          =   255
         Left            =   -74400
         TabIndex        =   31
         Top             =   1200
         Width           =   7215
      End
      Begin VB.Line Line2 
         BorderColor     =   &H80000002&
         X1              =   -74520
         X2              =   -66000
         Y1              =   6240
         Y2              =   6240
      End
      Begin VB.Line Line1 
         BorderColor     =   &H80000002&
         X1              =   -74400
         X2              =   -66120
         Y1              =   1080
         Y2              =   1080
      End
      Begin VB.Label lblCodigo 
         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            =   1800
         TabIndex        =   25
         Top             =   660
         Width           =   1935
      End
      Begin VB.Label lblEtiqueta 
         AutoSize        =   -1  'True
         Caption         =   "NUEVA LISTA DE PRECIO PARA CLIENTES"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   240
         Left            =   960
         TabIndex        =   29
         Top             =   600
         Width           =   4590
      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          =   240
         Left            =   6480
         TabIndex        =   28
         Top             =   1080
         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            =   6480
         TabIndex        =   27
         Top             =   840
         Width           =   75
      End
      Begin VB.Label lblCodLista 
         AutoSize        =   -1  'True
         Caption         =   "Cod. Lista :"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   12
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   300
         Left            =   480
         TabIndex        =   26
         Top             =   600
         Width           =   1380
      End
      Begin VB.Label Label1 
         AutoSize        =   -1  'True
         Caption         =   "Modalidad para Descuento"
         Height          =   195
         Left            =   6480
         TabIndex        =   24
         Top             =   1440
         Width           =   1920
      End
   End
End
Attribute VB_Name = "FHistPreciosCli"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Programador: Edgar Cancho Ruiz
' Empresa Texaco
' Modulo de Historico de Precios de Inventario
' Fecha : 14/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 objMoneda As DB_MA_MANTENIMIENTOS.C_MONEDA
Private objAlmacen As DB_INV_MANTENIMIENTOS.C_ALMACEN

Private objHist_Pre_Cli As DB_MA_MANTENIMIENTOS.C_HIST_PRE_CLI

Dim Matriz()

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

Dim objCorrelativo As DB_CORRELATIVO.C_Correlativos

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

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 cmbModalidad_Click()
    If cmbModalidad.ListIndex = 0 Then
        lblValor.Caption = "Descuento en Monto"
    Else
        lblValor.Caption = "Ingreso de Nuevo Precio"
    End If
End Sub

Private Sub cmdActualizaItem_Click()
Dim i As Integer

    Matriz = lstEstacion.llenar_matrizseleccionados
    
    For i = 1 To lstEstacion.nseleccionados
    
        Call objHist_Pre_Cli.ActualizaTmpDetalleHistPrecCli(lngCorrelativo, Matriz(i, 1), txtArticulo.Text, _
                                         CDbl(ctnValor.Text), cmbModalidad.ListIndex, GintDecPrecio, dtcMoneda.BoundText, _
                                         Now, TTCambio)
    Next
    
    Call CargaGrid(lngCorrelativo)
    Call LimpiaCajaDetalle
    'Call PonerDatosGrig
    'blnActualizandoItem = False
    txtArticulo.Enabled = True
    txtArticulo.SetFocus
End Sub


Private Sub cmdBuscaArticulo_Click()
  On Error GoTo TrataError
   'Lineas que llaman al Formulario de Búsqueda
     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_Cli.ListarArticuloPorAlmacen(GstrSiteProce), ArrayBusqueda, 2, 2
     FBusquedasMa.Show vbModal
     
     If GrecibeUbicacion <> 0 Then
         txtArticulo.Text = GrecibeColumnaID
         lblDescripcion.Caption = GrecibeColumnaOpcional
         ctnValor.ValorPorDefecto
         blnExiste = objHist_Pre_Cli.ExisteArticulo(Trim(txtArticulo.Text), lngCorrelativo)
         If blnExiste Then
            LimpiaCajaDetalle
            MsgBox "Código de articulo ya registrado", vbExclamation, "Mensaje"
            Exit Sub
         End If
         ctnValor.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) = "Cod_Lista"
    ArrayBusqueda(1, 2) = "Cod_Lista "
    ArrayBusqueda(1, 3) = 1400
    ArrayBusqueda(2, 1) = "Almacen"
    ArrayBusqueda(2, 2) = "Almacen "
    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_Cli.BusquedaListadePrecio(GstrSiteProce), ArrayBusqueda, 4, 2
    FBusquedasMa.Show vbModal
    If GrecibeUbicacion <> 0 Then
        Call CargaDatos(GrecibeColumnaID)
    End If
End Sub

Private Sub cmdBusMoneda_Click()
    'Lineas que llaman al Formulario de Búsqueda
     
     Dim ArrayBusqueda(1 To 2, 1 To 3) As Variant
     ArrayBusqueda(1, 1) = "CuryId"
     ArrayBusqueda(1, 2) = "Código "
     ArrayBusqueda(1, 3) = 1000
     ArrayBusqueda(2, 1) = "Descr"
     ArrayBusqueda(2, 2) = "Descripción "
     ArrayBusqueda(2, 3) = 4000
       
     FBusquedasMa.GObtenerRegistros objMoneda.ListarMonedas, ArrayBusqueda, 2, 2
     FBusquedasMa.Show vbModal
     
     If GrecibeUbicacion <> 0 Then
         dtcMoneda.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 Limpiar
        Call HabilitaCampos(False)
        txtCodigo.Enabled = True
        dtcMoneda.Enabled = True
        cmdBusMoneda.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_Cli.EliminarItemEnTmpDetalleHistPrecCli(DBDetalle.Columns(1).Text, lngCorrelativo)
        
        Call CargaGrid(lngCorrelativo)
        Call LimpiaCajaDetalle
        Call PonerDatosGrig
        
        If DBDetalle.Bookmark = 0 Or IsNull(DBDetalle.Bookmark) Then
            dtcMoneda.Enabled = True  'si no existe un item en el grid se habilita el campo moneda
        Else
            dtcMoneda.Enabled = False
        End If
        
    End If
End Sub

Private Sub cmdEmitir_Click()
On Error GoTo errhandler

    If lblCodigo.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
        
        strCodigoListaPrecio = lblCodigo.Caption
        If MsgBox("Desea Aprobar el Documento? ", vbQuestion + vbYesNo, "Confirmar Aprobación") = vbNo Then
            Exit Sub
        Else
            objHist_Pre_Cli.AprobarLista strCodigoListaPrecio, GCUSERID
            lblAprobar.Caption = "APROBADO" ' SE ACTUALIZA PANTALLA CON ESTADO APROBADO DE LA LISTA DE PRECIOS
        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 lblCodigo.Caption <> Empty Then
        
        strCodigoListaPrecio = lblCodigo.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_Cli.ActualizaEstado strCodigoListaPrecio, 0
                lblEstado.Caption = "DESACTIVADO" ' SE ACTUALIZA PANTALLA CON ESTADO DEL DOCUMENTO
            End If
        Else
            If MsgBox("Desea Activar la Lista de Precio? ", vbQuestion + vbYesNo, "Confirmar Activación") = vbNo Then
                Exit Sub
            Else
                objHist_Pre_Cli.ActualizaEstado strCodigoListaPrecio, 1
                lblEstado.Caption = "ACTIVADO" ' SE ACTUALIZA PANTALLA CON ESTADO DEL DOCUMENTO
            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

crListaPrecioCli.WindowState = crptMaximized
crListaPrecioCli.WindowShowPrintSetupBtn = True
crListaPrecioCli.WindowTitle = "HISTORIAL DE PRECIOS DE PARA CLIENTES"

If lblCodigo.Caption <> Empty Then
    strCodigoListaPrecio = lblCodigo.Caption
    
        crListaPrecioCli.ReportFileName = GstrReportesInv & "rpt_ListaPrecioCliente.rpt"
    
        'crListaPrecioCli.Formulas(1) = "formAlmacen= stringvar DescrAlmacen; DescrAlmacen:='" & dtcAlmacen.Text & "'"
        crListaPrecioCli.Formulas(2) = "formCodLista= stringvar CodLista; CodLista:='" & strCodigoListaPrecio & "'"
        crListaPrecioCli.Formulas(3) = "formDescripcion= stringvar Descripcion; Descripcion:='" & txtObservacion.Text & "'"
        crListaPrecioCli.Formulas(4) = "formMoneda= stringvar Moneda; Moneda:='" & dtcMoneda.Text & "'"
        crListaPrecioCli.Formulas(5) = "formStatus= stringvar Estado; Estado:='" & lblEstado.Caption & "'"
        crListaPrecioCli.Formulas(6) = "formNdPrecio=" & GintDecPrecio
        crListaPrecioCli.Formulas(7) = "formNdCosto=" & GintDecCosto
        crListaPrecioCli.Formulas(8) = "formTitulo= stringvar Titulo; Titulo:='HISTORIAL DE PRECIOS PARA CLIENTES'"
        crListaPrecioCli.Formulas(9) = "formScreen= stringvar Screen; Screen:='0129500'"
        crListaPrecioCli.Formulas(10) = "formUsuario=stringvar Usuario; Usuario:='" & GCUSERID & "'"
        crListaPrecioCli.Formulas(11) = "formFechaInicio= datevar FechaInicio; FechaInicio:=date(" & Format(dtpFechaInicio.Value, "YYYY,MM,dd") & ")"
        crListaPrecioCli.Formulas(12) = "formFechaFin= datevar FechaFin; FechaFin:=date(" & Format(dtpFechaFin.Value, "YYYY,MM,dd") & ")"
        crListaPrecioCli.Formulas(13) = "formAprobar='" & lblAprobar.Caption & "'"
        
        crListaPrecioCli.StoredProcParam(0) = strCodigoListaPrecio
        
        crListaPrecioCli.Action = 1
        crListaPrecioCli.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)
   
    txtCodigo.SetFocus
End Sub

Private Sub cmdNuevoItem_Click()
If ValidaDatosCab = True Then
    Dim i As Integer
    Matriz = lstEstacion.llenar_matrizseleccionados
    
    For i = 1 To lstEstacion.nseleccionados
        
        objHist_Pre_Cli.AgregaEnTemporalDetallelleHistPrecCli lngCorrelativo, Matriz(i, 1), _
                                              txtArticulo.Text, lblDescripcion.Caption, GFormatodeNumero(CDbl(ctnValor.Text), GintDecimalDescuento), _
                                              cmbModalidad.ListIndex, GintDecimalDescuento, dtcMoneda.BoundText, Now, TTCambio
    
    Next
    
    dtcMoneda.Enabled = False
    
    Call CargaGrid(lngCorrelativo)
    Call LimpiaCajaDetalle
    txtArticulo.SetFocus
End If
End Sub

Private Sub cmdRecalculo_Click()
 On Error GoTo TrataError
 Screen.MousePointer = 11
    Dim i As Integer
    Dim rsTemporal As ADODB.Recordset
    
    Set rsTemporal = objHist_Pre_Cli.ObtieneDetalleNuevoALmacen(lngCorrelativo)
    
    If objHist_Pre_Cli.ObtieneCantidadSiteEnTMPDetalle(lngCorrelativo) < lstEstacion.nseleccionados Then
        
        Matriz = lstEstacion.llenar_matrizseleccionados
        For i = 1 To lstEstacion.nseleccionados
            If Not objHist_Pre_Cli.ExisteSiteEnTMPDetalle(lngCorrelativo, Matriz(i, 1)) Then
                While Not rsTemporal.EOF
                    If cmbModalidad.ListIndex = 0 Then
                        objHist_Pre_Cli.AgregaEnTemporalDetallelleHistPrecCli lngCorrelativo, Matriz(i, 1), _
                                                      rsTemporal!INVTIDSKU, rsTemporal!DESCR, GFormatodeNumero(rsTemporal!DISCMTO, GintDecPrecio), _
                                                      cmbModalidad.ListIndex, GintDecPrecio, dtcMoneda.BoundText, Now, TTCambio
                    Else
                        objHist_Pre_Cli.AgregaEnTemporalDetallelleHistPrecCli lngCorrelativo, Matriz(i, 1), _
                                                      rsTemporal!INVTIDSKU, rsTemporal!DESCR, GFormatodeNumero(rsTemporal!SLS_PRICECUST, GintDecPrecio), _
                                                      cmbModalidad.ListIndex, GintDecPrecio, dtcMoneda.BoundText, Now, TTCambio
                    End If
                    
                    rsTemporal.MoveNext
                Wend
                rsTemporal.MoveFirst
            End If
        Next
    Else
        If objHist_Pre_Cli.ObtieneCantidadSiteEnTMPDetalle(lngCorrelativo) > lstEstacion.nseleccionados Then
            
            Matriz = lstEstacion.llenar_matrizseleccionados
            Set rsTemporal = objHist_Pre_Cli.ObtieneSitesEnTMPDetalle(lngCorrelativo)
            While Not rsTemporal.EOF
                If Not ExisteEnSeleccionados(rsTemporal!SITEID) Then
                    objHist_Pre_Cli.EliminarItemEnTmpDetalleHistPrecCli Empty, lngCorrelativo, rsTemporal!SITEID
                End If
                rsTemporal.MoveNext
            Wend
        Else
            Screen.MousePointer = 0
            Exit Sub
        End If
    End If
    
    CargaGrid (lngCorrelativo)
Screen.MousePointer = 0
Exit Sub

TrataError:
Screen.MousePointer = 0
End Sub

Private Sub cmdSalir_Click()
    Unload Me
End Sub

Private Sub ctnValor_KeyPress(KeyAscii As Integer)
KeyAscii = MBloqueSignoMenos(KeyAscii)
On Error GoTo TrataError
    If KeyAscii = 13 Then
        If Val(ctnValor.Text) = 0 And cmbModalidad.ListIndex = 1 Then
            MsgBox "El Campo Precio no puede ser cero", vbExclamation, "Mensaje"
            ctnValor.SetFocus
            Exit Sub
        End If
                
        If blnActualizandoItem Then
            Call cmdActualizaItem_Click
        Else
            Dim rsTemporal As ADODB.Recordset
            Set rsTemporal = objHist_Pre_Cli.ValidaCodigoIngresado(GstrSiteProce, Trim(txtArticulo.Text))
            
            If rsTemporal.RecordCount <> 0 Then ' si no esta vacio
                If objHist_Pre_Cli.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
                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(strPRCLVLCUSTID As String)
On Error GoTo TrataError
    Call Limpiar
    Dim rsTemporal As ADODB.Recordset
    Set rsTemporal = objHist_Pre_Cli.SeleccionaEnCabecera(strPRCLVLCUSTID)
    
    ' CARGO LA CABECERA
    lblCodigo.Caption = rsTemporal!PRCLVLCUSTID
    txtCodigo.Text = rsTemporal!PRCLVLCUSTID
    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
    
    dtcMoneda.BoundText = rsTemporal!CURYID
    txtObservacion.Text = rsTemporal!DESCR
    dtpFechaInicio.Value = rsTemporal!STARTDATEPRICE
    dtpFechaFin.Value = rsTemporal!ENDDATEPRICE

    ' CARGO EL DETALLE
    Set DBDetalle.DataSource = objHist_Pre_Cli.SeleccionaEnDetalle(strPRCLVLCUSTID)
    
    lstEstacion.llena_lista objHist_Pre_Cli.ObtieneSiteNoLista(strPRCLVLCUSTID), objHist_Pre_Cli.ObtieneSiteLista(strPRCLVLCUSTID)
    
    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 ctnValor_LostFocus()
    blnActualizandoItem = False
    txtArticulo.Enabled = True
    cmdBuscaArticulo.Enabled = True
    txtArticulo.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
                    ctnValor.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
        ctnValor.ValorPorDefecto
        txtArticulo.Text = Empty
        lblDescripcion.Caption = Empty
        lblPrecioAnt.Caption = Empty
    Else
        ctnValor.Text = Format(DBDetalle.Columns(4).Text, GMascara(GintDecimalDescuento))
        txtArticulo.Text = DBDetalle.Columns(1).Text
        lblDescripcion.Caption = DBDetalle.Columns(2).Text
        lblPrecioAnt.Caption = Format(DBDetalle.Columns(3).Text, GMascara(GintDecPrecio))
    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 dtcMoneda_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        txtObservacion.SetFocus
    End If
End Sub

Private Sub dtpFechaFin_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        txtArticulo.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 Form_Activate()

 '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)
         ctnValor.Enteros = 10
         ctnValor.Decimales = GintDecimalDescuento
         ctnValor.PermitirNegativos = False
         ctnValor.ValorPorDefecto
         dtpFechaInicio.Value = Now
         dtpFechaFin.Value = Now
         cmbModalidad.ListIndex = 0
         Call HabilitaCampos(False)
         Call HabilitaBotones(True)
         Call LlenaDataCombos
         
         lstEstacion.Size 25, 38
         lstEstacion.llena_lista objAlmacen.ListarAlmacenesPorStatus(1)
    
        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
    ctnValor.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(dtcMoneda, objMoneda.ListarMonedas, "CURYID", "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 objMoneda = New DB_MA_MANTENIMIENTOS.C_MONEDA
    Set objAlmacen = New DB_INV_MANTENIMIENTOS.C_ALMACEN
    Set objCorrelativo = New DB_CORRELATIVO.C_Correlativos
    Set objHist_Pre_Cli = New DB_MA_MANTENIMIENTOS.C_HIST_PRE_CLI
End Sub

Private Sub DestruyeObjetos()
    Set objMoneda = Nothing
    Set objAlmacen = Nothing
    Set objCorrelativo = Nothing
    Set objHist_Pre_Cli = Nothing
End Sub

Private Sub HabilitaCampos(blnValor As Boolean)
    FraDatosCab.Enabled = blnValor
    fraDatosItem.Enabled = blnValor
    cmdRecalculo.Enabled = blnValor
    lblCodLista.Visible = Not blnValor
    lblCodigo.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
                If curcontrol.Style <> 2 Then
                    curcontrol.Text = ""
                End If
        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
    lblCodigo.Caption = Empty
    lblEstado.Caption = Empty
    lblAprobar.Caption = Empty
    lblPrecioAnt.Caption = Empty
    lstEstacion.llena_lista objAlmacen.ListarAlmacenesPorStatus(1)
    Call CargaGrid(-1)
    Call LlenaDataCombos
    
End Sub

Private Sub CargaGrid(lngId As Long)
    
    Set DBDetalle.DataSource = objHist_Pre_Cli.SeleccionaEnTemporalDetalleHistPrecCli(lngId)
    Call FormatoGrilla
    DBDetalle.Refresh
    
End Sub
Private Sub FormatoGrilla()

    DBDetalle.Columns(0).Width = 800
    DBDetalle.Columns(1).Width = 800
    DBDetalle.Columns(2).Width = 4000
    DBDetalle.Columns(3).Width = 1000
    DBDetalle.Columns(3).Alignment = dbgRight
    DBDetalle.Columns(3).NumberFormat = GMascara(GintDecPrecio)
    DBDetalle.Columns(3).Visible = False
    DBDetalle.Columns(4).Width = 1000
    DBDetalle.Columns(4).Alignment = dbgRight
    DBDetalle.Columns(4).NumberFormat = GMascara(GintDecimalDescuento)
    DBDetalle.Columns(5).Width = 1000
    DBDetalle.Columns(5).Alignment = dbgRight
    DBDetalle.Columns(5).NumberFormat = GMascara(GintDecPrecio)
    DBDetalle.Columns(5).Visible = False

End Sub

Private Sub cmdGrabaLista_Click()
On Error GoTo errhandler
    Dim i As Integer
    If objHist_Pre_Cli.ObtieneCantidadSiteEnTMPDetalle(lngCorrelativo) <> lstEstacion.nseleccionados Then
        MsgBox "El nro Estaciones seleccionadas no coincide con el detalle " + vbCrLf + "Efectue el proceso de Recalculo", vbExclamation, "Mensaje"
        Exit Sub
    End If
    
    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
        
        
        If cmdBuscar.Enabled Then  'SI SE ESTA AGREGANDO UNA NUEVA LISTA
        
            
            Matriz = lstEstacion.llenar_matrizseleccionados
            For i = 1 To lstEstacion.nseleccionados
                objHist_Pre_Cli.AgregarHistorialPrecCli Trim(txtCodigo.Text), Matriz(i, 1), dtcMoneda.BoundText, Trim(txtObservacion.Text), _
                                                        dtpFechaInicio.Value, dtpFechaFin.Value, 1, GCUSERID, Now, 0, Empty, Empty, GstrSiteProce, cmbModalidad.ListIndex + 1, lngCorrelativo
            Next
            
            lblCodigo.Caption = Trim(txtCodigo.Text)  ' se asigna el valor del numero de movimiento
            lblEstado.Caption = "ACTIVADO"
            lblAprobar.Caption = "NO APROBADO"
        Else
            Matriz = lstEstacion.llenar_matrizseleccionados
            objHist_Pre_Cli.EliminarTodoEnHistPrecCli (lblCodigo.Caption)
            For i = 1 To lstEstacion.nseleccionados
                objHist_Pre_Cli.AgregarHistorialPrecCli Trim(txtCodigo.Text), Matriz(i, 1), dtcMoneda.BoundText, Trim(txtObservacion.Text), _
                                                        dtpFechaInicio.Value, dtpFechaFin.Value, 1, GCUSERID, Now, 0, Empty, Empty, GstrSiteProce, cmbModalidad.ListIndex + 1, lngCorrelativo
            Next
        End If
        
        blnEditando = False
        If MsgBox("Historial de Precio Para Clientes " + vbCrLf + "Grabado Correctamente.Desea Imprimir? ", vbQuestion + vbYesNo, "Mensaje") = vbNo Then
           GoTo SALTO
        Else
             Call cmdImprimir_Click
        End If
        
SALTO:

        Call HabilitaCampos(False)
        txtCodigo.Enabled = True
        dtcMoneda.Enabled = True
        cmdBusMoneda.Enabled = True
        cmdBuscar.Enabled = True
        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
    If objHist_Pre_Cli.ObtieneCantidadRegistrosIncorrectos(lngCorrelativo, dtcMoneda.BoundText) > 0 Then
            FErrorPreciosCli.MlngCorrelativo = lngCorrelativo
            FErrorPreciosCli.MstrMoneda = dtcMoneda.BoundText
            FErrorPreciosCli.Show
            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 GVDATO(txtCodigo.Text) = Empty Then
        MsgBox "Ingrese Código de Lista de Precios", vbExclamation, "Mensaje"
        txtCodigo.SetFocus
        GoTo Final
    End If
'    If dtcAlmacen.Text = Empty Then
'        MsgBox "Ingrese Almacen", vbExclamation, "Mensaje"
'        dtcAlmacen.SetFocus
'        GoTo Final
'    End If
    If dtcMoneda.Text = Empty Then
        MsgBox "Ingrese Moneda ", vbExclamation, "Mensaje"
        dtcMoneda.SetFocus
        GoTo Final
    End If

    If GVDATO(txtObservacion.Text) = Empty Then
        MsgBox "Ingrese Observación", vbExclamation, "Mensaje"
        dtcMoneda.SetFocus
        GoTo Final
    End If

    If (dtpFechaInicio.Value > dtpFechaFin.Value) Then
        MsgBox "Error Ingresando Rango de Fechas", vbExclamation, "Mensaje"
        GoTo Final
    End If
    
    If lstEstacion.nseleccionados = 0 Then
        MsgBox "Seleccione al memos un Almacen", 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 lblCodigo.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
        cmdRecalculo.Enabled = True
        Call LimpiaCajaDetalle
    
        lngCorrelativo = objCorrelativo.ObtenerCorrelativo(GCUSERID)
        Call objHist_Pre_Cli.CopiarDetalleListaPrecCliAlTemporal(lngCorrelativo, lblCodigo.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
    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
    txtCodigo.Enabled = False
    dtcMoneda.Enabled = False
    cmdBusMoneda.Enabled = False
    txtObservacion.Enabled = True
    dtpFechaInicio.Enabled = True
    dtpFechaFin.Enabled = True
    ctnValor.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_Cli.ValidaCodigoIngresado(GstrSiteProce, Trim(txtArticulo.Text))
        
        If rsTemporal.RecordCount <> 0 Then ' si no esta vacio
            If objHist_Pre_Cli.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_Cli.ConvertirValor(CDbl(lblPrecioAnt.Caption), GstrSiteProce, dtcMoneda.BoundText, Now, txtArticulo.Text, 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 valor
        ctnValor.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

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

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

Private Function ExisteEnSeleccionados(strEstacion As String) As Boolean
ExisteEnSeleccionados = False
Dim c As Integer
    For c = 1 To lstEstacion.nseleccionados
        If Matriz(c, 1) = Trim(strEstacion) Then
            ExisteEnSeleccionados = True
            Exit Function
        End If
    Next
End Function

Private Function MBloqueSignoMenos(KeyAscii As Integer) As Integer
    If KeyAscii = 45 Then
        MBloqueSignoMenos = 0
    Else
        MBloqueSignoMenos = KeyAscii
    End If
End Function

