Solución a error DBCC CHECKDB
Error Element not found
12:23:53 Ocurrió un error:Module: frmMantDerechFunction: LeederechosDescription: Element not found código duro: 20 Error número: 35601
.
.
Error al generar la factura: Error en la función genera factura: System.Net.WebException: Se ha terminado la conexión: No se puede establecer una relación de confianza para el canal seguro SSL/TLS. -> System.SecurIty.Authentication.AuthenticationException:El certificado remoto no es válido según el procedimiento de validación.en System.Net.Security.SslState.StartSendAuthResetSignal (ProtocoIToken message. AsyncProtocolRequest asyncRequest, Exception exception)
.
.
Existe un error al intentar hacer la conexión -2147467259 An error occurred while processing the log for database ‘C:\MYBUSINESSDATABASE\MYBUSINESSPOSZO17.MDF’. If possible, restore from backup. If a backup is not available, It might be necessary to rebulld the log. código duro: 5 .
.
.
23:43:33 Ocurrié un error:
Module: frmEstaciones
Function: btnSalvar_Click
Description: Los datos de cadena o binarios se truncarian. código duro: 214
Error número: -2147217833
.
.
00:11:52 ocurrió un error: Module: frmPointofSal Function: NuevaPartida
Description: No se pudo finalizar la transacción de datos: Infracción de la restricción PRIMARY KEY ‘PK_partvta’.
No se puede insertar una clave duplicada en el objeto ‘dbo.partvta’. código duro: 103 Error número: 2627
.
.
Error al generar la factura:
Solución a Error Element not found
12:23:53 Ocurrió un error:
Module: frmMantDerech
Function: Leederechos
Description: Element not found código duro: 20 Error número: 35601
PuntoV031, Antes de aceptar un código lo dividimos en partes
Sub Main()
If EsArticuloParaTiempoAire Then
CancelaProceso = True
txtFields(4).SetFocus()
Exit Sub
End If
Me.Peso = 0
'Call incrementaProducto()
' Articulo es una variable que entrega el dato que se capturo en
' el punto de venta
If Trim( Ucase(Articulo) ) = "ADMISION" Then
If Me.Venta = 0 Then
MyMessage "Es necesario capturar al menos de un producto"
CancelaProceso = True
Exit Sub
End If
Script.RunForm "MIFORMA", Me, Ambiente, , True
'PlaySound Ambiente.Path & "\sounds\s03.wav"
CancelaProceso = True
End If
Me.usuarioRequerido = 0
If clAt( "VPZ", Articulo ) = 1 Then
Call recuperaVenta()
CancelaProceso = True
End If
If Ucase(Trim(Articulo)) = "EXR" Then
CancelaProceso = True
Script.RunForm "EXISTENCIAREMOTA", Me, Ambiente,, True
End If
Version2005
'Call calculaPrecioDecaja()
End Sub
Function EsArticuloParaTiempoAire()
Dim sCadena
EsArticuloParaTiempoAire = False
If UCase(Trim(Articulo)) = "RTELCEL" OR UCase(Trim(Articulo)) = "RMOVISTAR" OR UCase(Trim(Articulo)) = "RIUSACELL" OR _
UCase(Trim(Articulo)) = "RUNEFON" OR UCase(Trim(Articulo)) = "RNEXTEL" Then
sCadena = InformacionDeSKUs
If sCadena = "" Then
Exit Function
End If
CreaProducto UCase(Trim(Articulo))
VentaTiempoAire UCase(Trim(Articulo)), UCase(Mid(Trim(Articulo), 2)), sCadena
CancelaProceso = True
EsArticuloParaTiempoAire = True
End If
End Function
Sub CreaProducto(articuloTAE)
Dim rstP, rstImp
Set rstP = Rst("SELECT articulo FROM prods WHERE articulo = '" & articuloTAE & "'", Ambiente.Connection)
Set rstImp = Rst("SELECT valor FROM impuestos WHERE impuesto = 'IVA'", Ambiente.Connection)
If rstP.EOF Then
Dim Query
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
Query.Reset
Query.strState = "INSERT"
Query.AddField "prods","ARTICULO", articuloTAE
Query.AddField "prods","DESCRIP", "RECARGA " & Mid(articuloTAE, 2)
Query.AddField "prods","LINEA", "SYS"
Query.AddField "prods","MARCA", "SYS"
If Val2(Ambiente.rstEstacion("conimpuesto")) <> 0 Then
Query.AddField "prods","PRECIO1", (1/(1 + (Val2(rstImp("valor"))/100)))
Query.AddField "prods","IMPUESTO", "IVA"
Else
Query.AddField "prods","PRECIO1", 1
Query.AddField "prods","IMPUESTO", "SYS"
End If
Query.AddField "prods","PRECIO2", 0
Query.AddField "prods","PRECIO3", 0
Query.AddField "prods","PRECIO4", 0
Query.AddField "prods","PRECIO5", 0
Query.AddField "prods","PRECIO6", 0
Query.AddField "prods","PRECIO7", 0
Query.AddField "prods","PRECIO8", 0
Query.AddField "prods","PRECIO9", 0
Query.AddField "prods","PRECIO10", 0
Query.AddField "prods","PRECIOUSD", 0
Query.AddField "prods","EXISTENCIA", 0
Query.AddField "prods","COSTO_U", 0
Query.AddField "prods","COSTOUSD", 0
If Val2(Ambiente.rstEstacion("conimpuesto")) <> 0 Then
Query.AddField "prods","COSTO", (1/(1 + (Val2(rstImp("valor"))/100)))
Else
Query.AddField "prods","COSTO", 1
End If
Query.AddField "prods","KIT", 0
Query.AddField "prods","SERIE", 0
Query.AddField "prods","LOTE", 0
Query.AddField "prods","INVENT", 1
Query.AddField "prods","IMAGEN", ""
Query.AddField "prods","PARAVENTA", 1
Query.AddField "prods","URL", ""
Query.AddField "prods","USUARIO", Ambiente.Uid
Query.AddField "prods","USUHORA", Formato(Time, "HH:mm:ss")
Query.AddField "prods","USUFECHA", Date
Query.AddField "prods","Granel", 0
Query.Exec
Query.Reset
Query.strState = "INSERT"
Query.AddField "existenciaalmacen","almacen", 1
Query.AddField "existenciaalmacen","articulo", articuloTAE
Query.AddField "existenciaalmacen","existencia", 0
Query.Exec
End If
rstP.Close
Set rstP = Nothing
rstImp.Close
Set rstImp = Nothing
End Sub
Function InformacionDeSKUs()
Dim Informacion
On Error Resume Next
Set Informacion = CreateObject("Servicios.Servicios")
If Err.Number <> 0 Then
InformacionDeSKUs = ""
Else
InformacionDeSKUs = Informacion.LlamaAlServicio("SKUS")
End If
End Function
Sub VentaTiempoAire(articuloTAE, proveedorTAE, sCadena)
Dim TiempoAire, sMensaje, rstArt, iMonto
On Error Resume Next
Set TiempoAire = CreateObject("Servicios.Servicios")
sMensaje = TiempoAire.LlamaAlServicio("RECARGA", Mid(articuloTAE, 2), (Me.Venta), Ambiente.Uid)
If Err.Number <> 0 Then
MyMessage "Verifique que tenga instalado Servicios TAE en su equipo"
ElseIf ClAt("<Code>0</Code>", sMensaje) > 0 Then
Set rstArt = Rst("SELECT prods.*, impuestos.valor FROM prods, impuestos WHERE prods.impuesto = impuestos.impuesto " & _
"AND prods.articulo = '" & articuloTAE & "'", Ambiente.Connection)
iMonto = Val2(Monto(sCadena, DatoXML((sMensaje), "Sku")))
NuevaPartida rstArt, iMonto / (1 + (Val2(rstArt("valor"))/100))
GuardaDatos sMensaje, proveedorTAE, iMonto
ElseIf ClAt("<Code>", sMensaje) > 0 Then
MyMessage("Error: " & DatoXML((sMensaje), "Code") & vbCrLf & DatoXML((sMensaje), "DCode"))
Else
MyMessage(sMensaje)
End If
End Sub
Sub GuardaDatos(Cadena, proveedorTAE, iMonto)
Dim Query, id
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
id = TraeSiguiente("recargastae", Ambiente.Connection)
Query.Reset
Query.strState = "INSERT"
Query.AddField "recargastae","id", id
Query.AddField "recargastae","SKU", DatoXML((Cadena), "Sku")
Query.AddField "recargastae","telefono", DatoXML((Cadena), "Tel")
Query.AddField "recargastae","proveedor", proveedorTAE
Query.AddField "recargastae","monto", iMonto
Query.AddField "recargastae","venta", Me.Venta
Query.AddField "recargastae","usuario", Ambiente.Uid
Query.AddField "recargastae","usufecha", Date
Query.AddField "recargastae","usuhora", Formato(Time, "HH:mm:ss")
Query.AddField "recargastae","codigoRespuesta", DatoXML((Cadena), "Code")
Query.AddField "recargastae","descripCodigoRespuesta", DatoXML((Cadena), "DCode")
Query.AddField "recargastae","folioCarrier", DatoXML((Cadena), "Folio")
Query.AddField "recargastae","xmlDeRespuesta", Cadena
Query.Exec
Script.ImprimeFormato "TICKETTAE", (id), (Ambiente), Me, False
End Sub
Function Monto(Cadena, SKU)
Dim nPosicion
nPosicion = ClAt(SKU, Cadena)
Cadena = Mid(Cadena, nPosicion + Len(SKU) + 1)
nPosicion = ClAt(" ", Cadena)
Cadena = Mid(Cadena, nPosicion + 1)
nPosicion = ClAt(",", Cadena)
If nPosicion > 0 Then
Cadena = Mid(Cadena, 1, nPosicion - 1)
End If
Monto = Cadena
End Function
Function DatoXML(laCadena, datoABuscar)
Dim nPosicion
nPosicion = clAt(datoABuscar, laCadena)
laCadena = Mid(laCadena, nPosicion)
nPosicion = clAt(">", laCadena)
laCadena = Mid(laCadena, nPosicion + 1)
nPosicion = clAt("<", laCadena)
DatoXML = Trim(Mid(laCadena, 1, nPosicion - 1))
End Function
Sub NuevaPartida(rstArticulo, nPrecio)
Set rstVenta = Rst("SELECT venta FROM ventas WHERE venta = " & Me.Venta, Ambiente.Connection)
If rstVenta.EOF Then
SalvaVenta False
End If
Query.Reset
Query.strState = "INSERT"
Query.AddField "partvta", "clave", ""
Query.AddField "partvta", "prcantidad", 1
Query.AddField "partvta", "venta", Me.Venta
Query.AddField "partvta", "articulo", rstArticulo("Articulo")
Query.AddField "partvta", "cantidad", 1
Query.AddField "partvta", "precio", nPrecio / Me.tipoDeCambio
Query.AddField "partvta", "preciobase", rstArticulo("precio1") / Me.tipoDeCambio
Query.AddField "partvta", "descuento", 0
Query.AddField "partvta", "impuesto", rstArticulo("valor")
Query.AddField "partvta", "observ", Trim(rstArticulo("Descrip"))
Query.AddField "partvta", "partida", 0
Query.AddField "partvta", "usuario", Me.Ambiente.uId
Query.AddField "partvta", "usufecha", Date
Query.AddField "partvta", "usuhora", Formato(Time, "HH:mm:ss")
Query.AddField "partvta", "almacen", 1
Query.AddField "partvta", "lista", 1
Query.AddField "partvta", "caja", Me.Ambiente.Estacion
Query.AddField "partvta", "estado", "PE"
Query.AddField "partvta", "devconf", 0
Query.AddField "partvta", "iespecial", rstArticulo("iEspecial")
Query.AddField "partvta", "kit", rstArticulo("kit")
Query.AddField "partvta", "costo_u", rstArticulo("costo_u")
Query.AddField "partvta", "costo", rstArticulo("costo")
Query.AddField "partvta", "donativo", rstArticulo("Donativo") / Me.tipoDeCambio
Query.AddField "partvta", "invent", 1
Query.Exec
nPartida = LastInsertedId(Ambiente.Connection)
fg2.Redraw = False
For n = Me.UltimaPartida To fg2.Rows - fg2.FixedRows
If clEmpty(fg2.TextMatrix(n, 0)) Then
fg2.TextMatrix(n, 10) = 1
fg2.TextMatrix(n, 0) = rstArticulo("Articulo")
fg2.TextMatrix(n, 1) = 1
fg2.TextMatrix(n, 2) = nPrecio / Me.tipoDeCambio
fg2.TextMatrix(n, 3) = Formato(0, formatoDeDinero)
fg2.TextMatrix(n, 5) = Formato(rstArticulo("Valor"), Ambiente.FDinero)
fg2.TextMatrix(n, 6) = Trim(rstArticulo("Descrip"))
fg2.TextMatrix(n, 14) = Formato(rstArticulo("iEspecial"), Ambiente.FDinero)
fg2.Row = n
fg2.Col = 6
fg2.CellFontBold = True
fg2.Col = 1
fg2.TextMatrix(n, 7) = nPartida
fg2.TextMatrix(n, 8) = 1
fg2.TextMatrix(n, 9) = 1
fg2.TextMatrix(n, 12) = Val2(rstArticulo("costo_u"))
fg2.TextMatrix(n, 17) = Val2(rstArticulo("Donativo")) / Me.tipoDeCambio
Me.UltimaPartida = n
AjustaPartida (n)
Exit For
End If
Next
Me.CantidadDeArticulos = 0
Me.Peso = 0
CalculaImportes
fg2.Redraw = True
Me.Peso = 0
End Sub
Sub calculaPrecioDeCaja()
Dim rstClaveAdd
Dim rstArticulo
Set rstClaveAdd = CreaRecordSet( "SELECT articulo, cantidad FROM clavesadd WHERE clave = '" & Me.Articulo & "'", Ambiente.Connection )
If rstClaveAdd.EOF Then
Exit Sub
End If
If rstClaveAdd("cantidad") = 1 Then
Exit Sub
End If
Set rstArticulo = CreaRecordSet( "SELECT precio3 FROM prods WHERE articulo = '" & Trim(rstClaveAdd("articulo")) & "'", Ambiente.Connection )
If Not rstArticulo.EOF Then
Me.PrecioEspecial = rstArticulo("precio3")
End If
End Sub
Sub recuperaVenta()
Dim rstVenta, nVenta
nVenta = Val2( Mid( Articulo, 4 ) )
Set rstVenta = CreaRecordSet( _
"SELECT * FROM ventas WHERE venta = " & nVenta, _
Ambiente.Connection )
If rstVenta.EOF Then
' El campo 3 despliega los mensajes en el punto de venta
txtFields(3) = "Venta no encontrada"
Exit Sub
End If
If rstVenta("estado") <> "PE" Then
txtFields(3) = "Venta no valida"
Exit Sub
End If
Set Me.rstVenta = rstVenta
Set Me.rstPartidas = CreaRecordSet( _
"SELECT * FROM partvta WHERE venta = " & nVenta, _
Ambiente.Connection )
Me.Venta = nVenta
' Me.Modo = "MODIFICACION"
Me.Reload = True
Me.ReiniciaVenta
Eventos
Me.CalculaImportes
End Sub
Sub Version2005
Dim rstEmpleado
Dim cEmpleado
Dim Query
Dim nPos
Dim cCodigo
Dim cPeso
Dim rstAsistencia
Dim Contenido
' Articulo es una variable que entrega el punto de venta
' Esto proceso todos los comandos del punto de venta
Call ValidaComando
'validaNumeroDePartidas
If UCase(Trim(Articulo)) = "CENEFASXMARCA" Then
Script.RunForm "CENEFASXMARCA", Me, Ambiente,, True
CancelaProceso = True
End If
If UCase(Trim(Articulo)) = "CENEFAS" Then
Script.RunForm "CENEFAS", Me, Ambiente,, True
CancelaProceso = True
End If
If Ucase(Trim(Articulo)) = "BORDADO" Then
Script.RunForm "BORDADO", Me, Ambiente,, True
End If
If Ucase(Trim(Articulo)) = "LONAS" Then
Script.RunForm "LONAS", Me, Ambiente,, True
End If
If Ucase(Trim(Articulo)) = "ESTAMPADO01" Then
Script.RunForm "ESTAMPADO", Me, Ambiente,, True
End If
If Ucase(Trim(Articulo)) = "ESTAMPADO02" Then
Script.RunForm "ESTAMPADO02", Me, Ambiente,, True
End If
If Ucase(Trim(Articulo)) = "ESTAMPADO03" Then
Script.RunForm "ESTAMPADO03", Me, Ambiente,, True
End If
'SumaCantidades
' Articulo es una variable publica que contiene el dato que leyo el lector
' o que tecleo el usuario hasta el momento de presionar un enter
nPos = clAt( "*", Articulo )
' cantidadDeArticulos es una variable publica que indica la cantidad
' de productos que va a aceptar el punto de venta
If nPos > 0 Then
cantidadDeArticulos = Val2( Mid( Articulo, 1, nPos - 1 ) )
Articulo = Mid( Articulo, nPos + 1 )
End If
' Para articulos con peso
If clAt( "ARTICULOPARAPESO", Articulo ) = 1 Then
cCodigo = Mid( Articulo, 3, 5 )
cPeso = Mid( Articulo, 8 )
Articulo = cCodigo
CantidadDeArticulos = (Val2(cPeso) / 10000)
End if
nPos = clAt( "CLI", Articulo )
' La varable cancelaProceso termina el flujo de programa interno de MyBusiness
' Parecido a Exit Sub
If nPos = 1 Then
txtFields(0) = Mid( Articulo, 4 )
txtFields(4) = ""
CancelaProceso = True
ChecaSaldo txtFields(0)
ColocaFoto txtFields(0)
End If
If clAt( "EMP", Articulo ) = 1 Then
cEmpleado = UCase(Mid( Articulo, 4 ))
Set rstEmpleado = CreaRecordSet( "SELECT * FROM empleados WHERE empleado = '" & cEmpleado & "'", Ambiente.Connection )
If rstEmpleado.EOF Then
txtFields(3) = "Empleado no existe"
cancelaProceso = True
txtFields(4) = ""
PlaySound Ambiente.Path & "\sounds\error.wav"
Exit Sub
End If
'Set rstEmpFecha = CreaRecordSet( "SELECT * FROM asistencia WHERE empleado = '" & cEmpleado & "' AND fecha = " & fechaSQL( Date, Ambiente.Connection ), Ambiente.Connection )
'If Not rstEmpFecha.EOF Then
' txtFields(3) = "Usted ya fue registrado"
' cancelaProceso = True
' txtFields(4) = ""
' PlaySound Ambiente.Path & "\sounds\error.wav"
' Exit Sub
'End If
'PlaySound Ambiente.Path & "\sounds\ready.wav"
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
Query.strState = "INSERT"
Query.AddField "asistencia", "id", TraeSiguiente( "asistencia", Ambiente.Connection )
Query.AddField "asistencia", "fechahora", Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
Query.AddField "asistencia", "retardo", Retardo( rstEmpleado("horaentrada") )
Query.AddField "asistencia", "empleado", cEmpleado
Query.AddField "asistencia", "fecha", Date
Query.CreateQuery
Query.Execute
txtFields(3) = rstEmpleado("nombre") & " " & Formato( Date, "dd-MM-yyyy" ) & ":" & Formato( Time, "hh:mm:ss" )
CancelaProceso = True
txtFields(4) = ""
If Not clEmpty( rstEmpleado("imagen") ) Then
CreaHTML "", "<img src='" & Trim(rstEmpleado("imagen")) & "'>"
End If
End If
If Ucase(Trim(Articulo)) = "ARTICULOS PROMOCIONALES" Then
Script.RunProcess "GALAXIA", Me.Parent, Ambiente
CancelaProceso = True
txtFields(4) = ""
End If
If Mid(UCase(Trim(Articulo)),1,6) = "MONEDA" Then
cambiaMonedaDeLaVenta Trim(Mid( Articulo, 7 ))
cancelaProceso = True
End If
'Call ValidaExistencia()
End Sub
Sub ValidaExistencia()
Dim rstProd
Set rstProd = CreaRecordSet( "SELECT alm" & Ambiente.Almacen & " FROM prods WHERE articulo = '" & articulo & "'", _
Ambiente.Connection )
If Not rstProd.EOF Then
If rstProd(0) <= 0 Then
Me.OperacionBloqueada = True
txtFields(3) = "Existencia insuficiente, operación bloqueada"
CancelaProceso = True
PlaySound Ambiente.Path & "\sounds\Existencia.wav"
End If
End If
End Sub
Sub cambiaMonedaDeLaVenta( cMoneda )
Dim rstVenta, rstMoneda, Query, rstMonedaOriginal
Set rstVenta = CreaRecordSet( _
"SELECT * FROM ventas WHERE venta = " & Me.Venta, Ambiente.Connection )
Set rstMoneda = CreaRecordSet( _
"SELECT * FROM monedas WHERE moneda = '" & cMoneda & "'", Ambiente.Connection )
If Not rstMoneda.EOF Then
Me.Moneda = cMoneda
Me.tipoDeCambio = rstMoneda("tc")
Else
Exit Sub
End If
If rstVenta.EOF Then
Exit Sub
End If
If Ucase(Trim(rstVenta("moneda"))) = UCase(Trim(cMoneda)) Then
Exit Sub
End If
Ambiente.Connection.Execute _
"UPDATE partvta SET precio = precio * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _
"preciobase = preciobase * " & FormatoDecimal( rstVenta("tipo_cam") ) & ", " & _
"donativo = donativo * " & FormatoDecimal( rstVenta("tipo_cam") ) & " " & _
"WHERE venta = " & Me.Venta
Ambiente.Connection.Execute _
"UPDATE partvta SET precio = precio / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _
"preciobase = preciobase / " & FormatoDecimal( Me.tipoDeCambio ) & ", " & _
"donativo = donativo / " & FormatoDecimal( Me.tipoDeCambio ) & " " & _
"WHERE venta = " & Me.Venta
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
Query.Reset
Query.strState = "UPDATE"
Query.Condition = "venta = " & Me.Venta
Query.AddField "ventas", "moneda", Me.Moneda
Query.AddField "ventas", "tipo_cam", Me.tipoDeCambio
Query.CreateQuery
Query.Execute
Parent.ReLoad = True
ReiniciaVenta
CalculaImportes
End Sub
Sub ChecaSaldo( Cliente )
Dim rstSaldo, rstCobranza, Html
Set rstSaldo = CreaRecordSet( "SELECT * FROM clients WHERE cliente = '" & Cliente & "'", _
Ambiente.Connection )
If rstSaldo.EOF Then
Exit Sub
End If
CreaHTML "",""
If rstSaldo("Saldo") <= 0 Then
Exit Sub
End If
PlaySound "c:\saldo.wav"
Set rstCobranza = CreaRecordSet( _
"SELECT * FROM cobranza WHERE cliente = '" & cliente & "' AND saldo > 0", _
Ambiente.Connection )
html = ""
While Not rstCobranza.EOF
html = html & "<p>"
html = html & "Documento " & rstCobranza("tipo_doc") & _
rstCobranza("no_referen") & " " & rstCobranza("Saldo")
html = html & "</p>"
rstCobranza.MoveNext
Wend
CreaHTML "",(Html)
End Sub
Function Retardo( strHora )
Dim intMinutos
Dim intMinutosActual
Dim nPos
Dim strHoraActual
Dim tolerancia
tolerancia = 10
nPos = clAt( ":", strHora )
intMinutos = Val2( Mid( strHora, 1, nPos - 1) ) * 60
intMinutos = intMinutos + Val2( Mid( strHora, nPos + 1 ) )
strHoraActual = Formato( Time(), "hh:mm" )
nPos = clAt( ":", strHoraActual )
intMinutosActual = Val2( Mid( strHoraActual, 1, nPos - 1) ) * 60
intMinutosActual = intMinutosActual + Val2( Mid( strHoraActual, nPos + 1 ) )
If intMinutosActual > (intMinutos + tolerancia) Then
Retardo = intMinutosActual - intMinutos
Else
Retardo = 0
End If
End Function
Sub ColocaFoto( cCliente )
Dim cHtml
cHtml = "<img src=c:\fotos\" & Trim( cCliente ) & ".jpg width=100%>"
CreaHTML "", (cHtml)
End Sub
Sub SumaCantidades()
' Buscamos si el artículo ya esta en el GRID
For n = 1 to fg2.Rows - 1
If clEmpty( fg2.TextMatrix( n, 0 ) ) Then
Exit For
End If
Set rstArtAux = Rst("SELECT tiempoaire FROM prods WHERE articulo = '" & Trim(Articulo) & "'", Ambiente.Connection)
If Trim(fg2.TextMatrix( n, 0 )) = Trim(Articulo) AND Val2(rstArtAux("tiempoaire")) <> 0 Then
Ambiente.Connection.Execute "UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & fg2.TextMatrix( n, 7 )
fg2.TextMatrix( n, 1 ) = Val2( fg2.TextMatrix( n, 1 ) ) + 1
txtFields(4) = ""
CancelaProceso = True
Exit Sub
End If
Next
End Sub
Sub validaNumeroDePartidas
Dim rstPartidas
Set rstPartidas = CreaRecordSet( _
"SELECT COUNT( * ) FROM partvta WHERE venta = " & Me.Venta, _
Ambiente.Connection )
If Val2( rstPartidas(0) ) >= 4 Then
MyMessage "No es posible capturar mas de 4 partidas"
CancelaProceso = True
End If
End Sub
Sub ValidaComando()
If clAt( "/", Articulo ) > 0 And clAt( "//", Articulo ) = 0 Then
Call cantidaporPrecio()
Exit Sub
End If
If Trim(UCase(Articulo)) = "COMPRAS" Then
Set Compras = CreateObject( "MyBCompras.Compras" )
Set Compras.Ambiente = Ambiente
Compras.NuevaCompra True
End If
If Len( Trim( Articulo ) ) <> 4 Then
Exit Sub
End If
If clAt( "Z", UCase(Articulo) ) <> 1 Then
Exit Sub
End If
Select Case UCase(Articulo)
Case "Z001"
Script.RunForm "ALTACLIENTE", Me, Ambiente,, True
Case "Z002"
Me.OperacionBloqueada = False
txtFields(3) = "Operación Reactivada"
Case "Z003"
Me.FinalizaOperacion
Case "Z004"
Script.RunForm "ALTARAPIDA", Me, Ambiente,, True
Case "Z005"
If Question(Mensaje(642, Ambiente)) Then
Me.BorraVenta = True
Me.FinalizaOperacion
End If
Case "Z006"
Me.RecuperaVentaDeCliente
Case "Z007"
If txtFields(0).Enabled Then
txtFields(0).SetFocus
End If
Case "Z008"
AplicaDescuento
Case "Z009"
Script.RunProcess "CORTEX", Me, Ambiente
Case "Z010"
Script.RunProcess "CORTEZ", Me, Ambiente
Case "Z011"
Script.RunForm "PAGOEFECTIVO", Me, Ambiente,, True
Case "Z012"
Script.RunForm "COBROENEFECTIVO", Me, Ambiente,, True
Case "Z013"
Set rstUsuventas = CreaRecordSet( "SELECT * FROM usuventas WHERE usuario = '" & Ambiente.Uid & "'", Ambiente.Connection )
If rstUsuventas.EOF Then
Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
'Exit Sub
End If
If Val2( rstUsuventas("devpunto") ) <> 0 Then
Script.RunForm "DEVOLUCIONES", Me, Ambiente, True
'Exit Sub
Else
MyMessage "No tiene derecho a hacer devoluciones, solicite el permiso con su supervisor"
'Exit Sub
End If
Case "Z014"
Script.RunForm "TICKETAFACTURA", Me, Ambiente,, True
'Case "Z016"
'
' Me.ActivaCobranza
Case "Z015"
Script.RunProcess "PUNTOV063", Me, Me.Ambiente
Case "Z016"
Script.RunForm "RETICKET", Me, Ambiente,, True
'Case "Z019"
'
' MyMessage "CONTROL + F12 Editar datos cliente" & vbCrLf & "CONTROL + F7 Editar guión" & vbCrLf & "SHIFT + F3 Colocar cursor en campo repartidor" & vbCrLf & "SHIFT + F4 Alta de repartidor"
Case "Z017"
Script.RunForm "FCAJA", Me, Ambiente,, True
Case "Z018"
Script.RunForm "CAMBIOUSUARIO", Me, Ambiente,, True
'Case "Z022"
'
' Script.RunProcess "VENTASCOLECTOR", Me, Me.Ambiente
Case "Z019"
Calculadora Ambiente
Case "Z020"
Script.RunProcess "ABRECAJON", Me, Me.Ambiente
Case "Z021"
Script.RunProcess "ELIMINAVENTA", Me, Me.Ambiente
Case "Z022"
Script.RunForm "VENTASOBSERV", Me, Ambiente,, True
Case "Z023"
Script.RunForm "VENTASDESC", Me, Ambiente,, True
Case "Z024"
Script.RunForm "CAMBIOVALEEFECTIVO", Me, Me.Ambiente,, True
Case "Z025"
Script.Runform "FACTURADECIERRE", Me, Ambiente,, False
Case "Z026"
Script.RunHuellaForm "REGISTROACCESO", Me, Ambiente,, True
'Case "Z028"
'Script.Runform "LISTADEPEDIDOS", Me, Ambiente,, True
End Select
CancelaProceso = True
txtFields(4) = ""
End Sub
Sub llenaPuntoDeVenta
Dim cLinea, dondeEstaLaComa, articulo
' CloseFile cierra un manejador de archivo
CloseFile 1
' OpenFile Abre un archivo de texto para lectura
OpenFile "c:\articulos.txt", 1
' FileEOF regresa true en caso de que el archivo
' de texto llegue a su final
While Not FileEOF( 1 )
' ReadLine lee una cadena de texto
' hasta que encuentra un retorno de carro
cLinea = ReadLine( 1 )
dondeEstaLaComa = clAt( ",", (cLinea) )
articulo = Mid(cLinea, 1, dondeEstaLaComa -1 )
' cantidadDeArticulos es una variable que
' entrega el punto de venta e indica la
' cantidad de productos que se va a ingresar
' en el punto de venta
cantidadDeArticulos = _
Mid( cLinea, dondeEstaLaComa + 1 )
' llenaPartidad Es un metodo que ingresa
' producto en el punto de venta
llenaPartida (articulo)
Wend
CloseFile 1
End Sub
Sub calculaPeso()
Dim rstArticulo, cArticulo, nPesos
nPos = clAt( "--", Articulo )
cArticulo = Mid( Articulo, nPos + 2 )
nPesos = Val2(Mid( Articulo, 1, nPos - 1 ))
Set rstArticulo = CreaRecordSet( _
"SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", _
Ambiente.Connection )
If Not rstArticulo.EOF Then
Articulo = cArticulo
cantidadDeArticulos = nPesos / rstArticulo("precio1")
End If
End Sub
Function Permisos( permisoSolicitado )
Set rstUsuario = CreaRecordSet( _
"SELECT * FROM usuarios WHERE usuario = '" & Ambiente.uid & "'", Ambiente.connection )
If rstUsuario("supervisor") Then
cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
cmdZ004.Caption = "Z004 Da de alta o modifica un artículo"
cmdZ005.Caption = "Z005 Deja como pendiente la venta actual"
cmdZ006.Caption = "Z006 Muestra lista de ventas pendientes"
cmdZ007.Caption = "Z007 Posicionar el cursor en el campo de cliente"
cmdZ008.Caption = "Z008 Pantalla de descuentos"
cmdZ009.Caption = "Z009 Corte parcial X"
cmdZ010.Caption = "Z010 Corte total Z"
cmdZ011.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
cmdZ012.Caption = "Z012 Permite capturar una salida de dinero a caja"
cmdZ013.Caption = "Z013 <ticket> <estación> Realiza una devolución de mercancia en caja"
cmdZ014.Caption = "Z014 <ticket> <estacion> Convierte un ticket en factura"
cmdZ015.Caption = "Z015 <devolución> Realiza el pago de la devolucion"
cmdZ016.Caption = "Z016 Cobranza a clientes"
cmdZ017.Caption = "Z017 Muestra información del próducto"
cmdZ018.Caption = "Z018 Re imprimir ticket"
cmdZ019.Caption = "Z019 Functiones ventas por teléfono (Informativo)"
cmdZ020.Caption = "Z020 Arqueo de efectivo"
cmdZ021.Caption = "Z021 Cambio de usuario"
cmdZ022.Caption = "Z022 Recupera ventas del colector"
cmdZ023.Caption = "Z023 Muestra la calculadora"
cmdZ024.Caption = "Z024 Abre el cajón de dinero"
cmdZ025.Caption = "Z025 Elimina la ultima venta"
cmdZ026.Caption = "Z026 Observaciones a la venta"
cmdZ027.Caption = "Z027 Descuento por importe"
Else
cmdZ001.Caption = "Z001 Cambia o da de alta un cliente"
cmdZ002.Caption = "Z002 Quita bloqueo por error código de producto"
cmdZ003.Caption = "Z003 Confirma la venta o muestra ventana de cobro"
cmdZ004.Caption = "Z005 Deja como pendiente la venta actual"
cmdZ005.Caption = "Z006 Muestra lista de ventas pendientes"
cmdZ006.Caption = "Z007 Posicionar el cursor en el campo de cliente"
cmdZ007.Caption = "Z011 Permite capturar un ingreso de dinero a caja"
cmdZ008.Caption = "Z012 Permite capturar una salida de dinero a caja"
cmdZ009.Caption = "Z015 <devolución> Realiza el pago de la devolucion"
cmdZ010.Caption = "Z020 Arqueo de efectivo"
cmdZ011.Caption = "Z021 Cambio de usuario"
cmdZ012.Caption = "Z024 Abre el cajón de dinero"
cmdZ013.Caption = "Z025 Elimina la ultima venta"
cmdZ014.Caption = "Z026 Observaciones a la venta"
cmdZ015.Caption = "Z027 Descuento por importe"
End If
End Function
Sub cantidaporPrecio()
Dim nPos, cCantidad, cArticulo, rstProd
Dim nPrecio
nPos = clAt( "/", Articulo )
cCantidad = Mid( Articulo,1, nPos - 1 )
cArticulo = Trim( Mid( Articulo, nPos + 1 ) )
Set rstProd = CreaRecordSet( "SELECT * FROM prods WHERE articulo = '" & cArticulo & "'", Ambiente.Connection )
If rstProd.EOF Then
Exit Sub
End If
nCantidad = Round( Val2( cCantidad ) / rstProd("precio1"), 4 )
If Not rstProd.EOF Then
cantidadDeArticulos = nCantidad
llenaPartida rstProd("Articulo")
End If
CancelaProceso = True
End Sub
Sub incrementaProducto()
Dim rstArticulo, Query
Set rstArticulo = CreaRecordSet( _
"SELECT articulo FROM prods WHERE articulo = '" & Me.Articulo & "' AND granel = 0 AND speso = 0", _
Ambiente.Connection )
Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection
If rstArticulo.EOF Then
Exit Sub
End If
For n = 0 To fg2.Rows - 1
If clEmpty( fg2.TextMatrix( n, 0 ) ) Then
Exit For
End If
If Ucase( Trim( fg2.TextMatrix(n,0) ) ) = _
UCase( Trim(Me.Articulo) ) Then
Query.SQL = _
"UPDATE partvta SET cantidad = cantidad + 1 WHERE id_salida = " & _
fg2.TextMatrix(n,7)
Query.Exec
fg2.TextMatrix(n,1) = Val2(fg2.TextMatrix(n,1)) + 1
CancelaProceso = True
Me.CalculaImportes
Exit For
End If
Next
End Sub