Files
Salma_Almacen/B4A/C_escaneo.bas
2023-09-24 00:55:14 -06:00

1270 lines
36 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.8
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Private Dialog As B4XDialog
Private P_escan As Panel
Private e_cant As EditText
Private b_vreseumen As Button
Private B_borrar As Button
Private phn As PhoneVibrate
Private p_img As Panel
Private p_nums As Panel
Private e_prod As EditText
Private b_sig As Button
Private E_ESCANER As EditText
Private c As Cursor
Private codigo_escaner As String
Private piezas_escaner As String
Private P_escan As Panel
Private b_cad As Button
Private teclado As IME
Dim db As SQL
Private b_incidencia As Button
Private p_inci As Panel
Private B4XComboBox1 As B4XComboBox
Private B4XComboBox2 As B4XComboBox
Private d As Cursor
Private b_cadincidencia As Button
Private B_registrar As Button
Private et_cant_incidencia As EditText
Private ed_com As EditText
Private b_cancel As Button
Dim itemselect As String
Dim itemselect2 As String
Dim itemselect3 As String
Dim itemselect4 As String
Private b_limpiar As Button
Private p_calendario As Panel
Private ASWheelPicker1 As ASWheelPicker
Private ASWheelPicker2 As ASWheelPicker
Private ASWheelPicker3 As ASWheelPicker
Private l_fecha_caducidad As Label
Dim day As String = DateTime.GetDayOfMonth(DateTime.Now)
Dim month As String = DateTime.GetMonth(DateTime.Now)
Dim year2 As String = DateTime.GetYear(DateTime.Now)
Dim month2 As String
Private bgfecha As Button
Private SearchTemplate As B4XSearchTemplate
Private Base As B4XView
Private p_busqueda As Panel
'camara
Private pnlPreview As B4XView
Private btnStartStop As Panel
Private rp As RuntimePermissions
Private detector As JavaObject
Private camEx As CameraExClass
Private camEx2 As CameraExClass2
Private LastPreview As Long
Private IntervalBetweenPreviewsMs As Int = 100
Private toast As BCToast
Private Capturing As Boolean
Private B_cerrar As Button
Private Panel6 As Panel
Private b_cadcancel As Button
Private b_cam_inci As Panel
Private p_cam As Panel
Dim frontCamera As Boolean = False
Private p_camara As Panel
Private b_foto_inci As Button
Dim nombrefoto As String
Private e_cantpiezas As EditText
Private p_cant_cajas As Panel
Private p_cant_piezas As Panel
Dim panelselect As String = 1
Private l_cajas As Label
Private l_piezas As Label
Dim foto As String = 0
Private clv_producto As CustomListView
Private lb_prod As Label
Private lb_cantarchivo As Label
Private Label5 As Label
Private lb_entrada As Label
Private et_cant As EditText
Private p_prodnoencontrado As Panel
Dim cadx As Button
Private c_prodn As B4XComboBox
Private c_entradan As B4XComboBox
Private et_cantn As EditText
Private lb_prodn As Label
Dim d As Cursor
Private p_busquedainci As Panel
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Base = Root
Dialog.Initialize (Base)
Root.LoadLayout("escaneo")
p_calendario.Width = Root.Width
p_calendario.Height= Root.Height
p_calendario.Visible = False
e_cant.Enabled = False
e_cantpiezas.Enabled = False
P_escan.Width = Root.Width
p_nums.Visible = True 'fl lo agregue
db.Initialize(Starter.rutaBD,"kmt.db",True)
p_inci.Visible = False
l_cajas.TextColor = Colors.Red
l_piezas.TextColor = Colors.Gray
p_cant_cajas.Color = Colors.Transparent
p_cant_piezas.Color = Colors.Transparent
Panel6.Width = Root.Width
Panel6.Height= Root.Height
e_prod.Enabled = False
'Se crea lista para incidencias
c = Starter.skmt.ExecQuery("SELECT CAT_INC_DESCRIPCION FROM CAT_INCIDENCIA")
Dim Items As List
Items.Initialize
If c.RowCount > 0 Then
Items.Add("SELECCIONA UNA OPCION")
For i = 0 To c.RowCount-1
c.Position = i
Items.Add(c.GetString("CAT_INC_DESCRIPCION"))
Next
B4XComboBox1.SetItems(Items)
End If
c.Close
itemselect = "Selecciona una opcion"
'Se crean lista para producto que no este registrado
SearchTemplate.Initialize
Dialog.BackgroundColor = Colors.White
Dialog.ButtonsColor = Colors.Blue
Dialog.BorderColor = Colors.Blue
Dialog.ButtonsTextColor = Colors.White
Dialog.BorderCornersRadius = 30
Dialog.ButtonsHeight = 70
SearchTemplate.Resize(330dip,370dip)
SearchTemplate.ItemHightlightColor = Colors.Blue
SearchTemplate.CustomListView1.sv.ScrollViewInnerPanel.Color = Colors.Blue
SearchTemplate.CustomListView1.DefaultTextColor = Colors.Black
SearchTemplate.CustomListView1.DefaultTextBackgroundColor = Colors.White
SearchTemplate.TextHighlightColor = Colors.Black
SearchTemplate.SearchField.TextField.TextColor = Colors.Black
d = Starter.skmt.ExecQuery("SELECT CAT_GP_NOMBRE FROM CAT_PRODUCTOS_ALMACEN")
Dim Items2 As List
Items2.Initialize
If d.RowCount > 0 Then
For i = 1 To d.RowCount-1
d.Position = i
Items2.Add(d.GetString("CAT_GP_NOMBRE"))
Next
SearchTemplate.SetItems(Items2)
End If
d.Close
p_busqueda.Enabled = False
p_busquedainci.Enabled = False
'Creacion de spinners para caducidad
Dim dias As List : dias.Initialize
Log(month)
For i = 1 To 31
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = i
Item.Value = i
Item.ItemTextProperties = ASWheelPicker1.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
dias.Add(Item)
Next
ASWheelPicker1.AddItems(dias)
Dim mes0 As List : mes0.Initialize
mes0 = Array As String("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
Dim mes As List
mes.Initialize
For Each o As Object In mes0
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = o
Item.Value = o
Item.ItemTextProperties = ASWheelPicker2.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
mes.Add(Item)
Next
ASWheelPicker2.AddItems(mes)
Dim year As List : year.Initialize
For i = DateTime.GetYear(DateTime.Now) To DateTime.GetYear(DateTime.Now) + 4
Dim Item As ASWheelPicker_Item
Item.Initialize
Item.Text = i
Item.Value = i
Item.ItemTextProperties = ASWheelPicker3.ItemTextProperties
Item.ItemTextProperties.TextColor = (0x8FF000000)
year.Add(Item)
Next
ASWheelPicker3.AddItems(year)
ASWheelPicker1.Refresh
ASWheelPicker2.Refresh
ASWheelPicker3.Refresh
If (DateTime.GetMonth(DateTime.Now)= 1 Or DateTime.GetMonth(DateTime.Now)= 2 Or DateTime.GetMonth(DateTime.Now)= 3 Or DateTime.GetMonth(DateTime.Now)= 4 Or DateTime.GetMonth(DateTime.Now)= 5 Or DateTime.GetMonth(DateTime.Now)= 6 Or DateTime.GetMonth(DateTime.Now)= 7 Or DateTime.GetMonth(DateTime.Now)= 8 Or DateTime.GetMonth(DateTime.Now)= 9 ) Then
l_fecha_caducidad.Text = DateTime.GetDayOfMonth(DateTime.Now)&"/"&"0"&DateTime.GetMonth(DateTime.Now)&"/"&DateTime.GetYear(DateTime.Now)
End If
'camara
Panel6.Visible = False
p_camara.Height = Root.Height
p_camara.Width = Root.Width
p_camara.Visible = False'
toast.Initialize(Root)
StopCamera
B4XPages.SetTitle(Me, "Barcode Example")
CreateDetector (Array("AZTEC", "CODE_128", "CODE_39", "CODE_93", "CODABAR", "DATA_MATRIX", "EAN_13", "EAN_8", "ITF", "PDF417", "QR_CODE", "UPC_A", "UPC_E"))
End Sub
Private Sub B4XPage_Appear
DateTime.DateFormat="dd/MM/yyyy"
E_ESCANER.RequestFocus
InitializeCamera2
clv_producto.Clear
p_prodnoencontrado.Visible = False
p_inci.Visible = False
p_nums.Visible = True
P_escan.Visible = True
End Sub
'
Private Sub B4XPage_Resume
Log("pausado")
p_nums.Visible = True
P_escan.Visible = True
InitializeCamera2
End Sub
'tomar foto
Private Sub InitializeCamera2
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
camEx2.Initialize(p_cam, frontCamera, Me, "Camera1")
frontCamera = camEx2.Front
Log("inicializamos Camara")
' Else
' ToastMessageShow("No permission!!!", True)
' End If
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
End Sub
Sub Camera1_Ready (Success As Boolean)
Log("Camara ready")
If Success Then
camEx2.SetJpegQuality(90)
camEx2.SetContinuousAutoFocus
camEx2.CommitParameters
camEx2.StartPreview
Log(camEx2.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", True)
Log("Cannot open camera")
End If
End Sub
Private Sub b_cam_inci_Click
foto = 2
DateTime.DateFormat="ddMMyyyyHHmmss"
InitializeCamera2
p_camara.Visible = True
nombrefoto = DateTime.Now & "_foto.jpg"
teclado.HideKeyboard
End Sub
Private Sub p_camara_Click
End Sub
Private Sub b_foto_inci_Click
camEx2.TakePicture
' p_camara.Visible = False
' StopCamera
End Sub
Sub Camera1_PictureTaken (Data()As Byte)
Log("tome foto")
Dim filename As String = nombrefoto
Dim Dirp As String = File.DirRootExternal
Dim Dir As String
Try
File.MakeDir(Dirp,"incidenciaskmts")
Dir = "/incidenciaskmts"
Catch
Dir = ""
End Try
camEx2.SavePictureToFile(Data, Dirp&Dir, filename)
camEx2.StartPreview 'restart preview
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
p_camara.Visible = False
StopCamera2
End Sub
Private Sub StopCamera2
' Capturing = False
If camEx2.IsInitialized Then
camEx2.Release
End If
End Sub
'fin tomar foto
'camara
Private Sub B4XPage_Disappear
If p_camara.Visible = True Then
p_camara.Visible= False
StopCamera2
Else if Panel6.Visible = True Then
Panel6.Visible = False
StopCamera
End If
' StopCamera
' StopCamera2
' Panel6.Visible = False
' p_calendario.Visible = False
End Sub
Sub btnStartStop_Click
foto = 1
If Capturing = False Then
Panel6.Visible = True
StartCamera
phn.Vibrate(100)
Else
Panel6.Visible = False
StopCamera
phn.Vibrate(100)
End If
End Sub
Private Sub B_cerrar_Click
If E_ESCANER.Text.Length = 0 Then
Panel6.Visible = False
StopCamera
StopCamera2
phn.Vibrate(100)
Else
Panel6.Visible = False
StopCamera
StopCamera2
E_ESCANER_EnterPressed
phn.Vibrate(100)
End If
End Sub
Private Sub StopCamera
' E_ESCANER.Text = ""
Capturing = False
pnlPreview.Visible = False
If camEx.IsInitialized Then
camEx.Release
End If
End Sub
Private Sub StartCameraShared
pnlPreview.Visible = True
Capturing = True
End Sub
Private Sub FoundBarcode (msg As String)
E_ESCANER.Text = msg
toast.Show($"Found [Color=Red][b][plain]${msg}[/plain][/b][/Color]"$)
Log(msg)
If E_ESCANER.Text.Length > 1 Then
B_cerrar_Click
End If
End Sub
Private Sub StartCamera
rp.CheckAndRequest(rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then
toast.Show("No permission!")
Return
End If
StartCameraShared
camEx.Initialize(pnlPreview, False, Me, "Camera1")
Wait For Camera1_Ready (Success As Boolean)
If Success Then
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
Else
toast.Show("Error opening camera")
StopCamera
End If
End Sub
Private Sub CreateDetector (Codes As List)
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim builder As JavaObject
builder.InitializeNewInstance("com/google/android/gms/vision/barcode/BarcodeDetector.Builder".Replace("/", "."), Array(ctxt))
Dim barcodeClass As String = "com/google/android/gms/vision/barcode/Barcode".Replace("/", ".")
Dim barcodeStatic As JavaObject
barcodeStatic.InitializeStatic(barcodeClass)
Dim format As Int
For Each formatName As String In Codes
format = Bit.Or(format, barcodeStatic.GetField(formatName))
Next
builder.RunMethod("setBarcodeFormats", Array(format))
detector = builder.RunMethod("build", Null)
Dim operational As Boolean = detector.RunMethod("isOperational", Null)
If operational = False Then
toast.Show("Failed to create detector")
End If
btnStartStop.Enabled = operational
End Sub
Private Sub Camera1_Preview (data() As Byte)
If DateTime.Now > LastPreview + IntervalBetweenPreviewsMs Then
'Dim n As Long = DateTime.Now
Dim frameBuilder As JavaObject
Dim bb As JavaObject
bb = bb.InitializeStatic("java.nio.ByteBuffer").RunMethod("wrap", Array(data))
frameBuilder.InitializeNewInstance("com/google/android/gms/vision/Frame.Builder".Replace("/", "."), Null)
'New Code
Dim In As InputStream
In.InitializeFromBytesArray(camEx.PreviewImageToJpeg(data, 100), 0, data.Length)
Dim bmp As Bitmap
'Log(TestPnl.Top)
' TestPnl.Top = 40dip
' TestPnl.Width = pnlPreview.Width
bmp.Initialize2(In)
bmp = bmp.Rotate(90)
bmp = bmp.Crop(0, bmp.Height * .3, bmp.Width, bmp.Height * .3)
'bmp = bmp.Resize(bmp.Width, bmp.Height * .8, True)
'QrTestPnl.SetBitmap(bmp)
'Dim B As Bitmap = camEx.PreviewImageToJpeg(data, 100)
'bmp.Rotate(270)
frameBuilder.RunMethod("setBitmap", Array(bmp)) 'instead of the setImageData line
'frameBuilder.RunMethod("setBitmap", Array(TestPnl.GetBitmap)) 'instead of the setImageData line
'End of new code
'Old Code
' Dim cs As CameraSize = camEx.GetPreviewSize
' frameBuilder.RunMethod("setImageData", Array(bb, cs.Width, cs.Height, 842094169))
Dim frame As JavaObject = frameBuilder.RunMethod("build", Null)
Dim SparseArray As JavaObject = detector.RunMethod("detect", Array(frame))
LastPreview = DateTime.Now
Dim Matches As Int = SparseArray.RunMethod("size", Null)
If Matches > 0 Then
Dim barcode As JavaObject = SparseArray.RunMethod("valueAt", Array(0))
Dim raw As String = barcode.GetField("rawValue")
FoundBarcode(raw)
End If
End If
End Sub
'fin camara
Private Sub E_ESCANER_EnterPressed
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_EQUIVALENCIAS where CAT_EQ_EQUIVALENCIA = ? ", Array As String(E_ESCANER.TEXT))
c.Position = 0
codigo_escaner = c.GetString("CUANTOS")
c.Close
If codigo_escaner > 0 Then
c=Starter.skmt.ExecQuery2("select CAT_EQ_CODIGO, CAT_EQ_EQUIVALENCIA from CAT_EQUIVALENCIAS where CAT_EQ_EQUIVALENCIA = ? ", Array As String(E_ESCANER.TEXT))
c.Position = 0
codigo_escaner = c.GetString("CAT_EQ_CODIGO")
c.Close
c=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(codigo_escaner))
d=Starter.skmt.ExecQuery2("SELECT CAT_OC_FOLIO, RESTA, CAT_OC_UM FROM CAT_ORDENCOMPRA_SUMA WHERE CAT_OC_IDPROD = ?",Array As String (codigo_escaner))
clv_producto.Clear
d.Position = 0
c.Position = 0
If d.RowCount = 0 Then
Log("entre a registrar un producto escaneado")
clv_producto.AsView.Visible = False
p_prodnoencontrado.Visible = True
' c.Position = 0
For i = 0 To c.RowCount - 1
c.Position = i
lb_prodn.Text = (c.GetString("CAT_GP_NOMBRE"))
Next
c.Close
d = Starter.skmt.ExecQuery("SELECT ORDEN FROM CAT_ORDENES_SELECCIONADAS")
Dim Items4 As List
Items4.Initialize
If d.RowCount > 0 Then
Items4.Add("Selecciona una opcion")
For i = 0 To d.RowCount-1
d.Position = i
Items4.Add(d.GetString("ORDEN"))
Next
c_prodn.SetItems(Items4)
End If
d.Close
itemselect3 = "Selecciona una opcion"
Dim items5 As List
items5.Initialize
items5.Add("Selecciona una opcion")
items5.Add("CS")
items5.Add("EA")
c_entradan.SetItems(items5)
itemselect4 = "Selecciona una opcion"
Else If p_inci.Visible = True Then
Log("encontre el codigo con incidencia")
clv_producto.AsView.Visible = False
p_prodnoencontrado.Visible = False
' c.Position = 0
For i = 0 To c.RowCount - 1
c.Position = i
e_prod.Text = (c.GetString("CAT_GP_NOMBRE"))
Next
c.Close
Else
Log("encontre el codigo")
clv_producto.AsView.Visible = True
' c.Position = 0
' d.Position = 0
For i = 0 To d.RowCount - 1
d.Position = i
clv_producto.Add(CreateListItem(c.GetString("CAT_GP_NOMBRE"),d.GetString("CAT_OC_FOLIO"),d.GetString("RESTA"),d.GetString("CAT_OC_UM")),i)
Next
c.Close
d.Close
End If
Else If E_ESCANER.Text.Length = 0 Then
Log("no hice nada ")
Else
If p_inci.Visible Then
Log("entre a incidencia de producto no encontrado")
c=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(codigo_escaner))
p_busquedainci_Click
p_prodnoencontrado.Visible = False
clv_producto.AsView.Visible = False
c.Position = 0
For i = 0 To c.RowCount - 1
c.Position = i
e_prod.Text = (c.GetString("CAT_GP_NOMBRE"))
Next
c.Close
Else
Log("entre aqui")
MsgboxAsync("CODIGO NO ENCONTRADO","AVISO")
' e_prod.Text = "Pendiente alta"
p_busqueda.Enabled = True
p_busquedainci.Enabled = True
p_busqueda_Click
p_prodnoencontrado.Visible = True
End If
End If
If E_ESCANER.Text.Length > 1 Then
teclado.HideKeyboard
End If
End Sub
Sub CreateListItem(mostrar As String, mostrar1 As String, mostrar2 As String, mostrar3 As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, 1, 115)
p.LoadLayout("detalle_folio")
p.Height= 195dip
' p.Width = clv_orden.GetBase.Width
lb_prod.Text = mostrar
Label5.Text = mostrar1
lb_cantarchivo.Text = mostrar2
lb_entrada.Text = mostrar3
' Log(p.Width)
Return p
End Sub
Private Sub p_inci_Click
teclado.HideKeyboard
End Sub
Private Sub p_nums_Click
teclado.HideKeyboard
End Sub
Private Sub b_sig_Click
If p_prodnoencontrado.Visible = False Then
Dim r_guardado, continuar As Boolean = False
For x= 0 To clv_producto.Size - 1
Log(x & " y " & clv_producto.Size)
clv_producto.GetPanel(x)
Dim pnl0 As B4XView = clv_producto.GetPanel(x)
Dim pnl1 As B4XView = pnl0.GetView(0)
Dim b_fc As B4XView = pnl1.GetView(5)
Dim lb_oc As B4XView = pnl1.GetView(8)
Dim pnl2 As B4XView = pnl1.GetView(4)
Dim et_escan As B4XView = pnl2.GetView(0)
Log("|" & b_fc.Text & "| y |" & et_escan.text &"| y " & lb_oc.Text)
If et_escan.Text <> "" And b_fc.Text = "Caducidad" Then
continuar = False
MsgboxAsync("Captura la fecha de caducidad de todos los productos","")
Log("no cumple")
Exit
Else
continuar = True
Log("si cumple")
End If
Log("continuar0 = "& continuar)
Next
Log("Continuar =" & continuar)
If continuar Then
For x= 0 To clv_producto.Size - 1
Log(x & " y " & clv_producto.Size)
clv_producto.GetPanel(x)
Dim pnl0 As B4XView = clv_producto.GetPanel(x)
Dim pnl1 As B4XView = pnl0.GetView(0)
Dim lb_np As B4XView = pnl1.GetView(3)
Dim lb_oc As B4XView = pnl1.GetView(8)
Dim lb_um As B4XView = pnl1.GetView(7)
Dim b_fc As B4XView = pnl1.GetView(5)
Dim lb_cant As B4XView = pnl1.GetView(10)
Dim pnl2 As B4XView = pnl1.GetView(4)
Dim et_escan As B4XView = pnl2.GetView(0)
If et_escan.Text <> "" And lb_um.Text = "EA" And b_fc.Text <> "Caducidad" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
Dim nuevaFecha As String = DateTime.DATE(DateTime.Now)
db.ExecNonQuery2("INSERT INTO CAT_ESCANEO (CAT_ID_USUARIO , CAT_ALMACEN, CAT_COD_BAR, CAT_NOM_PROD, CAT_CAJAS, CAT_PIEZAS, CAT_FEC_CAD, CAT_ORDEN_COMPRA, CAT_FECHA_CAPTURA, CAT_STATUS)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Array As Object (B4XPages.MainPage.user, Starter.almacen, E_ESCANER.Text, lb_np.text,0,et_escan.Text,b_fc.Text,lb_oc.Text,nuevaFecha,"0"))
Log("inserte " & et_escan.Text)
Dim rest = lb_cant.Text - et_escan.Text
Log(rest)
Starter.skmt.ExecNonQuery2("UPDATE CAT_ORDENCOMPRA_SUMA SET RESTA = ? WHERE CAT_OC_IDPROD = ? and CAT_OC_FOLIO = ?", Array As String (rest, codigo_escaner, lb_oc.Text))
Log("actualice " & et_escan.Text)
r_guardado = True
LogColor("Se envio "& lb_oc.text,Colors.red)
Else If et_escan.Text <> "" And lb_um.Text = "CS" And b_fc.Text <> "Caducidad" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
Dim nuevaFecha As String = DateTime.DATE(DateTime.Now)
db.ExecNonQuery2("INSERT INTO CAT_ESCANEO (CAT_ID_USUARIO , CAT_ALMACEN, CAT_COD_BAR, CAT_NOM_PROD, CAT_CAJAS, CAT_PIEZAS, CAT_FEC_CAD, CAT_ORDEN_COMPRA, CAT_FECHA_CAPTURA, CAT_STATUS)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Array As Object (B4XPages.MainPage.user, Starter.almacen, E_ESCANER.Text, lb_np.text,et_escan.Text, 0,b_fc.Text,lb_oc.Text,nuevaFecha,"0"))
Log("inserte " & et_escan.Text)
Dim rest = lb_cant.Text - et_escan.Text
Log(rest)
Starter.skmt.ExecNonQuery2("UPDATE CAT_ORDENCOMPRA_SUMA SET RESTA = ? WHERE CAT_OC_IDPROD = ? and CAT_OC_FOLIO = ?", Array As String (rest, codigo_escaner, lb_oc.Text))
Log("actualice " & et_escan.Text)
r_guardado = True
LogColor("Se envio "& lb_oc.text,Colors.red)
Else If et_escan.Text = "" And (lb_um.Text = "EA" Or lb_um.Text = "CS") And b_fc.Text = "Caducidad" Then
Else
MsgboxAsync("Captura datos", "")
r_guardado = False
End If
Next
If r_guardado Then
clv_producto.Clear
E_ESCANER.Text = ""
p_nums.Visible = True 'fl lo agregue
E_ESCANER.RequestFocus
b_cadincidencia.Text = "Caducidad"
DateTime.DateFormat="dd/MM/yyyy"
MsgboxAsync("Datos guardados","")
phn.Vibrate(100)
p_busqueda.Enabled = False
End If
End If
Else If p_prodnoencontrado.Visible = True Then
If et_cantn.Text <> "" And cadx.Text <> "Caducidad" Then
If itemselect4 = "CS" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
Dim nuevaFecha As String = DateTime.DATE(DateTime.Now)
db.ExecNonQuery2("INSERT INTO CAT_ESCANEO (CAT_ID_USUARIO , CAT_ALMACEN, CAT_COD_BAR, CAT_NOM_PROD, CAT_CAJAS, CAT_PIEZAS, CAT_FEC_CAD, CAT_ORDEN_COMPRA, CAT_FECHA_CAPTURA, CAT_STATUS)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Array As Object (B4XPages.MainPage.user, Starter.almacen, E_ESCANER.Text, lb_prodn.text,et_cantn.text,0,b_cad.text,itemselect3,nuevaFecha,"0"))
E_ESCANER.Text = ""
p_nums.Visible = True 'fl lo agregue
p_prodnoencontrado.Visible = False
cadx.Text = "Caducidad"
E_ESCANER.RequestFocus
b_cadincidencia.Text = "Caducidad"
DateTime.DateFormat="dd/MM/yyyy"
MsgboxAsync("Datos guardados","")
phn.Vibrate(100)
p_busqueda.Enabled = False
c_entradan.SelectedIndex = 0
c_prodn.SelectedIndex = 0
et_cantn.Text = ""
clv_producto.AsView.Visible = True
Else If itemselect4 = "EA" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
Dim nuevaFecha As String = DateTime.DATE(DateTime.Now)
db.ExecNonQuery2("INSERT INTO CAT_ESCANEO (CAT_ID_USUARIO , CAT_ALMACEN, CAT_COD_BAR, CAT_NOM_PROD, CAT_CAJAS, CAT_PIEZAS, CAT_FEC_CAD, CAT_ORDEN_COMPRA, CAT_FECHA_CAPTURA, CAT_STATUS)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Array As Object (B4XPages.MainPage.user, Starter.almacen, E_ESCANER.Text, lb_prodn.text,0,et_cantn.text,b_cad.text,itemselect3,nuevaFecha,"0"))
E_ESCANER.Text = ""
p_nums.Visible = True 'fl lo agregue
p_prodnoencontrado.Visible = False
cadx.Text = "Caducidad"
E_ESCANER.RequestFocus
b_cadincidencia.Text = "Caducidad"
DateTime.DateFormat="dd/MM/yyyy"
MsgboxAsync("Datos guardados","")
phn.Vibrate(100)
p_busqueda.Enabled = False
c_entradan.SelectedIndex = 0
c_prodn.SelectedIndex = 0
et_cantn.Text = ""
clv_producto.AsView.Visible = True
End If
Else If (et_cantn.Text <> "" And b_cad.Text = "Caducidad") Or (et_cantn.Text = "" And cadx.Text = "Caducidad") Then
MsgboxAsync("Captura todos los datos","")
End If
End If
End Sub
Private Sub p_busqueda_Click
phn.Vibrate(100)
Wait For (Dialog.ShowTemplate(SearchTemplate, "", "", "Cancelar")) Complete (Result As Int)
If Result = xui.DialogResponse_Positive Then
clv_producto.AsView.Visible = False
lb_prodn.Text = SearchTemplate.SelectedItem
' e_prod.Text = SearchTemplate.SelectedItem
End If
phn.Vibrate(100)
d = Starter.skmt.ExecQuery("SELECT ORDEN FROM CAT_ORDENES_SELECCIONADAS")
Dim Items4 As List
Items4.Initialize
If d.RowCount > 0 Then
Items4.Add("Selecciona una opcion")
For i = 0 To d.RowCount-1
d.Position = i
Items4.Add(d.GetString("ORDEN"))
Next
c_prodn.SetItems(Items4)
End If
d.Close
itemselect3 = "Selecciona una opcion"
Dim items5 As List
items5.Initialize
items5.Add("Selecciona una opcion")
items5.Add("CS")
items5.Add("EA")
c_entradan.SetItems(items5)
itemselect4 = "Selecciona una opcion"
End Sub
Private Sub b_incidencia_Click
p_inci.Visible = True
P_escan.Visible = False
p_prodnoencontrado.Visible = False
phn.Vibrate(100)
c = Starter.skmt.ExecQuery("SELECT ORDEN FROM CAT_ORDENES_SELECCIONADAS")
Dim Items3 As List
Items3.Initialize
If c.RowCount > 0 Then
Items3.Add("SELECCIONA UNA OPCION")
For i = 0 To c.RowCount-1
c.Position = i
Items3.Add(c.GetString("ORDEN"))
Next
B4XComboBox2.SetItems(Items3)
End If
c.Close
itemselect2 = "Selecciona una opcion"
End Sub
Private Sub c_entradan_SelectedIndexChanged (Index As Int)
itemselect4 = Sender.As(B4XComboBox).SelectedItem
Log(itemselect4)
Log(Index)
End Sub
Private Sub c_prodn_SelectedIndexChanged (Index As Int)
itemselect3 = Sender.As(B4XComboBox).SelectedItem
Log(itemselect3)
Log(Index)
End Sub
Private Sub B4XComboBox2_SelectedIndexChanged (Index As Int)
itemselect2 = Sender.As(B4XComboBox).SelectedItem
Log(itemselect2)
Log(Index)
End Sub
Private Sub B4XComboBox1_SelectedIndexChanged (Index As Int)
itemselect = Sender.As(B4XComboBox).SelectedItem
Log(itemselect)
Log(Index)
End Sub
Private Sub b_cadincidencia_Click
p_calendario.Visible = True
phn.Vibrate(100)
End Sub
Private Sub b_limpiar_Click
If p_prodnoencontrado.Visible Then
p_busqueda.Enabled = False
p_prodnoencontrado.Visible = False
b_cad.Text = "Caducidad"
c_prodn.SelectedIndex = 0
c_entradan.SelectedIndex = 0
lb_prodn.Text = ""
et_cantn.Text = ""
E_ESCANER.Text = ""
Else
e_prod.Text = ""
E_ESCANER.Text = ""
b_cadincidencia.Text = "Caducidad"
E_ESCANER.RequestFocus
' b_cad.Text = "Caducidad"
phn.Vibrate(100)
p_busqueda.Enabled = False
clv_producto.Clear
End If
End Sub
Private Sub B_registrar_Click
If et_cant_incidencia.Text.Length > 0 And b_cadincidencia.Text <> "Caducidad" Then
If B4XComboBox1.SelectedIndex > 0 Then
DateTime.DateFormat="ddMMyyyyHHmmss"
Dim nuevaFecha As String=DateTime.Date(DateTime.Now)
db.ExecNonQuery2("INSERT INTO CAT_ESCAN_INCIDENCIA (CAT_ID_USUARIO, CAT_ALMACEN, CAT_COD_BAR, CAT_NOM_PROD, CAT_TIPO_INCIDENCIA, CAT_CANT, CAT_DETALLE_INCIDENCIA, CAT_FEC_CAD, CAT_ORDEN_COMPRA, CAT_FECHA_CAPTURA, CAT_FOTO, CAT_STATUS)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Array As Object (B4XPages.MainPage.user, Starter.almacen, E_ESCANER.Text,e_prod.Text,itemselect,et_cant_incidencia.Text,ed_com.Text,b_cadincidencia.Text,itemselect2, nuevaFecha,nombrefoto,"0"))
B4XComboBox1.SelectedIndex = 0
e_prod.Text = ""
et_cant_incidencia.Text = ""
E_ESCANER.Text = ""
b_cadincidencia.Text = "Caducidad"
E_ESCANER.RequestFocus
ed_com.Text = ""
p_inci.Visible = False
P_escan.Visible = True
b_cad.Text = "Caducidad"
DateTime.DateFormat="dd/MM/yyyy"
MsgboxAsync("Datos guardados","")
phn.Vibrate(100)
p_busqueda.Enabled = False
p_busquedainci.Enabled = False
B4XComboBox1.SelectedIndex = 0
Else
MsgboxAsync("Selecciona una opción valida", "")
End If
Else
MsgboxAsync("Captura todos los datos", "")
End If
End Sub
Private Sub b_cancel_Click
e_prod.Text = ""
p_inci.Visible = False
P_escan.Visible = True
et_cant_incidencia.Text = ""
E_ESCANER.Text = ""
b_cadincidencia.Text = "Caducidad"
E_ESCANER.RequestFocus
ed_com.Text = ""
B4XComboBox1.SelectedIndex = 0
B4XComboBox2.SelectedIndex = 0
phn.Vibrate(100)
p_busquedainci.Enabled = False
End Sub
Private Sub b_cad_Click
p_calendario.Visible = True
cadx = Sender
phn.Vibrate(100)
teclado.HideKeyboard
End Sub
Private Sub b_cadcancel_Click
If b_cad.Text <> "Caducidad" Then
p_calendario.Visible = False
phn.Vibrate(100)
Else
p_calendario.Visible = False
phn.Vibrate(100)
b_cad.Text = "Caducidad"
End If
End Sub
Private Sub p_calendario_Click
End Sub
Private Sub ASWheelPicker1_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker1.GetSelectedItem(Column).Text
day = ASWheelPicker1.GetSelectedItem(Column).Text
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub ASWheelPicker2_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker2.GetSelectedItem(Column).Text
month = ASWheelPicker2.GetSelectedItem(Column).Text
If month = "Enero" Then
month2 = "01"
Else If month = "Febrero" Then
month2 = "02"
Else If month = "Marzo" Then
month2 = "03"
Else If month = "Abril" Then
month2 = "04"
Else If month = "Mayo" Then
month2 = "05"
Else If month = "Junio" Then
month2 = "06"
Else If month = "Julio" Then
month2 = "07"
Else If month = "Agosto" Then
month2 = "08"
Else If month = "Septiembre" Then
month2 = "09"
Else If month = "Octubre" Then
month2 = "10"
Else If month = "Noviembre" Then
month2 = "11"
Else If month = "Diciembre" Then
month2 = "12"
End If
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub ASWheelPicker3_ItemChange(Column As Int,ListIndex As Int)
l_fecha_caducidad.Text = ASWheelPicker3.GetSelectedItem(Column).Text
year2 = ASWheelPicker3.GetSelectedItem(Column).Text
If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
l_fecha_caducidad.Text = "0"&day&"/"&month2&"/"&year2
Else
l_fecha_caducidad.Text = day&"/"&month2&"/"&year2
End If
End Sub
Private Sub bgfecha_Click
If l_fecha_caducidad.Text = "" Then
cadx.text = "Caducidad"
b_cadincidencia.Text = "Caducidad"
Else
If month = "Febrero" And (day = 31 Or day = 30) And (year2 Mod 4) = 0 Then
Log(year2 Mod 4)
cadx.Text = "29"&"/"&month2&"/"&year2
b_cadincidencia.Text = "29"&"/"&month2&"/"&year2
Else If month = "Febrero" And (day = 31 Or day = 30 Or day = 29) And (year2 Mod 4) > 1 Then
cadx.Text = "28"&"/"&month2&"/"&year2
b_cadincidencia.Text = "28"&"/"&month2&"/"&year2
Else If month = "Abril" And day = 31 Then
cadx.Text = "30"&"/"&month2&"/"&year2
b_cadincidencia.Text = "30"&"/"&month2&"/"&year2
Else If month = "Junio" And day = 31 Then
cadx.Text = "30"&"/"&month2&"/"&year2
b_cadincidencia.Text = "30"&"/"&month2&"/"&year2
Else If month = "Septiembre" And day = 31 Then
cadx.Text = "30"&"/"&month2&"/"&year2
b_cadincidencia.Text = "30"&"/"&month2&"/"&year2
Else If month = "Noviembre" And day = 31 Then
cadx.Text = "30"&"/"&month2&"/"&year2
b_cadincidencia.Text = "30"&"/"&month2&"/"&year2
Else
cadx.Text = l_fecha_caducidad.Text
b_cadincidencia.Text = l_fecha_caducidad.Text
End If
p_calendario.Visible = False
phn.Vibrate(100)
End If
End Sub
Private Sub p_cant_cajas_Click
panelselect = 1
phn.Vibrate(100)
l_cajas.TextColor = Colors.Red
l_piezas.TextColor = Colors.Gray
End Sub
Private Sub p_cant_piezas_Click
panelselect = 2
phn.Vibrate(100)
l_cajas.TextColor = Colors.Gray
l_piezas.TextColor = Colors.Red
End Sub
Private Sub num_1_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "1"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "1"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_2_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "2"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "2"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_3_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "3"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "3"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_4_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "4"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "4"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_5_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "5"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "5"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_6_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "6"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "6"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_7_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "7"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "7"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_8_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "8"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "8"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_9_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "9"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "9"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub num_0_Click
If panelselect = 1 Then
e_cant.Text = e_cant.Text & "0"
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
phn.Vibrate(100)
Else
e_cantpiezas.Text = e_cantpiezas.Text & "0"
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
phn.Vibrate(100)
End If
End Sub
Private Sub B_borrar_Click
If panelselect = 1 Then
If e_cant.Text.Length >= 2 Then
e_cant.Text = e_cant.Text.SubString2(0,e_cant.Text.Length-1)
e_cant.Text= NumberFormat(e_cant.Text.Replace(",",""),0,0)
Else
If e_cant.Text.Length <> 0 Then
e_cant.Text = e_cant.Text.SubString2(0,e_cant.Text.Length-1)
End If
End If
phn.Vibrate(80)
Else
If e_cantpiezas.Text.Length >= 2 Then
e_cantpiezas.Text = e_cantpiezas.Text.SubString2(0,e_cantpiezas.Text.Length-1)
e_cantpiezas.Text= NumberFormat(e_cantpiezas.Text.Replace(",",""),0,0)
Else
If e_cantpiezas.Text.Length <> 0 Then
e_cantpiezas.Text = e_cantpiezas.Text.SubString2(0,e_cantpiezas.Text.Length-1)
End If
End If
phn.Vibrate(80)
End If
End Sub
Private Sub b_vreseumen_Click
B4XPages.ShowPage ("Resumen")
End Sub
Private Sub B_borrar_LongClick
If panelselect = 1 Then
e_cant.Text = ""
Else
e_cantpiezas.Text = ""
End If
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
' Return True To close, False To cancel
If p_camara.Visible = True Then
p_camara.Visible= False
StopCamera2
Else if Panel6.Visible = True Then
Panel6.Visible = False
StopCamera
Else If p_calendario.Visible = True Then
p_calendario.Visible = False
Else If p_inci.Visible = True Then
p_inci.Visible = False
P_escan.Visible = True
Else
B4XPages.ShowPage("Checarorden")
End If
' Return True
Return False
End Sub
Private Sub p_busquedainci_Click
phn.Vibrate(100)
Wait For (Dialog.ShowTemplate(SearchTemplate, "", "", "Cancelar")) Complete (Result As Int)
If Result = xui.DialogResponse_Positive Then
clv_producto.AsView.Visible = False
p_prodnoencontrado.Visible = False
' lb_prodn.Text = SearchTemplate.SelectedItem
e_prod.Text = SearchTemplate.SelectedItem
End If
phn.Vibrate(100)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.