commit 25729591a9da48aa4289cbc0a527b86a7862477f Author: cheveguerra Date: Sun Sep 3 14:15:38 2023 -0600 Commit inicial diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..618d244 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +**/Objects +**/AutoBackups +*.meta \ No newline at end of file diff --git a/BUSCAR.bas b/BUSCAR.bas new file mode 100644 index 0000000..54fc720 --- /dev/null +++ b/BUSCAR.bas @@ -0,0 +1,170 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim skmt As SQL +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim c As Cursor + Dim ruta As String + Dim ListView1 As ListView + Dim b_noventa As Button + Dim nombre_boton As String + End Sub + +Sub Activity_Create(FirstTime As Boolean) + ruta = File.DirInternal + Activity.LoadLayout("buscar") + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + + c=skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 10 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 15 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO")) + Next + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If + +End Sub + +Sub Activity_Resume +nombre_boton = "NOVENTA" + + + c=skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO")) + Next + End If + c.Close + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub Regresar_Click + StartActivity(fila) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub +Sub ListView1_ItemLongClick (Position As Int, Value As Object) + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value)) + StartActivity(fila) +End Sub +Sub b_noventa_Click + +If nombre_boton = "NOVENTA" Then +nombre_boton = "VENTA" +b_noventa.Text ="VENTA" + +c=skmt.ExecQuery("select NV_CLIENTE,NV_MOTIVO,NV_COMM FROM NOVENTA ORDER BY NV_CLIENTE asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("NV_CLIENTE"),"Motivo #"& c.GetString("NV_MOTIVO")& " Comentario $"& c.GetString("NV_COMM")) + Next + End If +Else +nombre_boton = "NOVENTA" +b_noventa.Text ="NO VENTA" + c=skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO")) + Next + End If + c.Close + + +End If + + + + +End Sub \ No newline at end of file diff --git a/BatteryUtilities.bas b/BatteryUtilities.bas new file mode 100644 index 0000000..ebb4448 --- /dev/null +++ b/BatteryUtilities.bas @@ -0,0 +1,126 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=10.2 +@EndOfDesignText@ +'Class module +Sub Class_Globals + Private nativeMe As JavaObject + +End Sub +'Initializes the object. +Public Sub Initialize + nativeMe = Me +End Sub +'Return information about the battery status. It returns the following 11 values in an integer Array: +'EXTRA_LEVEL = current battery level, from 0 To EXTRA_SCALE. +'EXTRA_SCALE = the maximum battery level possible. +'EXTRA_HEALTH = the current health constant. +'EXTRA_ICON_SMALL = the resource ID of a small status bar icon indicating the current battery state. +'EXTRA_PLUGGED = whether the device is plugged into a Power source; 0 means it is on battery, other constants are different types of Power sources. +'EXTRA_STATUS = the current status constant. +'EXTRA_TEMPERATURE = the current battery temperature. +'EXTRA_VOLTAGE = the current battery voltage level. +'A value indicating if the battery is being charged or fully charged (If neither it returns 0 Else it returns 1) +'A value indicating if it is charging via USB (0 = Not USB, 2 = USB) +'A value indicating if it is charging via AC (0 = Not AC, 1 = AC) +Public Sub getBatteryInformation () As Int() + + Dim batteryInfo(11) As Int + batteryInfo = nativeMe.RunMethod("getBatteryInformation",Null) + Return batteryInfo + +End Sub + +Public Sub getBatteryTechnolgy() As String + + Dim batterytech As String + batterytech = nativeMe.RunMethod("getBatteryTechnology",Null) + Return batterytech + +End Sub + + + +#If Java + +import android.os.BatteryManager; +import android.os.Bundle; +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + + public int[] getBatteryInformation() { + + int[] mybat = new int[11]; + + Intent batteryIntent = ba.context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + + int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); + mybat[0] = level; + int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); + mybat[1] = scale; + int health = batteryIntent.getIntExtra(BatteryManager.EXTRA_HEALTH,-1); + mybat[2] = health; + int icon_small = batteryIntent.getIntExtra(BatteryManager.EXTRA_ICON_SMALL,-1); + mybat[3] = icon_small; + int plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1); + mybat[4] = plugged; +// boolean present = batteryIntent.getExtras().getBoolean(BatteryManager.EXTRA_PRESENT); + int status = batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS,-1); + mybat[5] = status; +// String technology = batteryIntent.getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY); +// BA.Log("Technology = " + technology); + int temperature = batteryIntent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,-1); + mybat[6] = temperature; + int voltage = batteryIntent.getIntExtra(BatteryManager.EXTRA_VOLTAGE,-1); + mybat[7] = voltage; +// int ac = batteryIntent.getIntExtra("plugged",BatteryManager.BATTERY_PLUGGED_AC); +// mybat[8] = ac; +// int usb = batteryIntent.getIntExtra("plugged",BatteryManager.BATTERY_PLUGGED_USB); +// mybat[9] = usb; + + boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || + status == BatteryManager.BATTERY_STATUS_FULL; + mybat[8] = 0; + if (isCharging == true) { + mybat[8] = 1; + } + + // How are we charging? + mybat[9] = 0; + mybat[10] = 0; + int chargePlug = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; + if (usbCharge == true) { + mybat[9] = 2; + } + + boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; + if (acCharge == true) { + mybat[10] = 1; + } + + return mybat; + } + + + public String getBatteryTechnology() { + + Intent batteryIntent = ba.context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + + String technology = batteryIntent.getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY); + + return technology; + } + + + + + + + +#End If \ No newline at end of file diff --git a/CameraExClass.bas b/CameraExClass.bas new file mode 100644 index 0000000..7da8e8f --- /dev/null +++ b/CameraExClass.bas @@ -0,0 +1,290 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=6.8 +@EndOfDesignText@ + +'Class module +'version 1.20 +'See this page for the list of constants: +'http://developer.android.com/intl/fr/reference/android/hardware/Camera.Parameters.html +'Note that you should use the constant values instead of the names. +Sub Class_Globals + Private nativeCam As Object + Private cam As Camera + Private r As Reflector + Private target As Object + Private event As String + Public Front As Boolean + Type CameraInfoAndId (CameraInfo As Object, Id As Int) + Type CameraSize (Width As Int, Height As Int) + Private parameters As Object +End Sub + +Public Sub Initialize (Panel1 As Panel, FrontCamera As Boolean, TargetModule As Object, EventName As String) + target = TargetModule + event = EventName + Front = FrontCamera + Dim id As Int + id = FindCamera(Front).id + If id = -1 Then + Front = Not(Front) 'try different camera + id = FindCamera(Front).id + If id = -1 Then + ToastMessageShow("No camera found.", True) + Return + End If + End If + cam.Initialize2(Panel1, "camera", id) +End Sub + +Private Sub FindCamera (frontCamera As Boolean) As CameraInfoAndId + Dim ci As CameraInfoAndId + Dim cameraInfo As Object + Dim cameraValue As Int + If frontCamera Then cameraValue = 1 Else cameraValue = 0 + cameraInfo = r.CreateObject("android.hardware.Camera$CameraInfo") + Dim numberOfCameras As Int = r.RunStaticMethod("android.hardware.Camera", "getNumberOfCameras", Null, Null) + For i = 0 To numberOfCameras - 1 + r.RunStaticMethod("android.hardware.Camera", "getCameraInfo", Array As Object(i, cameraInfo), _ + Array As String("java.lang.int", "android.hardware.Camera$CameraInfo")) + r.target = cameraInfo + If r.GetField("facing") = cameraValue Then + ci.cameraInfo = r.target + ci.Id = i + Return ci + End If + Next + ci.id = -1 + Return ci +End Sub + +Private Sub SetDisplayOrientation + r.target = r.GetActivity + r.target = r.RunMethod("getWindowManager") + r.target = r.RunMethod("getDefaultDisplay") + r.target = r.RunMethod("getRotation") + Dim previewResult, result, degrees As Int = r.target * 90 + Dim ci As CameraInfoAndId = FindCamera(Front) + r.target = ci.CameraInfo + Dim orientation As Int = r.GetField("orientation") + If Front Then + previewResult = (orientation + degrees) Mod 360 + result = previewResult + previewResult = (360 - previewResult) Mod 360 + Else + previewResult = (orientation - degrees + 360) Mod 360 + result = previewResult + Log(previewResult) + End If + r.target = nativeCam + r.RunMethod2("setDisplayOrientation", previewResult, "java.lang.int") + r.target = parameters + r.RunMethod2("setRotation", result, "java.lang.int") + CommitParameters +End Sub + +Private Sub Camera_Ready (Success As Boolean) + If Success Then + r.target = cam + nativeCam = r.GetField("camera") + r.target = nativeCam + parameters = r.RunMethod("getParameters") + SetDisplayOrientation + Else + Log("success = false, " & LastException) + End If + CallSub2(target, event & "_ready", Success) +End Sub + +Sub Camera_Preview (Data() As Byte) + If SubExists(target, event & "_preview") Then + CallSub2(target, event & "_preview", Data) + End If +End Sub +Public Sub TakePicture + cam.TakePicture +End Sub + +Private Sub Camera_PictureTaken (Data() As Byte) + CallSub2(target, event & "_PictureTaken", Data) +End Sub + +Public Sub StartPreview + cam.StartPreview +End Sub + +Public Sub StopPreview + cam.StopPreview +End Sub + +Public Sub Release + cam.Release +End Sub + +'Saves the data received from PictureTaken event +Public Sub SavePictureToFile(Data() As Byte, Dir As String, FileName As String) + Dim out As OutputStream = File.OpenOutput(Dir, FileName, False) + out.WriteBytes(Data, 0, Data.Length) + out.Close +End Sub + +Public Sub SetParameter(Key As String, Value As String) + r.target = parameters + r.RunMethod3("set", Key, "java.lang.String", Value, "java.lang.String") +End Sub + +Public Sub GetParameter(Key As String) As String + r.target = parameters + Return r.RunMethod2("get", Key, "java.lang.String") +End Sub + +Public Sub CommitParameters + Try + r.target = nativeCam + r.RunMethod4("setParameters", Array As Object(parameters), Array As String("android.hardware.Camera$Parameters")) + Catch + ToastMessageShow("Error setting parameters.", True) + Log(LastException) + End Try +End Sub + +Public Sub GetColorEffect As String + Return GetParameter("effect") +End Sub + +Public Sub SetColorEffect(Effect As String) + SetParameter("effect", Effect) +End Sub + +Public Sub GetSupportedPicturesSizes As CameraSize() + r.target = parameters + Dim list1 As List = r.RunMethod("getSupportedPictureSizes") + Dim cs(list1.Size) As CameraSize + For i = 0 To list1.Size - 1 + r.target = list1.Get(i) + cs(i).Width = r.GetField("width") + cs(i).Height = r.GetField("height") + Next + Return cs +End Sub + +Public Sub SetPictureSize(Width As Int, Height As Int) + r.target = parameters + r.RunMethod3("setPictureSize", Width, "java.lang.int", Height, "java.lang.int") +End Sub + +Public Sub SetJpegQuality(Quality As Int) + r.target = parameters + r.RunMethod2("setJpegQuality", Quality, "java.lang.int") +End Sub + +Public Sub SetFlashMode(Mode As String) + r.target = parameters + r.RunMethod2("setFlashMode", Mode, "java.lang.String") +End Sub + +Public Sub GetFlashMode As String + r.target = parameters + Return r.RunMethod("getFlashMode") +End Sub + +Public Sub GetSupportedFlashModes As List + r.target = parameters + Return r.RunMethod("getSupportedFlashModes") +End Sub + +Public Sub GetSupportedColorEffects As List + r.target = parameters + Return r.RunMethod("getSupportedColorEffects") +End Sub + +Public Sub GetPreviewSize As CameraSize + r.target = parameters + r.target = r.RunMethod("getPreviewSize") + Dim cs As CameraSize + cs.Width = r.GetField("width") + cs.Height = r.GetField("height") + Return cs +End Sub + +Public Sub GetPictureSize As CameraSize + r.target = parameters + r.target = r.RunMethod("getPictureSize") + Dim cs As CameraSize + cs.Width = r.GetField("width") + cs.Height = r.GetField("height") + Return cs +End Sub + +'Converts a preview image formatted in YUV format to JPEG. +'Note that you should not save every preview image as it will slow down the whole process. +Public Sub PreviewImageToJpeg(data() As Byte, quality As Int) As Byte() + Dim size, previewFormat As Object + r.target = parameters + size = r.RunMethod("getPreviewSize") + previewFormat = r.RunMethod("getPreviewFormat") + r.target = size + Dim width = r.GetField("width"), height = r.GetField("height") As Int + Dim yuvImage As Object = r.CreateObject2("android.graphics.YuvImage", _ + Array As Object(data, previewFormat, width, height, Null), _ + Array As String("[B", "java.lang.int", "java.lang.int", "java.lang.int", "[I")) + r.target = yuvImage + Dim rect1 As Rect + rect1.Initialize(0, 0, r.RunMethod("getWidth"), r.RunMethod("getHeight")) + Dim out As OutputStream + out.InitializeToBytesArray(100) + r.RunMethod4("compressToJpeg", Array As Object(rect1, quality, out), _ + Array As String("android.graphics.Rect", "java.lang.int", "java.io.OutputStream")) + Return out.ToBytesArray +End Sub + +Public Sub GetSupportedFocusModes As List + r.target = parameters + Return r.RunMethod("getSupportedFocusModes") +End Sub + +Public Sub SetContinuousAutoFocus + Dim modes As List = GetSupportedFocusModes + If modes.IndexOf("continuous-picture") > -1 Then + SetFocusMode("continuous-picture") + Else If modes.IndexOf("continuous-video") > -1 Then + SetFocusMode("continuous-video") + Else + Log("Continuous focus mode is not available") + End If +End Sub + +Public Sub SetFocusMode(Mode As String) + r.target = parameters + r.RunMethod2("setFocusMode", Mode, "java.lang.String") +End Sub + +Public Sub GetFocusDistances As Float() + Dim F(3) As Float + r.target = parameters + r.RunMethod4("getFocusDistances", Array As Object(F), Array As String("[F")) + Return F +End Sub +'This method should only be called if you need to immediately release the camera. +'For example if you need to start another application that depends on the camera. +Public Sub CloseNow + cam.Release + r.target = cam + r.RunMethod2("releaseCameras", True, "java.lang.boolean") +End Sub +'Calls AutoFocus and then takes the picture if focus was successfull. +Public Sub FocusAndTakePicture + cam.AutoFocus +End Sub +Private Sub Camera_FocusDone (Success As Boolean) + If Success Then + TakePicture + Else + Log("AutoFocus error.") + End If +End Sub + + + diff --git a/DBRequestManager.bas b/DBRequestManager.bas new file mode 100644 index 0000000..7b63e1c --- /dev/null +++ b/DBRequestManager.bas @@ -0,0 +1,275 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=6.8 +@EndOfDesignText@ +'Necesita la libreria RandomAccessFile + +'Class module +Sub Class_Globals + Private mTarget As Object + Type DBResult (Tag As Object, Columns As Map, Rows As List) + Type DBCommand (Name As String, Parameters() As Object) + Private link As String + Private bc As ByteConverter + Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _ + ,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte + Private VERSION As Float = 0.9 + Private tempArray(1) As Object + Dim jobTagAnterior As String = "" 'Mod por CHV - 211027 +End Sub + +'Target - The module that handles JobDone (usually Me). +'ConnectorLink - URL of the Java server. +Public Sub Initialize (Target As Object, ConnectorLink As String) + mTarget = Target + link = ConnectorLink +End Sub + +'Sends a query request. +'Command - Query name and parameters. +'Limit - Maximum rows to return or 0 for no limit. +'Tag - An object that will be returned in the result. +Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) + Dim j As HttpJob + Dim ms As OutputStream + Dim out2 As OutputStream = StartJob(j,ms, Tag) + + WriteObject(Command.Name, out2) + WriteInt(Limit, out2) + WriteList(Command.Parameters, out2) + out2.Close + j.PostBytes(link & "?method=query", ms.ToBytesArray) +End Sub + +'Executes a batch of (non-select) commands. +'ListOfCommands - List of the commands that will be executes. +'Tag - An object that will be returned in the result. +Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) + Dim j As HttpJob + Dim ms As OutputStream + Dim out2 As OutputStream = StartJob(j,ms, Tag) + WriteInt(ListOfCommands.Size, out2) + For Each Command As DBCommand In ListOfCommands + WriteObject(Command.Name, out2) + WriteList(Command.Parameters, out2) + Next + out2.Close + j.PostBytes(link & "?method=batch", ms.ToBytesArray) +End Sub + +'Similar to ExecuteBatch. Sends a single command. +Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) + ExecuteBatch(Array As DBCommand(Command), Tag) +End Sub + +Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream + j.Initialize("DBRequest", mTarget) + j.Tag = Tag + MemoryStream.InitializeToBytesArray(0) + Dim compress As CompressedStreams + Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip") + WriteObject(VERSION, out) + Return out +End Sub + +Private Sub WriteList(Parameters As List, out As OutputStream) + Dim data() As Byte + If Parameters = Null Or Parameters.IsInitialized = False Then + Dim Parameters As List + Parameters.Initialize + End If + data = bc.IntsToBytes(Array As Int(Parameters.Size)) + out.WriteBytes(data, 0, data.Length) + For Each o As Object In Parameters + WriteObject(o, out) + Next +End Sub + +Private Sub WriteObject(o As Object, out As OutputStream) + Dim data() As Byte + tempArray(0) = o + If tempArray(0) = Null Then + out.WriteBytes(Array As Byte(T_NULL), 0, 1) + Else If tempArray(0) Is Short Then + out.WriteBytes(Array As Byte(T_SHORT), 0, 1) + data = bc.ShortsToBytes(Array As Short(o)) + Else If tempArray(0) Is Int Then + out.WriteBytes(Array As Byte(T_INT), 0, 1) + data = bc.IntsToBytes(Array As Int(o)) + Else If tempArray(0) Is Float Then + out.WriteBytes(Array As Byte(T_FLOAT), 0, 1) + data = bc.FloatsToBytes(Array As Float(o)) + Else If tempArray(0) Is Double Then + out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1) + data = bc.DoublesToBytes(Array As Double(o)) + Else If tempArray(0) Is Long Then + out.WriteBytes(Array As Byte(T_LONG), 0, 1) + data = bc.LongsToBytes(Array As Long(o)) + Else If tempArray(0) Is Boolean Then + out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1) + Dim b As Boolean = 0 + Dim data(1) As Byte + If b Then data(0) = 1 Else data(0) = 0 + Else If GetType(tempArray(0)) = "[B" Then + data = o + out.WriteBytes(Array As Byte(T_BLOB), 0, 1) + WriteInt(data.Length, out) + Else 'If o Is String Then (treat all other values as string) + out.WriteBytes(Array As Byte(T_STRING), 0, 1) + data = bc.StringToBytes(o, "UTF8") + WriteInt(data.Length, out) + End If + If data.Length > 0 Then out.WriteBytes(data, 0, data.Length) +End Sub + +Private Sub ReadObject(In As InputStream) As Object + Dim data(1) As Byte + In.ReadBytes(data, 0, 1) + Select data(0) + Case T_NULL + Return Null + Case T_SHORT + Dim data(2) As Byte + Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_INT + Dim data(4) As Byte + Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_LONG + Dim data(8) As Byte + Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_FLOAT + Dim data(4) As Byte + Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_DOUBLE + Dim data(8) As Byte + Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_BOOLEAN + Dim b As Byte = ReadByte(In) + Return b = 1 + Case T_BLOB + Dim len As Int = ReadInt(In) + Dim data(len) As Byte + Return ReadBytesFully(In, data, data.Length) + Case Else + Dim len As Int = ReadInt(In) + Dim data(len) As Byte + ReadBytesFully(In, data, data.Length) + Return BytesToString(data, 0, data.Length, "UTF8") + End Select +End Sub + +Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte() + Dim count = 0, read As Int + Do While count < Len And read > -1 + read = In.ReadBytes(Data, count, Len - count) + count = count + read + Loop + Return Data +End Sub + +Private Sub WriteInt(i As Int, out As OutputStream) + Dim data() As Byte + data = bc.IntsToBytes(Array As Int(i)) + out.WriteBytes(data, 0, data.Length) +End Sub + +Private Sub ReadInt(In As InputStream) As Int + Dim data(4) As Byte + Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) +End Sub + +Private Sub ReadByte(In As InputStream) As Byte + Dim data(1) As Byte + In.ReadBytes(data, 0, 1) + Return data(0) +End Sub + +'Handles the Job result and returns a DBResult. +Public Sub HandleJob(Job As HttpJob) As DBResult + Dim start As Long = DateTime.Now + Dim In As InputStream = Job.GetInputStream + Dim cs As CompressedStreams + In = cs.WrapInputStream(In, "gzip") + Dim serverVersion As Float = ReadObject(In) 'ignore + Dim method As String = ReadObject(In) + Dim table As DBResult + table.Initialize + table.Columns.Initialize + table.rows.Initialize + table.Tag = Job.Tag + If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211023 + jobTagAnterior = Job.Tag 'Mod por CHV - 211023 + If method = "query" Then + Dim numberOfColumns As Int = ReadInt(In) + For i = 0 To numberOfColumns - 1 + table.Columns.Put(ReadObject(In), i) + Next + Do While ReadByte(In) = 1 + Dim rowObjects(numberOfColumns) As Object + table.rows.Add(rowObjects) + For col = 0 To numberOfColumns - 1 + Dim o As Object = ReadObject(In) + rowObjects(col) = o + Next + Loop + Else If method = "batch" Then + table.Columns.Put("AffectedRows", 0) + Dim rows As Int = ReadInt(In) + For i = 0 To rows - 1 + table.rows.Add(Array As Object(ReadInt(In))) + Next + End If + In.Close +' Log("HandleJob: " & (DateTime.Now - start)) + Return table +End Sub +'Reads a file and returns the file as a bytes array. +Public Sub FileToBytes(Dir As String, FileName As String) As Byte() + Dim out As OutputStream + out.InitializeToBytesArray(0) + Dim In As InputStream = File.OpenInput(Dir, FileName) + File.Copy2(In, out) + out.Close + Return out.ToBytesArray +End Sub + +'Converts an image to a bytes array (for BLOB fields). +Public Sub ImageToBytes(Image As Bitmap) As Byte() + Dim out As OutputStream + out.InitializeToBytesArray(0) + Image.WriteToStream(out, 100, "JPEG") + out.Close + Return out.ToBytesArray +End Sub + +'Converts a bytes array to an image (for BLOB fields). +Public Sub BytesToImage(bytes() As Byte) As Bitmap + Dim In As InputStream + In.InitializeFromBytesArray(bytes, 0, bytes.Length) + Dim bmp As Bitmap + bmp.Initialize2(In) + Return bmp +End Sub + +'Prints the table to the logs. +Public Sub PrintTable(Table As DBResult) + Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size) + Dim sb As StringBuilder + sb.Initialize + For Each col In Table.Columns.Keys + sb.Append(col).Append(TAB) + Next + Log(sb.ToString) + For Each row() As Object In Table.Rows + Dim sb As StringBuilder + sb.Initialize + For Each record As Object In row + sb.Append(record).Append(TAB) + Next + ToastMessageShow(sb.ToString, True) + Next +End Sub + + \ No newline at end of file diff --git a/EscPosPrinter.bas b/EscPosPrinter.bas new file mode 100644 index 0000000..48d3021 --- /dev/null +++ b/EscPosPrinter.bas @@ -0,0 +1,1150 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=10.2 +@EndOfDesignText@ +#IgnoreWarnings: 9 +' 9 = unused variable + +Sub Class_Globals + ' 1.0 Initial version + ' 2.0 Added FeedPaper, changed many WriteString(.." & Chr(number)) instances to WriteBytes(params) + ' This is to avoid Unicode code page transformations on some numbers > 32 + ' Added PrintAndFeedPaper, setRelativePrintPosn, + ' Added user defined characters, DefineCustomCharacter, DeleteCustomCharacter and setUseCustomCharacters + ' Addedhelper methods CreateCustomCharacter, CreateLine, CreateBox and CreateCircle + Private Version As Double = 2.0 ' Printer class version + + Type AnImage(Width As Int, Height As Int, Data() As Byte) + + Private EventName As String 'ignore + Private CallBack As Object 'ignore + + Private Serial1 As Serial + Private Astream As AsyncStreams + Private Connected As Boolean + Private ConnectedError As String + + Dim ESC As String = Chr(27) + Dim FS As String = Chr(28) + Dim GS As String = Chr(29) + + 'Bold and underline don't work well in reversed text + Dim UNREVERSE As String = GS & "B" & Chr(0) + Dim REVERSE As String = GS & "B" & Chr(1) + + ' Character orientation. Print upside down from right margin + Dim UNINVERT As String = ESC & "{0" + Dim INVERT As String = ESC & "{1" + + ' Character rotation clockwise. Not much use without also reversing the printed character sequence + Dim UNROTATE As String = ESC & "V0" + Dim ROTATE As String = ESC & "V1" + + ' Horizontal tab + Dim HT As String = Chr(9) + + ' Character underline + Dim ULINE0 As String = ESC & "-0" + Dim ULINE1 As String = ESC & "-1" + Dim ULINE2 As String = ESC & "-2" + + ' Character emphasis + Dim BOLD As String = ESC & "E1" + Dim NOBOLD As String = ESC & "E0" + + ' Character height and width + Dim SINGLE As String = GS & "!" & Chr(0x00) + Dim HIGH As String = GS & "!" & Chr(0x01) + Dim WIDE As String = GS & "!" & Chr(0x10) + Dim HIGHWIDE As String = GS & "!" & Chr(0x11) + + ' Default settings + Private LEFTJUSTIFY As String = ESC & "a0" + Private LINEDEFAULT As String = ESC & "2" + Private LINSET0 As String = ESC & "$" & Chr(0x0) & Chr(0x0) + Private LMARGIN0 As String = GS & "L" & Chr(0x0) & Chr(0x0) + Private WIDTH0 As String = GS & "W" & Chr(0xff) & Chr(0xff) + Private CHARSPACING0 As String = ESC & " " & Chr(0) + Private CHARFONT0 As String = ESC & "M" & Chr(0) + Dim DEFAULTS As String = CHARSPACING0 & CHARFONT0 & LMARGIN0 & WIDTH0 & LINSET0 & LINEDEFAULT & LEFTJUSTIFY _ + & UNINVERT & UNROTATE & UNREVERSE & NOBOLD & ULINE0 + +End Sub + +'********** +'PUBLIC API +'********** + +'Initialize the object with the parent and event name +Public Sub Initialize(vCallback As Object, vEventName As String) + EventName = vEventName + CallBack = vCallback + Serial1.Initialize("Serial1") + Connected = False + ConnectedError = "" +End Sub + +' Returns any error raised by the last attempt to connect a printer +Public Sub ConnectedErrorMsg As String + Return ConnectedError +End Sub + +' Returns whether a printer is connected or not +Public Sub IsConnected As Boolean + Return Connected +End Sub + +' Returns whether Bluetooth is on or off +Public Sub IsBluetoothOn As Boolean + Return Serial1.IsEnabled +End Sub + +' Ask the user to connect to a printer and return whether she tried or not +' If True then a subsequent Connected event will indicate success or failure +Public Sub Connect As Boolean + 'leos +' Serial1.Connect("88:6B:0F:3E:53:9E") +' Return True + Try + Log("|" & Starter.MAC_IMPRESORA & "|") + If Starter.MAC_IMPRESORA = "0" Then + Dim PairedDevices As Map + PairedDevices = Serial1.GetPairedDevices + Dim l As List + l.Initialize + For i = 0 To PairedDevices.Size - 1 + l.Add(PairedDevices.GetKeyAt(i)) + Next + Dim Res As Int + Res = InputList(l, "Choose a printer", -1) 'show list with paired devices 'ignore + If Res <> DialogResponse.CANCEL Then + Serial1.Connect(PairedDevices.Get(l.Get(Res))) 'convert the name to mac address + 'Msgbox(PairedDevices.Get(l.Get(Res)),"mac") + Starter.mac_impresora = PairedDevices.Get(l.Get(Res)) + Return True + End If + Return False + Else + Serial1.Connect(Starter.mac_impresora) + ' Starter.mac_impresora = colonia.MAC_IMPRESORA + Return True + End If + Catch + Log(LastException) + End Try +End Sub + +' Disconnect the printer +Public Sub DisConnect + Serial1.Disconnect + Connected = False +End Sub + +' Reset the printer to the power on state +Public Sub Reset + WriteString(ESC & "@") +End Sub + +'-------------- +' Text Commands +'-------------- + +' Print any outstanding characters then feed the paper the specified number of units of 0.125mm +' This is similar to changing LineSpacing before sending CRLF but this has a one off effect +' A full character height is always fed even if units = 0. Units defines the excess over this minimum +Public Sub PrintAndFeedPaper(units As Int) + WriteString(ESC & "J") + Dim params(1) As Byte + params(0) = units + WriteBytes(params) +End Sub + +' Set the distance between characters +Public Sub setCharacterSpacing(spacing As Int) + WriteString(ESC & " ") + Dim params(1) As Byte + params(0) = spacing + WriteBytes(params) +End Sub + +' Set the left inset of the next line to be printed +' Automatically resets to 0 for the following line +' inset is specified in units of 0.125mm +Public Sub setLeftInset(inset As Int) + Dim dh As Int = inset / 256 + Dim dl As Int = inset - dh + WriteString(ESC & "$" & Chr(dl) & Chr(dh)) + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the left margin of the print area, must be the first item on a new line +' margin is specified in units of 0.125mm +' This affects barcodes as well as text +Public Sub setLeftMargin(margin As Int) + Dim dh As Int = margin / 256 + Dim dl As Int = margin - dh + WriteString(GS & "L") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the width of the print area, must be the first item on a new line +' margin is specified in units of 0.125mm +' This affects barcodes as well as text +' This appears to function more like a right margin than a print area width when used with LeftMargin +Public Sub setPrintWidth(width As Int) + Dim dh As Int = width / 256 + Dim dl As Int = width - dh + WriteString(GS & "W") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the distance between lines in increments of 0.125mm +' If spacing is < 0 then the default of 30 is set +Public Sub setLineSpacing(spacing As Int) + If spacing < 0 Then + WriteString(ESC & "2") + Else + WriteString(ESC & "3") + Dim params(1) As Byte + params(0) = spacing + WriteBytes(params) + End If +End Sub + +' Set the line content justification, must be the first item on a new line +' 0 left, 1 centre, 2 right +Public Sub setJustify(justify As Int) + WriteString(ESC & "a" & Chr(justify + 48)) +End Sub + +' Set the codepage of the printer +' You need to look at the printer documentation to establish which codepages are supported +Public Sub setCodePage(codepage As Int) + WriteString(ESC & "t") + Dim params(1) As Byte + params(0) = codepage + WriteBytes(params) +End Sub + +' Select the size of the font for printing text. 0 = Font A (12 x 24), 1 = Font B (9 x 17) +' For font B you may want to set the line spacing to a lower value than the default of 30 +' This affects only the size of printed characters. The code page determines the actual character set +' On my printer setting UseCustomCharacters = while Font B is selected crashes the printer and turns it off +Public Sub setCharacterFont(font As Int) + WriteString(ESC & "M" & Chr(Bit.And(1,font))) +End Sub + +' Set the positions of the horizontal tabs +' Each tab is specified as a number of character widths from the beginning of the line +' There may be up to 32 tab positions specified each of size up to 255 characters +' The printer default is that no tabs are defined +Public Sub setTabPositions(tabs() As Int) + WriteString(ESC & "D") + Dim data(tabs.Length+1) As Byte + For i = 0 To tabs.Length - 1 + data(i) = tabs(i) + Next + data(tabs.Length) = 0 + WriteBytes(data) +End Sub + +' Set print position relative to the current position using horizontal units of 0.125mm +' relposn can be negative +' Unless I have misundertood this doesn't work as documented on my printer +' It only seems take effect at the beginning of a line as a one off effect +Public Sub setRelativePrintPosn(relposn As Int) + Dim dh As Int = relposn / 256 + Dim dl As Int = relposn - dh + WriteString(ESC & "\") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Send the contents of an array of bytes to the printer +' Remember that if the printer is expecting text the bytes will be printed as characters in the current code page +Public Sub WriteBytes(data() As Byte) + If Connected Then + Astream.Write(data) + End If +End Sub + +' Send the string to the printer in IBM437 encoding which is the original PC DOS codepage +' This is usually the default codepage for a printer and is CodePage = 0 +' Beware of using WriteString with Chr() to send numeric values as they may be affected by Unicode to codepage translations +' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenation with other string data +Public Sub WriteString(data As String) + WriteString2(data, "IBM437") +End Sub + +' Send the string to the printer in the specified encoding +' You also need to set the printer to a matching encoding using the CodePage property +' Beware of using WriteString2 with Chr() to send numeric values as they may be affected by codepage substitutions +' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenatipon with other string data +Public Sub WriteString2(data As String, encoding As String) + Try + If Connected Then + Astream.Write(data.GetBytes(encoding)) + End If + Catch + Log("Printer error : " & LastException.Message) + AStream_Error + End Try +End Sub + +'----------------------------------------- +' User defined character commands commands +'----------------------------------------- + +' Delete the specified user defined character mode +' This command deletes the pattern defined for the specified code in the font selected by ESC ! +' If the code is subsequently printed in custom character mode the present code page character is printed instead +Public Sub DeleteCustomCharacter(charcode As Int) + WriteString(ESC & "?") + Dim params(1) As Byte + params(0) = charcode + WriteBytes(params) +End Sub + +' Enable the user defined character mode if custom is True, revert to normal if custom is False +' If a custom character has not been defined for a given character code then the default character for the present font is printed +' FontA and FontB have separate definitions for custom characters +' On my printer setting UseCustomCharacters = while Font B is selected crashes the printer and turns it off +' Therefore the cuatom character routines have not been tested on ont B +Public Sub setUseCustomCharacters(custom As Boolean) + If custom Then + WriteString(ESC & "%1") + Else + WriteString(ESC & "%0") + End If +End Sub + +' Define a user defined character +' The allowable character code range is the 95 characters) from ASCII code 32 (0x20) to 126 (0x7E) +' Characters can be defined in either font A (12*24) or font B (9*17) as selected by present setting of CharacterFont +' The programmer must ensure that the correct font size definition is used for the present setting of CharacterFont +' The user-defined character definition is cleared when Reset is invoked or the printer is turned off +' The vertical and horizontal printed resolution is approximaely 180dpi +' Characters are always defined by sets of three bytes in the vertical direction and up to 9 or 12 sets horizontally +' Each byte defines a vertical line of 8 dots. The MSB of each byte is the highest image pixel, the LSB is the lowest +' Byte(0+n) defines the topmost third of the vertical line, Byte(1+n) is below and Byte(2+n) is the lowest +' Set a bit to 1 to print a dot or 0 to not print a dot +' If the lines to the right of the character are blank then there set of three bytes can be omiited from the byte array +' When the user-defined characters are defined in font B (9*17) only the most significant bit of the 3rd byte of data is used +' charcode defines the character code for the character being defined +' bitdata is a Byte array containing the character definitiopn as described above. +' If the length of bitdata is not a multiple of 3 the definition is ignored and a value of -1 returned +Public Sub DefineCustomCharacter(charcode As Int, bitdata() As Byte) As Int + Dim excess As Int = bitdata.Length Mod 3 + If excess <> 0 Then Return -1 + Dim size As Int = bitdata.Length / 3 + WriteString(ESC & "&") + Dim params(4) As Byte + params(0) = 3 + params(1) = charcode + params(2) = charcode + params(3) = size + WriteBytes(params) + WriteBytes(bitdata) + Return 0 +End Sub + +' The third triangle point is hacked into spare bits keeping the generated Int human readable i hex for other shapes +' The shape array contains the character shapes and characterfont is 0 for a 12*24 character andd 1 for a 9*17 character +' Returns a Byte(36) for characterfont = 0 and a Byte(27) for characterfont = 1 +' The returned array can be directly passed to DefineCustomCharacter +' To define a custom character requires specifying up to 288 data points +' This is a lot of data and in most cases it is mainly white space +' This method takes a character definition that defines only the shapes in the character that are to be printed black +' It will be easier use the outputs from CreateLine, CreateTriangle, CreateBox and CreateCircle rather then building the actual Int values +' Each shape is defined by a single Int value containing four parameters in hex format plugs some single bit flags +' Taking the representation of the Int as eight hex characters numbered from the MS end as 0x01234567 +' 0 contains the shape to draw. 0 = Line, 1 = Box, 2 = Circle, 3 = Triangle +' 1 contains a value between 0 and 0xF. This is either an X coordinate or for a circle the radius +' 2 and 3 contain a value between 0 and 0x1F. This is either a Y coordinate or for a circle the quadrants to draw +' 4 contains a value between 0 and 0xF. This is 0 for an empty shope or 1 for a filled shape +' 5 contains a value between 0 and 0xF. This is an X coordinate +' 5 and 6 contain a value between 0 and 0x1F. This is a Y coordinate +' The coordinate 0,0 is at the top left of the character +' Line +' One point of the vector is contained in the top part of the Int and the other in the bottom half +' To define a single point place its coordinates as both sr=start and end of a line +' Box +' The two X,Y coordinates specify the top left and bottom right corners of the box +' Circle +' The left X parameter is now the radius of the circle, the left Y is the quadrants to be drawn +' The right X and Y parameters are the centre of the circle' +' The quadrants to draw are bit ORed together, UpperRight = 0x1, LowerRight = 0x2, LowerLeft = 0x4, Upper Left = 0x8 +' Triangle +' The left X and Y parameters are now one point of the triangle, the right X and Y parameters another point +' The third triangle point is hacked into spare bits keeping the generated Int human readable in hex for the other shapes +' The bit allocations of a shape are as follows. f = fill as 0 or 1, s = shape as 0 to 7, xn as 0 to 15, yn as 0 to 31 +' Shape 0 = line, 1 = box, 2 = triangle, 3 = circle, 4 to 7 = unused +' fsss xxxx -yyy yyyy xxxx xxxx yyyy yyyy +' 0000 220 0000 2222 1111 2221 1111 +' x0 y2 y0 x2 x1 y2 y1 +' The shape array contains the character shapes and characterfont is 0 for a 12*24 character andd 1 for a 9*17 character +' Returns a Byte(36) for characterfont = 0 and a Byte(27) for characterfont = 1 +' The returned array can be directly passed to DefineCustomCharacter +Public Sub CreateCustomCharacter(shapes() As Int, characterfont As Int) As Byte() + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + ' rather than try to catch errors whenever we access this array we Dim it to the maximum possible values of X and Y + ' then copy the top left of it to the final character definition array of the correct size + Dim points(16,32) As Byte + ' initialise the character to all white + For x = 0 To 15 + For y = 0 To 31 + points(x,y) = 0 + Next + Next + Dim size As Int = 12 + If characterfont = 1 Then size = 9 + Dim charbyes(size * 3) As Byte + For c = 0 To charbyes.Length - 1 + charbyes(c) = 0 + Next + ' set the points array from the shapes provided + For i = 0 To shapes.Length -1 + Dim fill As Int = Bit.UnsignedShiftRight(Bit.And(0x80000000, shapes(i)), 31) + Dim shape As Int = Bit.UnsignedShiftRight(Bit.And(0x70000000, shapes(i)), 28) + Dim x0 As Int = Bit.UnsignedShiftRight(Bit.And(0x0f000000, shapes(i)), 24) + Dim y0 As Int = Bit.UnsignedShiftRight(Bit.And(0x001f0000, shapes(i)), 16) + Dim x1 As Int = Bit.UnsignedShiftRight(Bit.And(0x00000f00, shapes(i)), 8) + Dim y1 As Int = Bit.And(0x0000001f, shapes(i)) + Dim x2 As Int = Bit.UnsignedShiftRight(Bit.And(0x0000f000, shapes(i)), 12) + Dim y2 As Int = Bit.UnsignedShiftRight(Bit.And(0x00e00000, shapes(i)), 18) + Bit.UnsignedShiftRight(Bit.And(0x000000e0, shapes(i)), 5) + ' The bit allocations of a shape are as follows. f = fill as 0 or 1, s = shape as 0 to 7, xn as 0 to 15, yn as 0 to 31 + ' Shape 0 = line, 1 = box, 2 = triangle, 3 = circle, 4 to 7 = unused + ' fsss xxxx -yyy yyyy xxxx xxxx yyyy yyyy + ' 0000 220 0000 2222 1111 2221 1111 + ' x0 y2 y0 x2 x1 y2 y1 + Dim logmsg As String = ": Fill=" & fill & " : Points " & x0 & "," & y0 & " " & x1 & "," & y1 & " " & x2 & "," & y2 + If shape = 3 Then + Log("Triangle " & logmsg) + PlotTriangle(x0, y0, x1, y1, x2, y2, points, fill) + else If shape = 2 Then + Log("Circle " & logmsg) + PlotCircle(x0, y0, x1, y1, points, fill) + Else If shape = 1 Then + Log("Box " & logmsg) + PlotBox(x0, y0, x1, y1, points, fill) + Else + Log("Line " & logmsg) + PlotLine(x0, y0, x1, y1, points) + End If + ' map the points array onto the character definition array + For x = 0 To size -1 ' 9 or 12 horizontal bytes + For y = 0 To 2 ' 3 vertical bytes + Dim bits As Byte = 0 + For b = 0 To 7 ' 8 vertical bits + If points(x, y*8+b) <> 0 Then + bits = Bit.Or(bits, masks(b)) + End If + Next + charbyes(x*3+y) = bits + Next + Next + Next + Return charbyes +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a line in a custom character +' The line starts at X0,Y0 and ends at X1,Y1 +Public Sub CreateLine(x0 As Int, y0 As Int, x1 As Int, y1 As Int) As Int + Dim line As Int = 0 + line = line + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + line = line + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + line = line + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + line = line + Bit.And(0x1f,y1) + Return line +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a circle in a custom character +' The circle is centred on X1,Y1 and the quadrants to draw are bit ORed together +' UpperRight = 0x1, LowerRight = 0x2, LowerLeft = 0x4, Upper Left = 0x8 +Public Sub CreateCircle(radius As Int, quadrants As Int, x1 As Int, y1 As Int, fill As Boolean) As Int + Dim circle As Int = 0x20000000 + If fill Then circle = circle + 0x80000000 + circle = circle + Bit.ShiftLeft(radius, 24) + circle = circle + Bit.ShiftLeft(quadrants, 16) + circle = circle + Bit.ShiftLeft(x1, 8) + circle = circle + y1 + Return circle +End Sub + + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a triangle in a custom character +' The triangles corners are at X0,Y0 X1,Y1 and X2,Y2 +Public Sub CreateTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, fill As Boolean) As Int + Dim triangle As Int = 0x30000000 + If fill Then triangle = triangle + 0x80000000 + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + triangle = triangle + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + triangle = triangle + Bit.And(0x1f,y1) + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x2), 12) ' extra X + triangle = triangle + Bit.ShiftLeft(Bit.And(0x7,y2), 5) ' extra Y lsbits * 3 + triangle = triangle + Bit.ShiftLeft(Bit.And(0x18,y2), 18) ' extra Y msbits * 2 + Return triangle +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a box in a custom character +' The box top left start is X0,Y0 and bottom right is X1,Y1 +Public Sub CreateBox(x0 As Int, y0 As Int, x1 As Int, y1 As Int, fill As Boolean) As Int + Dim box As Int = 0x10000000 + If fill Then box = box + 0x80000000 + box = box + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + box = box + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + box = box + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + box = box + Bit.And(0x1f,y1) + Return box +End Sub + +'----------------------------------------- +' Private custom character drawing methods +'----------------------------------------- + +Private Sub PlotTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, points(,) As Byte, Fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and it isn't invoked often + PlotLine(x0, y0, x1, y1, points) + PlotLine(x1, y1, x2, y2, points) + PlotLine(x2, y2, x0, y0, points) + If Fill > 0 Then + FillTriangle(x0, y0, x1, y1, x2, y2, points) + End If +End Sub + +Private Sub FillTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, points(,) As Byte) + ' first sort the three vertices by y-coordinate ascending so v0 Is the topmost vertice */ + Dim tx, ty As Int + If y0 > y1 Then + tx = x0 : ty = y0 + x0 = x1 : y0 = y1 + x1 = tx : y1 = ty + End If + If y0 > y2 Then + tx = x0 : ty = y0 + x0 = x2 : y0 = y2 + x2 = tx : y2 = ty + End If + If y1 > y2 Then + tx = x1 : ty = y1 + x1 = x2 : y1 = y2 + x2 = tx : y2 = ty + End If + + Dim dx0, dx1, dx2 As Double + Dim x3, x4, y3, y4 As Double + Dim inc As Int + + If y1 - y0 > 0 Then dx0=(x1-x0)/(y1-y0) Else dx0=0 + If y2 - y0 > 0 Then dx1=(x2-x0)/(y2-y0) Else dx1=0 + If y2 - y1 > 0 Then dx2=(x2-x1)/(y2-y1) Else dx2=0 + x3 = x0 : x4 = x0 + y3 = y0 : y4 = y0 + If dx0 > dx1 Then + While + Do While y3 <= y1 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx1 : x4 = x4 + dx0 + Loop + x4=x1 + y4=y1 + Do While y3 <= y2 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x ,y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx1 : x4 = x4 + dx2 + Loop + Else + While + Do While y3 <= y1 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx0 : x4 = x4 +dx1 + Loop + x3=x1 + y3=y1 + Do While y3<=y2 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx2 : x4 = x4 + dx1 + Loop + End If +End Sub + +Private Sub PlotBox(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte, Fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and itsn't invoked often + PlotLine(x0, y0, x0, y1, points) + PlotLine(x0, y0, x1, y0, points) + PlotLine(x1, y0, x1, y1, points) + PlotLine(x0, y1, x1, y1, points) + If Fill > 0 Then + For x = x0 To x1 + PlotLine(x, y0, x, y1, points) + Next + End If +End Sub + + +Private Sub PlotCircle(radius As Int, quadrants As Int, x1 As Int, y1 As Int, points(,) As Byte, fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and itsn't invoked often + Dim mask As Int = 1 + For q = 3 To 0 Step -1 + If Bit.And(quadrants, mask) <> 0 Then + For i = q*90 To q*90+90 Step 1 + Dim x,y As Double + x = x1 - SinD(i)*radius + y = y1 - CosD(i)*radius + If fill > 0 Then + PlotLine(x1, y1, x, y, points) + Else + points(Round(x), Round(y)) = 1 + End If + Next + End If + mask = Bit.ShiftLeft(mask, 1) + Next +End Sub + +' Bresenham's line algorithm - see Wikipedia +Private Sub PlotLine(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte ) + If Abs(y1 - y0) < Abs(x1 - x0) Then + If x0 > x1 Then + PlotLineLow(x1, y1, x0, y0, points) + Else + PlotLineLow(x0, y0, x1, y1, points) + End If + Else + If y0 > y1 Then + PlotLineHigh(x1, y1, x0, y0, points) + Else + PlotLineHigh(x0, y0, x1, y1, points) + End If + End If +End Sub + +Private Sub PlotLineHigh(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte ) + Dim dx As Int = x1 - x0 + Dim dy As Int = y1 - y0 + Dim xi As Int = 1 + If dx < 0 Then + xi = -1 + dx = -dx + End If + Dim D As Int = 2*dx - dy + Dim x As Int = x0 + For y = y0 To y1 + points(x,y) = 1 + If D > 0 Then + x = x + xi + D = D - 2*dy + End If + D = D + 2*dx + Next +End Sub + +Private Sub PlotLineLow(x0 As Int, y0 As Int, x1 As Int,y1 As Int, points(,) As Byte ) + Dim dx As Int = x1 - x0 + Dim dy As Int = y1 - y0 + Dim yi As Int = 1 + If dy < 0 Then + yi = -1 + dy = -dy + End If + Dim D As Int = 2*dy - dx + Dim y As Int = y0 + For x = x0 To x1 + points(x,y) = 1 + If D > 0 Then + y = y + yi + D = D - 2*dx + End If + D = D + 2*dy + Next +End Sub + + +'------------------- +' Image commands +'------------------- +' There are two different image printing options with different pixel formats. +' PrintImage prints an entire image at once with a maximum size of 576x512 +' PrintImage2 prints a slice of an image with a height of 8 or 24 and a maximum width of 576 +' One or other may look better on your particular printer + +' Printer support method for pre-processing images to print +' Convert the bitmap supplied to an array of pixel values representing the luminance value of each original pixel +Sub ImageToBWIMage(bmp As Bitmap) As AnImage + Dim BC As BitmapCreator 'ignore + Dim W As Int = bmp.Width + Dim H As Int = bmp.Height + Dim pixels(W * H) As Byte + + For y = 0 To H - 1 + For x = 0 To W - 1 + Dim j As Int = bmp.GetPixel(x, y) + ' convert color to approximate luminance value + Dim col As ARGBColor + BC.ColorToARGB(j, col ) + Dim lum As Int = col.r * 0.2 + col.b*0.1 + col.g*0.7 + If lum> 255 Then lum = 255 + ' save the pixel luminance + pixels(y*W + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = bmp.Width + ret.Height = bmp.Height + ret.Data = pixels + Return ret +End Sub + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to an array of 0s and 1s according to the threshold value +Sub ThresholdImage(img As AnImage, threshold As Int) As AnImage 'ignore + Dim pixels(img.Data.Length) As Byte + For i = 0 To pixels.Length - 1 + Dim lum As Int = Bit.And(img.Data(i), 0xff) ' bytes are signed values + If lum < threshold Then + lum = 1 + Else + lum = 0 + End If + pixels(i) = lum + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to a dithered array of 0s and 1s according to the threshold value +' The dithering algorithm is the simplest one-dimensional error diffusion algorithm +' Normally threshold should be 128 but some images may look better with a little more or less. +' This algorithm tends to produce vertical lines. DitherImage2D will probably look far better +Sub DitherImage1D(img As AnImage, threshold As Int) As AnImage 'ignore + Dim pixels(img.Data.Length) As Byte + Dim error As Int + For y = 0 To img.Height - 1 + error = 0 ' reset on each new line + For x = 0 To img.Width - 1 + Dim lum As Int = Bit.And(img.Data(y*img.Width + x), 0xff) ' bytes are signed values + lum = lum + error + If lum < threshold Then + error = lum + lum = 1 + Else + error = lum - 255 + lum = 0 + End If + pixels(y*img.Width + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to a dithered array of 0s and 1s according to the threshold value +' The dithering algorithm is the simplest two-dimensional error diffusion algorithm +' Normally threshold should be 128 but some images may look better with a little more or less. +' Anything more sophisticated might be overkill considering the image quality of most thermal printers +Sub DitherImage2D(img As AnImage, threshold As Int) As AnImage + Dim pixels(img.Data.Length) As Byte + Dim xerror As Int + Dim yerrors(img.Width) As Int + For i = 0 To yerrors.Length -1 + yerrors(0) = 0 + Next + For y = 0 To img.Height - 1 + xerror = 0 ' reset on each new line + For x = 0 To img.Width - 1 + Dim lum As Int = Bit.And(img.Data(y*img.Width + x), 0xff) ' bytes are signed values + lum = lum + xerror + yerrors(x) + If lum < threshold Then + xerror = lum/2 + yerrors(x) = xerror + lum = 1 + Else + xerror = (lum - 255)/2 + yerrors(x) = xerror + lum = 0 + End If + pixels(y*img.Width + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + + +' GS v0 printing +'--------------- + +' Prints the given image at the specified height and width using the "GS v" command +' Image data is supplied as bytes each containing 8 bits of horizontal image data +' The top left of the image is Byte(0) and the bottom right is Byte(width*height-1) +' MSB of the byte is the leftmost image pixel, the LSB is the rightmost +' Maximum width is 72 bytes (576 bits), Maximum height is 512 bytes +' The printed pixels are square +' Returns status 0 : OK, -1 : too wide, -2 : too high, -3 : array too small +' The printer can take a long time to process the data and start printing +Public Sub PrintImage(img As AnImage) As Int + ' max width = 72 ' 72mm/576 bits wide + ' max height = 512 ' 64mm/512 bits high + If img.width > 72 Then Return -1 + If img.height > 512 Then Return -2 + If img.data.Length < img.width * img.height Then Return -3 + Dim xh As Int = img.width / 256 + Dim xl As Int = img.width - xh * 256 + Dim yh As Int = img.height / 256 + Dim yl As Int = img.height - yh * 256 + Dim params(5) As Byte + params(0) = 0 ' + params(1) = xl + params(2) = xh + params(3) = yl + params(4) = yh + WriteString(GS & "v0") + WriteBytes(params) + WriteBytes(img.data) + WriteString(CRLF) + Return 0 +End Sub + +' Printer support method for pre-processing images to print by PrintImage +' Takes an array of image pixels and packs it for use with PrintImage +' Each byte in the imagedata array is a single pixel valued zero or non-zero for white and black +' The returned array is 8 x smaller and packs 8 horizontal black or white pixels into each byte +' If the horizontal size of the image is not a multiple of 8 it will be truncated so that it is. +Public Sub PackImage(imagedata As AnImage) As AnImage + Dim xbytes As Int = imagedata.width/8 + Dim pixels(xbytes * imagedata.height) As Byte + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + Dim index As Int = 0 + For y = 0 To imagedata.Height - 1 + For x = 0 To xbytes - 1 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = imagedata.Data(index) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + index = index + 1 + Next + pixels(y*xbytes + x) = xbyte + Next + Next + Dim ret As AnImage + ret.Width = xbytes + ret.Height = imagedata.Height + ret.Data = pixels + Return ret +End Sub + + +' ESC * printing +'--------------- + +' Prints the given image slice at the specified height and width using the "ESC *" command +' Image data is supplied as bytes each containing 8 bits of vertical image data +' Pixels are not square, the width:height ratio varies with density and line height +' Returns status 0 = OK, -1 = too wide, -2 = too high, -3 = wrong array length +' Line spacing needs to be set to 0 if printing consecutive slices +' The printed pixels are not square, the ratio varies with the highdensity and dots24 parameter settings +' The highdensity parameter chooses high or low horizontal bit density when printed +' The dots24 parameter chooses 8 or 24 bit data slice height when printed +' Not(highdensity) +' Maximum width is 288 bits. Horizontal dpi is approximately 90 +' MSB of each byte is the highest image pixel, the LSB is the lowest +' highdensity +' Maximum width is 576 bits. Horizontal dpi is approximately 180 +' Not(dots24) +' Vertical printed height is 8 bits at approximately 60dpi +' One byte in the data Array represents one vertical line when printed +' Array size is the same as the width +' MSB of each byte is the highest image pixel, the LSB is the lowest +' dots24 +' Vertical printed height is 24 bits at approximately 180dpi +' Three consecutive bytes in the data array represent one vertical 24bit line when printed +' Array size is 3 times the width +' Byte(n+0) is the highest, byte (n+2) us the lowest +' MSB of each byte is the highest image pixel, the LSB is the lowest +Public Sub PrintImage2(width As Int, data() As Byte, highdensity As Boolean, dotds24 As Boolean) As Int + Dim d As String = Chr(0) + If Not(highdensity) And Not(dotds24 ) Then + d = Chr(0) + If width > 288 Then Return -1 + If data.Length <> width Then Return -3 + Else If highdensity And Not(dotds24) Then + d = Chr(1) + If width > 576 Then Return -1 + If data.Length <> width Then Return -3 + Else If Not(highdensity) And dotds24 Then + d = Chr(32) + If width > 288 Then Return -1 + If data.Length <> width*3 Then Return -3 + Else ' highdensity And dotds24 + d = Chr(33) + If width > 576 Then Return -1 + If data.Length <> width*3 Then Return -3 + End If + Dim xh As Int = width / 256 + Dim xl As Int = width - xh * 256 + Dim params(2) As Byte + params(0) = xl + params(1) = xh + WriteString(ESC & "*" & d) + WriteBytes(params) + WriteBytes(data) + WriteString(CRLF) + Return 0 +End Sub + +' Printer support method for pre-processing images to print by PrintImage2 +' Takes an array of image pixels and packs one slice of it for use with PrintImage2 +' Each byte in the imagedata array is a single pixel valued zero or non-zero for white and black +' The returned array packs 8 vertical black or white pixels into each byte +' If dots24 is True then the slice is 24 pixels high otherwise it is 8 pixels high +Public Sub PackImageSlice(img As AnImage, slice As Int, dots24 As Boolean) As Byte() + Dim bytes As Int = img.width + If dots24 Then + Dim pixels(bytes * 3) As Byte + Dim slicestart As Int = slice * bytes * 8 * 3 + Else + Dim pixels(bytes) As Byte + Dim slicestart As Int = slice * bytes * 8 + End If + + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + ' You could compress this into a single code block but I left it as two to make it more obvious what's happening + If dots24 Then + For x = 0 To bytes - 1 + For s = 0 To 2 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = img.Data(slicestart + ((b + s*8) * bytes) + x) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + Next + pixels(x*3+s) = xbyte + Next + Next + Else + For x = 0 To bytes - 1 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = img.Data(slicestart + (b * bytes) + x) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + Next + pixels(x) = xbyte + Next + End If + Return pixels +End Sub + +'---------------- +'Barcode commands +'---------------- + +' Set the height of a 2D bar code as number of dots vertically, 1 to 255 +' Automatically resets to the default after printing the barcode +Public Sub setBarCodeHeight(height As Int) + WriteString(GS & "h") + Dim params(1) As Byte + params(0) = height + WriteBytes(params) +End Sub + +' Set the left inset of a 2D barcode, 0 to 255 +' This does not reset on receipt of RESET +Public Sub setBarCodeLeft(left As Int) + WriteString(GS & "x") + Dim params(1) As Byte + params(0) = left + WriteBytes(params) +End Sub + +' Set the width of each bar in a 2D barcode. width value is 2 to 6, default is 3 +' 2 = 0.250, 3 - 0.375, 4 = 0.560, 5 = 0.625, 6 = 0.75 +' Resets to default after printing the barcode +Public Sub setBarCodeWidth(width As Int) + WriteString(GS & "w") + Dim params(1) As Byte + params(0) = width + WriteBytes(params) +End Sub + +'Selects the printing position of HRI (Human Readable Interpretation) characters when printing a 2D bar code. +'0 Not printed, 1 Above the bar code, 2 Below the bar code, 3 Both above And below the bar code +' Automatically resets to the default of 0 after printing the barcode +' The docs say this can be Chr(0, 1 2 or 3) or "0" "1" "2" or "3" but the numeric characters don't work +Public Sub setHriPosn(posn As Int) + WriteString(GS & "H") + Dim params(1) As Byte + params(0) = posn + WriteBytes(params) +End Sub + +'Selects the font for HRI (Human Readable Interpretation) characters when printing a 2D bar code. +'0 Font A (12 x 24), 1 Font B (9 x 17) +' Automatically resets to the default of 0 after printing the barcode +' The docs say this can be Chr(0 or 1) or "0" or "1" but the numeric characters don't work +Public Sub setHriFont(font As Int) + WriteString(GS & "f" & Chr(font)) +End Sub + +' If given invalid data no barcode is printed, only strange characters +' CODABAR needs any of A,B,C or D at the start and end of the barcode. Some decoders may not like them anywhere else +' Bartype Code Number of characters Permitted values +' A | UPC-A | 11 or 12 characters | 0 to 9 | The 12th printed character is always the check digit +' B | UPC-E | 6 characters | 0 to 9 | The 12th printed character is always the check digit +' C | EAN13 | 12 or 13 characters | 0 to 9 | The 12th printed character is always the check digit +' D | EAN8 | 7 or 8 characters | 0 to 9 | The 8th printed character is always the check digit +' E | CODE39 | 1 or more characters | 0 to 9, A to Z, Space $ % + - . / +' F | ITF | 1 or more characters | 0 to 9 | even number of characters only +' G | CODABAR| 3 to 255 characters | 0 to 9, A to D, $ + - . / : | needs any of A,B,C or D at the start and end +' H | CODE93 | 1 to 255 characters | Same as CODE39 +' I | CODE128| 2 to 255 characters | entire 7 bit ASCII set +Public Sub WriteBarCode(bartype As String, data As String) + Dim databytes() As Byte = data.GetBytes("ASCII") + Dim dlow As Int = databytes.Length + Log("Barcode " & bartype & ", Size " & dlow & ", " & data) + WriteString(GS & "k" & bartype.ToUpperCase.CharAt(0)) + Dim params(1) As Byte + params(0) = dlow + WriteBytes(params) + WriteBytes(databytes) +End Sub + +' On my printer QR codes don't seem to be able to be decoded and on high ECs look obviously wrong :( +' size is 1 to 40, 0 is auto-size. Successive versions increase module size by 4 each side +' size = 1 is 21x21, 2 = 25x25 ... size 40 = 177x177 +' EC is error correction level, "L"(7%) or "M"(15%) or "Q"(25%) or "H"(30%) +' scale is 1 to 8, 1 is smallest, 8 is largest +Public Sub WriteQRCode(size As Int, EC As String, scale As Int, data As String) + Dim databytes() As Byte = data.GetBytes("ISO-8859-1") + Dim dhigh As Int = databytes.Length / 256 + Dim dlow As Int = databytes.Length - dhigh*256 + Log("QR Code : Size " & size & ", EC " & EC & ", Scale " & scale & ", Size " & dlow & " " & dhigh & " : Data = " & data) + Dim params(3) As Byte + params(0) = scale + params(1) = dlow + params(2) = dhigh + WriteString(ESC & "Z" & Chr(size) & EC.ToUpperCase.CharAt(0)) + WriteBytes(params) + WriteBytes(databytes) +End Sub + + +'**************** +' PRIVATE METHODS +'**************** + +'----------------------- +' Internal Serial Events +'----------------------- + +Private Sub Serial1_Connected (Success As Boolean) + Log(" Serial connected - " & Success) + If Success Then + Astream.Initialize(Serial1.InputStream, Serial1.OutputStream, "astream") + Connected = True + ConnectedError = "" + Serial1.Listen + Else + Connected = False + ConnectedError = LastException.Message + End If + If SubExists(CallBack, EventName & "_Connected") Then + CallSub2(CallBack, EventName & "_Connected", Success) + End If +End Sub + +'---------------------------- +' Internal AsyncStream Events +'---------------------------- + +Private Sub AStream_NewData (Buffer() As Byte) + If SubExists(CallBack, EventName & "_NewData") Then + CallSub2(CallBack, EventName & "_NewData", Buffer) + End If + Log("Data " & Buffer(0)) +End Sub + +Private Sub AStream_Error + If SubExists(CallBack, EventName & "_Error") Then + CallSub(CallBack, EventName & "_Error") + End If +End Sub + +Private Sub AStream_Terminated + Connected = False + If SubExists(CallBack, EventName & "_Terminated") Then + CallSub(CallBack, EventName & "_Terminated") + End If +End Sub diff --git a/Files/alcancia.png b/Files/alcancia.png new file mode 100644 index 0000000..5f5cd3d Binary files /dev/null and b/Files/alcancia.png differ diff --git a/Files/alert2.png b/Files/alert2.png new file mode 100644 index 0000000..44d3b7e Binary files /dev/null and b/Files/alert2.png differ diff --git a/Files/alerta.jpg b/Files/alerta.jpg new file mode 100644 index 0000000..5edc6ba Binary files /dev/null and b/Files/alerta.jpg differ diff --git a/Files/alerta_amarilla.png b/Files/alerta_amarilla.png new file mode 100644 index 0000000..4f4beac Binary files /dev/null and b/Files/alerta_amarilla.png differ diff --git a/Files/amarillo.png b/Files/amarillo.png new file mode 100644 index 0000000..44e8c49 Binary files /dev/null and b/Files/amarillo.png differ diff --git a/Files/anterior.jpg b/Files/anterior.jpg new file mode 100644 index 0000000..48e56e4 Binary files /dev/null and b/Files/anterior.jpg differ diff --git a/Files/buscar.bal b/Files/buscar.bal new file mode 100644 index 0000000..d40f58f Binary files /dev/null and b/Files/buscar.bal differ diff --git a/Files/carrito.png b/Files/carrito.png new file mode 100644 index 0000000..03889f6 Binary files /dev/null and b/Files/carrito.png differ diff --git a/Files/celltitle.bal b/Files/celltitle.bal new file mode 100644 index 0000000..ecdae05 Binary files /dev/null and b/Files/celltitle.bal differ diff --git a/Files/detalle_promo.bal b/Files/detalle_promo.bal new file mode 100644 index 0000000..c8d6b01 Binary files /dev/null and b/Files/detalle_promo.bal differ diff --git a/Files/durakelo.png b/Files/durakelo.png new file mode 100644 index 0000000..e1c956c Binary files /dev/null and b/Files/durakelo.png differ diff --git a/Files/durakelo1.png b/Files/durakelo1.png new file mode 100644 index 0000000..00cb434 Binary files /dev/null and b/Files/durakelo1.png differ diff --git a/Files/durakelo_192x192.png b/Files/durakelo_192x192.png new file mode 100644 index 0000000..c1e7bb7 Binary files /dev/null and b/Files/durakelo_192x192.png differ diff --git a/Files/engrane.jpg b/Files/engrane.jpg new file mode 100644 index 0000000..01159de Binary files /dev/null and b/Files/engrane.jpg differ diff --git a/Files/engrane3.png b/Files/engrane3.png new file mode 100644 index 0000000..2bd5fa0 Binary files /dev/null and b/Files/engrane3.png differ diff --git a/Files/espera.gif b/Files/espera.gif new file mode 100644 index 0000000..605679f Binary files /dev/null and b/Files/espera.gif differ diff --git a/Files/fila.bal b/Files/fila.bal new file mode 100644 index 0000000..6628403 Binary files /dev/null and b/Files/fila.bal differ diff --git a/Files/fondo_kmt.jpg b/Files/fondo_kmt.jpg new file mode 100644 index 0000000..4055faf Binary files /dev/null and b/Files/fondo_kmt.jpg differ diff --git a/Files/foto.bal b/Files/foto.bal new file mode 100644 index 0000000..3476c4d Binary files /dev/null and b/Files/foto.bal differ diff --git a/Files/guardagestion.bal b/Files/guardagestion.bal new file mode 100644 index 0000000..6272b4e Binary files /dev/null and b/Files/guardagestion.bal differ diff --git a/Files/guna_viejo.png b/Files/guna_viejo.png new file mode 100644 index 0000000..d937027 Binary files /dev/null and b/Files/guna_viejo.png differ diff --git a/Files/info_gral.bal b/Files/info_gral.bal new file mode 100644 index 0000000..3002ac6 Binary files /dev/null and b/Files/info_gral.bal differ diff --git a/Files/infonavit1.jpg b/Files/infonavit1.jpg new file mode 100644 index 0000000..b8cce4c Binary files /dev/null and b/Files/infonavit1.jpg differ diff --git a/Files/itembuttonblue.png b/Files/itembuttonblue.png new file mode 100644 index 0000000..af4dc0b Binary files /dev/null and b/Files/itembuttonblue.png differ diff --git a/Files/k.png b/Files/k.png new file mode 100644 index 0000000..065a070 Binary files /dev/null and b/Files/k.png differ diff --git a/Files/kelloggs.png b/Files/kelloggs.png new file mode 100644 index 0000000..4debf15 Binary files /dev/null and b/Files/kelloggs.png differ diff --git a/Files/keymon_logo.png b/Files/keymon_logo.png new file mode 100644 index 0000000..945e546 Binary files /dev/null and b/Files/keymon_logo.png differ diff --git a/Files/kmt.db b/Files/kmt.db new file mode 100644 index 0000000..de4ec5a Binary files /dev/null and b/Files/kmt.db differ diff --git a/Files/login.bal b/Files/login.bal new file mode 100644 index 0000000..b62464f Binary files /dev/null and b/Files/login.bal differ diff --git a/Files/logo sanfer.jpg b/Files/logo sanfer.jpg new file mode 100644 index 0000000..791fe4f Binary files /dev/null and b/Files/logo sanfer.jpg differ diff --git a/Files/logo_exitus1.jpg b/Files/logo_exitus1.jpg new file mode 100644 index 0000000..b8cce4c Binary files /dev/null and b/Files/logo_exitus1.jpg differ diff --git a/Files/malo.jpg b/Files/malo.jpg new file mode 100644 index 0000000..bbf3c87 Binary files /dev/null and b/Files/malo.jpg differ diff --git a/Files/mapa.bal b/Files/mapa.bal new file mode 100644 index 0000000..7ed1bb4 Binary files /dev/null and b/Files/mapa.bal differ diff --git a/Files/mapa_rutas.bal b/Files/mapa_rutas.bal new file mode 100644 index 0000000..da1d154 Binary files /dev/null and b/Files/mapa_rutas.bal differ diff --git a/Files/marker-azul-0.png b/Files/marker-azul-0.png new file mode 100644 index 0000000..17a8f6b Binary files /dev/null and b/Files/marker-azul-0.png differ diff --git a/Files/marker-azul-1.png b/Files/marker-azul-1.png new file mode 100644 index 0000000..899d8e1 Binary files /dev/null and b/Files/marker-azul-1.png differ diff --git a/Files/marker-azul-10.png b/Files/marker-azul-10.png new file mode 100644 index 0000000..ec613c7 Binary files /dev/null and b/Files/marker-azul-10.png differ diff --git a/Files/marker-azul-100.png b/Files/marker-azul-100.png new file mode 100644 index 0000000..45793a2 Binary files /dev/null and b/Files/marker-azul-100.png differ diff --git a/Files/marker-azul-11.png b/Files/marker-azul-11.png new file mode 100644 index 0000000..473dfd2 Binary files /dev/null and b/Files/marker-azul-11.png differ diff --git a/Files/marker-azul-12.png b/Files/marker-azul-12.png new file mode 100644 index 0000000..92aa8f5 Binary files /dev/null and b/Files/marker-azul-12.png differ diff --git a/Files/marker-azul-13.png b/Files/marker-azul-13.png new file mode 100644 index 0000000..af75744 Binary files /dev/null and b/Files/marker-azul-13.png differ diff --git a/Files/marker-azul-14.png b/Files/marker-azul-14.png new file mode 100644 index 0000000..d477221 Binary files /dev/null and b/Files/marker-azul-14.png differ diff --git a/Files/marker-azul-15.png b/Files/marker-azul-15.png new file mode 100644 index 0000000..97d8538 Binary files /dev/null and b/Files/marker-azul-15.png differ diff --git a/Files/marker-azul-16.png b/Files/marker-azul-16.png new file mode 100644 index 0000000..e8a9951 Binary files /dev/null and b/Files/marker-azul-16.png differ diff --git a/Files/marker-azul-17.png b/Files/marker-azul-17.png new file mode 100644 index 0000000..b6d0538 Binary files /dev/null and b/Files/marker-azul-17.png differ diff --git a/Files/marker-azul-18.png b/Files/marker-azul-18.png new file mode 100644 index 0000000..068a465 Binary files /dev/null and b/Files/marker-azul-18.png differ diff --git a/Files/marker-azul-19.png b/Files/marker-azul-19.png new file mode 100644 index 0000000..d9da3c9 Binary files /dev/null and b/Files/marker-azul-19.png differ diff --git a/Files/marker-azul-2.png b/Files/marker-azul-2.png new file mode 100644 index 0000000..0442732 Binary files /dev/null and b/Files/marker-azul-2.png differ diff --git a/Files/marker-azul-20.png b/Files/marker-azul-20.png new file mode 100644 index 0000000..5eaae1a Binary files /dev/null and b/Files/marker-azul-20.png differ diff --git a/Files/marker-azul-21.png b/Files/marker-azul-21.png new file mode 100644 index 0000000..6461085 Binary files /dev/null and b/Files/marker-azul-21.png differ diff --git a/Files/marker-azul-22.png b/Files/marker-azul-22.png new file mode 100644 index 0000000..16fe14b Binary files /dev/null and b/Files/marker-azul-22.png differ diff --git a/Files/marker-azul-23.png b/Files/marker-azul-23.png new file mode 100644 index 0000000..6006f4d Binary files /dev/null and b/Files/marker-azul-23.png differ diff --git a/Files/marker-azul-24.png b/Files/marker-azul-24.png new file mode 100644 index 0000000..b747dcb Binary files /dev/null and b/Files/marker-azul-24.png differ diff --git a/Files/marker-azul-25.png b/Files/marker-azul-25.png new file mode 100644 index 0000000..8b7f0fc Binary files /dev/null and b/Files/marker-azul-25.png differ diff --git a/Files/marker-azul-26.png b/Files/marker-azul-26.png new file mode 100644 index 0000000..08de106 Binary files /dev/null and b/Files/marker-azul-26.png differ diff --git a/Files/marker-azul-27.png b/Files/marker-azul-27.png new file mode 100644 index 0000000..f3b4058 Binary files /dev/null and b/Files/marker-azul-27.png differ diff --git a/Files/marker-azul-28.png b/Files/marker-azul-28.png new file mode 100644 index 0000000..30eb4e4 Binary files /dev/null and b/Files/marker-azul-28.png differ diff --git a/Files/marker-azul-29.png b/Files/marker-azul-29.png new file mode 100644 index 0000000..66bc0c1 Binary files /dev/null and b/Files/marker-azul-29.png differ diff --git a/Files/marker-azul-3.png b/Files/marker-azul-3.png new file mode 100644 index 0000000..0de2d16 Binary files /dev/null and b/Files/marker-azul-3.png differ diff --git a/Files/marker-azul-30.png b/Files/marker-azul-30.png new file mode 100644 index 0000000..613f60d Binary files /dev/null and b/Files/marker-azul-30.png differ diff --git a/Files/marker-azul-31.png b/Files/marker-azul-31.png new file mode 100644 index 0000000..1282d99 Binary files /dev/null and b/Files/marker-azul-31.png differ diff --git a/Files/marker-azul-32.png b/Files/marker-azul-32.png new file mode 100644 index 0000000..eb87a1d Binary files /dev/null and b/Files/marker-azul-32.png differ diff --git a/Files/marker-azul-33.png b/Files/marker-azul-33.png new file mode 100644 index 0000000..0da4e53 Binary files /dev/null and b/Files/marker-azul-33.png differ diff --git a/Files/marker-azul-34.png b/Files/marker-azul-34.png new file mode 100644 index 0000000..9c398e8 Binary files /dev/null and b/Files/marker-azul-34.png differ diff --git a/Files/marker-azul-35.png b/Files/marker-azul-35.png new file mode 100644 index 0000000..ef09cd8 Binary files /dev/null and b/Files/marker-azul-35.png differ diff --git a/Files/marker-azul-36.png b/Files/marker-azul-36.png new file mode 100644 index 0000000..f2819af Binary files /dev/null and b/Files/marker-azul-36.png differ diff --git a/Files/marker-azul-37.png b/Files/marker-azul-37.png new file mode 100644 index 0000000..856fce2 Binary files /dev/null and b/Files/marker-azul-37.png differ diff --git a/Files/marker-azul-38.png b/Files/marker-azul-38.png new file mode 100644 index 0000000..016bd9f Binary files /dev/null and b/Files/marker-azul-38.png differ diff --git a/Files/marker-azul-39.png b/Files/marker-azul-39.png new file mode 100644 index 0000000..a73f734 Binary files /dev/null and b/Files/marker-azul-39.png differ diff --git a/Files/marker-azul-4.png b/Files/marker-azul-4.png new file mode 100644 index 0000000..26be4c1 Binary files /dev/null and b/Files/marker-azul-4.png differ diff --git a/Files/marker-azul-40.png b/Files/marker-azul-40.png new file mode 100644 index 0000000..33c5d5f Binary files /dev/null and b/Files/marker-azul-40.png differ diff --git a/Files/marker-azul-41.png b/Files/marker-azul-41.png new file mode 100644 index 0000000..09fd1d0 Binary files /dev/null and b/Files/marker-azul-41.png differ diff --git a/Files/marker-azul-42.png b/Files/marker-azul-42.png new file mode 100644 index 0000000..09f032f Binary files /dev/null and b/Files/marker-azul-42.png differ diff --git a/Files/marker-azul-43.png b/Files/marker-azul-43.png new file mode 100644 index 0000000..55ee249 Binary files /dev/null and b/Files/marker-azul-43.png differ diff --git a/Files/marker-azul-44.png b/Files/marker-azul-44.png new file mode 100644 index 0000000..acde8e4 Binary files /dev/null and b/Files/marker-azul-44.png differ diff --git a/Files/marker-azul-45.png b/Files/marker-azul-45.png new file mode 100644 index 0000000..e646d8e Binary files /dev/null and b/Files/marker-azul-45.png differ diff --git a/Files/marker-azul-46.png b/Files/marker-azul-46.png new file mode 100644 index 0000000..dd25e3b Binary files /dev/null and b/Files/marker-azul-46.png differ diff --git a/Files/marker-azul-47.png b/Files/marker-azul-47.png new file mode 100644 index 0000000..77fd47c Binary files /dev/null and b/Files/marker-azul-47.png differ diff --git a/Files/marker-azul-48.png b/Files/marker-azul-48.png new file mode 100644 index 0000000..40c0bbc Binary files /dev/null and b/Files/marker-azul-48.png differ diff --git a/Files/marker-azul-49.png b/Files/marker-azul-49.png new file mode 100644 index 0000000..49a852a Binary files /dev/null and b/Files/marker-azul-49.png differ diff --git a/Files/marker-azul-5.png b/Files/marker-azul-5.png new file mode 100644 index 0000000..bf12336 Binary files /dev/null and b/Files/marker-azul-5.png differ diff --git a/Files/marker-azul-50.png b/Files/marker-azul-50.png new file mode 100644 index 0000000..f67e274 Binary files /dev/null and b/Files/marker-azul-50.png differ diff --git a/Files/marker-azul-51.png b/Files/marker-azul-51.png new file mode 100644 index 0000000..b9be7b6 Binary files /dev/null and b/Files/marker-azul-51.png differ diff --git a/Files/marker-azul-52.png b/Files/marker-azul-52.png new file mode 100644 index 0000000..1115bd0 Binary files /dev/null and b/Files/marker-azul-52.png differ diff --git a/Files/marker-azul-53.png b/Files/marker-azul-53.png new file mode 100644 index 0000000..b0ccc4d Binary files /dev/null and b/Files/marker-azul-53.png differ diff --git a/Files/marker-azul-54.png b/Files/marker-azul-54.png new file mode 100644 index 0000000..5b4c8cb Binary files /dev/null and b/Files/marker-azul-54.png differ diff --git a/Files/marker-azul-55.png b/Files/marker-azul-55.png new file mode 100644 index 0000000..1499701 Binary files /dev/null and b/Files/marker-azul-55.png differ diff --git a/Files/marker-azul-56.png b/Files/marker-azul-56.png new file mode 100644 index 0000000..85b27ba Binary files /dev/null and b/Files/marker-azul-56.png differ diff --git a/Files/marker-azul-57.png b/Files/marker-azul-57.png new file mode 100644 index 0000000..bb71e82 Binary files /dev/null and b/Files/marker-azul-57.png differ diff --git a/Files/marker-azul-58.png b/Files/marker-azul-58.png new file mode 100644 index 0000000..f593e65 Binary files /dev/null and b/Files/marker-azul-58.png differ diff --git a/Files/marker-azul-59.png b/Files/marker-azul-59.png new file mode 100644 index 0000000..0f7d449 Binary files /dev/null and b/Files/marker-azul-59.png differ diff --git a/Files/marker-azul-6.png b/Files/marker-azul-6.png new file mode 100644 index 0000000..38021e6 Binary files /dev/null and b/Files/marker-azul-6.png differ diff --git a/Files/marker-azul-60.png b/Files/marker-azul-60.png new file mode 100644 index 0000000..cf5d8df Binary files /dev/null and b/Files/marker-azul-60.png differ diff --git a/Files/marker-azul-61.png b/Files/marker-azul-61.png new file mode 100644 index 0000000..e0e58c4 Binary files /dev/null and b/Files/marker-azul-61.png differ diff --git a/Files/marker-azul-62.png b/Files/marker-azul-62.png new file mode 100644 index 0000000..4a53f2f Binary files /dev/null and b/Files/marker-azul-62.png differ diff --git a/Files/marker-azul-63.png b/Files/marker-azul-63.png new file mode 100644 index 0000000..f679f01 Binary files /dev/null and b/Files/marker-azul-63.png differ diff --git a/Files/marker-azul-64.png b/Files/marker-azul-64.png new file mode 100644 index 0000000..ebe5a9e Binary files /dev/null and b/Files/marker-azul-64.png differ diff --git a/Files/marker-azul-65.png b/Files/marker-azul-65.png new file mode 100644 index 0000000..be9a15c Binary files /dev/null and b/Files/marker-azul-65.png differ diff --git a/Files/marker-azul-66.png b/Files/marker-azul-66.png new file mode 100644 index 0000000..50f342b Binary files /dev/null and b/Files/marker-azul-66.png differ diff --git a/Files/marker-azul-67.png b/Files/marker-azul-67.png new file mode 100644 index 0000000..8aa412a Binary files /dev/null and b/Files/marker-azul-67.png differ diff --git a/Files/marker-azul-68.png b/Files/marker-azul-68.png new file mode 100644 index 0000000..09c887b Binary files /dev/null and b/Files/marker-azul-68.png differ diff --git a/Files/marker-azul-69.png b/Files/marker-azul-69.png new file mode 100644 index 0000000..ed2e8a7 Binary files /dev/null and b/Files/marker-azul-69.png differ diff --git a/Files/marker-azul-7.png b/Files/marker-azul-7.png new file mode 100644 index 0000000..8413c29 Binary files /dev/null and b/Files/marker-azul-7.png differ diff --git a/Files/marker-azul-70.png b/Files/marker-azul-70.png new file mode 100644 index 0000000..0c1c482 Binary files /dev/null and b/Files/marker-azul-70.png differ diff --git a/Files/marker-azul-71.png b/Files/marker-azul-71.png new file mode 100644 index 0000000..905b19e Binary files /dev/null and b/Files/marker-azul-71.png differ diff --git a/Files/marker-azul-72.png b/Files/marker-azul-72.png new file mode 100644 index 0000000..cfb4098 Binary files /dev/null and b/Files/marker-azul-72.png differ diff --git a/Files/marker-azul-73.png b/Files/marker-azul-73.png new file mode 100644 index 0000000..511f0e7 Binary files /dev/null and b/Files/marker-azul-73.png differ diff --git a/Files/marker-azul-74.png b/Files/marker-azul-74.png new file mode 100644 index 0000000..02bd35e Binary files /dev/null and b/Files/marker-azul-74.png differ diff --git a/Files/marker-azul-75.png b/Files/marker-azul-75.png new file mode 100644 index 0000000..01493a0 Binary files /dev/null and b/Files/marker-azul-75.png differ diff --git a/Files/marker-azul-76.png b/Files/marker-azul-76.png new file mode 100644 index 0000000..0d5aa06 Binary files /dev/null and b/Files/marker-azul-76.png differ diff --git a/Files/marker-azul-77.png b/Files/marker-azul-77.png new file mode 100644 index 0000000..a3f9457 Binary files /dev/null and b/Files/marker-azul-77.png differ diff --git a/Files/marker-azul-78.png b/Files/marker-azul-78.png new file mode 100644 index 0000000..e01d1da Binary files /dev/null and b/Files/marker-azul-78.png differ diff --git a/Files/marker-azul-79.png b/Files/marker-azul-79.png new file mode 100644 index 0000000..438248d Binary files /dev/null and b/Files/marker-azul-79.png differ diff --git a/Files/marker-azul-8.png b/Files/marker-azul-8.png new file mode 100644 index 0000000..c4afaa5 Binary files /dev/null and b/Files/marker-azul-8.png differ diff --git a/Files/marker-azul-80.png b/Files/marker-azul-80.png new file mode 100644 index 0000000..438406c Binary files /dev/null and b/Files/marker-azul-80.png differ diff --git a/Files/marker-azul-81.png b/Files/marker-azul-81.png new file mode 100644 index 0000000..ba7b5a8 Binary files /dev/null and b/Files/marker-azul-81.png differ diff --git a/Files/marker-azul-82.png b/Files/marker-azul-82.png new file mode 100644 index 0000000..6d4471b Binary files /dev/null and b/Files/marker-azul-82.png differ diff --git a/Files/marker-azul-83.png b/Files/marker-azul-83.png new file mode 100644 index 0000000..0adbcf0 Binary files /dev/null and b/Files/marker-azul-83.png differ diff --git a/Files/marker-azul-84.png b/Files/marker-azul-84.png new file mode 100644 index 0000000..181af1f Binary files /dev/null and b/Files/marker-azul-84.png differ diff --git a/Files/marker-azul-85.png b/Files/marker-azul-85.png new file mode 100644 index 0000000..1a7a81a Binary files /dev/null and b/Files/marker-azul-85.png differ diff --git a/Files/marker-azul-86.png b/Files/marker-azul-86.png new file mode 100644 index 0000000..6a8ed41 Binary files /dev/null and b/Files/marker-azul-86.png differ diff --git a/Files/marker-azul-87.png b/Files/marker-azul-87.png new file mode 100644 index 0000000..5833b00 Binary files /dev/null and b/Files/marker-azul-87.png differ diff --git a/Files/marker-azul-88.png b/Files/marker-azul-88.png new file mode 100644 index 0000000..9726f25 Binary files /dev/null and b/Files/marker-azul-88.png differ diff --git a/Files/marker-azul-89.png b/Files/marker-azul-89.png new file mode 100644 index 0000000..98a88f8 Binary files /dev/null and b/Files/marker-azul-89.png differ diff --git a/Files/marker-azul-9.png b/Files/marker-azul-9.png new file mode 100644 index 0000000..6db0a59 Binary files /dev/null and b/Files/marker-azul-9.png differ diff --git a/Files/marker-azul-90.png b/Files/marker-azul-90.png new file mode 100644 index 0000000..83278bd Binary files /dev/null and b/Files/marker-azul-90.png differ diff --git a/Files/marker-azul-91.png b/Files/marker-azul-91.png new file mode 100644 index 0000000..8765559 Binary files /dev/null and b/Files/marker-azul-91.png differ diff --git a/Files/marker-azul-92.png b/Files/marker-azul-92.png new file mode 100644 index 0000000..b5838e5 Binary files /dev/null and b/Files/marker-azul-92.png differ diff --git a/Files/marker-azul-93.png b/Files/marker-azul-93.png new file mode 100644 index 0000000..6d4f390 Binary files /dev/null and b/Files/marker-azul-93.png differ diff --git a/Files/marker-azul-94.png b/Files/marker-azul-94.png new file mode 100644 index 0000000..702beff Binary files /dev/null and b/Files/marker-azul-94.png differ diff --git a/Files/marker-azul-95.png b/Files/marker-azul-95.png new file mode 100644 index 0000000..67e9be2 Binary files /dev/null and b/Files/marker-azul-95.png differ diff --git a/Files/marker-azul-96.png b/Files/marker-azul-96.png new file mode 100644 index 0000000..7f7d1f4 Binary files /dev/null and b/Files/marker-azul-96.png differ diff --git a/Files/marker-azul-97.png b/Files/marker-azul-97.png new file mode 100644 index 0000000..bb83f5f Binary files /dev/null and b/Files/marker-azul-97.png differ diff --git a/Files/marker-azul-98.png b/Files/marker-azul-98.png new file mode 100644 index 0000000..1baf391 Binary files /dev/null and b/Files/marker-azul-98.png differ diff --git a/Files/marker-azul-99.png b/Files/marker-azul-99.png new file mode 100644 index 0000000..3a8e4dc Binary files /dev/null and b/Files/marker-azul-99.png differ diff --git a/Files/marker-rojo-0.png b/Files/marker-rojo-0.png new file mode 100644 index 0000000..c2f508a Binary files /dev/null and b/Files/marker-rojo-0.png differ diff --git a/Files/marker-rojo-1.png b/Files/marker-rojo-1.png new file mode 100644 index 0000000..4a38c88 Binary files /dev/null and b/Files/marker-rojo-1.png differ diff --git a/Files/marker-rojo-10.png b/Files/marker-rojo-10.png new file mode 100644 index 0000000..878642f Binary files /dev/null and b/Files/marker-rojo-10.png differ diff --git a/Files/marker-rojo-100.png b/Files/marker-rojo-100.png new file mode 100644 index 0000000..3cf987b Binary files /dev/null and b/Files/marker-rojo-100.png differ diff --git a/Files/marker-rojo-11.png b/Files/marker-rojo-11.png new file mode 100644 index 0000000..89598b8 Binary files /dev/null and b/Files/marker-rojo-11.png differ diff --git a/Files/marker-rojo-12.png b/Files/marker-rojo-12.png new file mode 100644 index 0000000..7eb6c40 Binary files /dev/null and b/Files/marker-rojo-12.png differ diff --git a/Files/marker-rojo-13.png b/Files/marker-rojo-13.png new file mode 100644 index 0000000..093e073 Binary files /dev/null and b/Files/marker-rojo-13.png differ diff --git a/Files/marker-rojo-14.png b/Files/marker-rojo-14.png new file mode 100644 index 0000000..b0065d7 Binary files /dev/null and b/Files/marker-rojo-14.png differ diff --git a/Files/marker-rojo-15.png b/Files/marker-rojo-15.png new file mode 100644 index 0000000..ba35cef Binary files /dev/null and b/Files/marker-rojo-15.png differ diff --git a/Files/marker-rojo-16.png b/Files/marker-rojo-16.png new file mode 100644 index 0000000..43d6533 Binary files /dev/null and b/Files/marker-rojo-16.png differ diff --git a/Files/marker-rojo-17.png b/Files/marker-rojo-17.png new file mode 100644 index 0000000..4b3a15b Binary files /dev/null and b/Files/marker-rojo-17.png differ diff --git a/Files/marker-rojo-18.png b/Files/marker-rojo-18.png new file mode 100644 index 0000000..13deb65 Binary files /dev/null and b/Files/marker-rojo-18.png differ diff --git a/Files/marker-rojo-19.png b/Files/marker-rojo-19.png new file mode 100644 index 0000000..37bf798 Binary files /dev/null and b/Files/marker-rojo-19.png differ diff --git a/Files/marker-rojo-2.png b/Files/marker-rojo-2.png new file mode 100644 index 0000000..8b6fde5 Binary files /dev/null and b/Files/marker-rojo-2.png differ diff --git a/Files/marker-rojo-20.png b/Files/marker-rojo-20.png new file mode 100644 index 0000000..666d7df Binary files /dev/null and b/Files/marker-rojo-20.png differ diff --git a/Files/marker-rojo-21.png b/Files/marker-rojo-21.png new file mode 100644 index 0000000..366795c Binary files /dev/null and b/Files/marker-rojo-21.png differ diff --git a/Files/marker-rojo-22.png b/Files/marker-rojo-22.png new file mode 100644 index 0000000..3ce407f Binary files /dev/null and b/Files/marker-rojo-22.png differ diff --git a/Files/marker-rojo-23.png b/Files/marker-rojo-23.png new file mode 100644 index 0000000..55e3a4b Binary files /dev/null and b/Files/marker-rojo-23.png differ diff --git a/Files/marker-rojo-24.png b/Files/marker-rojo-24.png new file mode 100644 index 0000000..c8f8988 Binary files /dev/null and b/Files/marker-rojo-24.png differ diff --git a/Files/marker-rojo-25.png b/Files/marker-rojo-25.png new file mode 100644 index 0000000..11a6b96 Binary files /dev/null and b/Files/marker-rojo-25.png differ diff --git a/Files/marker-rojo-26.png b/Files/marker-rojo-26.png new file mode 100644 index 0000000..c9ca4da Binary files /dev/null and b/Files/marker-rojo-26.png differ diff --git a/Files/marker-rojo-27.png b/Files/marker-rojo-27.png new file mode 100644 index 0000000..e7ff1c0 Binary files /dev/null and b/Files/marker-rojo-27.png differ diff --git a/Files/marker-rojo-28.png b/Files/marker-rojo-28.png new file mode 100644 index 0000000..a6854ee Binary files /dev/null and b/Files/marker-rojo-28.png differ diff --git a/Files/marker-rojo-29.png b/Files/marker-rojo-29.png new file mode 100644 index 0000000..77ef66b Binary files /dev/null and b/Files/marker-rojo-29.png differ diff --git a/Files/marker-rojo-3.png b/Files/marker-rojo-3.png new file mode 100644 index 0000000..481ed6d Binary files /dev/null and b/Files/marker-rojo-3.png differ diff --git a/Files/marker-rojo-30.png b/Files/marker-rojo-30.png new file mode 100644 index 0000000..0487006 Binary files /dev/null and b/Files/marker-rojo-30.png differ diff --git a/Files/marker-rojo-31.png b/Files/marker-rojo-31.png new file mode 100644 index 0000000..7f6c2ec Binary files /dev/null and b/Files/marker-rojo-31.png differ diff --git a/Files/marker-rojo-32.png b/Files/marker-rojo-32.png new file mode 100644 index 0000000..630a62c Binary files /dev/null and b/Files/marker-rojo-32.png differ diff --git a/Files/marker-rojo-33.png b/Files/marker-rojo-33.png new file mode 100644 index 0000000..a80ecda Binary files /dev/null and b/Files/marker-rojo-33.png differ diff --git a/Files/marker-rojo-34.png b/Files/marker-rojo-34.png new file mode 100644 index 0000000..1bcdaf4 Binary files /dev/null and b/Files/marker-rojo-34.png differ diff --git a/Files/marker-rojo-35.png b/Files/marker-rojo-35.png new file mode 100644 index 0000000..5757e67 Binary files /dev/null and b/Files/marker-rojo-35.png differ diff --git a/Files/marker-rojo-36.png b/Files/marker-rojo-36.png new file mode 100644 index 0000000..f455e2a Binary files /dev/null and b/Files/marker-rojo-36.png differ diff --git a/Files/marker-rojo-37.png b/Files/marker-rojo-37.png new file mode 100644 index 0000000..2e9ab4f Binary files /dev/null and b/Files/marker-rojo-37.png differ diff --git a/Files/marker-rojo-38.png b/Files/marker-rojo-38.png new file mode 100644 index 0000000..23a83ce Binary files /dev/null and b/Files/marker-rojo-38.png differ diff --git a/Files/marker-rojo-39.png b/Files/marker-rojo-39.png new file mode 100644 index 0000000..3306d3b Binary files /dev/null and b/Files/marker-rojo-39.png differ diff --git a/Files/marker-rojo-4.png b/Files/marker-rojo-4.png new file mode 100644 index 0000000..7a104b3 Binary files /dev/null and b/Files/marker-rojo-4.png differ diff --git a/Files/marker-rojo-40.png b/Files/marker-rojo-40.png new file mode 100644 index 0000000..cbe0b39 Binary files /dev/null and b/Files/marker-rojo-40.png differ diff --git a/Files/marker-rojo-41.png b/Files/marker-rojo-41.png new file mode 100644 index 0000000..9f06504 Binary files /dev/null and b/Files/marker-rojo-41.png differ diff --git a/Files/marker-rojo-42.png b/Files/marker-rojo-42.png new file mode 100644 index 0000000..c34f146 Binary files /dev/null and b/Files/marker-rojo-42.png differ diff --git a/Files/marker-rojo-43.png b/Files/marker-rojo-43.png new file mode 100644 index 0000000..8579b75 Binary files /dev/null and b/Files/marker-rojo-43.png differ diff --git a/Files/marker-rojo-44.png b/Files/marker-rojo-44.png new file mode 100644 index 0000000..fe923a3 Binary files /dev/null and b/Files/marker-rojo-44.png differ diff --git a/Files/marker-rojo-45.png b/Files/marker-rojo-45.png new file mode 100644 index 0000000..d21b1ff Binary files /dev/null and b/Files/marker-rojo-45.png differ diff --git a/Files/marker-rojo-46.png b/Files/marker-rojo-46.png new file mode 100644 index 0000000..e60a891 Binary files /dev/null and b/Files/marker-rojo-46.png differ diff --git a/Files/marker-rojo-47.png b/Files/marker-rojo-47.png new file mode 100644 index 0000000..b83f51e Binary files /dev/null and b/Files/marker-rojo-47.png differ diff --git a/Files/marker-rojo-48.png b/Files/marker-rojo-48.png new file mode 100644 index 0000000..2b94152 Binary files /dev/null and b/Files/marker-rojo-48.png differ diff --git a/Files/marker-rojo-49.png b/Files/marker-rojo-49.png new file mode 100644 index 0000000..a96c078 Binary files /dev/null and b/Files/marker-rojo-49.png differ diff --git a/Files/marker-rojo-5.png b/Files/marker-rojo-5.png new file mode 100644 index 0000000..07edb89 Binary files /dev/null and b/Files/marker-rojo-5.png differ diff --git a/Files/marker-rojo-50.png b/Files/marker-rojo-50.png new file mode 100644 index 0000000..cc6cbea Binary files /dev/null and b/Files/marker-rojo-50.png differ diff --git a/Files/marker-rojo-51.png b/Files/marker-rojo-51.png new file mode 100644 index 0000000..fb10bbe Binary files /dev/null and b/Files/marker-rojo-51.png differ diff --git a/Files/marker-rojo-52.png b/Files/marker-rojo-52.png new file mode 100644 index 0000000..6b91537 Binary files /dev/null and b/Files/marker-rojo-52.png differ diff --git a/Files/marker-rojo-53.png b/Files/marker-rojo-53.png new file mode 100644 index 0000000..12d7d68 Binary files /dev/null and b/Files/marker-rojo-53.png differ diff --git a/Files/marker-rojo-54.png b/Files/marker-rojo-54.png new file mode 100644 index 0000000..134857a Binary files /dev/null and b/Files/marker-rojo-54.png differ diff --git a/Files/marker-rojo-55.png b/Files/marker-rojo-55.png new file mode 100644 index 0000000..a6448c7 Binary files /dev/null and b/Files/marker-rojo-55.png differ diff --git a/Files/marker-rojo-56.png b/Files/marker-rojo-56.png new file mode 100644 index 0000000..13a83e2 Binary files /dev/null and b/Files/marker-rojo-56.png differ diff --git a/Files/marker-rojo-57.png b/Files/marker-rojo-57.png new file mode 100644 index 0000000..f78cbe9 Binary files /dev/null and b/Files/marker-rojo-57.png differ diff --git a/Files/marker-rojo-58.png b/Files/marker-rojo-58.png new file mode 100644 index 0000000..3e0d74e Binary files /dev/null and b/Files/marker-rojo-58.png differ diff --git a/Files/marker-rojo-59.png b/Files/marker-rojo-59.png new file mode 100644 index 0000000..f0b6893 Binary files /dev/null and b/Files/marker-rojo-59.png differ diff --git a/Files/marker-rojo-6.png b/Files/marker-rojo-6.png new file mode 100644 index 0000000..59e4f11 Binary files /dev/null and b/Files/marker-rojo-6.png differ diff --git a/Files/marker-rojo-60.png b/Files/marker-rojo-60.png new file mode 100644 index 0000000..d43ae90 Binary files /dev/null and b/Files/marker-rojo-60.png differ diff --git a/Files/marker-rojo-61.png b/Files/marker-rojo-61.png new file mode 100644 index 0000000..4357d6d Binary files /dev/null and b/Files/marker-rojo-61.png differ diff --git a/Files/marker-rojo-62.png b/Files/marker-rojo-62.png new file mode 100644 index 0000000..3c8b717 Binary files /dev/null and b/Files/marker-rojo-62.png differ diff --git a/Files/marker-rojo-63.png b/Files/marker-rojo-63.png new file mode 100644 index 0000000..615904f Binary files /dev/null and b/Files/marker-rojo-63.png differ diff --git a/Files/marker-rojo-64.png b/Files/marker-rojo-64.png new file mode 100644 index 0000000..d58fda6 Binary files /dev/null and b/Files/marker-rojo-64.png differ diff --git a/Files/marker-rojo-65.png b/Files/marker-rojo-65.png new file mode 100644 index 0000000..ec82963 Binary files /dev/null and b/Files/marker-rojo-65.png differ diff --git a/Files/marker-rojo-66.png b/Files/marker-rojo-66.png new file mode 100644 index 0000000..cdd6a90 Binary files /dev/null and b/Files/marker-rojo-66.png differ diff --git a/Files/marker-rojo-67.png b/Files/marker-rojo-67.png new file mode 100644 index 0000000..426e4d3 Binary files /dev/null and b/Files/marker-rojo-67.png differ diff --git a/Files/marker-rojo-68.png b/Files/marker-rojo-68.png new file mode 100644 index 0000000..ba24d79 Binary files /dev/null and b/Files/marker-rojo-68.png differ diff --git a/Files/marker-rojo-69.png b/Files/marker-rojo-69.png new file mode 100644 index 0000000..2241ba6 Binary files /dev/null and b/Files/marker-rojo-69.png differ diff --git a/Files/marker-rojo-7.png b/Files/marker-rojo-7.png new file mode 100644 index 0000000..c4d60f3 Binary files /dev/null and b/Files/marker-rojo-7.png differ diff --git a/Files/marker-rojo-70.png b/Files/marker-rojo-70.png new file mode 100644 index 0000000..3c6b4fa Binary files /dev/null and b/Files/marker-rojo-70.png differ diff --git a/Files/marker-rojo-71.png b/Files/marker-rojo-71.png new file mode 100644 index 0000000..b120276 Binary files /dev/null and b/Files/marker-rojo-71.png differ diff --git a/Files/marker-rojo-72.png b/Files/marker-rojo-72.png new file mode 100644 index 0000000..ca042e4 Binary files /dev/null and b/Files/marker-rojo-72.png differ diff --git a/Files/marker-rojo-73.png b/Files/marker-rojo-73.png new file mode 100644 index 0000000..207c726 Binary files /dev/null and b/Files/marker-rojo-73.png differ diff --git a/Files/marker-rojo-74.png b/Files/marker-rojo-74.png new file mode 100644 index 0000000..832476f Binary files /dev/null and b/Files/marker-rojo-74.png differ diff --git a/Files/marker-rojo-75.png b/Files/marker-rojo-75.png new file mode 100644 index 0000000..ee95407 Binary files /dev/null and b/Files/marker-rojo-75.png differ diff --git a/Files/marker-rojo-76.png b/Files/marker-rojo-76.png new file mode 100644 index 0000000..eea3c80 Binary files /dev/null and b/Files/marker-rojo-76.png differ diff --git a/Files/marker-rojo-77.png b/Files/marker-rojo-77.png new file mode 100644 index 0000000..cc4b52f Binary files /dev/null and b/Files/marker-rojo-77.png differ diff --git a/Files/marker-rojo-78.png b/Files/marker-rojo-78.png new file mode 100644 index 0000000..2ca2aed Binary files /dev/null and b/Files/marker-rojo-78.png differ diff --git a/Files/marker-rojo-79.png b/Files/marker-rojo-79.png new file mode 100644 index 0000000..82b5d74 Binary files /dev/null and b/Files/marker-rojo-79.png differ diff --git a/Files/marker-rojo-8.png b/Files/marker-rojo-8.png new file mode 100644 index 0000000..68b46ff Binary files /dev/null and b/Files/marker-rojo-8.png differ diff --git a/Files/marker-rojo-80.png b/Files/marker-rojo-80.png new file mode 100644 index 0000000..e555061 Binary files /dev/null and b/Files/marker-rojo-80.png differ diff --git a/Files/marker-rojo-81.png b/Files/marker-rojo-81.png new file mode 100644 index 0000000..0fbb379 Binary files /dev/null and b/Files/marker-rojo-81.png differ diff --git a/Files/marker-rojo-82.png b/Files/marker-rojo-82.png new file mode 100644 index 0000000..832b635 Binary files /dev/null and b/Files/marker-rojo-82.png differ diff --git a/Files/marker-rojo-83.png b/Files/marker-rojo-83.png new file mode 100644 index 0000000..b9021a0 Binary files /dev/null and b/Files/marker-rojo-83.png differ diff --git a/Files/marker-rojo-84.png b/Files/marker-rojo-84.png new file mode 100644 index 0000000..9dc88c5 Binary files /dev/null and b/Files/marker-rojo-84.png differ diff --git a/Files/marker-rojo-85.png b/Files/marker-rojo-85.png new file mode 100644 index 0000000..6f49fdd Binary files /dev/null and b/Files/marker-rojo-85.png differ diff --git a/Files/marker-rojo-86.png b/Files/marker-rojo-86.png new file mode 100644 index 0000000..592e9ae Binary files /dev/null and b/Files/marker-rojo-86.png differ diff --git a/Files/marker-rojo-87.png b/Files/marker-rojo-87.png new file mode 100644 index 0000000..938aca9 Binary files /dev/null and b/Files/marker-rojo-87.png differ diff --git a/Files/marker-rojo-88.png b/Files/marker-rojo-88.png new file mode 100644 index 0000000..f93407f Binary files /dev/null and b/Files/marker-rojo-88.png differ diff --git a/Files/marker-rojo-89.png b/Files/marker-rojo-89.png new file mode 100644 index 0000000..ddfc4cc Binary files /dev/null and b/Files/marker-rojo-89.png differ diff --git a/Files/marker-rojo-9.png b/Files/marker-rojo-9.png new file mode 100644 index 0000000..2f8d39c Binary files /dev/null and b/Files/marker-rojo-9.png differ diff --git a/Files/marker-rojo-90.png b/Files/marker-rojo-90.png new file mode 100644 index 0000000..24a52cf Binary files /dev/null and b/Files/marker-rojo-90.png differ diff --git a/Files/marker-rojo-91.png b/Files/marker-rojo-91.png new file mode 100644 index 0000000..f45cce0 Binary files /dev/null and b/Files/marker-rojo-91.png differ diff --git a/Files/marker-rojo-92.png b/Files/marker-rojo-92.png new file mode 100644 index 0000000..73c0ddc Binary files /dev/null and b/Files/marker-rojo-92.png differ diff --git a/Files/marker-rojo-93.png b/Files/marker-rojo-93.png new file mode 100644 index 0000000..ad9499b Binary files /dev/null and b/Files/marker-rojo-93.png differ diff --git a/Files/marker-rojo-94.png b/Files/marker-rojo-94.png new file mode 100644 index 0000000..99c864d Binary files /dev/null and b/Files/marker-rojo-94.png differ diff --git a/Files/marker-rojo-95.png b/Files/marker-rojo-95.png new file mode 100644 index 0000000..0d0c2a7 Binary files /dev/null and b/Files/marker-rojo-95.png differ diff --git a/Files/marker-rojo-96.png b/Files/marker-rojo-96.png new file mode 100644 index 0000000..d08f85a Binary files /dev/null and b/Files/marker-rojo-96.png differ diff --git a/Files/marker-rojo-97.png b/Files/marker-rojo-97.png new file mode 100644 index 0000000..7645d01 Binary files /dev/null and b/Files/marker-rojo-97.png differ diff --git a/Files/marker-rojo-98.png b/Files/marker-rojo-98.png new file mode 100644 index 0000000..9196062 Binary files /dev/null and b/Files/marker-rojo-98.png differ diff --git a/Files/marker-rojo-99.png b/Files/marker-rojo-99.png new file mode 100644 index 0000000..3fcb55d Binary files /dev/null and b/Files/marker-rojo-99.png differ diff --git a/Files/marker-verde-0.png b/Files/marker-verde-0.png new file mode 100644 index 0000000..2ce1df5 Binary files /dev/null and b/Files/marker-verde-0.png differ diff --git a/Files/marker-verde-1.png b/Files/marker-verde-1.png new file mode 100644 index 0000000..b317d43 Binary files /dev/null and b/Files/marker-verde-1.png differ diff --git a/Files/marker-verde-10.png b/Files/marker-verde-10.png new file mode 100644 index 0000000..b9f6f61 Binary files /dev/null and b/Files/marker-verde-10.png differ diff --git a/Files/marker-verde-100.png b/Files/marker-verde-100.png new file mode 100644 index 0000000..985db2c Binary files /dev/null and b/Files/marker-verde-100.png differ diff --git a/Files/marker-verde-11.png b/Files/marker-verde-11.png new file mode 100644 index 0000000..331a0f1 Binary files /dev/null and b/Files/marker-verde-11.png differ diff --git a/Files/marker-verde-12.png b/Files/marker-verde-12.png new file mode 100644 index 0000000..99f39c4 Binary files /dev/null and b/Files/marker-verde-12.png differ diff --git a/Files/marker-verde-13.png b/Files/marker-verde-13.png new file mode 100644 index 0000000..80d8d05 Binary files /dev/null and b/Files/marker-verde-13.png differ diff --git a/Files/marker-verde-14.png b/Files/marker-verde-14.png new file mode 100644 index 0000000..3a161ee Binary files /dev/null and b/Files/marker-verde-14.png differ diff --git a/Files/marker-verde-15.png b/Files/marker-verde-15.png new file mode 100644 index 0000000..d1bc6fd Binary files /dev/null and b/Files/marker-verde-15.png differ diff --git a/Files/marker-verde-16.png b/Files/marker-verde-16.png new file mode 100644 index 0000000..18f2133 Binary files /dev/null and b/Files/marker-verde-16.png differ diff --git a/Files/marker-verde-17.png b/Files/marker-verde-17.png new file mode 100644 index 0000000..e44ec2c Binary files /dev/null and b/Files/marker-verde-17.png differ diff --git a/Files/marker-verde-18.png b/Files/marker-verde-18.png new file mode 100644 index 0000000..eef4bab Binary files /dev/null and b/Files/marker-verde-18.png differ diff --git a/Files/marker-verde-19.png b/Files/marker-verde-19.png new file mode 100644 index 0000000..999b2db Binary files /dev/null and b/Files/marker-verde-19.png differ diff --git a/Files/marker-verde-2.png b/Files/marker-verde-2.png new file mode 100644 index 0000000..61ab429 Binary files /dev/null and b/Files/marker-verde-2.png differ diff --git a/Files/marker-verde-20.png b/Files/marker-verde-20.png new file mode 100644 index 0000000..2c40e51 Binary files /dev/null and b/Files/marker-verde-20.png differ diff --git a/Files/marker-verde-21.png b/Files/marker-verde-21.png new file mode 100644 index 0000000..125c182 Binary files /dev/null and b/Files/marker-verde-21.png differ diff --git a/Files/marker-verde-22.png b/Files/marker-verde-22.png new file mode 100644 index 0000000..192e285 Binary files /dev/null and b/Files/marker-verde-22.png differ diff --git a/Files/marker-verde-23.png b/Files/marker-verde-23.png new file mode 100644 index 0000000..217312d Binary files /dev/null and b/Files/marker-verde-23.png differ diff --git a/Files/marker-verde-24.png b/Files/marker-verde-24.png new file mode 100644 index 0000000..e0e2039 Binary files /dev/null and b/Files/marker-verde-24.png differ diff --git a/Files/marker-verde-25.png b/Files/marker-verde-25.png new file mode 100644 index 0000000..25590ce Binary files /dev/null and b/Files/marker-verde-25.png differ diff --git a/Files/marker-verde-26.png b/Files/marker-verde-26.png new file mode 100644 index 0000000..119e92a Binary files /dev/null and b/Files/marker-verde-26.png differ diff --git a/Files/marker-verde-27.png b/Files/marker-verde-27.png new file mode 100644 index 0000000..48bf7c7 Binary files /dev/null and b/Files/marker-verde-27.png differ diff --git a/Files/marker-verde-28.png b/Files/marker-verde-28.png new file mode 100644 index 0000000..dceee5a Binary files /dev/null and b/Files/marker-verde-28.png differ diff --git a/Files/marker-verde-29.png b/Files/marker-verde-29.png new file mode 100644 index 0000000..ae4cbdf Binary files /dev/null and b/Files/marker-verde-29.png differ diff --git a/Files/marker-verde-3.png b/Files/marker-verde-3.png new file mode 100644 index 0000000..bc79da4 Binary files /dev/null and b/Files/marker-verde-3.png differ diff --git a/Files/marker-verde-30.png b/Files/marker-verde-30.png new file mode 100644 index 0000000..fcaa4e0 Binary files /dev/null and b/Files/marker-verde-30.png differ diff --git a/Files/marker-verde-31.png b/Files/marker-verde-31.png new file mode 100644 index 0000000..c8dd474 Binary files /dev/null and b/Files/marker-verde-31.png differ diff --git a/Files/marker-verde-32.png b/Files/marker-verde-32.png new file mode 100644 index 0000000..f491032 Binary files /dev/null and b/Files/marker-verde-32.png differ diff --git a/Files/marker-verde-33.png b/Files/marker-verde-33.png new file mode 100644 index 0000000..e9045fb Binary files /dev/null and b/Files/marker-verde-33.png differ diff --git a/Files/marker-verde-34.png b/Files/marker-verde-34.png new file mode 100644 index 0000000..90500f4 Binary files /dev/null and b/Files/marker-verde-34.png differ diff --git a/Files/marker-verde-35.png b/Files/marker-verde-35.png new file mode 100644 index 0000000..0aa922d Binary files /dev/null and b/Files/marker-verde-35.png differ diff --git a/Files/marker-verde-36.png b/Files/marker-verde-36.png new file mode 100644 index 0000000..a295437 Binary files /dev/null and b/Files/marker-verde-36.png differ diff --git a/Files/marker-verde-37.png b/Files/marker-verde-37.png new file mode 100644 index 0000000..fac6931 Binary files /dev/null and b/Files/marker-verde-37.png differ diff --git a/Files/marker-verde-38.png b/Files/marker-verde-38.png new file mode 100644 index 0000000..bb0eff1 Binary files /dev/null and b/Files/marker-verde-38.png differ diff --git a/Files/marker-verde-39.png b/Files/marker-verde-39.png new file mode 100644 index 0000000..ba3ca5d Binary files /dev/null and b/Files/marker-verde-39.png differ diff --git a/Files/marker-verde-4.png b/Files/marker-verde-4.png new file mode 100644 index 0000000..4d4c268 Binary files /dev/null and b/Files/marker-verde-4.png differ diff --git a/Files/marker-verde-40.png b/Files/marker-verde-40.png new file mode 100644 index 0000000..b3f4dd2 Binary files /dev/null and b/Files/marker-verde-40.png differ diff --git a/Files/marker-verde-41.png b/Files/marker-verde-41.png new file mode 100644 index 0000000..f3703fa Binary files /dev/null and b/Files/marker-verde-41.png differ diff --git a/Files/marker-verde-42.png b/Files/marker-verde-42.png new file mode 100644 index 0000000..290e787 Binary files /dev/null and b/Files/marker-verde-42.png differ diff --git a/Files/marker-verde-43.png b/Files/marker-verde-43.png new file mode 100644 index 0000000..b6fc701 Binary files /dev/null and b/Files/marker-verde-43.png differ diff --git a/Files/marker-verde-44.png b/Files/marker-verde-44.png new file mode 100644 index 0000000..fd600a8 Binary files /dev/null and b/Files/marker-verde-44.png differ diff --git a/Files/marker-verde-45.png b/Files/marker-verde-45.png new file mode 100644 index 0000000..32608e4 Binary files /dev/null and b/Files/marker-verde-45.png differ diff --git a/Files/marker-verde-46.png b/Files/marker-verde-46.png new file mode 100644 index 0000000..c144603 Binary files /dev/null and b/Files/marker-verde-46.png differ diff --git a/Files/marker-verde-47.png b/Files/marker-verde-47.png new file mode 100644 index 0000000..0df3c65 Binary files /dev/null and b/Files/marker-verde-47.png differ diff --git a/Files/marker-verde-48.png b/Files/marker-verde-48.png new file mode 100644 index 0000000..63fda42 Binary files /dev/null and b/Files/marker-verde-48.png differ diff --git a/Files/marker-verde-49.png b/Files/marker-verde-49.png new file mode 100644 index 0000000..e86d131 Binary files /dev/null and b/Files/marker-verde-49.png differ diff --git a/Files/marker-verde-5.png b/Files/marker-verde-5.png new file mode 100644 index 0000000..0cb0d02 Binary files /dev/null and b/Files/marker-verde-5.png differ diff --git a/Files/marker-verde-50.png b/Files/marker-verde-50.png new file mode 100644 index 0000000..fea9ebf Binary files /dev/null and b/Files/marker-verde-50.png differ diff --git a/Files/marker-verde-51.png b/Files/marker-verde-51.png new file mode 100644 index 0000000..c25429b Binary files /dev/null and b/Files/marker-verde-51.png differ diff --git a/Files/marker-verde-52.png b/Files/marker-verde-52.png new file mode 100644 index 0000000..cb0022c Binary files /dev/null and b/Files/marker-verde-52.png differ diff --git a/Files/marker-verde-53.png b/Files/marker-verde-53.png new file mode 100644 index 0000000..a67f9d9 Binary files /dev/null and b/Files/marker-verde-53.png differ diff --git a/Files/marker-verde-54.png b/Files/marker-verde-54.png new file mode 100644 index 0000000..cf040c7 Binary files /dev/null and b/Files/marker-verde-54.png differ diff --git a/Files/marker-verde-55.png b/Files/marker-verde-55.png new file mode 100644 index 0000000..1d1557f Binary files /dev/null and b/Files/marker-verde-55.png differ diff --git a/Files/marker-verde-56.png b/Files/marker-verde-56.png new file mode 100644 index 0000000..8a84e20 Binary files /dev/null and b/Files/marker-verde-56.png differ diff --git a/Files/marker-verde-57.png b/Files/marker-verde-57.png new file mode 100644 index 0000000..0fdff90 Binary files /dev/null and b/Files/marker-verde-57.png differ diff --git a/Files/marker-verde-58.png b/Files/marker-verde-58.png new file mode 100644 index 0000000..961d5bc Binary files /dev/null and b/Files/marker-verde-58.png differ diff --git a/Files/marker-verde-59.png b/Files/marker-verde-59.png new file mode 100644 index 0000000..760e66b Binary files /dev/null and b/Files/marker-verde-59.png differ diff --git a/Files/marker-verde-6.png b/Files/marker-verde-6.png new file mode 100644 index 0000000..fdf72ff Binary files /dev/null and b/Files/marker-verde-6.png differ diff --git a/Files/marker-verde-60.png b/Files/marker-verde-60.png new file mode 100644 index 0000000..fdc2b5a Binary files /dev/null and b/Files/marker-verde-60.png differ diff --git a/Files/marker-verde-61.png b/Files/marker-verde-61.png new file mode 100644 index 0000000..b7a00de Binary files /dev/null and b/Files/marker-verde-61.png differ diff --git a/Files/marker-verde-62.png b/Files/marker-verde-62.png new file mode 100644 index 0000000..c07d103 Binary files /dev/null and b/Files/marker-verde-62.png differ diff --git a/Files/marker-verde-63.png b/Files/marker-verde-63.png new file mode 100644 index 0000000..fdb84e0 Binary files /dev/null and b/Files/marker-verde-63.png differ diff --git a/Files/marker-verde-64.png b/Files/marker-verde-64.png new file mode 100644 index 0000000..509b955 Binary files /dev/null and b/Files/marker-verde-64.png differ diff --git a/Files/marker-verde-65.png b/Files/marker-verde-65.png new file mode 100644 index 0000000..646a789 Binary files /dev/null and b/Files/marker-verde-65.png differ diff --git a/Files/marker-verde-66.png b/Files/marker-verde-66.png new file mode 100644 index 0000000..8765de9 Binary files /dev/null and b/Files/marker-verde-66.png differ diff --git a/Files/marker-verde-67.png b/Files/marker-verde-67.png new file mode 100644 index 0000000..7683549 Binary files /dev/null and b/Files/marker-verde-67.png differ diff --git a/Files/marker-verde-68.png b/Files/marker-verde-68.png new file mode 100644 index 0000000..40baa6c Binary files /dev/null and b/Files/marker-verde-68.png differ diff --git a/Files/marker-verde-69.png b/Files/marker-verde-69.png new file mode 100644 index 0000000..8964a67 Binary files /dev/null and b/Files/marker-verde-69.png differ diff --git a/Files/marker-verde-7.png b/Files/marker-verde-7.png new file mode 100644 index 0000000..d3d1c74 Binary files /dev/null and b/Files/marker-verde-7.png differ diff --git a/Files/marker-verde-70.png b/Files/marker-verde-70.png new file mode 100644 index 0000000..dbe22fc Binary files /dev/null and b/Files/marker-verde-70.png differ diff --git a/Files/marker-verde-71.png b/Files/marker-verde-71.png new file mode 100644 index 0000000..22ce3b3 Binary files /dev/null and b/Files/marker-verde-71.png differ diff --git a/Files/marker-verde-72.png b/Files/marker-verde-72.png new file mode 100644 index 0000000..e1da10e Binary files /dev/null and b/Files/marker-verde-72.png differ diff --git a/Files/marker-verde-73.png b/Files/marker-verde-73.png new file mode 100644 index 0000000..b13439d Binary files /dev/null and b/Files/marker-verde-73.png differ diff --git a/Files/marker-verde-74.png b/Files/marker-verde-74.png new file mode 100644 index 0000000..21cdb8a Binary files /dev/null and b/Files/marker-verde-74.png differ diff --git a/Files/marker-verde-75.png b/Files/marker-verde-75.png new file mode 100644 index 0000000..8ac9232 Binary files /dev/null and b/Files/marker-verde-75.png differ diff --git a/Files/marker-verde-76.png b/Files/marker-verde-76.png new file mode 100644 index 0000000..619484b Binary files /dev/null and b/Files/marker-verde-76.png differ diff --git a/Files/marker-verde-77.png b/Files/marker-verde-77.png new file mode 100644 index 0000000..df97587 Binary files /dev/null and b/Files/marker-verde-77.png differ diff --git a/Files/marker-verde-78.png b/Files/marker-verde-78.png new file mode 100644 index 0000000..b2014f1 Binary files /dev/null and b/Files/marker-verde-78.png differ diff --git a/Files/marker-verde-79.png b/Files/marker-verde-79.png new file mode 100644 index 0000000..3eec8de Binary files /dev/null and b/Files/marker-verde-79.png differ diff --git a/Files/marker-verde-8.png b/Files/marker-verde-8.png new file mode 100644 index 0000000..84353cd Binary files /dev/null and b/Files/marker-verde-8.png differ diff --git a/Files/marker-verde-80.png b/Files/marker-verde-80.png new file mode 100644 index 0000000..8b97221 Binary files /dev/null and b/Files/marker-verde-80.png differ diff --git a/Files/marker-verde-81.png b/Files/marker-verde-81.png new file mode 100644 index 0000000..ebd400b Binary files /dev/null and b/Files/marker-verde-81.png differ diff --git a/Files/marker-verde-82.png b/Files/marker-verde-82.png new file mode 100644 index 0000000..680bd4f Binary files /dev/null and b/Files/marker-verde-82.png differ diff --git a/Files/marker-verde-83.png b/Files/marker-verde-83.png new file mode 100644 index 0000000..1a8acb4 Binary files /dev/null and b/Files/marker-verde-83.png differ diff --git a/Files/marker-verde-84.png b/Files/marker-verde-84.png new file mode 100644 index 0000000..f4bc40e Binary files /dev/null and b/Files/marker-verde-84.png differ diff --git a/Files/marker-verde-85.png b/Files/marker-verde-85.png new file mode 100644 index 0000000..1143b40 Binary files /dev/null and b/Files/marker-verde-85.png differ diff --git a/Files/marker-verde-86.png b/Files/marker-verde-86.png new file mode 100644 index 0000000..2f4aaf8 Binary files /dev/null and b/Files/marker-verde-86.png differ diff --git a/Files/marker-verde-87.png b/Files/marker-verde-87.png new file mode 100644 index 0000000..e518310 Binary files /dev/null and b/Files/marker-verde-87.png differ diff --git a/Files/marker-verde-88.png b/Files/marker-verde-88.png new file mode 100644 index 0000000..d2012fc Binary files /dev/null and b/Files/marker-verde-88.png differ diff --git a/Files/marker-verde-89.png b/Files/marker-verde-89.png new file mode 100644 index 0000000..5fd8701 Binary files /dev/null and b/Files/marker-verde-89.png differ diff --git a/Files/marker-verde-9.png b/Files/marker-verde-9.png new file mode 100644 index 0000000..e499aff Binary files /dev/null and b/Files/marker-verde-9.png differ diff --git a/Files/marker-verde-90.png b/Files/marker-verde-90.png new file mode 100644 index 0000000..723b4f5 Binary files /dev/null and b/Files/marker-verde-90.png differ diff --git a/Files/marker-verde-91.png b/Files/marker-verde-91.png new file mode 100644 index 0000000..015e858 Binary files /dev/null and b/Files/marker-verde-91.png differ diff --git a/Files/marker-verde-92.png b/Files/marker-verde-92.png new file mode 100644 index 0000000..c2d59d0 Binary files /dev/null and b/Files/marker-verde-92.png differ diff --git a/Files/marker-verde-93.png b/Files/marker-verde-93.png new file mode 100644 index 0000000..f3128b4 Binary files /dev/null and b/Files/marker-verde-93.png differ diff --git a/Files/marker-verde-94.png b/Files/marker-verde-94.png new file mode 100644 index 0000000..38acfdb Binary files /dev/null and b/Files/marker-verde-94.png differ diff --git a/Files/marker-verde-95.png b/Files/marker-verde-95.png new file mode 100644 index 0000000..4d1340a Binary files /dev/null and b/Files/marker-verde-95.png differ diff --git a/Files/marker-verde-96.png b/Files/marker-verde-96.png new file mode 100644 index 0000000..c0f2a0d Binary files /dev/null and b/Files/marker-verde-96.png differ diff --git a/Files/marker-verde-97.png b/Files/marker-verde-97.png new file mode 100644 index 0000000..a4e1612 Binary files /dev/null and b/Files/marker-verde-97.png differ diff --git a/Files/marker-verde-98.png b/Files/marker-verde-98.png new file mode 100644 index 0000000..78e0199 Binary files /dev/null and b/Files/marker-verde-98.png differ diff --git a/Files/marker-verde-99.png b/Files/marker-verde-99.png new file mode 100644 index 0000000..6628e9a Binary files /dev/null and b/Files/marker-verde-99.png differ diff --git a/Files/nopago.bal b/Files/nopago.bal new file mode 100644 index 0000000..5e93496 Binary files /dev/null and b/Files/nopago.bal differ diff --git a/Files/nuevocliente.bal b/Files/nuevocliente.bal new file mode 100644 index 0000000..4a3dd44 Binary files /dev/null and b/Files/nuevocliente.bal differ diff --git a/Files/palomita_verde.png b/Files/palomita_verde.png new file mode 100644 index 0000000..f8e11e6 Binary files /dev/null and b/Files/palomita_verde.png differ diff --git a/Files/pedido.bal b/Files/pedido.bal new file mode 100644 index 0000000..30db91e Binary files /dev/null and b/Files/pedido.bal differ diff --git a/Files/planfia_logo.png b/Files/planfia_logo.png new file mode 100644 index 0000000..680ffd0 Binary files /dev/null and b/Files/planfia_logo.png differ diff --git a/Files/planfia_logo_old.png b/Files/planfia_logo_old.png new file mode 100644 index 0000000..4adb130 Binary files /dev/null and b/Files/planfia_logo_old.png differ diff --git a/Files/planfia_logo_old2.png b/Files/planfia_logo_old2.png new file mode 100644 index 0000000..316f337 Binary files /dev/null and b/Files/planfia_logo_old2.png differ diff --git a/Files/productos.bal b/Files/productos.bal new file mode 100644 index 0000000..51d45cc Binary files /dev/null and b/Files/productos.bal differ diff --git a/Files/qr.bal b/Files/qr.bal new file mode 100644 index 0000000..0faca59 Binary files /dev/null and b/Files/qr.bal differ diff --git a/Files/rechazo.jpg b/Files/rechazo.jpg new file mode 100644 index 0000000..afb7ed3 Binary files /dev/null and b/Files/rechazo.jpg differ diff --git a/Files/rojo.png b/Files/rojo.png new file mode 100644 index 0000000..81d363d Binary files /dev/null and b/Files/rojo.png differ diff --git a/Files/salma.jpg b/Files/salma.jpg new file mode 100644 index 0000000..8308c95 Binary files /dev/null and b/Files/salma.jpg differ diff --git a/Files/salma.png b/Files/salma.png new file mode 100644 index 0000000..00cb434 Binary files /dev/null and b/Files/salma.png differ diff --git a/Files/seleccion.bal b/Files/seleccion.bal new file mode 100644 index 0000000..962db74 Binary files /dev/null and b/Files/seleccion.bal differ diff --git a/Files/senial.jpg b/Files/senial.jpg new file mode 100644 index 0000000..a758065 Binary files /dev/null and b/Files/senial.jpg differ diff --git a/Files/sync.png b/Files/sync.png new file mode 100644 index 0000000..ff7d32e Binary files /dev/null and b/Files/sync.png differ diff --git a/Files/tache_rojo.png b/Files/tache_rojo.png new file mode 100644 index 0000000..2f5f59d Binary files /dev/null and b/Files/tache_rojo.png differ diff --git a/Files/tarjeta.bal b/Files/tarjeta.bal new file mode 100644 index 0000000..cfdc81c Binary files /dev/null and b/Files/tarjeta.bal differ diff --git a/Files/telefonos.bal b/Files/telefonos.bal new file mode 100644 index 0000000..1f048f6 Binary files /dev/null and b/Files/telefonos.bal differ diff --git a/Files/tiendita.jpg b/Files/tiendita.jpg new file mode 100644 index 0000000..5f52563 Binary files /dev/null and b/Files/tiendita.jpg differ diff --git a/Files/unilever.jpg b/Files/unilever.jpg new file mode 100644 index 0000000..a144bdf Binary files /dev/null and b/Files/unilever.jpg differ diff --git a/Files/verde.png b/Files/verde.png new file mode 100644 index 0000000..59edded Binary files /dev/null and b/Files/verde.png differ diff --git a/FirebaseMessaging.bas b/FirebaseMessaging.bas new file mode 100644 index 0000000..93e0065 --- /dev/null +++ b/FirebaseMessaging.bas @@ -0,0 +1,282 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +'/////////////////////////////////////////////////////////////////////////////////////// +'/// Agregar estas lineas al editor de manifiestos +' +' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase) +' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase) +' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics) +' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications) +' +'/// Agregar modulo de servicio nuevo FirebaseMessaging y copiar este modulo +' +'/// Bajar el archivo google-services.json de la consola de Firebase (https://console.firebase.google.com/) +'/// El nombre de la app en el archivo json tiene que ser el mismo que el nombre del paquete (Proyecto/Conf de Compilacion/Paquete) +' +'/// En Starter agregar esta linea +' +' Sub Service_Create +' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") +' End Sub +' +'/// En Main en Sub Process_Globals agregar esta linea +' +' Private const API_KEY As String = "AAAAv__xxxxxxxxxxxxx-xxxxxxxxxxxxxx-xxxxxxxxxxxx" +' +'/// Esta llave se consigue igualmente en la consola de Firebase, configuracion de proyecto, Cloud Messaging, +'/// es la clave de servidor. +'/// +'/// Se necesitan agregar las librerías: FirebaseAnalitics, FirebaseNotifications, JSON y OkHttpUtils2 +'/// ... JSON es necesario si se van a enviar mensajes, si solo se van a recibir, no es necesario. +' +'/////////////////////////////////////////////////////////////////////////////////////// + +Sub Process_Globals + Private fm As FirebaseMessaging + Private const API_KEY As String = "AAAAv1qt3Lk:APA91bECIR-pHn6ul53eYyoVlpPuOo85RO-0zcAgEXwE7vqw8DFSbBtCaCINiqWQAkBBZXxHtQMdpU6B-jHIqgFKVL196UgwHv0Gw6_IgmipfV_NiItjzlH9d2QNpGLp9y_JUKVjUEhP" + Dim locRequest As String + Dim phn As Phone + Dim devModel As String + Dim pe As PhoneEvents + Dim c As Cursor + Public GZip As GZipStrings + Dim Subscrito As String = "" + Dim au As String + Dim puntosRuta As Int = 380 +End Sub + +Sub Service_Create + fm.Initialize("fm") 'Inicializamos FirebaseMessaging + pe.Initialize("pe") 'Para obtener la bateria +End Sub + +Public Sub SubscribeToTopics +' fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics) + fm.SubscribeToTopic("Trckr") 'Tracker global + Log("Subscrito al tracker global") + fm.SubscribeToTopic("Trckr-Durakelo") 'Global (you can subscribe to more topics) + Log("Subscrito a Trckr-Durakelo") + If Main.usuario <> Subscrito Then + fm.SubscribeToTopic(Main.usuario) 'Propio (you can subscribe to more topics) + fm.UnsubscribeFromTopic(Subscrito) 'Unsubscribe from topic + End If + If Main.logger Then Log("Subscrito a "&Main.usuario) + Subscrito = Main.usuario +' Log(fm.token) +' fm.UnsubscribeFromTopic("Sprvsr") 'Unsubscribe from topic +End Sub + +Sub Service_Start (StartingIntent As Intent) + If StartingIntent.IsInitialized Then fm.HandleIntent(StartingIntent) + Sleep(0) + Service.StopAutomaticForeground 'remove if not using B4A v8+. + StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True) 'Iniciamos servicio cada XX minutos +End Sub + +Sub fm_MessageArrived (Message As RemoteMessage) + If Main.logger Then Log("Message arrived") + If Main.logger Then Log($"Message data: ${Message.GetData}"$) +' getPhnId + If Message.GetData.ContainsKey("t") Then + Dim tipos As List = Regex.Split(",",Message.GetData.Get("t")) + If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion + If Main.logger Then Log("Es una peticion de ubicacion") + locRequest="Activa" + If Main.logger Then Log("Llamamos StartFLP2Reqs") + CallSubDelayed(Tracker, "StartFLP2Reqs") + CallSubDelayed(Tracker, "StartFLP") + End If + If tipos.IndexOf("au") <> -1 Then 'Si es una actualizacion de ubicacion + au = 1 + End If + If tipos.IndexOf("ping") <> -1 Then 'Si es un ping + If Main.logger Then Log("Es un ping") + If Main.logger Then Log("Mandamos pong") + Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"pong", "body":Main.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"pong") + SendMessage(params) + End If + If tipos.IndexOf("bgps") <> -1 Then 'Si es una instruccion de borrar archivo gps + If Main.logger Then Log("Es una instruccion de borrar archivo gps") + If Main.logger Then Log("Borramos archivo gps") + borramosArchivoGPS + End If + If tipos.IndexOf("dr") <> -1 Then 'Si es una peticion de ruta gps + If Main.logger Then Log("Es una peticion de Ruta GPS") + Dim rutaGpsCmp As String = dameRuta + Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"ruta", "body":Main.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"ruta", "r":rutaGpsCmp) + SendMessage(params) + End If + If tipos.IndexOf("bgps2") <> -1 Then 'Si es una instruccion de borrar DB gps + If Main.logger Then Log("Es una instruccion de borrar BD gps") + If Main.logger Then Log("Borramos BD gps") + borraGPSHist + End If + If tipos.IndexOf("pu") = -1 And tipos.IndexOf("au") = -1 And tipos.IndexOf("ping") = -1 And tipos.IndexOf("dr") = -1 Then + If Main.logger Then Log("No es ping ni solicitud de ubicacion o ruta, entonces no hacemos nada") + End If + End If +End Sub + +Sub Service_Destroy + +End Sub + +Sub SendMessage(params As Map) + Dim topic As String= params.Get("topic") + Dim title As String= params.Get("title") + Dim body As String= params.Get("body") + Dim tipo As String= params.Get("t") + If params.ContainsKey("r") Then + If Main.logger Then Log("Con ruta") + Dim rutaGpsCmp As String= params.Get("r") + Else + If Main.logger Then Log("Sin ruta") + Dim rutaGpsCmp As String = "" + End If + Dim Job As HttpJob + Job.Initialize("fcm", Me) + Dim m As Map = CreateMap("to": $"/topics/${topic}"$) + Dim data As Map = CreateMap("title":title, "body":body, "d":Main.usuario, "t":tipo, "b":Main.batt, "mt":Main.montoActual, "r":rutaGpsCmp, "v":Main.v) + m.Put("data", data) + Dim jg As JSONGenerator + jg.Initialize(m) + Job.PostString("https://fcm.googleapis.com/fcm/send", jg.ToString) + Job.GetRequest.SetContentType("application/json;charset=UTF-8") + Job.GetRequest.SetHeader("Authorization", "key=" & API_KEY) + If Main.logger Then Log(m) +End Sub + +Sub mandamosLoc(coords As String) + If Main.logger Then Log("Iniciamos mandamosLoc "&coords) + If Main.logger Then Log("locRequest="&locRequest) + Dim t As String + guardaInfoEnArchivo(coords)'Escribimos coordenadas y fecha a un archivo de texto + If locRequest="Activa" Then 'Si hay solicitud de ubicacion, entonces la mandamos ... + If au = 1 Then + t = "au" ' es una actualizacion + Else + t = "u" ' es una peticion + End If + Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"ubicacionRecibida", "body":coords, "t":t) + SendMessage(params) + locRequest="Enviada" + CallSubDelayed(Tracker,"CreateLocationRequest") + End If +End Sub + +Sub guardaInfoEnArchivo(coords As String) 'Escribimos coordenadas y fecha a un archivo de texto + '' Cambiamos el formato de la hora +' Dim OrigFormat As String=DateTime.DateFormat 'save orig date format +' DateTime.DateFormat="MMM-dd HH:mm:ss" +' Dim lastUpdate As String=DateTime.Date(DateTime.Now) +' DateTime.DateFormat=OrigFormat 'return to orig date format + + If Main.logger Then Log("Guardamos ubicacion en db") + Dim latlon() As String = Regex.Split(",", coords) + Try + Main.skmt.ExecNonQuery2("INSERT INTO RUTA_GPS(fecha, lat, lon) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1))) + Catch + If Main.logger Then Log("Error guardando ubicacion") 'Si la horaMinSeg es el mismo no lo guarda + Log(LastException) + End Try +' c=Main.skmt.ExecQuery("select * from RUTA_GPS") +' c.Position =0 +' Log(c.GetString("lat")&","&c.GetString("lon")&","&c.GetString("fecha")) + +' Dim ubic As String = coords&","&lastUpdate +' Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "gps.txt", True) +' Dim s As String = ubic & CRLF +' Dim t() As Byte = s.GetBytes("UTF-8") +' out.WriteBytes(t, 0, t.Length) +' out.Close +End Sub + +Sub borramosArchivoGPS + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "gps.txt", False) + Dim s As String = "" + Dim t() As Byte = s.GetBytes("UTF-8") + out.WriteBytes(t, 0, t.Length) + out.Close +End Sub + +'Sub getPhnId 'Pone el valor de phn.Model en la variable global "devModel" +' devModel = phn.Model +' If devModel.Length <= 3 Then 'Si phn.Model esta en blanco ... +' Dim t As String = phn.GetSettings("android_id") 'Intentamos con "android_id" +' devModel = t +' End If +' If devModel.Length >= 3 Then 'Si tenemos valor para phn.Model +' File.WriteString(File.DirInternal, "phnId.txt", devModel) 'Sobreescribimos archivo phnId.txt with deviceId +' Log("Tenemos phnId: "&devModel&" "&File.DirInternal&"/phn.txt sobreescrito") +' Else If devModel.Length < 2 Then ' Si no tenemos valor, lo leemos de phnId.txt +' Dim s As String = File.ReadString(File.DirInternal, "phnId.txt") +' devModel = s +' Log("Leemos id de "&File.DirInternal&"/phnId.txt") +' Log(devModel) +' End If +'End Sub + +Sub pe_BatteryChanged (Level As Int, Scale As Int, Plugged As Boolean, Intent As Intent) + Main.batt=Level +End Sub + +Sub compress(str As String) As String + ' Compression + Private su As StringUtils + Dim compressed() As Byte = GZip.compress(str) + If Main.logger Then Log($"CompressedBytesLength: ${compressed.Length}"$) + Dim base64 As String = su.EncodeBase64(compressed) + If Main.logger Then Log($"CompressedBytes converted to base64 Length: ${base64.Length}"$) + If Main.logger Then Log($"CompressedBytes converted to base64: ${base64}"$) + Return base64 +End Sub + +Sub decompress(base64 As String) As String + ' Decompression + Private su As StringUtils + Dim decompressedbytes() As Byte = su.DecodeBase64(base64) + If Main.logger Then Log($"decompressedbytesLength: ${decompressedbytes.Length}"$) + Dim bc As ByteConverter + Dim uncompressed As String = bc.StringFromBytes(decompressedbytes,"UTF8") + If Main.logger Then Log($"uncompressedLength: ${uncompressed.Length}"$) ' 6163 Bytes + If Main.logger Then Log($"Decompressed String = ${uncompressed}"$) + Return uncompressed +End Sub + +Sub dameRuta As String + If Main.logger Then Log("dameRuta") + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat="yyMMdd" +' Dim lastUpdate As String=DateTime.Date(fecha) + Dim hoy As String = DateTime.Date(DateTime.Now)&"000000" + DateTime.DateFormat=OrigFormat 'return to orig date format + If Main.logger Then Log(hoy) + Dim c As Cursor + c = Main.skmt.ExecQuery("select LAT, LON from RUTA_GPS where fecha > "& hoy &" order by fecha desc limit "&puntosRuta) + c.Position = 0 + Dim ruta2 As String = "" + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + ruta2=ruta2&CRLF&c.GetString("LAT")&","&c.GetString("LON") + Next + End If + c.Close + Return compress(ruta2) +End Sub + +Sub borraGPSHist + c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS") + c.Position=0 + If Main.logger Then Log(c.GetInt("cuantos")) + Main.skmt.ExecNonQuery("delete from RUTA_GPS") + c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS") + c.Position=0 + Log(c.GetInt("cuantos")) + Log("Borramos RUTA_GPS") + c.Close +End Sub \ No newline at end of file diff --git a/FirebaseMessaging_XXX.bas b/FirebaseMessaging_XXX.bas new file mode 100644 index 0000000..d8b7109 --- /dev/null +++ b/FirebaseMessaging_XXX.bas @@ -0,0 +1,273 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +'/////////////////////////////////////////////////////////////////////////////////////// +'/// Agregar estas lineas al editor de manifiestos +' +' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase) +' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase) +' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics) +' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications) +' +'/// Agregar modulo de servicio nuevo FirebaseMessaging y copiar este modulo +' +'/// Bajar el archivo google-services.json de la consola de Firebase (https://console.firebase.google.com/) +'/// El nombre de la app en el archivo json tiene que ser el mismo que el nombre del paquete (Proyecto/Conf de Compilacion/Paquete) +' +'/// En Starter agregar esta linea +' +' Sub Service_Create +' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") +' End Sub +' +'/// En Main en Sub Process_Globals agregar esta linea +' +' Private const API_KEY As String = "AAAAv__xxxxxxxxxxxxx-xxxxxxxxxxxxxx-xxxxxxxxxxxx" +' +'/// Esta llave se consigue igualmente en la consola de Firebase, configuracion de proyecto, Cloud Messaging, +'/// es la clave de servidor. +'/// +'/// Se necesitan agregar las librerías: FirebaseAnalitics, FirebaseNotifications, JSON y OkHttpUtils2 +'/// ... JSON es necesario si se van a enviar mensajes, si solo se van a recibir, no es necesario. +' +'/////////////////////////////////////////////////////////////////////////////////////// + +Sub Process_Globals + Private fm As FirebaseMessaging + Private const API_KEY As String = "AAAAv1qt3Lk:APA91bECIR-pHn6ul53eYyoVlpPuOo85RO-0zcAgEXwE7vqw8DFSbBtCaCINiqWQAkBBZXxHtQMdpU6B-jHIqgFKVL196UgwHv0Gw6_IgmipfV_NiItjzlH9d2QNpGLp9y_JUKVjUEhP" + Dim locRequest As String + Dim phn As Phone + Dim devModel As String + Dim pe As PhoneEvents + Dim c As Cursor + Public GZip As GZipStrings 'Requiere la libreria "CompressStrings" + Dim Subscrito As String = "" + Dim au As String +End Sub + +Sub Service_Create + fm.Initialize("fm") 'Inicializamos FirebaseMessaging + pe.Initialize("pe") 'Para obtener la bateria +End Sub + +Public Sub SubscribeToTopics + fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics) + fm.SubscribeToTopic("Trckr-This") 'Global (you can subscribe to more topics) + If Main.usuario <> Subscrito Then + fm.SubscribeToTopic(Main.usuario) 'Propio (you can subscribe to more topics) + fm.UnsubscribeFromTopic(Subscrito) 'Unsubscribe from topic + End If + If Main.logger Then Log("Subscrito a "&Main.usuario) + Subscrito = Main.usuario +' Log(fm.token) +' fm.UnsubscribeFromTopic("Sprvsr") 'Unsubscribe from topic +End Sub + +Sub Service_Start (StartingIntent As Intent) + If StartingIntent.IsInitialized Then fm.HandleIntent(StartingIntent) + Sleep(0) + Service.StopAutomaticForeground 'remove if not using B4A v8+. + StartServiceAt(Me, DateTime.Now + 15 * DateTime.TicksPerMinute, True) 'Iniciamos servicio cada XX minutos +End Sub + +Sub fm_MessageArrived (Message As RemoteMessage) + If Main.logger Then Log("Message arrived") + If Main.logger Then Log($"Message data: ${Message.GetData}"$) +' getPhnId + If Message.GetData.ContainsKey("t") Then + Dim tipos As List = Regex.Split(",",Message.GetData.Get("t")) + If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion + If Main.logger Then Log("Es una peticion de ubicacion") + locRequest="Activa" + If Main.logger Then Log("Llamamos StartFLP2Reqs") + CallSubDelayed(Tracker, "StartFLP2Reqs") + CallSubDelayed(Tracker, "StartFLP") + End If + If tipos.IndexOf("au") <> -1 Then 'Si es una actualizacion de ubicacion + au = 1 + End If + If tipos.IndexOf("ping") <> -1 Then 'Si es un ping + If Main.logger Then Log("Es un ping") + If Main.logger Then Log("Mandamos pong") + Dim params As Map = CreateMap("topic":"Sprv-This","title":"pong", "body":Main.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"pong") + SendMessage(params) + End If + If tipos.IndexOf("bgps") <> -1 Then 'Si es una instruccion de borrar archivo gps + If Main.logger Then Log("Es una instruccion de borrar archivo gps") + If Main.logger Then Log("Borramos archivo gps") + borramosArchivoGPS + End If + If tipos.IndexOf("dr") <> -1 Then 'Si es una peticion de ruta gps + If Main.logger Then Log("Es una peticion de Ruta GPS") + Dim rutaGpsCmp As String = dameRuta + Dim params As Map = CreateMap("topic":"Sprv-This","title":"ruta", "body":Main.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"ruta", "r":rutaGpsCmp) + SendMessage(params) + End If + If tipos.IndexOf("bgps2") <> -1 Then 'Si es una instruccion de borrar DB gps + If Main.logger Then Log("Es una instruccion de borrar BD gps") + If Main.logger Then Log("Borramos BD gps") + borraGPSHist + End If + If tipos.IndexOf("pu") = -1 And tipos.IndexOf("au") = -1 And tipos.IndexOf("ping") = -1 And tipos.IndexOf("dr") = -1 Then + If Main.logger Then Log("No es ping ni solicitud de ubicacion o ruta, entonces no hacemos nada") + End If + End If +End Sub + +Sub Service_Destroy + +End Sub + +Sub SendMessage(params As Map) + Dim topic As String= params.Get("topic") + Dim title As String= params.Get("title") + Dim body As String= params.Get("body") + Dim tipo As String= params.Get("t") + If params.ContainsKey("r") Then + If Main.logger Then Log("Con ruta") + Dim rutaGpsCmp As String= params.Get("r") + Else + If Main.logger Then Log("Sin ruta") + Dim rutaGpsCmp As String = "" + End If + Dim Job As HttpJob + Job.Initialize("fcm", Me) + Dim m As Map = CreateMap("to": $"/topics/${topic}"$) + Dim data As Map = CreateMap("title":title, "body":body, "d":Main.usuario, "t":tipo, "b":Main.batt, "mt":Main.montoActual, "r":rutaGpsCmp) + m.Put("data", data) + Dim jg As JSONGenerator + jg.Initialize(m) + Job.PostString("https://fcm.googleapis.com/fcm/send", jg.ToString) + Job.GetRequest.SetContentType("application/json;charset=UTF-8") + Job.GetRequest.SetHeader("Authorization", "key=" & API_KEY) + If Main.logger Then Log(m) +End Sub + +Sub mandamosLoc(coords As String) + If Main.logger Then Log("Iniciamos mandamosLoc "&coords) + If Main.logger Then Log("locRequest="&locRequest) + Dim t As String + guardaInfoEnArchivo(coords)'Escribimos coordenadas y fecha a un archivo de texto + If locRequest="Activa" Then 'Si hay solicitud de ubicacion, entonces la mandamos ... + If au = 1 Then + t = "au" ' es una actualizacion + Else + t = "u" ' es una peticion + End If + Dim params As Map = CreateMap("topic":"Sprv-This","title":"ubicacionRecibida", "body":coords, "t":t) + SendMessage(params) + locRequest="Enviada" + CallSubDelayed(Tracker,"CreateLocationRequest") + End If +End Sub + +Sub guardaInfoEnArchivo(coords As String) 'Escribimos coordenadas y fecha a un archivo de texto + '' Cambiamos el formato de la hora +' Dim OrigFormat As String=DateTime.DateFormat 'save orig date format +' DateTime.DateFormat="MMM-dd HH:mm:ss" +' Dim lastUpdate As String=DateTime.Date(DateTime.Now) +' DateTime.DateFormat=OrigFormat 'return to orig date format + + If Main.logger Then Log("Guardamos ubicacion en db") + Dim latlon() As String = Regex.Split(",", coords) + Try + Main.skmt.ExecNonQuery2("INSERT INTO RUTA_GPS(fecha, lat, lon) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1))) + Catch + If Main.logger Then Log("Error guardando ubicacion") 'Si la horaMinSeg es el mismo no lo guarda + End Try +' c=Main.skmt.ExecQuery("select * from RUTA_GPS") +' c.Position =0 +' Log(c.GetString("lat")&","&c.GetString("lon")&","&c.GetString("fecha")) + +' Dim ubic As String = coords&","&lastUpdate +' Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "gps.txt", True) +' Dim s As String = ubic & CRLF +' Dim t() As Byte = s.GetBytes("UTF-8") +' out.WriteBytes(t, 0, t.Length) +' out.Close +End Sub + +Sub borramosArchivoGPS + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "gps.txt", False) + Dim s As String = "" + Dim t() As Byte = s.GetBytes("UTF-8") + out.WriteBytes(t, 0, t.Length) + out.Close +End Sub + +'Sub getPhnId 'Pone el valor de phn.Model en la variable global "devModel" +' devModel = phn.Model +' If devModel.Length <= 3 Then 'Si phn.Model esta en blanco ... +' Dim t As String = phn.GetSettings("android_id") 'Intentamos con "android_id" +' devModel = t +' End If +' If devModel.Length >= 3 Then 'Si tenemos valor para phn.Model +' File.WriteString(File.DirInternal, "phnId.txt", devModel) 'Sobreescribimos archivo phnId.txt with deviceId +' Log("Tenemos phnId: "&devModel&" "&File.DirInternal&"/phn.txt sobreescrito") +' Else If devModel.Length < 2 Then ' Si no tenemos valor, lo leemos de phnId.txt +' Dim s As String = File.ReadString(File.DirInternal, "phnId.txt") +' devModel = s +' Log("Leemos id de "&File.DirInternal&"/phnId.txt") +' Log(devModel) +' End If +'End Sub + +Sub pe_BatteryChanged (Level As Int, Scale As Int, Plugged As Boolean, Intent As Intent) + Main.batt=Level +End Sub + +Sub compress(str As String) As String + ' Compression + Private su As StringUtils + Dim compressed() As Byte = GZip.compress(str) + If Main.logger Then Log($"CompressedBytesLength: ${compressed.Length}"$) + Dim base64 As String = su.EncodeBase64(compressed) + If Main.logger Then Log($"CompressedBytes converted to base64 Length: ${base64.Length}"$) + If Main.logger Then Log($"CompressedBytes converted to base64: ${base64}"$) + Return base64 +End Sub + +Sub decompress(base64 As String) As String + ' Decompression + Private su As StringUtils + Dim decompressedbytes() As Byte = su.DecodeBase64(base64) + If Main.logger Then Log($"decompressedbytesLength: ${decompressedbytes.Length}"$) + Dim bc As ByteConverter + Dim uncompressed As String = bc.StringFromBytes(decompressedbytes,"UTF8") + If Main.logger Then Log($"uncompressedLength: ${uncompressed.Length}"$) ' 6163 Bytes + If Main.logger Then Log($"Decompressed String = ${uncompressed}"$) + Return uncompressed +End Sub + +Sub dameRuta As String + If Main.logger Then Log("dameRuta") + Dim c As Cursor + c = Main.skmt.ExecQuery("select LAT, LON from RUTA_GPS order by fecha desc limit 400") + c.Position = 0 + Dim ruta2 As String = "" + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + ruta2=ruta2&CRLF&c.GetString("LAT")&","&c.GetString("LON") + Next + End If + c.Close + Return compress(ruta2) +End Sub + +Sub borraGPSHist + c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS") + c.Position=0 + Log(c.GetInt("cuantos")) + + Main.skmt.ExecNonQuery("delete from RUTA_GPS") + + c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS") + c.Position=0 + Log(c.GetInt("cuantos")) + Log("Borramos RUTA_GPS") + c.Close +End Sub \ No newline at end of file diff --git a/Historico.bas b/Historico.bas new file mode 100644 index 0000000..6d58a30 --- /dev/null +++ b/Historico.bas @@ -0,0 +1,182 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim skmt As SQL + Dim g As GPS + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim c As Cursor + Dim ruta As String + Dim Regresar As Button + + + Dim ListView1 As ListView + Dim L_CANT As Label + Dim L_TOTAL As Label + Dim borra As Button + Dim Existe As String + Dim result As String +' Dim lat_gps, lon_gps As String + + + Private Titulo As Label + Private b_desc As Button + Private ListView2 As ListView + Private B_RMI As Button +End Sub + +Sub Activity_Create(FirstTime As Boolean) + If(FirstTime) Then + g.Initialize("GPS") + End If + ruta = File.DirInternal + Activity.LoadLayout("tarjeta") + B_RMI.Visible = True + borra.Visible = False + Titulo.Text = "Acumulado" + b_desc.Visible = False + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If + +End Sub + +Sub Activity_Resume +If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) +End If + +L_CANT.Text ="" +L_TOTAL.Text="" + c=skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") + C.Position=0 + Existe = C.GetString("EXISTE") + C.Close + c=skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")& " FECHA " &c.GetString("HVD_FECHA") ) + Next + End If + If Existe <> 0 Then + c=skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)") + C.Position=0 + L_CANT.Text = c.GetString("PC_NOART") + L_TOTAL.Text = c.GetString("PC_MONTO") + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + + + +Sub Regresar_Click + B_RMI.Visible = False + StartActivity(fila) + +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub + + +Sub ListView2_ItemClick (Position As Int, Value As Object) + ListView2.Visible = False + ListView1.Visible = True +End Sub + +Sub ListView1_ItemClick (Position As Int, Value As Object) + ListView2.Visible = True + ListView1.Visible = False + Dim label1 As Label + + For i=0 To 20 + label1 = ListView2.SingleLineLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + ListView2.AddSingleLine(i) + + Next +End Sub + +Sub B_RMI_Click + c=skmt.ExecQuery("select HR_CLIENTE,HR_PRONOMBRE,HR_CANT from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa)") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("HR_PRONOMBRE"),"Cantidad #"& c.GetString("HR_CANT") ) + Next + End If +End Sub \ No newline at end of file diff --git a/MAPA_RUTAS.bas b/MAPA_RUTAS.bas new file mode 100644 index 0000000..5b95a69 --- /dev/null +++ b/MAPA_RUTAS.bas @@ -0,0 +1,323 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=9.3 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: False +#End Region + +'Activity module +Sub Process_Globals +' Dim GPS As GPS +' Dim rp As RuntimePermissions + Dim ruta As String + Dim skmt As SQL + Dim c As Cursor + Dim c2 As Cursor + Dim c3 As Cursor +End Sub + +Sub Globals + Private gmap As GoogleMap + Private MapFragment1 As MapFragment + Dim Latitud As Double = 0 + Dim Longitud As Double = 0 + Dim Lat2 As Double = 0 + Dim Lon2 As Double = 0 + Dim p1, p2 As Location + Dim Distance As Float + Dim boton1 As Button + Dim HUE_BLUE As Float + Dim HUE_RED As Float + Dim HUE_GREEN As Float + Private B_AZUL As Button + Private B_ROJO As Button + Private B_VERDE As Button + Private B_TODOS As Button + Dim Tienda As String + Dim LatitudRu As Double + Dim LongitudRU As Double + Dim LIST_AZUL As List + Dim LIST_ROJO As List + Dim LIST_VERDE As List + Dim MARK_AZUL As Marker + Dim MARK_ROJO As Marker + Dim MARK_VERDE As Marker + Dim MARK_CEDIS As Marker + Dim rojo As String + Dim azul As String + Dim verde As String + Dim todos As String + Dim NumSerie As Int + Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener + Dim GoogleMapEXTRA As GoogleMapsExtras + Dim CODIGO As String + Private SEMANA As String + + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + Activity.LoadLayout("MAPA_RUTAS") + ruta = File.DirInternal + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + 'GPS +' If(FirstTime) Then +' GPS.Initialize("GPS") +' End If + + If MapFragment1.IsGooglePlayServicesAvailable = False Then + ToastMessageShow("Please install Google Play Services.", True) + End If + + 'Boton velocidad' +' boton1.Initialize(0) +' boton1.Text = 0 &" "&"km/h" +' boton1.TextColor = Colors.Red +' boton1.TextSize = 15 +' Activity.AddView(boton1, 40%x, 5dip, 25%x, 40dip) + 'Fin Boton velocidad' + 'MARK_CEDIS.IsInitialized + MARK_AZUL.IsInitialized + MARK_ROJO.IsInitialized + MARK_VERDE.IsInitialized + + LIST_AZUL.Initialize + LIST_ROJO.Initialize + LIST_VERDE.Initialize + + verde = 0 + azul = 0 + rojo = 0 + todos = 1 +' c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA")) +' c.Position =0 +' SEMANA = c.GetString("CUANTOS") +' c.Close +' +' If SEMANA > 0 Then +' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA")) +' c.Position =0 +' SEMANA = c.GetString("CAT_VA_VALOR") +' c.Close +' End If + + +End Sub + +Sub MapFragment1_Ready +' skmt.Initialize(ruta,"kmt.db", True) + gmap = MapFragment1.GetMap + gmap.IsInitialized + 'todos= 1 + 'permisos + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + gmap.MyLocationEnabled = Result + + Dim JavaMapsObject As JavaObject + JavaMapsObject = gmap.GetUiSettings + JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True)) + + '''''''----------------------------MARKER AZUL - POR VISITAR + + If azul = 1 Or todos = 1 Then + c.IsInitialized + '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS PENDIENTES POR VISITAR + c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 0 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO ") + If c.RowCount > 0 Then + For i = 0 To c.RowCount -1 + c.Position = i + LatitudRu = c.GetDouble("CAT_CL_LAT") + LongitudRU = c.GetDouble("CAT_CL_LONG") + CODIGO=c.GetString("CAT_CL_CODIGO") + Tienda= c.GetString("CAT_CL_NOMBRE") + NumSerie=c.GetInt("CAT_CL_NUM_SERIEFISICO") + + MARK_AZUL = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO,LoadBitmap(File.DirAssets, "marker-azul-" & NumSerie &".png")) + MARK_AZUL.Snippet = Tienda + ' MARK_AZUL = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO, gmap.HUE_BLUE) + ' MARK_AZUL.Snippet = Tienda + Next + LIST_AZUL.Add(MARK_AZUL) + End If + c.Close + End If + + '''''''----------------------------MARKER VERDE - VENTA + If verde = 1 Or todos = 1 Then + c2.IsInitialized + '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS + c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO") + For i = 0 To c2.RowCount -1 + c2.Position = i + LongitudRU = c2.GetDouble("CAT_CL_LONG") + LatitudRu = c2.GetDouble("CAT_CL_LAT") + CODIGO=c2.GetString("CAT_CL_CODIGO") + Tienda= c2.GetString("CAT_CL_NOMBRE") + NumSerie=c2.GetInt("CAT_CL_NUM_SERIEFISICO") + MARK_VERDE = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-verde-"&NumSerie&".png")) + MARK_VERDE.Snippet = Tienda +' MARK_VERDE = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO,gmap.HUE_GREEN) +' MARK_VERDE.Snippet = Tienda + Next + Else + '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS--- ESTE VA IGUAL QUE EL ANTERIOR + If verde =1 Or todos = 1 Then + c2.IsInitialized + c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO") + For i = 0 To c2.RowCount -1 + c2.Position = i + LongitudRU = c2.GetDouble("CAT_CL_LONG") + LatitudRu = c2.GetDouble("CAT_CL_LAT") + CODIGO=c2.GetString("CAT_CL_CODIGO") + Tienda= c2.GetString("CAT_CL_NOMBRE") + + NumSerie=c2.GetInt("CAT_CL_NUM_SERIEFISICO") + MARK_VERDE = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-verde-"&NumSerie&".png")) + MARK_VERDE.Snippet = Tienda +' MARK_VERDE = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO,gmap.HUE_GREEN) +' MARK_VERDE.Snippet = Tienda + Next + c2 .Close + LIST_VERDE.Add(MARK_VERDE) + End If + End If + +' '''''''----------------------------MARKER ROJO - NO VENTA + '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LAS NO VENTAS + If rojo =1 Or todos = 1 Then + c3.IsInitialized + c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT ,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO") + For i = 0 To c3.RowCount -1 + c3.Position = i + LongitudRU = c3.GetDouble("CAT_CL_LONG") + LatitudRu = c3.GetDouble("CAT_CL_LAT") + Tienda= c3.GetString("CAT_CL_NOMBRE") + NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO") + MARK_ROJO = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png")) + MARK_ROJO.Snippet = Tienda +' MARK_ROJO = gmap.AddMarker2(LatitudRu,LongitudRU,Tienda, gmap.HUE_RED) +' MARK_ROJO.Snippet = Tienda + Next + + Else + '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LAS NO VENTAS- ESTE VA IGUAL QUE EL ANTERIOR + If rojo =1 Or todos = 1 Then + c3.IsInitialized + c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO") + For i = 0 To c3.RowCount -1 + c3.Position = i + LongitudRU = c3.GetDouble("CAT_CL_LONG") + LatitudRu = c3.GetDouble("CAT_CL_LAT") + Tienda= c3.GetString("CAT_CL_NOMBRE") + NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO") + MARK_ROJO = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png")) + MARK_ROJO.Snippet = Tienda +' MARK_ROJO = gmap.AddMarker2(LatitudRu,LongitudRU,Tienda, gmap.HUE_RED) +' MARK_ROJO.Snippet = Tienda + Next + LIST_ROJO.Add(MARK_ROJO) + c3.Close + End If + End If + ''------------------------------ + +' MARK_CEDIS = gmap.AddMarker3("19.3961802","-99.0784293","CEDIS", LoadBitmap(File.DirAssets, "marker-azul-0.png")) +' If MARK_VERDE.Visible Or MARK_ROJO.Visible Then +' MARK_CEDIS.Remove +' End If + Dim aa As CameraPosition + aa.Initialize(LongitudRU,LatitudRu,15)''' RECOMENDABLE CAMBIAR A 10 PARA QUE SE VEAN MAS MARCADORES + gmap.AnimateCamera(aa) + + '''''---------------------- ESTO ES PARA LOS CLICK EN LAS VENTANAS DE INFORMACION----------- + Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener + OnInfoWindowClickListener1.Initialize("OnInfoWindowClickListener1") + GoogleMapEXTRA.SetOnInfoWindowClickListener(gmap, OnInfoWindowClickListener1) + +End Sub + +Sub OnInfoWindowClickListener1_click(Marker1 As Marker) + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?) ", Array As Object(Marker1.Title)) + StartActivity(fila) +End Sub + +Sub GPS_LocationChanged (Parametro As Location) + MARK_CEDIS.IsInitialized +' Parametro.ConvertToSeconds(Parametro.Latitude) +' Parametro.ConvertToSeconds(Parametro.Longitude) +' +' Dim sp As Int +' sp = Ceil(Parametro.Speed * 3.6) +' boton1.Text = sp &" "&"km/h" +' Latitud = Parametro.Latitude +' Longitud = Parametro.Longitude +' p2.Initialize2(Latitud,Longitud) +' p1.Initialize2(Lat2, Lon2) +' Distance = p1.DistanceTo(p2) +' If Latitud <> 0 And Longitud <> 0 Then +' If Distance > 10 Then +' Lat2 = Latitud +' Lon2 = Longitud +' Dim cp As CameraPosition +' cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0) +' gmap.AnimateCamera(cp) +' End If +' End If +End Sub + +Sub Activity_Resume +' If GPS.GPSEnabled = False Then +' ToastMessageShow("Debe Activar el GPS del Equipo.", True) +' StartActivity(GPS.LocationSettingsIntent) +' Else +' GPS.Start(0, 0) +' End If +End Sub + +Sub Activity_Pause (UserClosed As Boolean) +' GPS.Stop +End Sub + +Sub B_TODOS_Click + todos =1 + verde = 0 + azul = 0 + rojo = 0 + MapFragment1_Ready +End Sub + +Sub B_VERDE_Click + verde = 1 + azul = 0 + rojo = 0 + todos = 0 + gmap.Clear + MapFragment1_Ready +End Sub + +Sub B_ROJO_Click + rojo = 1 + verde = 0 + azul = 0 + todos = 0 + gmap.Clear + MapFragment1_Ready +End Sub + +Sub B_AZUL_Click + azul = 1 + verde = 0 + rojo = 0 + todos = 0 + gmap.Clear + MapFragment1_Ready +End Sub diff --git a/QR_MODULE.bas b/QR_MODULE.bas new file mode 100644 index 0000000..fb22e4e --- /dev/null +++ b/QR_MODULE.bas @@ -0,0 +1,98 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ + +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim b,b1,b2 As ImageView + Dim bt As Button + + Dim qr As QRCode + Dim sc As Zxing_scanner + Dim CODIGO As String + + + Private Label1 As Label +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + Activity.LoadLayout("qr") + + b.Initialize("") + b1.Initialize("") + b1.Gravity=Gravity.FILL + b2.Initialize("") + b2.Gravity=Gravity.FILL + + Activity.AddView(b,0,0,100dip,100dip) + Activity.AddView(b1,0,110dip,300dip,100dip) + Activity.AddView(b2,0,220dip,300dip,100dip) + + qr.initialize + + b.Bitmap = qr.QR_Encode("TESTING QR CODES",100dip) + b1.Bitmap = qr.Ean13_Encode(calc_ean_checksum("123456789012"),100dip) ' Not interested in this + b2.Bitmap = qr.Ean8_Encode(calc_ean_checksum("1234567"),100dip) ' Not interested in this + + bt.Initialize("bt") + bt.Text="Codigo" + Activity.AddView(bt,0,330dip,120dip,50dip) + +End Sub + +Sub Activity_Resume + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub +Sub bt_click + 'ADDED BY JOHAN SCHOEMAN i.e OPTION TO CHANGE THE WIDTH AND HEIGHT OF THE VIEWING RECTANGLE + Dim scan_width As Int + Dim scan_height As Int + scan_width = 400 + scan_height = 400 + sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height) + +End Sub +Sub sc_result(atype As String,Values As String) + 'Log("Type : " & atype) + 'Log("Value : " & Values) + CODIGO = Values + b.Bitmap = qr.QR_Encode(Values,100dip) +End Sub +Sub sc_noScan + Log("nothing returned from the scan !!!!!") +End Sub +Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes + Dim i As Int + Dim c As Char + Dim soma As Int + Dim n As Int + Dim digit As Float + + soma = 0 + For i=0 To number.Length - 1 + digit = number.SubString2(i,i+1) + n= digit * ((i Mod 2) * 2 + 1) + soma=soma+n + Next + Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 ) +End Sub \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a4f308b Binary files /dev/null and b/README.md differ diff --git a/Starter.bas b/Starter.bas new file mode 100644 index 0000000..5e197de --- /dev/null +++ b/Starter.bas @@ -0,0 +1,121 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: False + #ExcludeFromLibrary: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Public rp As RuntimePermissions + Private BTAdmin As BluetoothAdmin + Dim MAC_IMPRESORA As String + Public BluetoothState As Boolean + Public rp As RuntimePermissions + Public FLP As FusedLocationProvider + Dim Timer1 As Timer + Dim Interval As Int = 300 + Private flpStarted As Boolean + Dim DBReqServer As String = "http://keymon.lat:1782" +End Sub + +Sub Service_Create + 'This is the program entry point. + 'This is a good place to load resources that are not specific to a single activity. +' g.Initialize("GPS") + CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") + BTAdmin.Initialize("admin") +' serial.Initialize("serial") + If BTAdmin.IsEnabled = False Then + If BTAdmin.Enable = False Then + ToastMessageShow("Error enabling Bluetooth adapter.", True) + Else + ToastMessageShow("Enabling Bluetooth adapter...", False) + End If + Else + BluetoothState = True + End If + Timer1.Initialize("Timer1", Interval * 1000) + Timer1.Enabled = True +End Sub + +Sub Service_Start (StartingIntent As Intent) + Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases. +' Dim sDate,sTime As String +' DateTime.DateFormat = "yyyyMMdd" +' sDate=DateTime.Date(DateTime.Now) +' If sDate > "20220303" Then +' Msgbox("INSTALAR NUEVO APK" ,"AVISO") 'Ignore +' ExitApplication +' End If +' CallSubDelayed(Main, "copiaDB") +End Sub + +Private Sub BTAdmin_StateChanged (NewState As Int, OldState As Int) + If Main.logger Then Log("BT state changed: " & NewState) + BluetoothState = NewState = BTAdmin.STATE_ON +' StateChanged +End Sub + +Private Sub Timer1_Tick +' ToastMessageShow("Timer",False) + If Main.logger Then Log("Siguiente actuaizacion " & DateTime.Time(DateTime.Now + Interval * 1000)) + ENVIA_ULTIMA_GPS +End Sub + +Private Sub StateChanged +' btnSearchForDevices.Enabled = BluetoothState +' btnAllowConnection.Enabled = BluetoothState +' ChatPage1.btnSend.Enabled = ConnectionState +End Sub + +Sub GPS_LocationChanged (Location1 As Location) + If Main.logger Then Log("Starter GPS_LocationChanged") + CallSub2(Main, "GPS_LocationChanged", Location1) +End Sub + +Sub Service_TaskRemoved + 'This event will be raised when the user removes the app from the recent apps list. + Timer1.Enabled=False +End Sub + +'Return true to allow the OS default exceptions handler to handle the uncaught exception. +Sub Application_Error (Error As Exception, StackTrace As String) As Boolean + Return True +End Sub + +Sub Service_Destroy +' StopGps + Timer1.Enabled=False +End Sub + +Sub ENVIA_ULTIMA_GPS + Log("Iniciamos ENVIA_ULTIMA_GPS") + Dim skmt As SQL + Dim cmd As DBCommand + Dim reqManager As DBRequestManager + DateTime.TimeFormat = "HHmmss" + Main.ultimaActualizacionGPS = DateTime.Time(DateTime.Now) + reqManager.Initialize(Me, DBReqServer) + skmt.Initialize(Main.ruta,"kmt.db", True) + cmd.Initialize + cmd.Name = "select_fechat" + reqManager.ExecuteQuery(cmd , 0, "fechat") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "UPDATE_DURK_ACTUAL2_GPS" + cmd.Parameters = Array As Object(Main.montoActual,Main.clientestotal, Main.clientesventa,Main.clientesvisitados,Main.lat_gps,Main.lon_gps,Main.batt,0, 0, 0,Main.ALMACEN,Main.rutapreventa) + reqManager.ExecuteCommand(cmd,"inst_visitas") + skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso")) +' Log("Ruta="&Main.rutapreventa) + + 'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion" + Timer1.Enabled = False + Timer1.Interval = Interval * 1000 + Timer1.Enabled = True +End Sub \ No newline at end of file diff --git a/Starter_XXX.bas b/Starter_XXX.bas new file mode 100644 index 0000000..3580214 --- /dev/null +++ b/Starter_XXX.bas @@ -0,0 +1,79 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: False + #ExcludeFromLibrary: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Public rp As RuntimePermissions + Public FLP As FusedLocationProvider + Public rp As RuntimePermissions + Dim Timer1 As Timer + Dim Interval As Int = 300 +End Sub + +Sub Service_Create + 'This is the program entry point. + 'This is a good place to load resources that are not specific to a single activity. + +' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") + Timer1.Initialize("Timer1", Interval * 1000) + Timer1.Enabled = True +End Sub + +Sub Service_Start (StartingIntent As Intent) + Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases. +End Sub + +Private Sub Timer1_Tick +' ToastMessageShow("Timer",False) + If Main.logger Then Log("Siguiente actuaizacion " & DateTime.Time(DateTime.Now + Interval * 1000)) + ENVIA_ULTIMA_GPS +End Sub + +Sub Service_TaskRemoved + 'This event will be raised when the user removes the app from the recent apps list. + Timer1.Enabled=False +End Sub + +'Return true to allow the OS default exceptions handler to handle the uncaught exception. +Sub Application_Error (Error As Exception, StackTrace As String) As Boolean + Return True +End Sub + +Sub Service_Destroy + +End Sub + +Sub ENVIA_ULTIMA_GPS + Dim skmt As SQL + Dim cmd As DBCommand + Dim reqManager As DBRequestManager + reqManager.Initialize(Me, Main.server) + skmt.Initialize(Main.ruta,"kmt.db", True) + If Main.logger Then Log("Iniciamos ENVIA_ULTIMA_GPS") + DateTime.TimeFormat = "HHmmss" + + cmd.Initialize + cmd.Name = "select_fechat" + reqManager.ExecuteQuery(cmd , 0, "fechat") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "UPDATE_THIS_ACTUAL2_GPS" + cmd.Parameters = Array As Object(Main.montoActual,Main.clientestotal, Main.clientesventa,Main.clientesvisitados,Main.lat_gps,Main.lon_gps,Main.batt,0, 0, 0,Main.ALMACEN,Main.rutapreventa ) + reqManager.ExecuteCommand(cmd,"inst_visitas") + If Main.logger Then Log("Inst_visitas") + skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso")) + + 'Reiniciamos el timer para cuando llamamos el Sub desde otra actividad + Timer1.Enabled = False + Timer1.Interval = Interval * 1000 + Timer1.Enabled = True +End Sub \ No newline at end of file diff --git a/Tracker.bas b/Tracker.bas new file mode 100644 index 0000000..b9da21e --- /dev/null +++ b/Tracker.bas @@ -0,0 +1,223 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: True +#End Region +'****************************************************************************** +'No olvidar agregar esta linea al editor de manifiesto: +' SetServiceAttribute(Tracker, android:foregroundServiceType, "location") +' +'En Starter agregar estas lineas en Process_Globals +' Public rp As RuntimePermissions +' Public FLP As FusedLocationProvider +' Private flpStarted As Boolean +' +'En Main agregar estas lineas a Activity_Resume +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) +' If Result Then +' StartService(Tracker) +' Log("Start Tracker") +' Else +' ToastMessageShow("No permission", True) +' End If +' +'Se necesitan las librerias FusedLocationProvider, GPS, Phone y RunTimePermissions +' +'Y en Main agregar estas dos lineas: +'#AdditionalJar: com.android.support:support-v4 +'#AdditionalJar: com.google.android.gms:play-services-location + +Sub Process_Globals + Private nid As Int = 1 + Private Tracking As Boolean + Private lock As PhoneWakeState + 'Para FusedLocationProvider (2 lineas) + Public FLP As FusedLocationProvider + Dim actualLR As LocationRequest + Private flpStarted As Boolean +End Sub + +Sub Service_Create + Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER 'we are handling it ourselves + 'Para FusedLocationProvider (2 lineas) + FLP.Initialize("flp") + FLP.Connect + lock.PartialLock + StartFLP +End Sub + +Sub flp_ConnectionSuccess + If Main.logger Then Log("Connected to location provider") + 'FLP.GetLastKnownLocation +End Sub + +Sub flp_ConnectionFailed(ConnectionResult1 As Int) + If Main.logger Then Log("Failed to connect to location provider") +End Sub + +Sub flp_ConnectionSuspended(ConnectionResult1 As Int) + If Main.logger Then Log("FLP conection suspended") + StartFLP +End Sub + +Sub Service_Start (StartingIntent As Intent) + If Main.logger Then Log("Tracker Service Started") + 'Para FusedLocationProvider (1 linea) + Service.StopAutomaticForeground + Service.StartForeground(nid, CreateNotification("...")) + Track + StartServiceAt(Me, DateTime.Now + 5 * DateTime.TicksPerMinute, True) +End Sub + +Public Sub Track + If Main.logger Then Log("Inicia Track - Tracking : "&Tracking) + If Tracking Then +' Log(actualLR.GetSmallestDisplacement) + Return 'Si ya estamos "rastreando" no hacemos nada (return) + End If + If Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) = False Then + If Main.logger Then Log("No permission") + Return + End If + StartFLP 'Iniciamos FusedLocationProvider + Tracking = True +End Sub + +Public Sub StartFLP + Log("StartFLP - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If Main.logger Then Log("sleeping") + Loop +' If flpStarted = False Then + If Main.logger Then Log("RequestLocationUpdates") + FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion + If Main.logger Then Log("Buscamos ubicacion") + If Main.logger Then Log(actualLR.GetSmallestDisplacement) + flpStarted = True +' End If +End Sub + +Public Sub StartFLP2Reqs + If Main.logger Then Log("StartFLP - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If Main.logger Then Log("sleeping") + Loop + dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida + FLP.RequestLocationUpdates(CreateLocationRequest2times) 'Buscamos ubicacion 2 peticiones + If Main.logger Then Log("Buscamos ubicacion 2 peticiones") + If Main.logger Then Log(actualLR.GetSmallestDisplacement) +End Sub + +Private Sub CreateLocationRequest As LocationRequest + If Main.logger Then Log("CreateLocationRequest") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(10000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.SetSmallestDisplacement(75) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Private Sub CreateLocationRequest2times As LocationRequest + If Main.logger Then Log("Iniciamos CreateLocationRequest2times") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros + lr.SetSmallestDisplacement(10) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Sub dameUltimaUbicacionConocida + If FLP.GetLastKnownLocation.IsInitialized Then 'Mandamos ultima ubicacion guardada + If Main.logger Then Log("Mandamos GetLastKnownLocation : "&formatoFecha(FLP.GetLastKnownLocation.Time)) + Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&formatoFecha(FLP.GetLastKnownLocation.Time) + CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) + End If +End Sub + +Public Sub StopFLP + 'Log("StopFLP") + If flpStarted Then + FLP.RemoveLocationUpdates 'Eliminamos todas las solicitudes de ubicacion + flpStarted = False + End If +End Sub + +Sub flp_LocationChanged (Location1 As Location) + If Main.logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement) + CallSub2(Starter, "GPS_LocationChanged", Location1) + CallSub2(gestion, "GPS_LocationChanged", Location1) + CallSub2(MAPA_RUTAS, "GPS_LocationChanged", Location1) + CallSub2(fila, "GPS_LocationChanged", Location1) + + Main.lat_gps = Location1.Latitude + Main.lon_gps = Location1.Longitude + '/////// para la ultima ubicacion FL + Dim sDate,sTime As String + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + Try + Main.skmt.ExecNonQuery("DELETE FROM HIST_GPS") + Main.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Main.lat_gps, Main.lon_gps)) + Catch + If Main.logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS") + End Try + '/////// + Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&formatoFecha(Location1.Time) + If Main.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Main.usuario&"|") + If Main.logger Then Log("Mandamos Ubicacion") + If Main.logger Then Log(FirebaseMessaging.locRequest) + ' Solo mandamos la ubicacion si la precision es dentro de XX mts + If Location1.Accuracy < 300 Then CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) + Dim origFormat As String = DateTime.TimeFormat 'Guardamos formato de fecha + DateTime.TimeFormat = "HHmmss" ' Modificamos formato de fecha + Dim minsDif As Int = DateTime.Time(DateTime.Now) - Main.ultimaActualizacionGPS + If Main.logger Then Log("UltimaAct="&Main.ultimaActualizacionGPS&" MinsDif="&minsDif) + If Location1.Accuracy < 100 And minsDif > 240 Then 'Si precision de 100 y 4 min transcurridos manda a web + If Main.logger Then Log("actualizamos Ubicacion") + CallSubDelayed(Starter, "ENVIA_ULTIMA_GPS") + End If + DateTime.TimeFormat = origFormat 'Regresamos formato de fecha original +' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) +End Sub + +Sub CreateNotification (Body As String) As Notification + Dim notification As Notification + notification.Initialize2(notification.IMPORTANCE_LOW) + notification.Icon = "icon" + notification.SetInfo("Durakelo", Body, Main) + If Main.logger Then Log("Creamos notificacion") + Return notification +End Sub + +Sub Service_Destroy + If Tracking Then + StopFLP + End If + Tracking = False + lock.ReleasePartialLock +End Sub + +Sub formatoFecha(fecha As String) As String 'Convierte una fecha al formato yyMMddHHmmss +' Log(fecha) + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat="yyMMddHHmmss" + Dim lastUpdate As String=DateTime.Date(fecha) + DateTime.DateFormat=OrigFormat 'return to orig date format +' Log(lastUpdate) + Return lastUpdate +End Sub \ No newline at end of file diff --git a/Tracker_XXX.bas b/Tracker_XXX.bas new file mode 100644 index 0000000..4347796 --- /dev/null +++ b/Tracker_XXX.bas @@ -0,0 +1,214 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: True +#End Region +'****************************************************************************** +' Agregar esta linea al editor de manifiesto: +' SetServiceAttribute(Tracker, android:foregroundServiceType, "location") +' +'En Starter agregar estas lineas en Process_Globals +' Public rp As RuntimePermissions +' Public FLP As FusedLocationProvider +' Private flpStarted As Boolean +' +'En Main agregar estas lineas a Activity_Resume +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) +' If Result Then +' StartService(Tracker) +' Log("Start Tracker") +' Else +' ToastMessageShow("No permission", True) +' End If +' +'Se necesitan las librerias FusedLocationProvider, GPS, Phone y RunTimePermissions +' +'Y en Main agregar estas dos lineas: +'#AdditionalJar: com.android.support:support-v4 +'#AdditionalJar: com.google.android.gms:play-services-location + +Sub Process_Globals + Private nid As Int = 1 + Private Tracking As Boolean + Private lock As PhoneWakeState + 'Para FusedLocationProvider (2 lineas) + Public FLP As FusedLocationProvider + Dim actualLR As LocationRequest + Private flpStarted As Boolean +End Sub + +Sub Service_Create + Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER 'we are handling it ourselves + 'Para FusedLocationProvider (2 lineas) + FLP.Initialize("flp") + FLP.Connect + lock.PartialLock + StartFLP +End Sub + +Sub flp_ConnectionSuccess + If Main.logger Then Log("Connected to location provider") + 'FLP.GetLastKnownLocation +End Sub + +Sub flp_ConnectionFailed(ConnectionResult1 As Int) + If Main.logger Then Log("Failed to connect to location provider") +End Sub + +Sub flp_ConnectionSuspended(ConnectionResult1 As Int) + If Main.logger Then Log("FLP conection suspended") + StartFLP +End Sub + +Sub Service_Start (StartingIntent As Intent) + If Main.logger Then Log("Tracker Service Started") + 'Para FusedLocationProvider (1 linea) + Service.StopAutomaticForeground + Service.StartForeground(nid, CreateNotification("...")) + Track + StartServiceAt(Me, DateTime.Now + 5 * DateTime.TicksPerMinute, True) +End Sub + +Public Sub Track + If Main.logger Then Log("Inicia Track - Tracking : "&Tracking) + If Tracking Then +' Log(actualLR.GetSmallestDisplacement) + Return 'Si ya estamos "rastreando" no hacemos nada (return) + End If + If Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) = False Then + If Main.logger Then Log("No permission") + Return + End If + StartFLP 'Iniciamos FusedLocationProvider + Tracking = True +End Sub + +Public Sub StartFLP + If Main.logger Then Log("StartFLP - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If Main.logger Then Log("sleeping") + Loop +' If flpStarted = False Then + If Main.logger Then Log("RequestLocationUpdates") + FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion + If Main.logger Then Log("Buscamos ubicacion") + If Main.logger Then Log(actualLR.GetSmallestDisplacement) + flpStarted = True +' End If +End Sub + +Public Sub StartFLP2Reqs + If Main.logger Then Log("StartFLP - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If Main.logger Then Log("sleeping") + Loop + dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida + FLP.RequestLocationUpdates(CreateLocationRequest2times) 'Buscamos ubicacion 2 peticiones + If Main.logger Then Log("Buscamos ubicacion 2 peticiones") + If Main.logger Then Log(actualLR.GetSmallestDisplacement) +End Sub + +Private Sub CreateLocationRequest As LocationRequest + If Main.logger Then Log("CreateLocationRequest") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(10000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.SetSmallestDisplacement(75) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Private Sub CreateLocationRequest2times As LocationRequest + If Main.logger Then Log("Iniciamos CreateLocationRequest2times") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros + lr.SetSmallestDisplacement(10) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Sub dameUltimaUbicacionConocida + If FLP.GetLastKnownLocation.IsInitialized Then 'Mandamos ultima ubicacion guardada + If Main.logger Then Log("Mandamos GetLastKnownLocation : "&formatoFecha(FLP.GetLastKnownLocation.Time)) + Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&formatoFecha(FLP.GetLastKnownLocation.Time) + CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) + End If +End Sub + +Public Sub StopFLP + 'Log("StopFLP") + If flpStarted Then + FLP.RemoveLocationUpdates 'Eliminamos todas las solicitudes de ubicacion + flpStarted = False + End If +End Sub + +Sub flp_LocationChanged (Location1 As Location) + If Main.logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement) + CallSub2(Starter, "GPS_LocationChanged", Location1) + CallSub2(gestion, "GPS_LocationChanged", Location1) + Main.lat_gps = Location1.Latitude + Main.lon_gps = Location1.Longitude + '/////// para la ultima ubicacion FL + Dim sDate,sTime As String + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + Try + Main.skmt.ExecNonQuery("DELETE FROM HIST_GPS") + Main.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Main.lat_gps, Main.lon_gps)) + Catch + If Main.logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS") + End Try + '/////// + Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&formatoFecha(Location1.Time) + If Main.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Main.usuario&"|") + If Main.logger Then Log("Mandamos Ubicacion") + If Main.logger Then Log(FirebaseMessaging.locRequest) + ' Solo mandamos la ubicacion si la precision es dentro de XX mts + If Location1.Accuracy < 300 Then CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) + If Location1.Accuracy < 100 Then 'Si precision de 100 y 4 min transcurridos manda a web + If Main.logger Then Log("actualizamos Ubicacion") + CallSubDelayed(Starter, "ENVIA_ULTIMA_GPS") + End If +' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) +End Sub + +Sub CreateNotification (Body As String) As Notification + Dim notification As Notification + notification.Initialize2(notification.IMPORTANCE_LOW) + notification.Icon = "icon" + notification.SetInfo("This", Body, Main) + Return notification +End Sub + +Sub Service_Destroy + If Tracking Then + StopFLP + End If + Tracking = False + lock.ReleasePartialLock +End Sub + +Sub formatoFecha(fecha As String) As String 'Convierte una fecha al formato yyMMddHHmmss +' Log(fecha) + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat="yyMMddHHmmss" + Dim lastUpdate As String=DateTime.Date(fecha) + DateTime.DateFormat=OrigFormat 'return to orig date format +' Log(lastUpdate) + Return lastUpdate +End Sub diff --git a/colonia.bas b/colonia.bas new file mode 100644 index 0000000..58a169d --- /dev/null +++ b/colonia.bas @@ -0,0 +1,236 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + + Dim ruta As String + Dim q_buscar As String +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim skmt As SQL + Dim c As Cursor + Dim c2 As Cursor + Dim s As Cursor + Dim ListView1 As ListView + Dim entro As String + Dim gest As Button + Dim lfila As Label + Dim busca As EditText + Dim colonia As String + Private b_qr As Button + Private qr As QRCode + Dim sc As Zxing_scanner + Dim CODIGO As String +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + Activity.LoadLayout("fila") + + 'Dim ruta As String + entro ="2" + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + qr.initialize + + +End Sub + +Sub Activity_Resume + b_qr.Visible = False ' No usamos el lector QR en esta app - CHV + busca.Text = "" + skmt.Initialize(ruta,"kmt.db", True) + entro ="2" + colonia = 0 + ' esto es para rutas se quito por colonia c=skmt.ExecQuery("select CAT_CL_RUTA, count(*) as cuantos from kmt_info where gestion = 0 group by CAT_CL_RUTA order by CAT_CL_RUTA asc") + 'SE COMENTA EL SIGUIENTE CODIGO PARA QUE TODAS LAS TIENDAS APARESCAN. + + ' c=skmt.ExecQuery("select CAT_CL_COLONIA, count(*) as cuantos from kmt_info where gestion = 0 group by CAT_CL_COLONIA order by CAT_CL_COLONIA asc") + c=skmt.ExecQuery("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 0 and cat_cl_codigo <> 0 ORDER BY CAST(CAT_CL_NUM_SERIEFISICO AS DECIMAL)") + ListView1.Clear + lfila.Text = "NOMBRE" + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 10 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Black + ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NUM_SERIEFISICO") & " " & c.GetString("CAT_CL_NOMBRE")) + Next + End If + entro = "4" + ' ESTE FUE EL FIN DEL CODIGO COMENTADO + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub ListView1_ItemClick (Position As Int, Value As Object) + + If colonia = 0 Then + colonia = Value + End If + + + If entro = "2" Then + c2=skmt.ExecQuery2("select CAT_CL_CALLE, CAT_CL_COLONIA, count(*) as cuantos from kmt_info where gestion = 0 and CAT_CL_COLONIA = ? GROUP BY CAT_CL_CALLE, CAT_CL_COLONIA order by CAT_CL_CALLE ", Array As String(Value)) + ListView1.Clear + lfila.text = "Calle" + + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + ListView1.AddTwoLines(c2.GetString("CAT_CL_CALLE"),c2.GetString("cuantos") ) + Next + End If + entro = "3" + Else If entro = "3" Then + c2=skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where gestion = 0 and CAT_CL_CALLE = ? AND CAT_CL_COLONIA = ? order by CAT_CL_NOMBRE ", Array As String(Value, colonia)) + ListView1.Clear + lfila.text = "Nombre" + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE")) + Next + End If + entro = "4" + Else If entro = "4" Then + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value)) + StartActivity(fila) + + End If + +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' If entro = "3" Then + 'entro = "2" + 'Activity_Resume + 'Return True + 'Else If entro = "2" Then + 'entro = "1" + 'Activity_Resume + 'Return True + 'Else If entro = "1" Then + + ' I want to capture the key here so I return True + + StartActivity(seleccion) + Return False + 'End If + End If + ' Returning False signals the system to handle the key + +End Sub + +Sub BUSCA_TextChanged (Old As String, New As String) + q_buscar = "%" & busca.Text & "%" + skmt.Initialize(ruta,"kmt.db", True) + + c2=skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where (CAT_CL_NOMBRE like ? OR CAT_CL_CODIGO LIKE ?)and gestion = 0 order by CAT_CL_NOMBRE ", Array As String(q_buscar,q_buscar)) + ListView1.Clear + lfila.text = "Nombre y Calle" + + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 10 + label1.TextColor = Colors.White + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.White + ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE") &" CALLE: "& c2.GetString("CAT_CL_CALLE")) + Next + End If + entro = "4" + + c2.Close +End Sub + + + +Sub b_qr_Click + 'StartActivity(QR_MODULE) + Dim scan_width As Int + Dim scan_height As Int + scan_width = 400 + scan_height = 400 + sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height) + +End Sub + + +Sub sc_result(atype As String,Values As String) + 'Log("Type : " & atype) + 'Log("Value : " & Values) + CODIGO = Values + + c2=skmt.ExecQuery2("select COUNT(*) AS ENCONTRADO from kmt_info where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO)) + c2.Position =0 + If c2.GetString("ENCONTRADO") > 0 Then + s=skmt.ExecQuery2("select CAT_CL_CODIGO from kmt_info where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO)) + s.Position =0 + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(s.GetString("CAT_CL_CODIGO"))) + s.Close + b_qr.Visible = False + StartActivity(fila) + Else + Msgbox("CODIGO " & CODIGO & " NO ENCONTRADO","AVISO") + End If +End Sub +Sub sc_noScan + Log("nothing returned from the scan !!!!!") +End Sub +Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes + Dim i As Int + Dim cO As Char + Dim soma As Int + Dim n As Int + Dim digit As Float + + soma = 0 + For i=0 To number.Length - 1 + digit = number.SubString2(i,i+1) + n= digit * ((i Mod 2) * 2 + 1) + soma=soma+n + Next + Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 ) +End Sub \ No newline at end of file diff --git a/colonia2.bas b/colonia2.bas new file mode 100644 index 0000000..b282301 --- /dev/null +++ b/colonia2.bas @@ -0,0 +1,1225 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: True + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + ' Dim g As GPS + Dim ruta As String + Dim q_buscar As String + Dim skmt As SQL +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim c As Cursor + Dim c2 As Cursor + Dim ListView1 As ListView + Dim entro As String + Dim lfila As Label + Dim marca As String + Dim tipo As String + Private BUSCA As EditText + Dim ya_entro As String + Dim bmp As Bitmap + + Dim c As Cursor + Dim e As Cursor + Dim f As Cursor + Dim h As Cursor + Dim CC As Cursor + Dim DD As Cursor + Dim l_tipo As Label + Dim l_sub As Label + Dim l_marca As Label + Dim l_desc As Label + Dim l_precio As Label + Dim l_bodega As Label + Dim cantidad As EditText + Dim guardar As Button + Dim Terminar As Button + Dim img_prod As ImageView + Dim IMG_PASO() As Byte + Dim L_PROID As Label + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String +' Dim lat_gps, lon_gps As String + Dim t_venta As Label + Dim PROMO_C As String + Dim i_fotol As ImageView + Private DESC_PROMO As Button + Private nopromo As Button + Dim TOT_ART_PROMO As String + Dim cambio As String + Dim COSTO_TOT As String + Dim ALMACEN As String + Dim preciosin As String + Dim cl_ruta As String + Dim d As Cursor + Dim TOT_ART_PROMOR As String + Dim PROMO_CR As String + Dim TOTAL_PROMO As String + Dim HCCP_CANT As String + Private Panel1 As Panel + Dim query As String + Private t_precio As Label + Private LV_PRECIOS As ListView + Private PERFIL As String + Private EXISTE_CAMBIO As String + Private QUERY2 As String + Dim CAMBIOS As String + Dim precio2 As String + Dim PROMOS_VENTAS As String + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + If(FirstTime) Then +' g.Initialize("GPS") + End If + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + Activity.RemoveAllViews + Activity.LoadLayout("PRODUCTOS") + 'Dim ruta As String + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + Panel1.Visible= False + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) +End Sub + +Sub Activity_Resume + If Main.tipov = "PREVENTA" Then + query = "cat_gunaprod" + QUERY2 = "COUNT_GUNAPROD" + Else IF Main.tipov = "VENTA" Then + query = "cat_gunaprod2" + QUERY2= " COUNT_GUNAPROD2" + ELSE IF Main.tipov = "ABORDO" Then + query = "cat_gunaprod" + QUERY2 = "COUNT_GUNAPROD" + Else + query = "cat_gunaprod" + QUERY2 = "COUNT_GUNAPROD" + ya_entro = 0 + End If + + Log(Main.tipov) + + If ya_entro <> "1" Then + + 'BUSCA.Text ="" + 'SE COMENTO LA LINEA DE ARRIBA YA QUE DISPARA EL EVENTO DEL TEXTCHANGE Y PUEDE HACER LENTO EL SISTEMA + skmt.Initialize(ruta,"kmt.db", True) + entro ="1" + ya_entro ="1" + c=skmt.ExecQuery("select CAT_GP_CLASIF, COUNT(*) AS CUANTOS from " & query & " where (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_CLASIF order by CAT_GP_CLASIF asc") + + 'ESTO ES PARA NO VER PROCTER + 'c=skmt.ExecQuery2("select CAT_GP_CLASIF, count(*) as cuantos from cat_gunaprod where CAT_GP_ALMACEN > 0 and cat_gp_clasif NOT IN (?,?,?,?,?,?,?,?,?,?) group by CAT_GP_CLASIF order by CAT_GP_CLASIF asc", Array As String("PROCTER","PROMOS","TRES MONTES","CAMPARI","CAMPARI-PRO","CLOROX DE MEXICO","MARS","CONAGRA","VERDE VALLE","MEAD JOHNSON")) + ListView1.Clear + lfila.Text = "MARCA" + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 10 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Black + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + ' bmp = LoadBitmap(File.DirAssets, "palomita_verde.png") + + ListView1.AddTwoLines(c.GetString("CAT_GP_CLASIF"),c.GetString("CUANTOS")) + + Next + End If + End If + + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + If c.RowCount > 0 Then + PERFIL = c.GetString("CAT_VA_VALOR") + Else + PERFIL = 0 + End If + c.Close + +If PERFIL = "V-COSTO" Then + skmt.ExecNonQuery("DELETE FROM CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_GP_ID FROM LISTA_PRECIOS WHERE NLISTA = '9' AND PRECIO = '0')") +End If +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub ListView1_ItemClick (Position As Int, Value As Object) + 'Sub ListView1_ItemLongClick (Position As Int, Value As Object) + 'que_colonia = Value + 'StartActivity(fila) + + + If Value = "PROMOS" And fila.cuenta <> "N" Then + entro = "3" + marca = "PROMOS" + tipo = "PROMOS" + Else if Value = "PROMOS" And fila.cuenta = "N" Then + entro = "5" + StartActivity(fila) + End If + If entro = "1" Then + marca = Value + skmt.Initialize(ruta,"kmt.db", True) + c2=skmt.ExecQuery2("select COUNT(*) AS CUANTOS, CAT_GP_TIPO from " & query & " where CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF = ? and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_TIPO ORDER BY CAT_GP_TIPO ASC", Array As String(Value)) + ListView1.Clear + lfila.text = "TIPO" + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + ListView1.AddTwoLines(c2.GetString("CAT_GP_TIPO"),c2.GetString("CUANTOS")) + Next + End If + entro = "3" + Else If entro = "2" Then + tipo = Value + skmt.Initialize(ruta,"kmt.db", True) + c2=skmt.ExecQuery2("select COUNT(*) AS CUANTOS, CAT_GP_SUBTIPO from " & query & " where CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF = ? and CAT_GP_TIPO = ? and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_SUBTIPO ORDER BY CAT_GP_SUBTIPO ASC ", Array As String(marca, Value)) + ListView1.Clear + lfila.text = "SUB-TIPO" + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + ListView1.AddTwoLines(c2.GetString("CAT_GP_SUBTIPO"),c2.GetString("CUANTOS")) + Next + End If + entro = "3" + + Else If entro = "3" Then + skmt.Initialize(ruta,"kmt.db", True) + c2=skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF = ? AND CAT_GP_TIPO = ? and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String(marca, Value)) + ListView1.Clear + lfila.text = "PRODUCTO" + Dim ins As InputStream + Dim bmp As Bitmap + Dim jpeg() As Byte + If c2.RowCount>0 Then + For i=0 To c2.RowCount -1 + c2.Position=i + jpeg = c2.GetBlob("CAT_GP_IMG") + ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) + bmp.Initialize2(ins) + + ListView1.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO")) + Next + End If + entro = "4" + Else If entro = "4" Then + + skmt.ExecNonQuery("delete from PROID") + skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(Value)) + 'StartActivity(pedidos) + HACER_PEDIDO + End If +End Sub + +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ya_entro ="0" + + If entro = "4" Then + entro = "3" + Activity_Resume + Return True + Else If entro = "3" Then + ' entro = "2" + ' Activity_Resume + ' Return True + ' Else If entro = "2" Then + ' entro = "1" + ' Activity_Resume + ' Return True + 'Else If entro = "1" Then + + ' I want to capture the key here so I return True + + StartActivity(fila) + Return False + End If + End If + ' Returning False signals the system to handle the key + +End Sub + +Sub BUSCA_TextChanged (Old As String, New As String) + q_buscar = "%" & BUSCA.Text & "%" + skmt.Initialize(ruta,"kmt.db", True) + ' c=skmt.ExecQuery2("select CAT_GP_NOMBRE from cat_gunaprod where CAT_GP_ALMACEN > 0 and CAT_GP_NOMBRE like ? AND cat_gp_clasif NOT IN (?,?,?,?,?,?,?,?,?,?) order by CAT_GP_NOMBRE asc", Array As String(q_buscar, "PROCTER","PROMOS","TRES MONTES","CAMPARI","CAMPARI-PRO","CLOROX DE MEXICO","MARS","CONAGRA","VERDE VALLE","MEAD JOHNSON")) + c=skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO,CAT_GP_IMG from " & query & " where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_NOMBRE like ? and CAT_GP_CLASIF <> ? and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_GP_NOMBRE asc", Array As String(q_buscar,"PROMOS")) + 'and CAT_GP_CLASIF <> ? group by CAT_GP_CLASIF order by CAT_GP_CLASIF asc", Array As String("PROMOS") ) + + ListView1.Clear + + Dim ins As InputStream + Dim bmp As Bitmap + Dim jpeg() As Byte + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + jpeg = c.GetBlob("CAT_GP_IMG") + ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) + bmp.Initialize2(ins) + + ListView1.AddTwoLines(c.GetString("CAT_GP_NOMBRE"),"Existencia " & c.GetString("CAT_GP_ALMACEN") & " Precio $" & c.GetString("CAT_GP_PRECIO")) + Next + End If + + + +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' Dim label1 As Label +' label1 = ListView1.SingleLineLayout.Label +' label1.TextSize = 13 + ' ListView1.AddSingleLine(c.GetString("CAT_GP_NOMBRE")) + ' Next + ' End If + c.Close + entro= "4" +End Sub + +Sub HACER_PEDIDO + c=skmt.ExecQuery("Select SUBSTR(CUENTA,1,1) AS CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + + Panel1.Visible= True + cambio = "0" +' If g.GPSEnabled=False Then +' ToastMessageShow("Habilitar el GPS", True) +' StartActivity(g.LocationSettingsIntent) +' Else +' g.Start(0,0) +' End If + cantidad.Text = "" + c=skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") + C.Position =0 + ALMACEN = C.GetString("ID_ALMACEN") + C.Close + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + i_fotol.Visible = False + + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV from " & query & " where CAT_GP_NOMBRE In (Select PDESC from PROID)") + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + L_PROID.Text = c.GetString("CAT_GP_ID") + l_tipo.Text = c.GetString("CAT_GP_TIPO") + l_sub.Text = c.GetString("CAT_GP_SUBTIPO") + l_marca.Text = c.GetString("CAT_GP_CLASIF") + l_desc.Text = c.GetString("CAT_GP_NOMBRE") + + If PERFIL = "V-SUPER" Then + c2=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = '10' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c2.Position=0 + l_precio.Text = c2.GetString("PRECIO") + c2.Close + + Else IF ALMACEN = "6" And cl_ruta = "16" Then + c2=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = '11' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c2.Position=0 + l_precio.Text = c2.GetString("PRECIO") + c2.Close + + Else + + l_precio.Text = c.GetDouble("CAT_GP_PRECIO") + End If + l_bodega.Text = c.GetString("CAT_GP_ALMACEN") + PROMOS_VENTAS = c.GetString("CAT_GP_ALMACEN") + IMG_PASO = c.GetBlob("CAT_GP_IMG") + PROMO_C = c.GetString("CAT_GP_STS") + cambio = c.GetString("CAT_GP_DEV") + preciosin = c.GetString("CAT_GP_IMP2") + PROMO_CR = c.GetString("CAT_GP_IMP1") + precio2 = l_precio.Text + + + + + + If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" Then + DESC_PROMO.Visible = True + CC=skmt.ExecQuery2("select count(*) as CUANTOS FROM PROMOS_COMP WHERE CAT_PA_ID = ?", Array As String(c.GetString("CAT_GP_ID"))) + CC.Position =0 + If CC.GetString("CUANTOS") = 0 Then + l_bodega.Text = "4" + Else + CC.Close + CC=skmt.ExecQuery2("select CAT_PA_MAXPROM, CAT_PA_MAXPROMREC, CAT_PA_MAXPROMCLIE FROM PROMOS_COMP WHERE CAT_PA_ID = ?", Array As String(c.GetString("CAT_GP_ID"))) + CC.Position =0 + + DD=skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) AND HCCP_PROMO =?", Array As String(c.GetString("CAT_GP_ID"))) + DD.Position =0 + If DD.GetString("CUANTOS") = 0 Then + HCCP_CANT = 0 + + Else + DD.Close + + DD=skmt.ExecQuery2("SELECT HCCP_CANT FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) AND HCCP_PROMO =?", Array As String(c.GetString("CAT_GP_ID"))) + DD.Position =0 + HCCP_CANT = DD.GetString("HCCP_CANT") + DD.Close + End If + TOTAL_PROMO = CC.GetString("CAT_PA_MAXPROMCLIE") - HCCP_CANT + If HCCP_CANT = 0 Then + + l_bodega.Text = CC.GetString("CAT_PA_MAXPROM") + Else IF TOTAL_PROMO > CC.GetString("CAT_PA_MAXPROMREC") Then + l_bodega.Text = CC.GetString("CAT_PA_MAXPROMREC") + Else + l_bodega.Text = TOTAL_PROMO + End If + End If + Else + DESC_PROMO.Visible = False + End If + + c.Close + c=skmt.ExecQuery("select CASE WHEN pe_costo_tot is null then 0 else sum( pe_costo_tot ) end as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + t_venta.Text = c.GetString("TOTAL_CLIE") + c.Close + ' If t_venta.Text < 100 AND l_tipo.Text = "PROMOS" Then + 'Terminar.Visible = False + 'guardar.Visible = False + 'cantidad.Visible = False + 'nopromo.Visible = True + 'Else + 'cambio = 0 + Terminar.Visible = True + guardar.Visible = True + cantidad.Visible = True + If cambio = "1" Then + nopromo.Visible = True + If clie_id = "N" Then + nopromo.Visible = False + End If + Else + nopromo.Visible = False + End If + 'End If + + + Dim out As OutputStream + out = File.OpenOutput(ruta, "1.jpg", False) + out.WriteBytes(IMG_PASO, 0, IMG_PASO.Length) + out.Close + img_prod.Bitmap = LoadBitmap(ruta,"1.jpg") + TOT_ART_PROMO = "0" + TOT_ART_PROMOR = "0" + If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And l_bodega.Text = "0" Then + Msgbox("ALERTA","EL CLIENTE YA NO PUEDE TENER ESTA PROMOCION") + Panel1.Visible= False + + End If + +If marca <> "PROMOS" Then + +If PERFIL = "PREVENTA" Then + +t_precio.Visible = False +LV_PRECIOS.Visible = False + +ELSE IF PERFIL = "V-ESPECIAL" Then + c=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA IN ('5','6','7','8','10') AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + LV_PRECIOS.Clear + Dim label1 As Label + label1 = LV_PRECIOS.TwoLinesLayout.Label + label1.TextSize = 10 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = LV_PRECIOS.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Black + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + LV_PRECIOS.AddTwoLines(c.GetString("NLISTA"),c.GetString("PRECIO")) + Next + End If +ELSE IF PERFIL = "V-MINI" Then + t_precio.Visible = False + LV_PRECIOS.Visible = False + + c=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = '2' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c.Position=0 + l_precio.Text = c.GetString("PRECIO") + c.Close +ELSE IF PERFIL = "V-COSTO" Then + + t_precio.Visible = False + LV_PRECIOS.Visible = False + + c=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = '9' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c.Position=0 + l_precio.Text = c.GetString("PRECIO") + c.Close +ELSE IF PERFIL = "V-SUPER" Then + + t_precio.Visible = False + LV_PRECIOS.Visible = False + + c=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA ='9' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c.Position=0 + l_precio.Text = c.GetString("PRECIO") + c.Close + +End If + +End If + + +'' ESTO ES PARA NO PASAR DE LAS PROMOS ABORDO Y MANDARLAS AL MINIMO INICIO + If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" Then + + If query = "cat_gunaprod2" Then + l_bodega.Text = PROMOS_VENTAS +' Msgbox("1","alerta") + + e=skmt.ExecQuery2("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ? ", Array As String(L_PROID.Text) ) + e.Position = 0 + + If e.GetString("CUANTOS") > 0 Then +' Msgbox("2","alerta") + + F=skmt.ExecQuery2("select CAT_DP_IDPROD, CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ? ", Array As String(L_PROID.Text) ) + 'se coloco el if por la mala promocion. + + For i=0 To F.RowCount -1 + F.Position=i + ' Msgbox(f.GetString("CAT_DP_IDPROD"),"alerta") + + c=skmt.ExecQuery2("select count(*) as CUANTOS from cat_gunaprod2 where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + c.Position=0 + If c.GetString("CUANTOS") > 0 Then +' Msgbox("4","alerta") + + h=skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + + If h.GetString("CAT_GP_ALMACEN") < l_bodega.Text * f.GetString("CAT_DP_PZAS") Then + l_bodega.Text = "1" + End If + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + h.Close + else if c.GetString("CUANTOS") = 0 Then + + l_bodega.Text = "0" + End If + c.Close + + Next + + + + f.Close + End If + e.Close + End If + '' ESTO ES PARA NO PASAR DE LAS PROMOS ABORDO Y MANDARLAS AL MINIMO FIN + End If + + If clie_id="0" Then + nopromo.Visible = False + End If +End Sub + + + + +Sub guardar_Click + If cantidad.Text = "" Then + Panel1.Visible= False + + + ELSE If cantidad.Text > l_bodega.Text Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + C.Position =0 + TOT_ART_PROMO = C.GetString("TOT_ART_PROMO") + COSTO_TOT = C.GetString("COSTO_TOT") + C.Close + + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + C.Position =0 + TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO") + End If + C.Close + + + PROMO_C = PROMO_C * cantidad.Text + PROMO_CR = PROMO_CR * cantidad.Text + + If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then + ' anterior a 29/06/2015 + 'skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(l_precio.text/(TOT_ART_PROMO/cantidad.Text),l_precio.text/(TOT_ART_PROMO/cantidad.Text))) + 'en pe_cedis meto el codigo de promocion para hacer esta validacion. + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text)) + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + + + + 'skmt.ExecNonQuery("UPDATE PEDIDO SET PE_COSTO_TOT = 0.01 WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))") + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + If Main.tipov = "ABORDO" Then + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + Else + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + End If + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + + + If e.GetString("CUANTOS") > 0 Then + + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + 'se coloco el if por la mala promocion. + + For i=0 To F.RowCount -1 + F.Position=i + + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD"))) + + h.Close + Next + + + + f.Close + End If + e.Close + + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + Else + Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") + End If + End If + + cantidad.Text = "" + Panel1.Visible= False + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + + else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + For i =0 To f.RowCount -1 + F.Position =i + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD"))) + + h.Close + Next + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + cantidad.Text = "" + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + If Main.tipov <> "ABORDO" Then + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + + Panel1.Visible= False + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + + Else + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + If Main.tipov = "ABORDO" Then + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + Else + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + End If + + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + If Main.tipov <> "ABORDO" Then + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + + End If + Panel1.Visible= False + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + End If +End Sub +Sub GPS_LocationChanged (Location1 As Location) +' lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +' lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + +Sub Terminar_Click + + If cantidad.Text = "" Then + StartActivity(fila) + + ELSE If cantidad.Text > l_bodega.Text Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + C.Position =0 + TOT_ART_PROMO = C.GetString("TOT_ART_PROMO") + COSTO_TOT = C.GetString("COSTO_TOT") + C.Close + + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + C.Position =0 + TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO") + End If + C.Close + + + PROMO_C = PROMO_C * cantidad.Text + PROMO_CR = PROMO_CR * cantidad.Text + + If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then + ' anterior a 29/06/2015 + 'skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(l_precio.text/(TOT_ART_PROMO/cantidad.Text),l_precio.text/(TOT_ART_PROMO/cantidad.Text))) + 'en pe_cedis meto el codigo de promocion para hacer esta validacion. + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text)) + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + + + + 'skmt.ExecNonQuery("UPDATE PEDIDO SET PE_COSTO_TOT = 0.01 WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))") + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + 'meter el otro + F.Position =0 + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object( f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD"))) + + + h.Close + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + Else + Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") + End If + End If + + cantidad.Text = "" + Panel1.Visible= False + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + StartActivity(fila) + else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + For i =0 To f.RowCount -1 + F.Position =i + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD"))) + + + h.Close + Next + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + cantidad.Text = "" + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + StartActivity(fila) + + Else + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + Panel1.Visible= False + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL") + + skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, " & _ + " PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO ) Select PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " SUM(PE_COSTO_TOT) As PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_FOLIO " & _ + " FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, " & _ + " PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FOLIO ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID, " & _ + " PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? " _ + , Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + StartActivity(fila) + End If +End Sub +Sub i_fotol_Click +i_fotol.Visible = False + +End Sub + +Sub DESC_PROMO_Click + skmt.ExecNonQuery("delete from PROIDID") + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + + StartActivity(detalle_promo) +End Sub +Sub nopromo_Click + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CAMBIOS")) + c.Position =0 + CAMBIOS = c.GetString("CAT_VA_VALOR") + c.Close + If CAMBIOS = "1" Then + c=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa) and HR_PROID = '" & L_PROID.Text & "'") + c.Position =0 + EXISTE_CAMBIO = c.GetString("CUANTOS") + c.Close + If EXISTE_CAMBIO = 0 Then + EXISTE_CAMBIO = 0 + Else + c=skmt.ExecQuery("select SUM(HR_CANT) AS CUANTOS from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa) and HR_PROID = '" & L_PROID.Text & "'") + c.Position =0 + EXISTE_CAMBIO = c.GetString("CUANTOS") + c.Close + + End If + If EXISTE_CAMBIO = 0 Then + Msgbox("NO SE VENDIO ESTE PRODUCTO, NO SE PUEDE CAMBIAR","ALERTA") + ELSE If cantidad.Text = "" Then + Msgbox("Cantidad no puede ser 0","Cantidad") + Else If cantidad.Text > EXISTE_CAMBIO Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ("DUR",0,0, cantidad.text,"CAMBIO" & l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + + + cantidad.Text = "" + Panel1.Visible= False + + + End If + + Else + If cantidad.Text > 15 Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ("DUR",0,0, cantidad.text,"CAMBIO" & l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,Main.tipov,precio2)) + skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + + + cantidad.Text = "" + Panel1.Visible= False + + + End If + + End If + +End Sub + +Sub LV_PRECIOS_ItemClick (Position As Int, Value As Object) + c=skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = " & "'" & Value &"' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC") + c.Position=0 + l_precio.Text = c.GetString("PRECIO") + c.Close +End Sub \ No newline at end of file diff --git a/detalle_promo.bas b/detalle_promo.bas new file mode 100644 index 0000000..39415b5 --- /dev/null +++ b/detalle_promo.bas @@ -0,0 +1,136 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim skmt As SQL +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim c As Cursor + Dim ruta As String + Dim Regresar As Button + Dim b As Cursor + Dim regalo As String + + + Dim ListView1 As ListView + Dim L_CANT As Label + Dim L_TOTAL As Label + Dim borra As Button + Dim Existe As String + End Sub + +Sub Activity_Create(FirstTime As Boolean) + ruta = File.DirInternal + Activity.LoadLayout("detalle_promo") + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + + c=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + b=skmt.ExecQuery2("select CAT_GP_NOMBRE from cat_gunaprod where CAT_GP_ID = ?", Array As String(C.GetString("CAT_DP_IDPROD"))) + B.Position =0 + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.White + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.White + If c.GetString("CAT_DP_PRECIO") = 0 Then + regalo = "SI" + Else + regalo = "NO" + End If + ListView1.AddTwoLines(B.GetString("CAT_GP_NOMBRE"),"Cantidad # "& c.GetString("CAT_DP_PZAS")& " REGALO "& regalo) + b.Close + Next + c.Close + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If + +End Sub + +Sub Activity_Resume + skmt.Initialize(ruta,"kmt.db", True) + + c=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + b=skmt.ExecQuery2("select CAT_GP_NOMBRE from cat_gunaprod where CAT_GP_ID = ?", Array As String(C.GetString("CAT_DP_IDPROD"))) + B.Position =0 + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.White + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.White + If c.GetString("CAT_DP_PRECIO") = 0 Then + regalo = "SI" + Else + regalo = "NO" + End If + ListView1.AddTwoLines(B.GetString("CAT_GP_NOMBRE"),"Cantidad # "& c.GetString("CAT_DP_PZAS")& " REGALO "& regalo) + b.Close + Next + c.Close + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub Regresar_Click + StartActivity(pedidos) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(pedidos) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub diff --git a/durakelo.b4a b/durakelo.b4a new file mode 100644 index 0000000..9ef84c4 --- /dev/null +++ b/durakelo.b4a @@ -0,0 +1,1353 @@ +Build1=Default,durakelo.keymon.com.mx +File1=alcancia.png +File10=detalle_promo.bal +File100=marker-azul-68.png +File101=marker-azul-69.png +File102=marker-azul-7.png +File103=marker-azul-70.png +File104=marker-azul-71.png +File105=marker-azul-72.png +File106=marker-azul-73.png +File107=marker-azul-74.png +File108=marker-azul-75.png +File109=marker-azul-76.png +File11=durakelo.png +File110=marker-azul-77.png +File111=marker-azul-78.png +File112=marker-azul-79.png +File113=marker-azul-8.png +File114=marker-azul-80.png +File115=marker-azul-81.png +File116=marker-azul-82.png +File117=marker-azul-83.png +File118=marker-azul-84.png +File119=marker-azul-85.png +File12=durakelo1.png +File120=marker-azul-86.png +File121=marker-azul-87.png +File122=marker-azul-88.png +File123=marker-azul-89.png +File124=marker-azul-9.png +File125=marker-azul-90.png +File126=marker-azul-91.png +File127=marker-azul-92.png +File128=marker-azul-93.png +File129=marker-azul-94.png +File13=engrane.jpg +File130=marker-azul-95.png +File131=marker-azul-96.png +File132=marker-azul-97.png +File133=marker-azul-98.png +File134=marker-azul-99.png +File135=marker-rojo-0.png +File136=marker-rojo-1.png +File137=marker-rojo-10.png +File138=marker-rojo-100.png +File139=marker-rojo-11.png +File14=espera.gif +File140=marker-rojo-12.png +File141=marker-rojo-13.png +File142=marker-rojo-14.png +File143=marker-rojo-15.png +File144=marker-rojo-16.png +File145=marker-rojo-17.png +File146=marker-rojo-18.png +File147=marker-rojo-19.png +File148=marker-rojo-2.png +File149=marker-rojo-20.png +File15=fila.bal +File150=marker-rojo-21.png +File151=marker-rojo-22.png +File152=marker-rojo-23.png +File153=marker-rojo-24.png +File154=marker-rojo-25.png +File155=marker-rojo-26.png +File156=marker-rojo-27.png +File157=marker-rojo-28.png +File158=marker-rojo-29.png +File159=marker-rojo-3.png +File16=fondo_kmt.jpg +File160=marker-rojo-30.png +File161=marker-rojo-31.png +File162=marker-rojo-32.png +File163=marker-rojo-33.png +File164=marker-rojo-34.png +File165=marker-rojo-35.png +File166=marker-rojo-36.png +File167=marker-rojo-37.png +File168=marker-rojo-38.png +File169=marker-rojo-39.png +File17=foto.bal +File170=marker-rojo-4.png +File171=marker-rojo-40.png +File172=marker-rojo-41.png +File173=marker-rojo-42.png +File174=marker-rojo-43.png +File175=marker-rojo-44.png +File176=marker-rojo-45.png +File177=marker-rojo-46.png +File178=marker-rojo-47.png +File179=marker-rojo-48.png +File18=guardagestion.bal +File180=marker-rojo-49.png +File181=marker-rojo-5.png +File182=marker-rojo-50.png +File183=marker-rojo-51.png +File184=marker-rojo-52.png +File185=marker-rojo-53.png +File186=marker-rojo-54.png +File187=marker-rojo-55.png +File188=marker-rojo-56.png +File189=marker-rojo-57.png +File19=guna_viejo.png +File190=marker-rojo-58.png +File191=marker-rojo-59.png +File192=marker-rojo-6.png +File193=marker-rojo-60.png +File194=marker-rojo-61.png +File195=marker-rojo-62.png +File196=marker-rojo-63.png +File197=marker-rojo-64.png +File198=marker-rojo-65.png +File199=marker-rojo-66.png +File2=alert2.png +File20=info_gral.bal +File200=marker-rojo-67.png +File201=marker-rojo-68.png +File202=marker-rojo-69.png +File203=marker-rojo-7.png +File204=marker-rojo-70.png +File205=marker-rojo-71.png +File206=marker-rojo-72.png +File207=marker-rojo-73.png +File208=marker-rojo-74.png +File209=marker-rojo-75.png +File21=infonavit1.jpg +File210=marker-rojo-76.png +File211=marker-rojo-77.png +File212=marker-rojo-78.png +File213=marker-rojo-79.png +File214=marker-rojo-8.png +File215=marker-rojo-80.png +File216=marker-rojo-81.png +File217=marker-rojo-82.png +File218=marker-rojo-83.png +File219=marker-rojo-84.png +File22=itembuttonblue.png +File220=marker-rojo-85.png +File221=marker-rojo-86.png +File222=marker-rojo-87.png +File223=marker-rojo-88.png +File224=marker-rojo-89.png +File225=marker-rojo-9.png +File226=marker-rojo-90.png +File227=marker-rojo-91.png +File228=marker-rojo-92.png +File229=marker-rojo-93.png +File23=k.png +File230=marker-rojo-94.png +File231=marker-rojo-95.png +File232=marker-rojo-96.png +File233=marker-rojo-97.png +File234=marker-rojo-98.png +File235=marker-rojo-99.png +File236=marker-verde-0.png +File237=marker-verde-1.png +File238=marker-verde-10.png +File239=marker-verde-100.png +File24=K-b27c0809.png +File240=marker-verde-11.png +File241=marker-verde-12.png +File242=marker-verde-13.png +File243=marker-verde-14.png +File244=marker-verde-15.png +File245=marker-verde-16.png +File246=marker-verde-17.png +File247=marker-verde-18.png +File248=marker-verde-19.png +File249=marker-verde-2.png +File25=kelloggs.png +File250=marker-verde-20.png +File251=marker-verde-21.png +File252=marker-verde-22.png +File253=marker-verde-23.png +File254=marker-verde-24.png +File255=marker-verde-25.png +File256=marker-verde-26.png +File257=marker-verde-27.png +File258=marker-verde-28.png +File259=marker-verde-29.png +File26=keymon_logo.png +File260=marker-verde-3.png +File261=marker-verde-30.png +File262=marker-verde-31.png +File263=marker-verde-32.png +File264=marker-verde-33.png +File265=marker-verde-34.png +File266=marker-verde-35.png +File267=marker-verde-36.png +File268=marker-verde-37.png +File269=marker-verde-38.png +File27=kmt.db +File270=marker-verde-39.png +File271=marker-verde-4.png +File272=marker-verde-40.png +File273=marker-verde-41.png +File274=marker-verde-42.png +File275=marker-verde-43.png +File276=marker-verde-44.png +File277=marker-verde-45.png +File278=marker-verde-46.png +File279=marker-verde-47.png +File28=login.bal +File280=marker-verde-48.png +File281=marker-verde-49.png +File282=marker-verde-5.png +File283=marker-verde-50.png +File284=marker-verde-51.png +File285=marker-verde-52.png +File286=marker-verde-53.png +File287=marker-verde-54.png +File288=marker-verde-55.png +File289=marker-verde-56.png +File29=logo sanfer.jpg +File290=marker-verde-57.png +File291=marker-verde-58.png +File292=marker-verde-59.png +File293=marker-verde-6.png +File294=marker-verde-60.png +File295=marker-verde-61.png +File296=marker-verde-62.png +File297=marker-verde-63.png +File298=marker-verde-64.png +File299=marker-verde-65.png +File3=alerta.jpg +File30=logo_exitus1.jpg +File300=marker-verde-66.png +File301=marker-verde-67.png +File302=marker-verde-68.png +File303=marker-verde-69.png +File304=marker-verde-7.png +File305=marker-verde-70.png +File306=marker-verde-71.png +File307=marker-verde-72.png +File308=marker-verde-73.png +File309=marker-verde-74.png +File31=Malo.jpg +File310=marker-verde-75.png +File311=marker-verde-76.png +File312=marker-verde-77.png +File313=marker-verde-78.png +File314=marker-verde-79.png +File315=marker-verde-8.png +File316=marker-verde-80.png +File317=marker-verde-81.png +File318=marker-verde-82.png +File319=marker-verde-83.png +File32=mapa.bal +File320=marker-verde-84.png +File321=marker-verde-85.png +File322=marker-verde-86.png +File323=marker-verde-87.png +File324=marker-verde-88.png +File325=marker-verde-89.png +File326=marker-verde-9.png +File327=marker-verde-90.png +File328=marker-verde-91.png +File329=marker-verde-92.png +File33=mapa_rutas.bal +File330=marker-verde-93.png +File331=marker-verde-94.png +File332=marker-verde-95.png +File333=marker-verde-96.png +File334=marker-verde-97.png +File335=marker-verde-98.png +File336=marker-verde-99.png +File337=nopago.bal +File338=nuevocliente.bal +File339=palomita_verde.png +File34=marker-azul-0.png +File340=pedido.bal +File341=planfia_logo.png +File342=planfia_logo_old.png +File343=planfia_logo_old2.png +File344=productos.bal +File345=qr.bal +File346=rechazo.jpg +File347=rojo.png +File348=salma.jpg +File349=salma.png +File35=marker-azul-1.png +File350=seleccion.bal +File351=senial.jpg +File352=sync.png +File353=tache_rojo.png +File354=tarjeta.bal +File355=telefonos.bal +File356=Tiendita.jpg +File357=unilever.jpg +File358=verde.png +File36=marker-azul-10.png +File37=marker-azul-100.png +File38=marker-azul-11.png +File39=marker-azul-12.png +File4=alerta_amarilla.png +File40=marker-azul-13.png +File41=marker-azul-14.png +File42=marker-azul-15.png +File43=marker-azul-16.png +File44=marker-azul-17.png +File45=marker-azul-18.png +File46=marker-azul-19.png +File47=marker-azul-2.png +File48=marker-azul-20.png +File49=marker-azul-21.png +File5=amarillo.png +File50=marker-azul-22.png +File51=marker-azul-23.png +File52=marker-azul-24.png +File53=marker-azul-25.png +File54=marker-azul-26.png +File55=marker-azul-27.png +File56=marker-azul-28.png +File57=marker-azul-29.png +File58=marker-azul-3.png +File59=marker-azul-30.png +File6=anterior.jpg +File60=marker-azul-31.png +File61=marker-azul-32.png +File62=marker-azul-33.png +File63=marker-azul-34.png +File64=marker-azul-35.png +File65=marker-azul-36.png +File66=marker-azul-37.png +File67=marker-azul-38.png +File68=marker-azul-39.png +File69=marker-azul-4.png +File7=buscar.bal +File70=marker-azul-40.png +File71=marker-azul-41.png +File72=marker-azul-42.png +File73=marker-azul-43.png +File74=marker-azul-44.png +File75=marker-azul-45.png +File76=marker-azul-46.png +File77=marker-azul-47.png +File78=marker-azul-48.png +File79=marker-azul-49.png +File8=carrito.png +File80=marker-azul-5.png +File81=marker-azul-50.png +File82=marker-azul-51.png +File83=marker-azul-52.png +File84=marker-azul-53.png +File85=marker-azul-54.png +File86=marker-azul-55.png +File87=marker-azul-56.png +File88=marker-azul-57.png +File89=marker-azul-58.png +File9=celltitle.bal +File90=marker-azul-59.png +File91=marker-azul-6.png +File92=marker-azul-60.png +File93=marker-azul-61.png +File94=marker-azul-62.png +File95=marker-azul-63.png +File96=marker-azul-64.png +File97=marker-azul-65.png +File98=marker-azul-66.png +File99=marker-azul-67.png +FileGroup1=Default Group +FileGroup10=Default Group +FileGroup100=Default Group +FileGroup101=Default Group +FileGroup102=Default Group +FileGroup103=Default Group +FileGroup104=Default Group +FileGroup105=Default Group +FileGroup106=Default Group +FileGroup107=Default Group +FileGroup108=Default Group +FileGroup109=Default Group +FileGroup11=Default Group +FileGroup110=Default Group +FileGroup111=Default Group +FileGroup112=Default Group +FileGroup113=Default Group +FileGroup114=Default Group +FileGroup115=Default Group +FileGroup116=Default Group +FileGroup117=Default Group +FileGroup118=Default Group +FileGroup119=Default Group +FileGroup12=Default Group +FileGroup120=Default Group +FileGroup121=Default Group +FileGroup122=Default Group +FileGroup123=Default Group +FileGroup124=Default Group +FileGroup125=Default Group +FileGroup126=Default Group +FileGroup127=Default Group +FileGroup128=Default Group +FileGroup129=Default Group +FileGroup13=Default Group +FileGroup130=Default Group +FileGroup131=Default Group +FileGroup132=Default Group +FileGroup133=Default Group +FileGroup134=Default Group +FileGroup135=Default Group +FileGroup136=Default Group +FileGroup137=Default Group +FileGroup138=Default Group +FileGroup139=Default Group +FileGroup14=Default Group +FileGroup140=Default Group +FileGroup141=Default Group +FileGroup142=Default Group +FileGroup143=Default Group +FileGroup144=Default Group +FileGroup145=Default Group +FileGroup146=Default Group +FileGroup147=Default Group +FileGroup148=Default Group +FileGroup149=Default Group +FileGroup15=Default Group +FileGroup150=Default Group +FileGroup151=Default Group +FileGroup152=Default Group +FileGroup153=Default Group +FileGroup154=Default Group +FileGroup155=Default Group +FileGroup156=Default Group +FileGroup157=Default Group +FileGroup158=Default Group +FileGroup159=Default Group +FileGroup16=Default Group +FileGroup160=Default Group +FileGroup161=Default Group +FileGroup162=Default Group +FileGroup163=Default Group +FileGroup164=Default Group +FileGroup165=Default Group +FileGroup166=Default Group +FileGroup167=Default Group +FileGroup168=Default Group +FileGroup169=Default Group +FileGroup17=Default Group +FileGroup170=Default Group +FileGroup171=Default Group +FileGroup172=Default Group +FileGroup173=Default Group +FileGroup174=Default Group +FileGroup175=Default Group +FileGroup176=Default Group +FileGroup177=Default Group +FileGroup178=Default Group +FileGroup179=Default Group +FileGroup18=Default Group +FileGroup180=Default Group +FileGroup181=Default Group +FileGroup182=Default Group +FileGroup183=Default Group +FileGroup184=Default Group +FileGroup185=Default Group +FileGroup186=Default Group +FileGroup187=Default Group +FileGroup188=Default Group +FileGroup189=Default Group +FileGroup19=Default Group +FileGroup190=Default Group +FileGroup191=Default Group +FileGroup192=Default Group +FileGroup193=Default Group +FileGroup194=Default Group +FileGroup195=Default Group +FileGroup196=Default Group +FileGroup197=Default Group +FileGroup198=Default Group +FileGroup199=Default Group +FileGroup2=Default Group +FileGroup20=Default Group +FileGroup200=Default Group +FileGroup201=Default Group +FileGroup202=Default Group +FileGroup203=Default Group +FileGroup204=Default Group +FileGroup205=Default Group +FileGroup206=Default Group +FileGroup207=Default Group +FileGroup208=Default Group +FileGroup209=Default Group +FileGroup21=Default Group +FileGroup210=Default Group +FileGroup211=Default Group +FileGroup212=Default Group +FileGroup213=Default Group +FileGroup214=Default Group +FileGroup215=Default Group +FileGroup216=Default Group +FileGroup217=Default Group +FileGroup218=Default Group +FileGroup219=Default Group +FileGroup22=Default Group +FileGroup220=Default Group +FileGroup221=Default Group +FileGroup222=Default Group +FileGroup223=Default Group +FileGroup224=Default Group +FileGroup225=Default Group +FileGroup226=Default Group +FileGroup227=Default Group +FileGroup228=Default Group +FileGroup229=Default Group +FileGroup23=Default Group +FileGroup230=Default Group +FileGroup231=Default Group +FileGroup232=Default Group +FileGroup233=Default Group +FileGroup234=Default Group +FileGroup235=Default Group +FileGroup236=Default Group +FileGroup237=Default Group +FileGroup238=Default Group +FileGroup239=Default Group +FileGroup24=Default Group +FileGroup240=Default Group +FileGroup241=Default Group +FileGroup242=Default Group +FileGroup243=Default Group +FileGroup244=Default Group +FileGroup245=Default Group +FileGroup246=Default Group +FileGroup247=Default Group +FileGroup248=Default Group +FileGroup249=Default Group +FileGroup25=Default Group +FileGroup250=Default Group +FileGroup251=Default Group +FileGroup252=Default Group +FileGroup253=Default Group +FileGroup254=Default Group +FileGroup255=Default Group +FileGroup256=Default Group +FileGroup257=Default Group +FileGroup258=Default Group +FileGroup259=Default Group +FileGroup26=Default Group +FileGroup260=Default Group +FileGroup261=Default Group +FileGroup262=Default Group +FileGroup263=Default Group +FileGroup264=Default Group +FileGroup265=Default Group +FileGroup266=Default Group +FileGroup267=Default Group +FileGroup268=Default Group +FileGroup269=Default Group +FileGroup27=Default Group +FileGroup270=Default Group +FileGroup271=Default Group +FileGroup272=Default Group +FileGroup273=Default Group +FileGroup274=Default Group +FileGroup275=Default Group +FileGroup276=Default Group +FileGroup277=Default Group +FileGroup278=Default Group +FileGroup279=Default Group +FileGroup28=Default Group +FileGroup280=Default Group +FileGroup281=Default Group +FileGroup282=Default Group +FileGroup283=Default Group +FileGroup284=Default Group +FileGroup285=Default Group +FileGroup286=Default Group +FileGroup287=Default Group +FileGroup288=Default Group +FileGroup289=Default Group +FileGroup29=Default Group +FileGroup290=Default Group +FileGroup291=Default Group +FileGroup292=Default Group +FileGroup293=Default Group +FileGroup294=Default Group +FileGroup295=Default Group +FileGroup296=Default Group +FileGroup297=Default Group +FileGroup298=Default Group +FileGroup299=Default Group +FileGroup3=Default Group +FileGroup30=Default Group +FileGroup300=Default Group +FileGroup301=Default Group +FileGroup302=Default Group +FileGroup303=Default Group +FileGroup304=Default Group +FileGroup305=Default Group +FileGroup306=Default Group +FileGroup307=Default Group +FileGroup308=Default Group +FileGroup309=Default Group +FileGroup31=Default Group +FileGroup310=Default Group +FileGroup311=Default Group +FileGroup312=Default Group +FileGroup313=Default Group +FileGroup314=Default Group +FileGroup315=Default Group +FileGroup316=Default Group +FileGroup317=Default Group +FileGroup318=Default Group +FileGroup319=Default Group +FileGroup32=Default Group +FileGroup320=Default Group +FileGroup321=Default Group +FileGroup322=Default Group +FileGroup323=Default Group +FileGroup324=Default Group +FileGroup325=Default Group +FileGroup326=Default Group +FileGroup327=Default Group +FileGroup328=Default Group +FileGroup329=Default Group +FileGroup33=Default Group +FileGroup330=Default Group +FileGroup331=Default Group +FileGroup332=Default Group +FileGroup333=Default Group +FileGroup334=Default Group +FileGroup335=Default Group +FileGroup336=Default Group +FileGroup337=Default Group +FileGroup338=Default Group +FileGroup339=Default Group +FileGroup34=Default Group +FileGroup340=Default Group +FileGroup341=Default Group +FileGroup342=Default Group +FileGroup343=Default Group +FileGroup344=Default Group +FileGroup345=Default Group +FileGroup346=Default Group +FileGroup347=Default Group +FileGroup348=Default Group +FileGroup349=Default Group +FileGroup35=Default Group +FileGroup350=Default Group +FileGroup351=Default Group +FileGroup352=Default Group +FileGroup353=Default Group +FileGroup354=Default Group +FileGroup355=Default Group +FileGroup356=Default Group +FileGroup357=Default Group +FileGroup358=Default Group +FileGroup36=Default Group +FileGroup37=Default Group +FileGroup38=Default Group +FileGroup39=Default Group +FileGroup4=Default Group +FileGroup40=Default Group +FileGroup41=Default Group +FileGroup42=Default Group +FileGroup43=Default Group +FileGroup44=Default Group +FileGroup45=Default Group +FileGroup46=Default Group +FileGroup47=Default Group +FileGroup48=Default Group +FileGroup49=Default Group +FileGroup5=Default Group +FileGroup50=Default Group +FileGroup51=Default Group +FileGroup52=Default Group +FileGroup53=Default Group +FileGroup54=Default Group +FileGroup55=Default Group +FileGroup56=Default Group +FileGroup57=Default Group +FileGroup58=Default Group +FileGroup59=Default Group +FileGroup6=Default Group +FileGroup60=Default Group +FileGroup61=Default Group +FileGroup62=Default Group +FileGroup63=Default Group +FileGroup64=Default Group +FileGroup65=Default Group +FileGroup66=Default Group +FileGroup67=Default Group +FileGroup68=Default Group +FileGroup69=Default Group +FileGroup7=Default Group +FileGroup70=Default Group +FileGroup71=Default Group +FileGroup72=Default Group +FileGroup73=Default Group +FileGroup74=Default Group +FileGroup75=Default Group +FileGroup76=Default Group +FileGroup77=Default Group +FileGroup78=Default Group +FileGroup79=Default Group +FileGroup8=Default Group +FileGroup80=Default Group +FileGroup81=Default Group +FileGroup82=Default Group +FileGroup83=Default Group +FileGroup84=Default Group +FileGroup85=Default Group +FileGroup86=Default Group +FileGroup87=Default Group +FileGroup88=Default Group +FileGroup89=Default Group +FileGroup9=Default Group +FileGroup90=Default Group +FileGroup91=Default Group +FileGroup92=Default Group +FileGroup93=Default Group +FileGroup94=Default Group +FileGroup95=Default Group +FileGroup96=Default Group +FileGroup97=Default Group +FileGroup98=Default Group +FileGroup99=Default Group +Group=Default Group +Library1=baqrcode +Library10=fusedlocationprovider +Library11=gifdecoder +Library12=googlemaps +Library13=googlemapsextras +Library14=gps +Library15=javaobject +Library16=json +Library17=okhttputils2 +Library18=phone +Library19=randomaccessfile +Library2=batteryprogressview +Library20=reflection +Library21=rspopupmenu +Library22=runtimepermissions +Library23=serial +Library24=sql +Library25=stringutils +Library26=togglelibrary +Library27=xcustomlistview +Library28=xui +Library29=zxing_scanner +Library3=bitmapcreator +Library30=ime +Library4=byteconverter +Library5=camera +Library6=compressstrings +Library7=core +Library8=firebaseanalytics +Library9=firebasenotifications +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: http://www.basic4ppc.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~AddApplicationText(~\n~)~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~ 'End of default text.~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~ AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText()~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~'Set activity to Landscape~\n~SetActivityAttribute(colonia2, android:screenOrientation, "landscape") +Module1=BatteryUtilities +Module10=FirebaseMessaging +Module11=foto +Module12=gestion +Module13=Historico +Module14=MAPA_RUTAS +Module15=mapas +Module16=nopago +Module17=nuevocliente +Module18=pedidos +Module19=QR_MODULE +Module2=BUSCAR +Module20=seleccion +Module21=Starter +Module22=tarjeta +Module23=telefonos +Module24=Tracker +Module3=CameraExClass +Module4=colonia +Module5=colonia2 +Module6=DBRequestManager +Module7=detalle_promo +Module8=EscPosPrinter +Module9=fila +NumberOfFiles=358 +NumberOfLibraries=30 +NumberOfModules=24 +Version=12.2 +@EndOfDesignText@ +#Region Project Attributes + #ApplicationLabel: Durakelo-Venta + #VersionCode: 1 + #VersionName: 2.58Gi + 'SupportedOrientations possible values: unspecified, landscape or portrait. + #SupportedOrientations: portrait + #CanInstallToExternalStorage: False +'''ultimo cambio 2 julio de 2021 por FLZ en queretaro + #BridgeLogger: true + #AdditionalJar: com.android.support:support-v4 + #AdditionalJar: com.google.android.gms:play-services-location +'Github desktop ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\ +#End Region + +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region +#Region Service Attributes +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim v As String = 20210906 + Dim reqManager As DBRequestManager + Dim ruta As String + Dim tipov As String + Dim mac_impresora As String + + Dim lat_gps, lon_gps As String + Dim skmt As SQL + Dim batt As Int + Dim usuario As String + Dim server As String + Dim montoActual, clientesTotal, clientesVenta, clientesVisitados,almacen, rutaPreventa As String + Dim ultimaActualizacionGPS As String = 235959 + Dim Logger As Boolean +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim skmt As SQL + Dim user As EditText + Dim pass As EditText + Dim c As Cursor + Dim existe As String + Dim paso1 As String + Dim IMEI As String +' Dim g As GPS + Dim server As String + Dim alterno As String + Private b_menu As Button + Dim PopupMenu As RSPopupMenu + Dim cmd As DBCommand + + Private PDF As Button + Private IMEN As EditText + Private Entrar As Button + Private Panel1 As Panel + Private ImageView4 As ImageView + Private E_SERVER As EditText + Private B_SERVER As Button + Private B_FECHA As Button + Private CUANTOS As String + Private ListView1 As ListView + Private B_IMPRESORA As Button + Private p_login As Panel + Private l_version As Label +End Sub + +Sub Activity_Create(FirstTime As Boolean) +' copiaDB + Logger = True + ruta = File.DirInternal +' If(FirstTime) Then +' g.Initialize("GPS") +' End If + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + If Logger Then Log("No existe kmt, copiamos kmt.db") + End If + If File.Size(ruta, "kmt.db") = 0 Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + If Logger Then Log("kmt en 0, copiamos kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + 'c=skmt.ExecQuery2("select COUNT(*) AS CUANTOS from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) + 'c.Position =0 + + 'If c.GetString("CUANTOS") = 0 Then + 'skmt.ExecNonQuery2("INSERT INTO CAT_CODIGOS (CAT_CO_PONDERACION, CAT_CO_ACCION, CAT_CO_RESULTADO, CAT_CO_CONFIGURACION) VALUES (?,?,?,?)", Array As Object ("1","1","SERVER","http://masternoc.mx:1783")) + 'skmt.ExecNonQuery2("INSERT INTO CAT_CODIGOS (CAT_CO_PONDERACION, CAT_CO_ACCION, CAT_CO_RESULTADO, CAT_CO_CONFIGURACION) VALUES (?,?,?,?)", Array As Object ("0","2","SERVER","http://masternoc1.mx:1783")) + + 'End If + 'c.Close + 'c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) + 'c.Position =0 + 'server = c.GetString("CAT_CO_CONFIGURACION") + 'c.Close + server = Starter.DBReqServer + 'server = "http://10.0.0.205:1782" + Dim sDate,sTime As String + DateTime.DateFormat = "yyyyMMdd" + sDate=DateTime.Date(DateTime.Now) + + skmt.ExecNonQuery("DROP TABLE IF EXISTS PEDIDO3") +' skmt.ExecNonQuery("DROP VIEW TOTAL_MARCAS") + + skmt.ExecNonQuery("CREATE VIEW IF NOT EXISTS CATALOGO AS Select CAT_GP_CLASIF, CAT_GP_ID FROM CAT_GUNAPROD UNION Select CAT_GP_CLASIF, CAT_GP_ID FROM CAT_GUNAPROD2 GROUP BY CAT_GP_CLASIF, CAT_GP_ID") + skmt.ExecNonQuery("create view IF NOT EXISTS total_marcas AS Select cat_gp_clasif, sum(pe_costo_tot) As total from CATALOGO, pedido where pe_proid = cat_gp_id And pe_cliente <> 0 group by cat_gp_clasif") + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_EXHIBIDORES (CAT_EX_ID TEXT, CAT_EX_TIPO TEXT, CAT_EX_VALOR TEXT)") + skmt.ExecNonQuery("CREATE TABLE PEDIDO3 (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)") + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT)") + If sDate = "20190523" Then + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) + + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",server)) + End If + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT)") + + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA2 (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_PRECIO TEXT)") + + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)") + + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA5P (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)") + + c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) + c.Position =0 + If c.GetString("CUANTOS") = 0 Then + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",server)) + Else + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) + c.Position =0 + server = c.GetString("CAT_VA_VALOR") + End If + If FirstTime Then + reqManager.Initialize(Me, server) + Log(server) + End If + Activity.LoadLayout("login") + Dim P As PhoneId + 'user.Text = P.GetDeviceId + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If Result Then + Dim P As PhoneId + 'user.Text = P.GetDeviceId + IMEI = P.GetDeviceId + IMEI = "" + Else + If Logger Then Log("Sin permisos para leer los datos del celular") + End If + 'este codigo es para lo del menu + PopupMenu.Initialize("PopupMenu", b_menu) + PopupMenu.AddMenuItem(0, 0, "View") + PopupMenu.AddMenuItem(1, 1, "Edit") + PopupMenu.AddMenuItem(2, 2, "Details") + PopupMenu.AddMenuItem(3, 3, "Remove") + ' menu fin + + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If Result Then + StartService(Tracker) + Log("Start Tracker") + End If + p_login.Height = Activity.Height + p_login.Width = Activity.Width +End Sub + +Sub Activity_Resume + l_version.Text = Application.VersionName +' copiaDB + server = Starter.DBReqServer +' server = "http://10.0.0.205:1782" + + reqManager.Initialize(Me, server) + Log(server) +' If g.GPSEnabled=False Then +' ToastMessageShow("Habilitar el GPS", True) +' StartActivity(g.LocationSettingsIntent) +' Else +' g.Start(0,0) +' End If +' user.Text ="GPS" + c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA")) + c.Position =0 + If c.GetString("CUANTOS") = 0 Then + cmd.Initialize + cmd.Name = "select_fechat" + reqManager.ExecuteQuery(cmd , 0, "fecha") + + 'Msgbox("AJUSTAR FECHA","AVISO") + Activity_Resume + Else + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA")) + c.Position =0 + Dim sDate,sTime As String + + DateTime.dateFormat = "yyyyMMddHHmm" + sDate=DateTime.Date(DateTime.Now) + + 'Msgbox("aaa"& sDate,"aviso") + If c.GetString("CAT_VA_VALOR") > sDate & sTime Then +' Msgbox("AJUSTAR LA FECHA YA QUE ES MENOR AL SISTEMA " & " "& c.GetString("CAT_VA_VALOR") & " " & sDate & sTime ,"AVISO") + DateTime.TimeFormat = "MM/dd/yyyyHH:mm:ss" + Activity_Resume + End If + DateTime.TimeFormat = "MM/dd/yyyyHH:mm:ss" + End If + c.Close + c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO")) + c.Position =0 + CUANTOS = c.GetString("CUANTOS") + c.Close + If CUANTOS > 0 Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO")) + c.Position =0 + If c.GetString("CAT_VA_VALOR") = "743" Then + Entrar.Visible = True + End If + c.Close + Else + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO","0")) + End If + + c=skmt.ExecQuery2("select COUNT(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP")) + c.Position =0 + If c.GetString("CUANTOS") = 0 Then + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) + End If + + c=skmt.ExecQuery("select COUNT(*) AS CUANTOS FROM VERSION") + c.Position= 0 + + If c.GetString("CUANTOS") = 0 Then + skmt.ExecNonQuery("delete from VERSION") + + skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.6")) + + End If + c.Close + + c=skmt.ExecQuery("select NOVERSION FROM VERSION") + c.Position = 0 + + If c.GetString("NOVERSION") <> "2.6" Then +' Msgbox("VERSION INCORRECTA SOLICITAR O DESCARGAR LA NUEVA","ALERTA") + Activity_Resume + End If + + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If Result Then + StartService(Tracker) + If Logger Then Log("Start Tracker") + Else + ToastMessageShow("No permission", True) + End If + + dameUsuario 'Obtenemos el usuario registrado + CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + +Sub Entrar_Click + If user.Text = "ALTERNO" Then + c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) + c.Position =0 + server = c.GetString("CAT_CO_CONFIGURACION") + alterno = c.GetString("CAT_CO_RESULTADO") + c.Close + If alterno = 1 Then + skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER")) + skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER")) + Else if alterno = 2 Then + skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER")) + skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER")) + End If + c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) + c.Position =0 + server = c.GetString("CAT_CO_CONFIGURACION") + user.Text = server + c.Close + reqManager.Initialize(Me, server) + Log(server) + else if user.Text = "ROOT" Then + skmt.ExecNonQuery("delete from usuarioa") + skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text)) + + skmt.ExecNonQuery("delete from cat_almacen") + skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text)) + StartActivity(seleccion) + End If + + c=skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text)) + c.Position=0 + existe = c.GetString("EXISTE1") + + 'existe = 1 + If existe = 0 Then + 'skmt.ExecNonQuery("delete from usuarioa") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_usuario_guna_DUR" + cmd.Parameters = Array As Object(user.Text, pass.Text) + reqManager.ExecuteQuery(cmd , 0, "usuario") + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_version_DUR" + reqManager.ExecuteQuery(cmd , 0, "version") + Else + StartActivity(seleccion) + End If + +End Sub + +Sub JobDone(Job As HttpJob) + If Job.Success = False Then + ToastMessageShow("Error: " & Job.ErrorMessage, True) + Else + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + If result.Tag = "version" Then 'query tag + For Each records() As Object In result.Rows + skmt.ExecNonQuery("delete from VERSION") + Dim CAT_VE_VERSION As String = records(result.Columns.Get("CAT_VE_VERSION")) + + skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION)) + + If CAT_VE_VERSION <> "2.6" Then + Msgbox("VERSION INCORRECTA SOLICITAR O DESCARGAR LA NUEVA","ALERTA") + Activity_Resume + End If + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + If result.Tag = "agencia" Then 'query tag + For Each records() As Object In result.Rows + + Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN")) + + + + Next + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + If result.Tag = "fecha" Then 'query tag + For Each records() As Object In result.Rows + + Dim FECHA_HOY As String = records(result.Columns.Get("FECHA")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",FECHA_HOY)) + + Next + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + If result.Tag = "usuario" Then 'query tag + + For Each records() As Object In result.Rows + Dim name As String = records(result.Columns.Get("USUARIO")) + Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA")) +' Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO")) + + + Next + paso1 = 1 + End If + End If + + + + Job.Release + + End If + If paso1 =1 Then + If name = "OKActivo" & IMEI Then + skmt.ExecNonQuery("delete from usuarioa") + skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text)) + skmt.ExecNonQuery("delete from cat_almacen") + skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN)) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0)) + + + StartActivity(seleccion) + Else If name = "OKExpirado"& IMEI Then + Msgbox("Usuario Expirado llamar al administrador","") + Else If name = "OKCancelado"& IMEI Then + Msgbox("Usuario Cancelado llamar al administrador","") + Else + Msgbox("Usuario o password No validos","") + End If + paso1 = 0 +End If + +End Sub + +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + 'StartActivity(Main) + ExitApplication + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub + +Sub GPS_LocationChanged (Location1 As Location) + If user.text = "GPS" Then + 'user.Text=Location1.ConvertToMinutes(Location1.Latitude) + 'pass.text=Location1.ConvertToMinutes(Location1.Longitude) + user.Text=Location1.Latitude + pass.text=Location1.Longitude + 'btnTakePicture.Enabled = True + 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps)) + End If +End Sub +public Sub Initialize +'Initialize the PopupMenu + +End Sub + +Sub PopupMenu_Dismiss + ToastMessageShow("PopupMenu dismissed", False) +End Sub + +Sub PopupMenu_MenuItemClick (ItemId As Int) As Boolean + ToastMessageShow("Item " & ItemId & " clicked.", False) + Return False +End Sub + +Sub b_menu_Click + PopupMenu.Show + +End Sub + +Sub PDF_Click + +End Sub + +Sub IMEN_EnterPressed + If IMEN.Text <> "0" Then + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("CODIGO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO",IMEN.TEXT)) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("RUTA")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("RUTA",user.TEXT)) + + End If + IMEN.Visible =False + If IMEN.Text = "743" Then + Entrar.Visible = True + End If +End Sub + +Sub user_EnterPressed + If user.Text = "CODIGO" Then + IMEN.Visible = True + user.Text = "" + End If +End Sub + +Sub ImageView4_Click + Entrar.Visible = False + server = Starter.DBReqServer + ListView1.Clear + Dim label1 As Label + label1 = ListView1.SingleLineLayout.Label + label1.TextSize = 20 + label1.TextColor = Colors.Black + ListView1.AddSingleLine(Starter.DBReqServer) + + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) + c.Position =0 + E_SERVER.text = c.GetString("CAT_VA_VALOR") + Panel1.Visible = True +End Sub + +Sub B_SERVER_Click + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",E_SERVER.text)) + reqManager.Initialize(Me, E_SERVER.text.trim) + Panel1.Visible = False + Entrar.Visible = True +End Sub + +Sub B_FECHA_Click + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) + + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) + Panel1.Visible = False + +End Sub + +Sub ListView1_ItemClick (Position As Int, Value As Object) + E_SERVER.text = Value +End Sub + +Sub B_IMPRESORA_Click + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) + Panel1.Visible = False +End Sub + +Sub dameUsuario + c=skmt.ExecQuery("select count(*) as EXISTE1 from usuarioa") + c.Position=0 + existe = c.GetString("EXISTE1") + c.Close + If existe > 0 Then + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + Else + usuario = "SINUSUARIO" + End If +End Sub + + + +'Copia la base de datos del almacenamiento interno al externo en el directorio kmts +Sub copiaDB + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If Result Then + Dim theDir As String + Try + File.MakeDir(File.DirRootExternal,"kmts") + theDir = "/kmts" + Catch + theDir = "" + End Try + Try + File.Copy(File.DirInternal,"kmt.db",File.DirRootExternal&theDir,"dura_kmt.db") + ToastMessageShow("Listo, copiada a " & File.DirRootExternal&theDir & "/dura_kmt.db", False) + LogColor("copiado", Colors.red) + Catch + ToastMessageShow("No se pudo hacer la copia: "&LastException, True) + LogColor("no copiado", Colors.red) + End Try +' Log("rootExternal="&p) +' Log("File.DirInternal="&File.DirInternal) +' Log("File.DirRootExternal="&File.DirRootExternal) + Else + ToastMessageShow("Sin permisos", True) + End If +End Sub \ No newline at end of file diff --git a/fila.bas b/fila.bas new file mode 100644 index 0000000..8f98514 --- /dev/null +++ b/fila.bas @@ -0,0 +1,1505 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim g As GPS + Dim ruta As String + Dim skmt As SQL + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String + Dim total_cliente As String + Dim m_lat As String + Dim m_lon As String + Dim btAdmin As BluetoothAdmin + Dim cmp20 As Serial + 'Dim printer As TextWriter + Dim PairedDevices As Map + Dim L As List + Dim TAMANO As Int + Dim ESPACIO As Int + Dim BLANCO As String + Dim cuenta As String +' Dim tipov As String + Dim Printer1 As EscPosPrinter + Dim MAC_IMPRESORA As String + + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + Dim c As Cursor + Dim s As Cursor + Dim c2 As Cursor + Dim E1 As Cursor + Dim ListView1 As ListView + Dim la_cuenta As Label + Dim La_nombre As Label + Dim la_Calle As Label + Dim la_numero As Label + Dim la_nint As Label + Dim la_edo As Label + Dim la_pob As Label + Dim la_col As Label + Dim la_cp As Label + Dim la_zona As Label + Dim gest As Button + Dim la_saldotot As Label + Dim la_saldooper As Label + + Dim Tels As Button + Dim Label10 As Label + Dim Label11 As Label + + Dim Tar As Button + + Dim la_comm As Label + Dim la_actdte As Label + Dim la_usuario As Label + Dim la_resultado As Label + Dim l_entre1 As Label + Dim l_entre2 As Label + Dim l_atiende As Label + Dim l_atiende2 As Label + Dim DATOS As Button + Dim Guardar As Button + Dim NUEVO As Button +' Dim lat_gps, lon_gps As String + + Dim l_total As Label + Dim c2 As Cursor + Dim S2 As Cursor + Private s As Cursor + Dim res As String + Private HIST As Button + Private MONTO_COMPRA As String + Private META As String + Private META2 As String + Private VERIFICA As String + Private L_QR As Label + Private BT_QR As Button + Private qr As QRCode + Dim sc As Zxing_scanner + Dim CODIGO As String + + Private b_mapa As Button + Dim CUANTOS As String + Private B_IMP As Button + Dim Toggla As Toggle + Private B_VENTA As Button + Dim PASA_IMP As String + Dim sucursal As String + Dim FACTURA As String + Dim CREDITO As String + Private b_factura As Button + Dim perfil As String + Private CH_TA As CheckBox + Private CH_TC As CheckBox + Private CH_TB As CheckBox + Private CH_TD As CheckBox + Private E_CUANTOS_E As EditText + Private B_GUARDAR As Button + Private TIPOEX As String + Private B_EXIBI As Button + Private Panel1 As Panel + + Dim t3 As Timer + Private B_INV As Button + Private B_IMP2 As Button + + Dim id_encuesta As String + Dim LLAMAR_FOTO As String + Dim CURSOR_FOTO As Int + Dim TOMAR_FOTO As String + Private Panel10 As Panel + Private l_chk_e As Label + Private Chk_1 As CheckBox + Private chk_2 As CheckBox + Private chk_3 As CheckBox + Private b_chk_e As Button + + Private chk_1_valor As String + Private chk_2_valor As String + Private chk_3_valor As String + Private t_tenc As Label + Private E_RES_E As EditText + Private B_E_NEXT As Button + Private Panel9 As Panel + Private Label26 As Label + Dim impresoraConectada As Boolean = False + Dim printer As TextWriter +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + If(FirstTime) Then + g.Initialize("GPS") + End If + Activity.RemoveAllViews + Activity.LoadLayout("info_gral") + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + s=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + s.Position=0 + + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + la_cuenta.Text = c.GetString("CAT_CL_CODIGO") + cuenta = c.GetString("CAT_CL_CODIGO") + La_nombre.Text = c.GetString("CAT_CL_NOMBRE") + la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT") + la_col.Text = c.GetString("CAT_CL_COLONIA") + la_edo.Text = c.GetString("CAT_CL_EDO") + la_cp.Text = c.GetString("CAT_CL_CP") + l_entre1.Text = c.GetString("CAT_CL_CALLE1") + l_entre2.Text = c.GetString("CAT_CL_CALLE2") + l_atiende.Text = c.GetString("CAT_CL_ATIENDE1") + l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") + la_saldotot.Text = c.GetString("CAT_CL_TELEFONO") + la_saldooper.Text = c.GetString("CAT_CL_EMAIL") + l_total.Text = s.GetString("TOTAL_CLIE") + total_cliente = s.GetString("TOTAL_CLIE") + MONTO_COMPRA = c.GetString("CAT_CL_MTOCOMPRA") + FACTURA = c.GetString("CAT_CL_BFACTURA") + CREDITO = c.GetString("CAT_CL_BCREDITO") + + + ' la_producto.Text = c.GetString("CDPROD") + 'la_numero.Text = c.GetString("CDNUMEXT") + 'la_nint.Text = c.GetString("CDNUMINT") + 'la_pob.Text = c.GetString("CFSDOGLOBAL") + + 'la_saldooper.Text = c.GetString("CAT_CL_FALTA") + 'Label10.Text = "FECHA DE ALTA" + 'Label11.Text = "# ENCUESTAS" + + 'c=skmt.ExecQuery("select MGCTA, MGACTT, MGGESTT, MGDTEACTT, COMM from hist_gest where MGCTA In (Select cuenta from cuentaa)") + 'c.Position=0 + 'la_comm.Text = c.GetString("COMM") + 'la_actdte.Text = C.GetString("MGDTEACTT") + 'la_usuario.Text = c.GetString("MGGESTT") + 'la_resultado.Text = c.GetString("MGACTT") + + + 'la_padre.Text = c.GetString("PR_CF_FECHA_DISP") + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If + ' SE COMENTA IMPRESORA ANTERIOR +' If FirstTime Then +' btAdmin.Initialize("BlueTeeth") +' cmp20.Initialize("Printer") +' End If + + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP")) + c.Position = 0 + MAC_IMPRESORA = c.GetString("CAT_VA_VALOR") + If MAC_IMPRESORA = "" Then MAC_IMPRESORA = "0" + Starter.MAC_IMPRESORA = MAC_IMPRESORA + Log("|" & MAC_IMPRESORA & "|") + If FirstTime Then + Printer1.Initialize(Me, "Printer1") + + End If + +TOMAR_FOTO = 0 + +End Sub + +Sub Activity_Resume + BT_QR.Enabled = False + b_factura.Visible = False +FACTURA =0 +If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) + End If + + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + s=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + s.Position=0 + + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + la_cuenta.Text = c.GetString("CAT_CL_CODIGO") + La_nombre.Text = c.GetString("CAT_CL_NOMBRE") + la_Calle.Text = c.GetString("CAT_CL_CALLE") & " " & c.GetString("CAT_CL_NOEXT") + la_col.Text = c.GetString("CAT_CL_COLONIA") + la_edo.Text = c.GetString("CAT_CL_EDO") + la_cp.Text = c.GetString("CAT_CL_CP") + l_entre1.Text = c.GetString("CAT_CL_CALLE1") + l_entre2.Text = c.GetString("CAT_CL_CALLE2") + l_atiende.Text = c.GetString("CAT_CL_ATIENDE1") + l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") + 'la_saldotot.Text = c.GetString("CAT_CL_TELEFONO") + 'la_saldooper.Text = c.GetString("CAT_CL_EMAIL") + l_total.Text = s.GetString("TOTAL_CLIE") + total_cliente = s.GetString("TOTAL_CLIE") + m_lat =c.GetString("CAT_CL_LAT") + m_lon =c.GetString("CAT_CL_LONG") + FACTURA = c.GetString("CAT_CL_BFACTURA") + CREDITO = c.GetString("CAT_CL_BCREDITO") + + If l_total.Text <> Null Then + + If la_cuenta.Text.Contains("N") = True Then + FACTURA = 0 + End If + + If FACTURA = "1" Then + b_factura.Visible = True + + End If + End If + + If CREDITO = "1" Then + Msgbox("ALTO","Este cliente no se le puede vender ya que tienen adeudo en su crédito") + B_VENTA.Visible = False + gest.Visible = False + Else + B_VENTA.Visible = True + gest.Visible = True + + End If + + ' Msgbox(c.GetString("CAT_CL_NUM_SERIEFISICO"),"AVISO") + If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then + L_QR.Visible = True + Else + L_QR.Visible = False + End If + S2=skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") + S2.Position =0 + CUANTOS = S2.GetString("CUANTOS") + S2.Close + If CUANTOS > 0 Then + c2=skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS TOTAL from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") + c2.Position =0 + MONTO_COMPRA = c2.GetString("TOTAL") + c2.Close + Else + MONTO_COMPRA = "0" + End If + + la_saldotot.Text = MONTO_COMPRA + If MONTO_COMPRA <> "0" Then + META2 = 300 - MONTO_COMPRA + Else + META2 = 300 + End If + If META2 < 1 Then + META2 = "CUBIERTO" + End If + la_saldooper.Text = META2 + + ' la_producto.Text = c.GetString("CDPROD") + 'la_numero.Text = c.GetString("CDNUMEXT") + 'la_nint.Text = c.GetString("CDNUMINT") + 'la_pob.Text = c.GetString("CFSDOGLOBAL") + + 'la_saldooper.Text = c.GetString("CAT_CL_FALTA") + 'Label10.Text = "FECHA DE ALTA" + 'Label11.Text = "# ENCUESTAS" + + + 'c=skmt.ExecQuery("select MGCTA, MGACTT, MGGESTT, MGDTEACTT, COMM from hist_gest where MGCTA In (Select cuenta from cuentaa)") + 'c.Position=0 + 'la_comm.Text = c.GetString("COMM") + 'la_actdte.Text = C.GetString("MGDTEACTT") + 'la_usuario.Text = c.GetString("MGGESTT") + 'la_resultado.Text = c.GetString("MGACTT") +' +' +' +''''''''''''''''''esto es para los pup de validacion +' +' +' s=skmt.ExecQuery("select count(*) as CUANTOS from HIST_VERIFICACION where HVE_CLIENTE IN (Select cuenta from cuentaa)") +' s.Position=0 +' If s.GetString("CUANTOS") = 0 Then +' +' If MONTO_COMPRA > 300 Then +' META = "FELICIDADES ESTE CLIENTE YA ALCANZO LA META DE VENTA" +' Else +' META2 = 300 - MONTO_COMPRA +' +' META = "FALTA POR ALCANZAR META, LA VENTA MINIMA PARA HOY ES DE : " & META2 +' +' End If +' c=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_VERIFICACION") +' c.Position=0 +' If c.GetString("CUANTOS") <> 0 Then +' +' c2=skmt.ExecQuery("select CAT_VE_IDPROD, CAT_VE_NOMBRE, CAT_VE_ORDEN FROM CAT_VERIFICACION ORDER BY CAT_VE_ORDEN ") + ' If c2.RowCount>0 Then +' For i=0 To c2.RowCount -1 +'' c2.Position =i +' VERIFICA = VERIFICA & "-------VALIDAR------- " & c2.GetString("CAT_VE_NOMBRE") +' +' +' Next +' End If +' End If +' c.Close +' c2.Close +' +' Msgbox(" Instrucciones: " & META &" para este clinete el adicional " & VERIFICA &" y el cliente cuenta con 6 promos.","Indicaciones") + +' c=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_VERIFICACION") +' c.Position=0 +' If c.GetString("CUANTOS") <> 0 Then +' c2=skmt.ExecQuery("select CAT_VE_IDPROD, CAT_VE_NOMBRE, CAT_VE_ORDEN FROM CAT_VERIFICACION ORDER BY CAT_VE_ORDEN ") + ' If c2.RowCount>0 Then +'' For i=0 To c2.RowCount -1 +' c2.Position =i +' 'ToastMessageShow(c2.GetString("CAT_GP_NOMBRE"), True) +' +' res = Msgbox2("Tiene el cliente " & c2.GetString("CAT_VE_NOMBRE"),"Verificacion", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) +' If res = DialogResponse.POSITIVE Then + ' skmt.ExecNonQuery2("INSERT INTO HIST_VERIFICACION VALUES (?,?,?)", Array As Object(la_cuenta.Text,c2.GetString("CAT_VE_IDPROD"), 1)) +' +' Else +' skmt.ExecNonQuery2("INSERT INTO HIST_VERIFICACION VALUES (?,?,?)", Array As Object(la_cuenta.Text,c2.GetString("CAT_VE_IDPROD"), 0)) +' +' End If +' Next +' End If +' End If +' c.Close +' End If +' s.Close + +''''''''''''''''''''''''''' hasta aqui es todo para los pups de validacion. +' para imprimir +' Toggla.TurnBluetoothOn +' btAdmin.Initialize("BlueTeeth") +' cmp20.Initialize("Printer") + If Printer1.IsConnected = False Then + + Printer1.Connect + + Else + Printer1.DisConnect + Printer1.Connect + + End If + + +' StartPrinter + If PASA_IMP = "1" Then + B_IMP.Enabled = True + End If + + '''''''''Agregar la parte de si tiene credito o no tiene credito + If la_cuenta.Text="0" Then + B_VENTA.Visible = False + gest.Visible = False + Else + B_VENTA.Visible = True + gest.Visible = True + End If +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.Latitude +'lon_gps=Location1.Longitude +' BT_QR.Enabled = True + Dim sDate,sTime As String + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + skmt.ExecNonQuery("DELETE FROM HIST_GPS") + + skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Main.lat_gps, Main.lon_gps)) +End Sub + + +Sub ListView1_ItemLongClick (Position As Int, Value As Object) + +End Sub + +Sub gest_Click + 'StartActivity(telefonos) + + ' skmt.ExecNonQuery("delete from PRODUCTOA") + ' skmt.ExecNonQuery2("INSERT INTO PRODUCTOA VALUES (?)", Array As Object(la_producto.Text)) + ' Dim cuantos As String + 'c=skmt.ExecQuery("select count(*) as cuantos from HIST_VISITAS WHERE HIST_VI_CREDITO IN (SELECT CUENTA FROM CUENTAA) ") + ' c.Position = 0 + ' cuantos = c.GetString("cuantos") + ' ToastMessageShow(cuantos,True) + 'If cuantos > 0 Then + 'StartActivity(gestion) + 'Else If cuantos = 0 Then + +''''' ESTE CODIGO SIRVE PARA MANDAR EN PUPUP LA PROMOCIONES E IR PREGUNTANDO UNO A UNO. +''' DESDE EL CURSOR Y TODO EL IF DE ABAJO SON 20 LINEAS. +' c=skmt.ExecQuery("select count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") +' c.Position=0 +' If c.GetString("CUANTOS") = 0 Then +' c2=skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from cat_gunaprod where CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID IN (SELECT HP_CODIGO_PROMOCION FROM HIST_PROMOS WHERE HP_CLIENTE IN (Select cuenta from cuentaa) )", Array As String("PROMOS", "PROMOS", "PROMOS")) + ' If c2.RowCount>0 Then +' For i=0 To c2.RowCount -1 +' c2.Position =i +' 'ToastMessageShow(c2.GetString("CAT_GP_NOMBRE"), True) +' +' res = Msgbox2(" " & c2.GetString("CAT_GP_NOMBRE"),"IR......", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) +' If res = DialogResponse.POSITIVE Then + ' skmt.ExecNonQuery("delete from PROID") +' skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(c2.GetString("CAT_GP_NOMBRE"))) +' StartActivity(pedidos) +' i = c2.RowCount +' else if i = c2.RowCount -1 Then +' StartActivity(colonia2) +' End If +' Next +' Else +' StartActivity(colonia2) +' End If +' Else +' StartActivity(colonia2) +' End If +' c.Close + ''''' HASTA AQUI TERMINA LO DE LOS PUPUPS +Main.tipov = "PREVENTA" +' StartActivity(colonia2) +cuestionario +End Sub + +Sub Tels_Click + ' skmt.ExecNonQuery("delete from PEDIDO") + StartActivity(nopago) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(colonia) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub + +Sub Tar_Click + StartActivity(tarjeta) +End Sub +Sub DATOS_Click + StartActivity(telefonos) +End Sub +Sub Guardar_Click + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + If c.GetString("CUANTOS") > 0 Then + skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps)) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + c.Close + + skmt.ExecNonQuery("delete from pedido3") + skmt.ExecNonQuery("INSERT INTO PEDIDO3 SELECT PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, 1 As PE_FECHA, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ") + c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ?", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"))) + + Next + End If + skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") + skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + + + StartActivity(seleccion) +End Sub +Sub NUEVO_Click + StartActivity(nuevocliente) +End Sub +Sub HIST_Click + StartActivity(Historico) +End Sub + +Sub BT_QR_Click + + + 'StartActivity(QR_MODULE) + Dim scan_width As Int + Dim scan_height As Int + scan_width = 400 + scan_height = 400 + sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height) + +End Sub + + +Sub sc_result(atype As String,Values As String) + 'Log("Type : " & atype) + 'Log("Value : " & Values) + CODIGO = Values + + skmt.ExecNonQuery2("UPDATE kmt_info set CAT_CL_NUM_SERIEFISICO = ?, CAT_CL_LONG = ?, CAT_CL_LAT =? where CAT_CL_CODIGO In (select cuenta from cuentaa)", Array As Object(CODIGO, Main.lon_gps, Main.lat_gps)) + +End Sub +Sub sc_noScan + Log("nothing returned from the scan !!!!!") +End Sub +Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes + Dim i As Int + Dim cO As Char + Dim soma As Int + Dim n As Int + Dim digit As Float + + soma = 0 + For i=0 To number.Length - 1 + digit = number.SubString2(i,i+1) + n= digit * ((i Mod 2) * 2 + 1) + soma=soma+n + Next + Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 ) +End Sub + +Sub b_mapa_Click + StartActivity(mapas) +End Sub + +Sub B_IMP_Click + + c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + perfil = c.GetString("CUANTOS") + c.Close + + If perfil > 0 Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + perfil = c.GetString("CAT_VA_VALOR") + c.Close + End If + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c.Close + c=skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL")) + c.Position = 0 + sucursal = c.GetString("CAT_VA_VALOR") + c.Close + ProgressDialogShow("Imprimiendo, un momento ...") + Printer1.DisConnect + If Not(Printer1.IsConnected) Then + Log("Conectando a impresora ...") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + Log("++++++ " & cont) + cont = cont + 1 + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + Log("****** " & cont) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If + + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + Dim bmp As Bitmap + bmp.InitializeResize(File.DirAssets, "durakelo1.png", 376, 129, True) 'ignore + Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) + + myimage = Printer1.DitherImage2D(myimage, 128) + + myimage= Printer1.PackImage(myimage) + Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + Printer1.WriteString(Printer1.REVERSE) + + Printer1.PrintImage(myimage) + Printer1.WriteString(Printer1.UNREVERSE) + + 'Printer1.Justify = 1 + 'printer.Initialize(cmp20.OutputStream) + Printer1.WriteString("DURAKELO S.A. de C.V." & CRLF) + Printer1.WriteString("RFC: DUR-011025-T12" & CRLF) + Printer1.WriteString(sucursal & CRLF) + Printer1.WriteString(sDate & CRLF) + Printer1.WriteString(sTime & CRLF) + Printer1.WriteString("Vendedor:" & usuario & CRLF) + Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF) + Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) + Printer1.WriteString("Calle: " & la_Calle.Text & CRLF) + Printer1.WriteString("Colonia: " & la_col.Text & CRLF) + Printer1.WriteString("C.P.: " & la_cp.Text & CRLF) + Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) + Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) + + If perfil = "V-ESPECIAL" Then 'Or perfil = "V-SUPER" + Printer1.WriteString("-----------PREVENTA-----------" & CRLF) + ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_PRECIO2 as PE_COSTOU, length(PE_PRECIO2) as L_COSTOU,PE_CANT * PE_PRECIO2 AS PE_COSTO_TOT, length(PE_CANT * PE_PRECIO2) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID ", Array As String("PREVENTA")) + If S.RowCount>0 Then + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + + Else + + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + TAMANO = s.GetLong("L_CANT") + TAMANO + TAMANO = s.GetLong("L_COSTOU") + TAMANO + TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO + + ESPACIO = ESPACIO - TAMANO + + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + End If + Next + End If + s.Close + s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA")) + s.Position =0 + If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then + Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")) & CRLF) + End If + Printer1.WriteString("Total Preventa: $" & s.GetString("TOTAL") & CRLF) + s.Close + + Else + Printer1.WriteString("-----------PREVENTA-----------" & CRLF) + ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA")) + If S.RowCount>0 Then + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + + Else + + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + TAMANO = s.GetLong("L_CANT") + TAMANO + TAMANO = s.GetLong("L_COSTOU") + TAMANO + TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO + + ESPACIO = ESPACIO - TAMANO + + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + End If + Next + End If + s.Close + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA")) + If S.RowCount>0 Then + Printer1.WriteString("----PROMOS----" & CRLF) + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + + Else + + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + TAMANO = s.GetLong("L_CANT") + TAMANO + TAMANO = s.GetLong("L_COSTOU") + TAMANO + TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO + + ESPACIO = ESPACIO - TAMANO + + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + End If + Next + Printer1.WriteString("--FIN PROMOS----" & CRLF) + End If + s.Close + + s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA")) + s.Position =0 + ' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then + ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) + ' End If + Printer1.WriteString("Total Preventa: $" & s.GetString("TOTAL") & CRLF) + s.Close + + End If + Printer1.WriteString(" " & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("ENTREGA EN :" & CRLF) + Printer1.WriteString(la_Calle.Text & CRLF) + Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) + Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString(" " & CRLF) + + Sleep(1000) + Printer1.DisConnect + + ProgressDialogHide +' printer.Flush + ' printer.Close + +End Sub + + +Sub B_IMP2_Click + c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + perfil = c.GetString("CUANTOS") + c.Close + + If perfil > 0 Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + perfil = c.GetString("CAT_VA_VALOR") + c.Close + End If + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c.Close + c=skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL")) + c.Position = 0 + sucursal = c.GetString("CAT_VA_VALOR") + c.Close + + ProgressDialogShow("Imprimiendo, un momento ...") +' Printer1.DisConnect + If Not(Printer1.IsConnected) Then + Log("conectando 1") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) +' Log("conectando ...") + Sleep(1000) + cont = cont + 1 + If cont = 3 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) +' Log("conectando ...") + Sleep(1000) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If + Log("Iniciamos ...") + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + Dim bmp As Bitmap + bmp.InitializeResize(File.DirAssets, "durakelo1.png", 376, 129, True) 'ignore + Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) + + myimage = Printer1.DitherImage2D(myimage, 128) + + myimage= Printer1.PackImage(myimage) + Log("Iniciamos 2 ...") + Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + Printer1.WriteString(Printer1.REVERSE) + + Printer1.PrintImage(myimage) + Printer1.WriteString(Printer1.UNREVERSE) + +' printer.Initialize(cmp20.OutputStream) + Printer1.WriteString("DURAKELO S.A. de C.V." & CRLF) + Printer1.WriteString("RFC: DUR-011025-T12" & CRLF) + Printer1.WriteString(sucursal & CRLF) + Printer1.WriteString(sDate & CRLF) + Printer1.WriteString(sTime & CRLF) + Printer1.WriteString("Vendedor:" & usuario & CRLF) + Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF) + Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) + Printer1.WriteString("Calle: " & la_Calle.Text & CRLF) + Printer1.WriteString("Colonia: " & la_col.Text & CRLF) + Printer1.WriteString("C.P.: " & la_cp.Text & CRLF) + Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) + Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) + + Printer1.WriteString("-----------ENTREGA------------" & CRLF) + + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE", Array As String("VENTA")) + If S.RowCount>0 Then + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + + Else + + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + TAMANO = s.GetLong("L_CANT") + TAMANO + TAMANO = s.GetLong("L_COSTOU") + TAMANO + TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO + + ESPACIO = ESPACIO - TAMANO + + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + End If + Next + End If + s.Close + + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("VENTA")) + If S.RowCount>0 Then + Printer1.WriteString("----PROMOS----" & CRLF) + + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + + Else + + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + TAMANO = s.GetLong("L_CANT") + TAMANO + TAMANO = s.GetLong("L_COSTOU") + TAMANO + TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO + + ESPACIO = ESPACIO - TAMANO + + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + TAMANO = 0 + ESPACIO = 21 + BLANCO = " " + End If + + Next + Printer1.WriteString("--FIN PROMOS----" & CRLF) + + End If + s.Close + + Printer1.WriteString(" " & CRLF) + s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA")) + s.Position =0 + Printer1.WriteString("Total entrega: $" & s.GetString("TOTAL") & CRLF) + s.Close +' Printer1.WriteString("------------VENTA-------------") +' Printer1.WriteString("TOTAL COMPRA: $:" & total_cliente) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("ENTREGA EN :" & CRLF) + Printer1.WriteString(la_Calle.Text & CRLF) + Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) + Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString(" " & CRLF) + + Sleep(1000) + Printer1.DisConnect + ProgressDialogHide + 'printer.Flush +' printer.Close + +End Sub + + +Sub B_INV_Click + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c.Close + + TAMANO = 5 + ESPACIO = 21 + BLANCO = " " +' printer.Initialize(cmp20.OutputStream) + Printer1.WriteString("DURAKELO S.A. de C.V." & CRLF) + Printer1.WriteString("RESUMEN DIA A LA HORA" & CRLF) + Printer1.WriteString(sDate & " " & sTime & CRLF) + Printer1.WriteString("Vendedor:" & usuario & CRLF ) + Printer1.WriteString("-------------VENTA-------------" & CRLF) + + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("VENTA")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("VENTA")) + c.Position = 0 + Printer1.WriteString("VENTA: " & c.GetString("MONTO_DIA") & CRLF) + c.Close + Else + Printer1.WriteString("VENTA: " & "0" & CRLF) + End If + E1.Close + + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("PREVENTA")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("PREVENTA")) + c.Position = 0 + Printer1.WriteString("PREVENTA: " & c.GetString("MONTO_DIA") & CRLF) + c.Close + Else + Printer1.WriteString("PREVENTA: " & "0" & CRLF) + End If + E1.Close + + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO")) + c.Position = 0 + Printer1.WriteString("ABORDO: " & c.GetString("MONTO_DIA") & CRLF) + c.Close + Else + Printer1.WriteString("ABORDO: " & "0" & CRLF) + End If + E1.Close + + + + + Printer1.WriteString("-----------INVENTARIO-----------" & CRLF) + ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. + s=skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS")) + + + If S.RowCount>0 Then + For i=0 To S.RowCount -1 + S.Position=i + + Printer1.WriteString(s.GetString("CAT_GP_NOMBRE") & CRLF) + + Printer1.WriteString("CANTIDAD: " & s.GetString("CAT_GP_ALMACEN") & CRLF) + + + TAMANO = TAMANO + 1 + If TAMANO > 40 Then + + t3.Initialize("T3", 4000) ' 1000 = 1 second + t3.Enabled = True + Wait For t3_tick + TAMANO = 0 + End If + Next + End If + s.Close + 's=skmt.ExecQuery("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO") + 's.Position =0 + 'If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then +' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) +' End If +' Printer1.WriteString("Total Preventa: $" & s.GetString("TOTAL")) +' s.Close + + + + + + Printer1.WriteString(" " & CRLF) + Printer1.WriteString("-----------RMI----------------" & CRLF) + Printer1.WriteString(" " & CRLF) + 'c=skmt.ExecQuery2("select count(*) as CUANTOS from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO")) + 'c.Position =0 + 'Cuantos = c.GETSTRING("CUANTOS") + 'c.Close + 'If Cuantos >0 Then + c=skmt.ExecQuery2("select SUM(PE_CANT) AS CANTIDAD,PE_PRONOMBRE from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO")) + + If C.RowCount>0 Then + For i=0 To C.RowCount -1 + C.Position=i + + Printer1.WriteString(C.GetString("CANTIDAD") & " " & C.GetString("PE_PRONOMBRE") & CRLF ) + + + + Next + End If + + c.Close + 'End If + + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("Nombre y Firma" & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString("______________________________" & CRLF ) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString(" " & CRLF) + +' printer.Flush + + +End Sub +' +'Sub Printer_Connected (Success As Boolean) +' If Success Then +' +' B_IMP.Enabled = True +' PASA_IMP = "1" +' Else +' B_IMP.Enabled = False +' If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then +' StartPrinter +' End If +' End If +'End Sub +' +'Sub StartPrinter +' Dim PairedDevices As Map +' Dim L As List +' Dim resimp As Int +' +' ToastMessageShow("Printing.....",True) +' +' PairedDevices.Initialize +' +' Try +' PairedDevices = cmp20.GetPairedDevices +' Catch +' Msgbox("Getting Paired Devices","Printer Error") +' ' printer.Close +' cmp20.Disconnect +' End Try +' +' If PairedDevices.Size = 0 Then +' Msgbox("Error Connecting to Printer - Printer Not Found","") +' Return +' End If +' +' If PairedDevices.Size = 1 Then +' Try +' 'FLEOS +' 'cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1) +' cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0))) +' +' Catch +' Msgbox("Connecting","Printer Error") +' printer.Close +' cmp20.Disconnect +' End Try +' Else +' L.Initialize +' +' For i = 0 To PairedDevices.Size - 1 +' L.Add(PairedDevices.GetKeyAt(i)) +' Next +' +' resimp = InputList(L, "Choose device", -1) +' +' If resimp <> DialogResponse.CANCEL Then +' cmp20.Connect(PairedDevices.Get(L.Get(resimp))) +' +' End If +' End If +'End Sub + + +Sub B_VENTA_Click + Main.tipov = "VENTA" + 'StartActivity(colonia2) + cuestionario +End Sub + +Sub b_factura_Click + +End Sub + +Sub CH_TA_CheckedChange(Checked As Boolean) + +End Sub + +Sub CH_TC_CheckedChange(Checked As Boolean) + +End Sub + +Sub CH_TB_CheckedChange(Checked As Boolean) + +End Sub + +Sub CH_TD_CheckedChange(Checked As Boolean) + +End Sub + +Sub B_GUARDAR_Click + + If CH_TA.Checked = True Then + TIPOEX = CH_TA.Text + ELSE If CH_TB.Checked = True Then + TIPOEX = CH_TB.Text + ELSE If CH_TC.Checked = True Then + TIPOEX = CH_TC.Text + ELSE If CH_TD.Checked = True Then + TIPOEX = CH_TD.Text + End If + + Panel1.Visible = False + B_EXIBI.Visible = True + b_factura.Visible = True + HIST.Visible = True + Tar.VISIBLE = True + B_IMP.Visible = True + Tels.Visible = True + B_VENTA.Visible = True + B_IMP2.Visible = True + gest.Visible = True + Guardar.Visible = True + B_INV.Visible = True + + c=skmt.ExecQuery("select CUENTA from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") + + skmt.ExecNonQuery2("INSERT INTO HIST_EXIBIDORES(CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR) VALUES(?,?,?)", Array As Object(cuenta,TIPOEX,E_CUANTOS_E.Text)) + +End Sub + +Sub B_EXIBI_Click + + s=skmt.ExecQuery("select CAT_EX_ID, CAT_EX_TIPO, CAT_EX_VALOR FROM CAT_EXHIBIDORES") + + If s.RowCount>0 Then + For i=0 To s.RowCount -1 + s.Position=i + If s.GetString("CAT_EX_ID") = "1" Then + CH_TA.Text = s.GetString("CAT_EX_VALOR") + End If + If s.GetString("CAT_EX_ID") = "2" Then + CH_TB.Text = s.GetString("CAT_EX_VALOR") + End If + If s.GetString("CAT_EX_ID") = "3" Then + CH_TC.Text = s.GetString("CAT_EX_VALOR") + End If + If s.GetString("CAT_EX_ID") = "4" Then + CH_TD.Text = s.GetString("CAT_EX_VALOR") + End If + + Next + End If + + E_CUANTOS_E.Text = "" + CH_TA.Checked = False + CH_TB.Checked = False + CH_TC.Checked = False + CH_TD.Checked = False + Panel1.Visible = True + B_EXIBI.Visible = False + b_factura.Visible = False + HIST.Visible = False + Tar.VISIBLE = False + B_IMP.Visible = False + Tels.Visible = False + B_VENTA.Visible = False + B_IMP2.Visible = False + gest.Visible = False + Guardar.Visible = False + B_INV.Visible = False + +End Sub + + +Sub Printer1_Connected (Success As Boolean) + Log("Impresora conectada.") + If Success Then + ToastMessageShow("Connected successfully", False) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Main.mac_impresora)) + B_IMP.Enabled = True + impresoraConectada = True + Else +' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") +' If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore +' StartPrinter +' End If + End If +End Sub + +Sub StartPrinter + Dim PairedDevices As Map + Dim L As List + Dim resimp As Int + ToastMessageShow("Printing.....",True) + PairedDevices.Initialize + Try + PairedDevices = cmp20.GetPairedDevices + Catch + Msgbox("Getting Paired Devices","Printer Error") 'ignore + printer.Close + cmp20.Disconnect + End Try + + If PairedDevices.Size = 0 Then + Msgbox("Error Connecting to Printer - Printer Not Found","") 'ignore + Return + End If + + If PairedDevices.Size = 1 Then + Try + cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0))) + Catch + Msgbox("Connecting","Printer Error") 'ignore + printer.Close + cmp20.Disconnect + End Try + Else + L.Initialize + For i = 0 To PairedDevices.Size - 1 + L.Add(PairedDevices.GetKeyAt(i)) + Next + resimp = InputList(L, "Choose device", -1) 'ignore + If resimp <> DialogResponse.CANCEL Then + cmp20.Connect(PairedDevices.Get(L.Get(resimp))) + End If + End If +End Sub + +Sub cuestionario + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + If TOMAR_FOTO = 0 Then + s=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)") + s.Position= 0 + CUANTOS = s.GetString("CUANTOS") + Else + CUANTOS = 0 + End If + If CUANTOS = 0 Then + c=skmt.ExecQuery("SELECT CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + If TOMAR_FOTO = 1 Then + If CURSOR_FOTO + 1 > c.RowCount -1 Then + TOMAR_FOTO = 0 + Exit + Else + i = CURSOR_FOTO +1 + End If + 'Msgbox(i,"a") + TOMAR_FOTO = 0 + End If + c.Position=i + ' Msgbox("paso1","a") + If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then + id_encuesta = c.GetString("CAT_EP_ID") + TOMAR_FOTO = 1 + CURSOR_FOTO = i + StartActivity(foto) + ' Msgbox("paso2","a") + Exit + ELSE IF c.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then + res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If res = DialogResponse.POSITIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID"))) + Else IF res = DialogResponse.NEGATIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID"))) + Else IF res = DialogResponse.CANCEL Then + i = i -1 + End If + ELSE IF c.GetString("CAT_EP_IDTIPOPREGUNTA") = 4 Then + res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If res = DialogResponse.POSITIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID"))) + 'i = c.GetString("CAT_EP_RES1_PRED") -1 + Else IF res = DialogResponse.NEGATIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID"))) + i = c.GetInt("CAT_EP_RES2_PRED") -2 + Else IF res = DialogResponse.CANCEL Then + i = i -1 + End If + ' Msgbox("paso3","a") + ELSE If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then + res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), c.GetString("CAT_EP_RES1_PRED"), c.GetString("CAT_EP_RES2_PRED"),c.GetString("CAT_EP_RES3_PRED"),LoadBitmap(File.DirAssets,"alert2.png")) + If res = DialogResponse.POSITIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES1_PRED"),sDate & sTime,c.GetString("CAT_EP_ID"))) + Else IF res = DialogResponse.NEGATIVE Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES3_PRED"),sDate & sTime,c.GetString("CAT_EP_ID"))) + Else IF res = DialogResponse.CANCEL Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES2_PRED"),sDate & sTime,c.GetString("CAT_EP_ID"))) + End If + ' Msgbox("paso4","a") + ELSE If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 6 Then + Panel10.Visible = True + l_chk_e.Text = c.GetString("CAT_EP_PREGUNTA") + Chk_1.Checked = False + chk_2.Checked = False + chk_3.Checked = False + Chk_1.Text = c.GetString("CAT_EP_RES1_PRED") + chk_2.Text = c.GetString("CAT_EP_RES2_PRED") + chk_3.Text = c.GetString("CAT_EP_RES3_PRED") + chk_1_valor = c.GetString("CAT_EP_RES1_PRED") + chk_2_valor = c.GetString("CAT_EP_RES2_PRED") + chk_3_valor = c.GetString("CAT_EP_RES3_PRED") + TOMAR_FOTO = 1 + CURSOR_FOTO = i + ' Msgbox("paso5","a") + Exit + ELSE If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 1 Then + Panel9.Visible = True + t_tenc.Text = c.GetString("CAT_EP_PREGUNTA") + Label26.Text = c.GetString("CAT_CE_DESCRIPCION") + E_RES_E.Text = "" + TOMAR_FOTO = 1 + CURSOR_FOTO = i + Exit + Else + ' Main.tipov = "VENTA" + StartActivity(colonia2) + End If + Next + Else + ' Main.tipov = "VENTA" + StartActivity(colonia2) + End If + Else + ' Main.tipov = "VENTA" + StartActivity(colonia2) + End If +End Sub + + +Sub B_E_NEXT_Click + Panel9.Visible = False + + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, E_RES_E.Text ,sDate & sTime,c.GetString("CAT_EP_ID"))) + Main.tipov = "VENTA" + 'TOMAR_FOTO = 1 + cuestionario + 'StartActivity(colonia2) + +End Sub + + +Sub b_chk_e_Click + Panel10.Visible = False + + If Chk_1.Checked = True Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_1_valor,sDate & sTime,c.GetString("CAT_EP_ID"))) + else if chk_2.Checked = True Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_2_valor,sDate & sTime,c.GetString("CAT_EP_ID"))) + else if chk_3.Checked = True Then + skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_3_valor,sDate & sTime,c.GetString("CAT_EP_ID"))) + End If + Main.tipov = "VENTA" + 'TOMAR_FOTO = 1 + cuestionario + +End Sub \ No newline at end of file diff --git a/fila2.bas b/fila2.bas new file mode 100644 index 0000000..84a5065 --- /dev/null +++ b/fila2.bas @@ -0,0 +1,138 @@ +Type=Activity +Version=3 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim g As GPS + Dim skmt As SQL + Dim c As Cursor + Dim ListView1 As ListView + Dim la_cuenta As Label + Dim La_nombre As Label + Dim la_Calle As Label + Dim la_numero As Label + Dim la_nint As Label + Dim la_edo As Label + Dim la_pob As Label + Dim la_col As Label + Dim la_cp As Label + Dim la_zona As Label + Dim la_entre1 As Label + Dim la_entre2 As Label + Dim gest As Button + Dim la_saldotot As Label + Dim la_saldooper As Label + Dim la_saldof1 As Label + Dim la_penal As Label + Dim la_producto As Label + Dim la_padre As Label + Dim la_no_ird As Label + + Dim Tels As Button +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + If(FirstTime) Then + g.Initialize("GPS") + End If + Activity.LoadLayout("info_gral") + Dim ruta As String + + ' valido donde escribo el archivo de la base de datos de kmt + If File.ExternalWritable Then + ruta = File.DirDefaultExternal + Else + ruta = File.DirInternal + + End If + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select pr_cd_credito,pr_cd_nombre,pr_cd_calle,pr_cd_numero,pr_cd_num_int,pr_cd_entrecalle1,pr_cd_entrecalle2,pr_cd_colonia,pr_cd_poblacion,pr_cd_edo,pr_cd_cp,pr_Cd_zona, pr_cf_saldotot,pr_cf_saldooper,pr_cf_saldof1, pr_cf_penalizacion, pr_kt_producto, Pr_Ca_Padre, Pr_Ca_No_Ird, PR_CA_CONVENIO,PR_CF_MTO_PRESTAMO,PR_CF_FECHA_DISP,PR_CF_SALDO_ACORT,PR_CF_SALDO_VEN,PR_CF_SALDO_PAGARE,PR_CF_CAPITAL from kmt_info where pr_cd_credito In (select cuenta from cuentaa)") + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + la_cuenta.Text = c.GetString("pr_cd_credito") + La_nombre.Text = c.GetString("pr_cd_nombre") + la_Calle.Text = c.GetString("pr_cd_calle") + 'la_numero.Text = c.GetString("pr_cd_numero") + 'la_nint.Text = c.GetString("pr_cd_num_int") + la_entre1.Text = c.GetString("PR_CF_CAPITAL") + 'la_entre2.Text = c.GetString("pr_cd_entrecalle2") + la_col.Text = c.GetString("pr_cd_colonia") + la_pob.Text = c.GetString("pr_cd_poblacion") + la_edo.Text = c.GetString("pr_cd_edo") + la_cp.Text = c.GetString("pr_cd_cp") + 'la_zona.Text = c.GetString("pr_Cd_zona") + la_saldotot.Text = c.GetString("PR_CA_CONVENIO") + la_saldooper.Text = c.GetString("PR_CF_MTO_PRESTAMO") + la_saldof1.Text = c.GetString("PR_CF_SALDO_VEN") + la_penal.Text = c.GetString("PR_CF_SALDO_PAGARE") + la_producto.Text = c.GetString("pr_kt_producto") + la_padre.Text = c.GetString("PR_CF_FECHA_DISP") + la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If +End Sub + +Sub Activity_Resume +If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) + End If +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub ListView1_ItemLongClick (Position As Int, Value As Object) + +End Sub + +Sub gest_Click + StartActivity(gestion) +End Sub + +Sub Tels_Click + StartActivity(telefonos) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub \ No newline at end of file diff --git a/foto.bas b/foto.bas new file mode 100644 index 0000000..6aeb494 --- /dev/null +++ b/foto.bas @@ -0,0 +1,128 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True + +#End Region +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim ruta As String + Dim g As GPS + Private frontCamera As Boolean = False + +End Sub + +Sub Globals + Dim camera1 As Camera + Dim btnTakePicture As Button + Dim Panel1 As Panel + Dim skmt As SQL + Dim c As Cursor + Dim cuenta As String +' Dim lat_gps As String +' Dim lon_gps As String + Private camEx As CameraExClass + + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + + If(FirstTime) Then + g.Initialize("GPS") + End If + + Activity.LoadLayout("foto") + btnTakePicture.Enabled = False + camera1.Initialize(Panel1, "Camera1") + ruta = File.DirInternal + + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select cuenta from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") +End Sub +Sub Camera1_Ready (Success As Boolean) + If Success Then + + camera1.StartPreview + + btnTakePicture.Enabled = True + Else + ToastMessageShow("No se puede abrir la camara.", True) + End If +End Sub + +Sub Activity_Resume + If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) + End If + btnTakePicture.Enabled = False + camera1.Initialize(Panel1, "Camera1") + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + camera1.Release +End Sub +Sub GPS_LocationChanged (Location1 As Location) + +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +'btnTakePicture.Enabled = True +'s.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps)) + End Sub + + +Sub Camera1_PictureTaken (Data() As Byte) + camera1.StartPreview + 'Dim out As OutputStream + c=skmt.ExecQuery("select cuenta from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") + Dim sDate,sTime As String + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + skmt.ExecNonQuery2("INSERT INTO HIST_VISITAS (HIST_VI_IMAGEN, HIST_VI_CREDITO,HIST_VI_DTEVISITA, HIST_VI_LONGITUD, HIST_VI_LATITUD) VALUES(?,?,?,?,?) ", Array As Object (Data, cuenta,sDate & sTime, Main.lon_gps,Main.lat_gps)) + + 'out = File.OpenOutput(File.DirRootExternal, "1.jpg", False) + 'out.WriteBytes(Data, 0, Data.Length) + 'out.Close + 'ToastMessageShow("Gestion Salvada ", True) + + btnTakePicture.Enabled = True + 'CallSubDelayed(seleccion,"seleccion") + StartActivity(fila) +End Sub + +Sub btnTakePicture_Click + btnTakePicture.Enabled = False + camera1.TakePicture + 'camera1.TakePicture + +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub diff --git a/gestion.bas b/gestion.bas new file mode 100644 index 0000000..3029074 --- /dev/null +++ b/gestion.bas @@ -0,0 +1,267 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. +' Dim g As GPS +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim s As SQL + Dim c As Cursor + Dim nombre As EditText + Dim btn As Button + Dim lv As ListView + Dim telefono As EditText + Dim lb_gps As Label +' Dim lat_gps As String +' Dim lon_gps As String + + Dim contacto As EditText + Dim Resultado As EditText + Dim comentario As EditText + Dim codigos As Button + Dim parent As Button + Dim quien_llamo As String + Dim fecha As EditText + Dim l_fecha As Label + Dim l_monto As Label + Dim monto As EditText + Dim cuantos As String + Dim l_comentario As Label + Dim l_ird1 As Label + Dim ird1 As EditText + Dim l_ird2 As Label + Dim ird2 As EditText + Dim l_ird3 As Label + Dim ird3 As EditText + Dim l_ird4 As Label + Dim ird4 As EditText + Dim despues As Button + Dim cuenta As String + Dim usuario As String + Dim result As String + Dim pondera As String + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + If(FirstTime) Then +' g.Initialize("GPS") + End If + Activity.LoadLayout("guardagestion") + + + Dim ruta As String + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + s.Initialize(ruta,"kmt.db", True) + +End Sub + +Sub Activity_Resume +' If g.GPSEnabled=False Then +' ToastMessageShow("Habilitar el GPS", True) +' StartActivity(g.LocationSettingsIntent) +' Else +' g.Start(0,0) +' End If + + + monto.Visible = False + l_monto.Visible = False + l_fecha.Visible = False + fecha.Visible = False + contacto.Text = "" + Resultado.Text= "" + comentario.Text ="" + monto.Text = "" + fecha.Text = "" + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) +' g.Start(0,0) +End Sub +Sub btn_Click + If Resultado.text<>"" And contacto.Text<>"" And comentario.text<>"" Then + ' c=s.ExecQuery("select pr_cd_credito,pr_cd_nombre,pr_cd_calle,pr_cd_numero,pr_cd_num_int,pr_cd_entrecalle1,pr_cd_entrecalle2,pr_cd_colonia,pr_cd_poblacion,pr_cd_edo,pr_cd_cp,pr_Cd_zona, pr_cf_saldotot,pr_cf_saldooper,pr_cf_saldof1, pr_cf_penalizacion, pr_kt_producto, Pr_Ca_Padre, Pr_Ca_No_Ird from kmt_info where pr_cd_credito In (select cuenta from cuentaa)") + 'ESTO SE NECESITA PARA SACAR LOS VALORES Y COMPARAR LOS IRD + ' c.Position=0 + ' Dim la_cuenta As String = c.GetString("pr_cd_credito") + ' Dim La_nombre As String = c.GetString("pr_cd_nombre") + ' la_Calle.Text = c.GetString("pr_cd_calle") + ' la_numero.Text = c.GetString("pr_cd_numero") + ' la_nint.Text = c.GetString("pr_cd_num_int") + ' la_entre1.Text = c.GetString("pr_cd_entrecalle1") + ' la_entre2.Text = c.GetString("pr_cd_entrecalle2") + ' la_col.Text = c.GetString("pr_cd_colonia") + ' la_pob.Text = c.GetString("pr_cd_poblacion") + ' la_edo.Text = c.GetString("pr_cd_edo") + ' la_cp.Text = c.GetString("pr_cd_cp") + ' la_zona.Text = c.GetString("pr_Cd_zona") + ' la_saldotot.Text = c.GetString("pr_cf_saldotot") + ' la_saldooper.Text = c.GetString("pr_cf_saldooper") + ' la_saldof1.Text = c.GetString("pr_cf_saldof1") + ' la_penal.Text = c.GetString("pr_cf_penalizacion") + ' la_producto.Text = c.GetString("pr_kt_producto") + ' la_padre.Text = c.GetString("Pr_Ca_Padre") + ' la_no_ird.Text = c.GetString("Pr_Ca_No_Ird") + + c=s.ExecQuery("select CUENTA from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") + c=s.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c=s.ExecQuery2("select CRDESC,CRCOD AS CODIGO,CRPROD from cod_result WHERE CRDESC = ? ", Array As String(Resultado.Text)) + c.Position = 0 + result = c.GetString("CODIGO") + 'pondera = c.GetString("CAT_CO_PONDERACION") + Dim sDate,sTime As String + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + s.ExecNonQuery("UPDATE kmt_info set gestion = 1 where MGCTA In (select cuenta from cuentaa)") + s.ExecNonQuery2("UPDATE hist_visitas SET HIST_VI_VISITADOR = ?, HIST_VI_RESULTADO = ?, HIST_VI_CODIGO = ?, HIST_VI_PARENTESCO = ?, HIST_VI_COMENTARIO =?, HIST_VI_DPROM =?, HIST_VI_MPROM =? WHERE HIST_VI_CREDITO = ? ", Array As Object(usuario,Resultado.Text,result,contacto.text, comentario.Text,fecha.text,monto.Text, cuenta)) + 'datetime(updatedon,'localtime') + 'CallSubDelayed(foto,"foto") + StartActivity(seleccion) + End If +End Sub +Sub GPS_LocationChanged (Location1 As Location) +' Dim sDate,sTime As String +' +' DateTime.DateFormat = "MM/dd/yyyy" +' sDate=DateTime.Date(DateTime.Now) +' sTime=DateTime.Time(DateTime.Now) +' lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +' lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +'s.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps)) + End Sub + + + +Sub codigos_Click + quien_llamo = "codigo" + c=s.ExecQuery("select COUNT(*) AS CUANTOS from COD_RESULT WHERE CRPROD IN (select productoa from productoa)") + c.Position=0 + cuantos = c.GetString("CUANTOS") + If cuantos = 0 Then + lv.Clear + lv.AddSingleLine("SIN CODIGOS") + + Else + c=s.ExecQuery("select CRDESC AS DESC, CRCOD from COD_RESULT WHERE CRPROD IN (select productoa from productoa) ORDER BY CRDESC ASC") + lv.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + lv.AddSingleLine(c.GetString("DESC")) + Next + End If + End If +End Sub +Sub lv_ItemClick (Position As Int, Value As Object) + Dim es_c_promesa As String + If quien_llamo = "codigo" Then + Resultado.Text = Value + If Resultado.Text <> "EQUIPO RECUPERADO" Then + comentario.Visible = True + l_comentario.Visible = True + l_ird1.Visible = False + ird1.Visible = False + l_ird2.Visible = False + ird2.Visible = False + l_ird3.Visible = False + ird3.Visible = False + l_ird4.Visible = False + ird4.Visible = False + +' c=s.ExecQuery2("select CAT_CO_CONFIGURACION from CAT_CODIGOS WHERE CAT_CO_RDESCRIPCION = ? ", Array As String(Value)) +' c.Position=0 +' es_c_promesa=c.GetString("CAT_CO_CONFIGURACION") + If Resultado.Text = "PROMESA DE PAGO" Then + monto.Visible = True + l_monto.Visible = True + l_fecha.Visible = True + fecha.Visible = True + Else + monto.Visible = False + l_monto.Visible = False + l_fecha.Visible = False + fecha.Visible = False + + End If + Else + comentario.Visible = False + l_comentario.Visible = False + l_ird1.Visible = True + ird1.Visible = True + l_ird2.Visible = True + ird2.Visible = True + l_ird3.Visible = True + ird3.Visible = True + l_ird4.Visible = True + ird4.Visible = True + End If + + Else + contacto.Text = Value + End If + lv.Clear +End Sub +Sub parent_Click + quien_llamo = "parent" + c=s.ExecQuery("select CAT_PA_ID, CAT_PA_PARENTESCO from CAT_PARENTESCO order by CAT_PA_PARENTESCO asc") + lv.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + lv.AddSingleLine(c.GetString("CAT_PA_PARENTESCO")) + Next + End If +End Sub +Sub despues_Click + s.ExecNonQuery("UPDATE kmt_info set gestion = 2 where pr_cd_credito In (select cuenta from cuentaa)") + 's.ExecNonQuery2("insert into hist_Act (htel, hanombre) values (?,datetime(updatedon,'localtime'))" Array As String(cuantos)) + + 'CallSubDelayed(foto,"foto") + StartActivity(colonia) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub diff --git a/google-services.json b/google-services.json new file mode 100644 index 0000000..b21b6d3 --- /dev/null +++ b/google-services.json @@ -0,0 +1,155 @@ +{ + "project_info": { + "project_number": "821860097209", + "project_id": "pusher-4c091", + "storage_bucket": "pusher-4c091.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:821860097209:android:7bdc730c1cad5927f24f68", + "android_client_info": { + "package_name": "durakelo.keymon.com.mx" + } + }, + "oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:821860097209:android:4a9c1af4c93ba100f24f68", + "android_client_info": { + "package_name": "flp2.chv.com" + } + }, + "oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:821860097209:android:7b6620b2a870f23cf24f68", + "android_client_info": { + "package_name": "gunav2.keymon.com.mx" + } + }, + "oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:821860097209:android:7780f81ae43bf0f3f24f68", + "android_client_info": { + "package_name": "pusher.chv.com" + } + }, + "oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:821860097209:android:7c55bc95da6d952df24f68", + "android_client_info": { + "package_name": "ths.keymon.com.mx" + } + }, + "oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/kmt.db b/kmt.db new file mode 100644 index 0000000..de4ec5a Binary files /dev/null and b/kmt.db differ diff --git a/mapas.bas b/mapas.bas new file mode 100644 index 0000000..a0518ba --- /dev/null +++ b/mapas.bas @@ -0,0 +1,51 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + Dim WebView1 As WebView + Dim reg As Button + Dim a_url As String +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + Activity.LoadLayout("mapa") +a_url ="http://maps.googleapis.com/maps/api/staticmap?zoom=16&size=400x300&maptype=roadmap&markers=color:blue%7C" & "19.072205" & ",%20"& "-98.226863" & "&sensor=false" + +WebView1.LoadUrl("http://maps.googleapis.com/maps/api/staticmap?zoom=16&size=800x800&maptype=roadmap&markers=color:blue%7Clabel:1%7C19.076514,%20-98.228184&markers=color:red%7Clabel:C%7C19.076514,%20-98.238184&sensor=false") +'http://maps.googleapis.com/maps/api/staticmap?zoom=16&size=800x800&maptype=roadmap&markers=color:blue%7Clabel:1%7C19.076514,%20-98.228184&markers=color:red%7Clabel:C%7C19.076514,%20-98.238184&path=color:0xff0000ff|weight:5|19.076514,-98.228184|19.076514,-98.238184&sensor=False +' la parte del path +End Sub + +Sub Activity_Resume + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub reg_Click + StartActivity(fila) +End Sub \ No newline at end of file diff --git a/nopago.bas b/nopago.bas new file mode 100644 index 0000000..cbba2b4 --- /dev/null +++ b/nopago.bas @@ -0,0 +1,117 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim g As GPS + Dim ruta As String + Dim skmt As SQL + Dim c As Cursor +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + Dim CANCELA As Button + Dim GUARDA As Button + Dim r_1 As RadioButton + Dim r_2 As RadioButton + Dim r_3 As RadioButton + Dim e_comm As EditText + Dim motivo As String + Dim cuenta As String + Dim usuario As String + Dim sDate,sTime As String +' Dim lat_gps, lon_gps As String + + Dim r_4 As RadioButton +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + If(FirstTime) Then + g.Initialize("GPS") + End If + + Activity.LoadLayout("nopago") + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + +End Sub + +Sub Activity_Resume + e_comm.Text="" + If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) + End If + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + g.Start(0,0) + +End Sub + +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + + + +Sub CANCELA_Click + StartActivity(fila) +End Sub +Sub GUARDA_Click +If r_1.Checked Then +motivo = "CERRADO" +Else If r_2.Checked Then +motivo = "NO COMPRA" +Else If r_3.Checked Then +motivo = "CON PRODUCTO" +Else +motivo = "NO ESTA EL ENCARGADO" +End If + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("select CUENTA from cuentaa") + c.Position = 0 + cuenta = c.GetString("CUENTA") + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c=skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID"))) + Next + End If + + + skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") + skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)") + + skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text,Main.lat_gps,Main.lon_gps)) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + StartActivity(seleccion) +End Sub \ No newline at end of file diff --git a/nuevocliente.bas b/nuevocliente.bas new file mode 100644 index 0000000..a2cc150 --- /dev/null +++ b/nuevocliente.bas @@ -0,0 +1,95 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim g As GPS + Dim ruta As String + Dim skmt As SQL + Dim c As Cursor +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + Dim CANCELA As Button + Dim GUARDA As Button + Dim cuenta As String + Dim usuario As String + Dim sDate,sTime As String +' Dim lat_gps, lon_gps As String + Dim no_cliente As String + Dim no_ruta As String + + Dim r_4 As RadioButton + Dim E_NOMBRE As EditText +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + If(FirstTime) Then + g.Initialize("GPS") + End If + + Activity.LoadLayout("nuevocliente") + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) +End Sub + +Sub Activity_Resume + E_NOMBRE.Text = "" + If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) + End If + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + g.Start(0,0) + +End Sub + +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + +Sub CANCELA_Click + StartActivity(seleccion) +End Sub +Sub GUARDA_Click +If E_NOMBRE.Text = "" Then +ToastMessageShow("Se tiene que nombrar la tienda para continuar" , True) +Else + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info") + c.Position=0 + no_ruta= c.GetString("CAT_CL_RUTA") + no_cliente= "N" & sTime & no_ruta + c.Close + skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null","null","null")) + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) + StartActivity(fila) +End If +End Sub diff --git a/pedidos.bas b/pedidos.bas new file mode 100644 index 0000000..1fa269a --- /dev/null +++ b/pedidos.bas @@ -0,0 +1,553 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim g As GPS + Dim ruta As String + Dim skmt As SQL +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + + Dim c As Cursor + Dim e As Cursor + Dim f As Cursor + Dim h As Cursor + Dim CC As Cursor + Dim DD As Cursor + Dim l_tipo As Label + Dim l_sub As Label + Dim l_marca As Label + Dim l_desc As Label + Dim l_precio As Label + Dim l_bodega As Label + Dim cantidad As EditText + Dim guardar As Button + Dim Terminar As Button + Dim img_prod As ImageView + Dim IMG_PASO() As Byte + Dim L_PROID As Label + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String +' Dim lat_gps, lon_gps As String + Dim t_venta As Label + Dim PROMO_C As String + Dim i_fotol As ImageView + Private DESC_PROMO As Button + Private nopromo As Button + Dim TOT_ART_PROMO As String + Dim cambio As String + Dim COSTO_TOT As String + Dim ALMACEN As String + Dim preciosin As String + Dim cl_ruta As String + Dim d As Cursor + Dim TOT_ART_PROMOR As String + Dim PROMO_CR As String + Dim TOTAL_PROMO As String + Dim HCCP_CANT As String + Private Panel1 As Panel + + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + + Activity.LoadLayout("PRODUCTOS") + i_fotol.Visible = False + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + + 'la_padre.Text = c.GetString("PR_CF_FECHA_DISP") + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If +End Sub + +Sub Activity_Resume + + c=skmt.ExecQuery("Select SUBSTR(CUENTA,1,1) AS CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + If clie_id = "N" Then + nopromo.Visible = False + Else + nopromo.Visible = True + + End If + c.Close + + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + g.Start(0,0) + +End Sub + + + +Sub guardar_Click + If cantidad.Text = "" Then + StartActivity(colonia2) + + ELSE If cantidad.Text > l_bodega.Text Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + C.Position =0 + TOT_ART_PROMO = C.GetString("TOT_ART_PROMO") + COSTO_TOT = C.GetString("COSTO_TOT") + C.Close + + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + C.Position =0 + TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO") + End If + C.Close + + + PROMO_C = PROMO_C * cantidad.Text + PROMO_CR = PROMO_CR * cantidad.Text + + If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then + ' anterior a 29/06/2015 + 'skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(l_precio.text/(TOT_ART_PROMO/cantidad.Text),l_precio.text/(TOT_ART_PROMO/cantidad.Text))) + 'en pe_cedis meto el codigo de promocion para hacer esta validacion. + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text)) + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + + + + 'skmt.ExecNonQuery("UPDATE PEDIDO SET PE_COSTO_TOT = 0.01 WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))") + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + + + If e.GetString("CUANTOS") > 0 Then + + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + 'se coloco el if por la mala promocion. + + For i=0 To F.RowCount -1 + F.Position=i + + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA) VALUES(?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta)) + h.Close + Next + + + + f.Close + End If + e.Close + + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA) VALUES(?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + Else + Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") + End If + End If + + cantidad.Text = "" + StartActivity(colonia2) + else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + For i =0 To f.RowCount -1 + F.Position =i + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + h.Close + Next + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + cantidad.Text = "" + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + + StartActivity(colonia2) + + Else + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + StartActivity(colonia2) + End If +End Sub +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + +Sub Terminar_Click + If cantidad.Text = "" Then + StartActivity(fila) + + ELSE If cantidad.Text > l_bodega.Text Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0)") + C.Position =0 + TOT_ART_PROMO = C.GetString("TOT_ART_PROMO") + COSTO_TOT = C.GetString("COSTO_TOT") + C.Close + + c=skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + c.Position =0 + If c.GetString("CUANTOSD") = 0 Then + TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") + Else + c=skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1)") + C.Position =0 + TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO") + End If + C.Close + + + PROMO_C = PROMO_C * cantidad.Text + PROMO_CR = PROMO_CR * cantidad.Text + + If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then + ' anterior a 29/06/2015 + 'skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(l_precio.text/(TOT_ART_PROMO/cantidad.Text),l_precio.text/(TOT_ART_PROMO/cantidad.Text))) + 'en pe_cedis meto el codigo de promocion para hacer esta validacion. + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text)) + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 0") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + D=skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO = 0 AND CAT_DP_TIPO = 1") + If D.RowCount>0 Then + For i=0 To D.RowCount -1 + D.Position=i + + skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CEDIS In (Select PROIDID from PROIDID) AND PE_CLIENTE IN (Select CUENTA from cuentaa) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD"))) + + Next + End If + D.Close + + + + 'skmt.ExecNonQuery("UPDATE PEDIDO SET PE_COSTO_TOT = 0.01 WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))") + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 AND CAT_DP_PRECIO = 0") + 'meter el otro + F.Position =0 + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + h.Close + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + Else + Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") + End If + End If + + cantidad.Text = "" + StartActivity(fila) + else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then + skmt.ExecNonQuery("delete from PROIDID") + + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + + c.Close + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + 'skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario)) + 'para insertar la promo de ades el de regalo en 0 + e=skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ") + e.Position =0 + If e.GetString("CUANTOS") > 0 Then + F=skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)") + For i =0 To f.RowCount -1 + F.Position =i + h=skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD"))) + h.Position=0 + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + h.Close + Next + f.Close + End If + e.Close + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + cantidad.Text = "" + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + + StartActivity(fila) + + Else + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position=0 + cl_ruta = c.GetString("CAT_CL_RUTA") + c.Close + + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN"))) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + StartActivity(fila) + End If +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + 'StartActivity(colonia2) + Msgbox("Presione Boton Terminar.","ADVERTENCIA") + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub +Sub img_prod_Click + i_fotol.Visible = True + i_fotol.Bitmap = LoadBitmap(ruta,"1.jpg") + +End Sub +Sub i_fotol_Click +i_fotol.Visible = False + +End Sub + +Sub DESC_PROMO_Click + skmt.ExecNonQuery("delete from PROIDID") + skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text)) + + StartActivity(detalle_promo) +End Sub +Sub nopromo_Click + If cantidad.Text = "" Then + Msgbox("Cantidad no puede ser 0","Cantidad") + Else If cantidad.Text > l_bodega.Text Then + Msgbox("Exede la existencia", "ADVERTENCIA") + Else + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?) ", Array As Object ("COACALCO",0,0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,Main.tipov)) + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text)) + + + cantidad.Text = "" + StartActivity(colonia2) + + End If +End Sub \ No newline at end of file diff --git a/primero.bas b/primero.bas new file mode 100644 index 0000000..dddfc94 --- /dev/null +++ b/primero.bas @@ -0,0 +1,35 @@ +Type=Activity +Version=3 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + Msgbox("Welcome to Basic4android!", "") +End Sub + +Sub Activity_Resume + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + diff --git a/qr.bas b/qr.bas new file mode 100644 index 0000000..56251d9 --- /dev/null +++ b/qr.bas @@ -0,0 +1,97 @@ +Type=Activity +Version=5.8 +ModulesStructureVersion=1 +B4A=true +@EndOfDesignText@ + +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim b,b1,b2 As ImageView + Dim bt As Button + + Dim qr As QRCode + Dim sc As Zxing_scanner + Dim CODIGO As String + + + Private Label1 As Label +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + Activity.LoadLayout("qr") + + b.Initialize("") + b1.Initialize("") + b1.Gravity=Gravity.FILL + b2.Initialize("") + b2.Gravity=Gravity.FILL + + Activity.AddView(b,0,0,100dip,100dip) + Activity.AddView(b1,0,110dip,300dip,100dip) + Activity.AddView(b2,0,220dip,300dip,100dip) + + qr.initialize + + b.Bitmap = qr.QR_Encode("TESTING QR CODES",100dip) + b1.Bitmap = qr.Ean13_Encode(calc_ean_checksum("123456789012"),100dip) ' Not interested in this + b2.Bitmap = qr.Ean8_Encode(calc_ean_checksum("1234567"),100dip) ' Not interested in this + + bt.Initialize("bt") + bt.Text="Codigo" + Activity.AddView(bt,0,330dip,120dip,50dip) + +End Sub + +Sub Activity_Resume + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub +Sub bt_click + 'ADDED BY JOHAN SCHOEMAN i.e OPTION TO CHANGE THE WIDTH AND HEIGHT OF THE VIEWING RECTANGLE + Dim scan_width As Int + Dim scan_height As Int + scan_width = 400 + scan_height = 400 + sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height) + +End Sub +Sub sc_result(atype As String,Values As String) + 'Log("Type : " & atype) + 'Log("Value : " & Values) + CODIGO = Values + b.Bitmap = qr.QR_Encode(Values,100dip) +End Sub +Sub sc_noScan + Log("nothing returned from the scan !!!!!") +End Sub +Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes + Dim i As Int + Dim c As Char + Dim soma As Int + Dim n As Int + Dim digit As Float + + soma = 0 + For i=0 To number.Length - 1 + digit = number.SubString2(i,i+1) + n= digit * ((i Mod 2) * 2 + 1) + soma=soma+n + Next + Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 ) +End Sub \ No newline at end of file diff --git a/seleccion.bas b/seleccion.bas new file mode 100644 index 0000000..98d9b69 --- /dev/null +++ b/seleccion.bas @@ -0,0 +1,2851 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub mods + 'V3.04.17 - Se cambio en los queries de "Resumen_Click", "cat_gunaprod" por una "UNION de cat_gunaprod con cat_gunaprod2" para calcular l_monto_k, l_monto_kp, l_monto_ks y l_monto_kc (5 instancias) +End Sub + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim reqManager As DBRequestManager + Dim conectado As String + Dim skmt As SQL + Dim t1 As Timer + Dim Timer_GIF1 As Timer + Dim Frame1 As Int + Dim Awake As PhoneWakeState + Dim sb As StringBuilder + Dim PHONE As Phone + Timer_GIF1.Initialize("Timer1",0) +' Dim g As GPS +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim trabajar As Button + Dim T3 As Timer + Dim c As Cursor + Dim d As Cursor + Dim d3 As Cursor + Dim b As Cursor + Dim e As Cursor + Dim f As Cursor + Dim D2 As Cursor + Dim E1 As Cursor + Dim lv As ListView + Dim cargar As Button + Dim pendiente As Button + Dim foto1() As Byte + Dim usuario As String + Dim connecta As Button + Dim conn As String + Dim Subir As Button + Dim cmd As DBCommand + Dim TOPE As Int + Dim COUNT_CLIE As Int + Dim fecha As String + Dim drop As Double + Dim efectiva As Double + Dim HORAINGRESO As String + Dim L_MONTOD As Label + Dim l_cuantosc As Label + Dim l_drop As Label + Dim l_efectiva As Label + Dim l_ctast As Label + Dim BUSCA As Button + Dim Cuantos As String + Dim l_cuantosn As Label + Dim e_ruta As EditText + Dim l_porvisitar As Label + Dim b_mapa As Button + Dim l_ruta As Label + Dim ALMACEN As String + Private img2 As ImageView + Dim Listo1 As String + Dim Listo2 As String + Dim Listo3 As String + Dim Listo4 As String + Dim Listo5 As String + Dim EJECUTANDO As String + Dim RES As String + Dim inve As String + Dim cuantos_pedidosc As String + Dim cuantos_pedido As String + Dim cuantos_noventa As String + Dim datos_iguales As String + Dim p As PhoneId + Dim imei As String + Dim SERVER As String +' Dim lat_gps, lon_gps As String + + Private inv As Button + Private P1 As Panel + Private CLAVE As EditText + Private B_OK_PAS As Button + Dim PASO As String + Private USUARIO1 As EditText + Dim connecta1 As Double + Dim armafolio As String + Private NUEVO As Button + Private S_CC As Label + Private S_CP As Label + Private S_CH As Label + Private PB2 As ProgressBar + Private PB1 As ProgressBar + Private L_P_1 As Label + Private L_P_2 As Label + Private L_P_3 As Label + Private CARGA As String + Private PORCENTAJE As String + Private P_RESUMEN As Panel + Private B_OK_RES As Button + Private Resumen As Button + Private L_CUANTOST As Label + Private img3 As ImageView + + Private ImageView3 As ImageView + Private ImageView5 As ImageView + Private L_TICKPROM As Label + Private MARCASQ As String + Private B_PROXIMA As Button + Private l_monto_a As Label + Private ImageView9 As ImageView + Private L_MONTO_R As Label + Dim PERFIL As String + Dim NUMERO_PEDIDO As String + Private l_cambios As Label + Private l_monto_ks As Label + Private l_monto_kp As Label + Private l_monto_k As Label + Private Cuantos As String + Private TIEMPO As String + Private i_gif As ImageView + Dim gif1 As GifDecoder + Dim ruta As String + + Private L_VENTA As Label + Private L_PREVENTA As Label + Private L_ABORDO As Label + + Dim cuantos_ped As String + Dim conteo As String + Private PASO_info As String + + Private bpv1 As BatteryProgressView + Dim batterystatus(11) As Int + Private bu As BatteryUtilities + + + Private ImageView12 As ImageView + + Private TitleHeight As Int = 50dip + Private Title2Height As Int = 100dip + + Private DividerHeight As Int = 5dip + Private CLV1 As CustomListView + Private pnlTitle As B4XView + Private xui As XUI + Type TitleData (Title As String) + + Private B_MARCAS As Button + Private Panel5 As Panel + Private lblTitle As Label + Private B_OK_PANEL5 As Button + Private Btn_UbicarR As Button + Private SUBIR_P As Button + Private b_e_resumen As Button + Private cuantos_exib As String + Dim ime As IME + Private l_monto_kc As Label +End Sub + +Sub Activity_Create(FirstTime As Boolean) + EJECUTANDO=1 + SERVER = Starter.DBReqServer + + If(FirstTime) Then +' g.Initialize("GPS") + End If + If FirstTime Then + reqManager.Initialize(Me, SERVER) + Log(SERVER) + End If + Activity.LoadLayout("seleccion") + img2.Visible =False + + ' valido donde escribo el archivo de la base de datos de kmt + ruta = File.DirInternal +Log(SERVER) + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + DateTime.DateFormat = "MM/dd/yyyy" + fecha=DateTime.Date(DateTime.Now) + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) + c.Position =0 + SERVER = c.GetString("CAT_CO_CONFIGURACION") + c.Close + + b=skmt.ExecQuery("Select count(*) as CUANTOS from pedido_cliente") + b.Position=0 + Cuantos = b.GetString("CUANTOS") + d=skmt.ExecQuery("select count(*) as TOTAL_VISITAR from kmt_info where gestion = 0") + D.Position=0 + b.Close + e=skmt.ExecQuery("select count(*) as POR_VISITAR from kmt_info") + e.Position=0 + f=skmt.ExecQuery("select count(*) as CAT_CL_RUTA from kmt_info") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + If l_ruta.Text = 0 Then + l_ruta.Text =0 + Else + f=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + End If + If Cuantos = 0 Then + L_MONTOD.Text =0 + l_cuantosc.Text = 0 + l_cuantosn.Text = 0 + drop = 0 + l_drop.Text = 0 + efectiva = 0 + l_efectiva.text =0 + l_ctast.Text = d.GetString("TOTAL_VISITAR") + l_porvisitar.Text = e.GetString("POR_VISITAR") + Else + c=skmt.ExecQuery("select sum(pc_monto) as MONTO_DIA, count(pc_cliente) AS CLIENTES_DIA from pedido_cliente ") + b=skmt.ExecQuery("select count(*) as CUANTOS from noventa") + 'where pc_fecha = ?", Array As String(fecha) + C.Position=0 + b.Position=0 + L_MONTOD.Text = c.GetString("MONTO_DIA") + l_cuantosc.Text = c.GetString("CLIENTES_DIA") + l_cuantosn.Text = b.GetString("CUANTOS") + drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA") + l_drop.Text = Round2(drop,2) + efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR") + l_efectiva.text = Round2(efectiva*100,2) + l_ctast.Text = d.GetString("TOTAL_VISITAR") + l_porvisitar.Text = e.GetString("POR_VISITAR") + End If + + c = skmt.ExecQuery2("select count(CAT_VA_DESCRIPCION) as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso")) + c.Position = 0 + DateTime.TimeFormat = "HHmmss" + + 'Valida si ya se cuenta con hora actualiza el valor si no lo inserta----------- + If c.GetString("HoraIngreso") > 0 Then + skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso")) + Else + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_VALOR,CAT_VA_DESCRIPCION) VALUES (?,?)" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso")) + End If + DateTime.TimeFormat = "HH:mm:ss" + +End Sub + +Sub IsConnectedToInternet As Boolean + Dim r As Reflector + + r.Target = r.GetContext + r.Target = r.RunMethod2("getSystemService", "connectivity", "java.lang.String") + r.Target = r.RunMethod("getActiveNetworkInfo") + + If r.Target <> Null Then + Return r.RunMethod("isConnectedOrConnecting") + End If + + Return False +End Sub + +Sub Activity_Resume + SERVER = Starter.DBReqServer + HORAINGRESO ="000000" + NUEVO.Visible = True + c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) + c.Position =0 + If c.GetString("CUANTOS") = 0 Then + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",SERVER)) + Else + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) + c.Position =0 + SERVER = c.GetString("CAT_VA_VALOR") + End If + + reqManager.Initialize(Me, SERVER) + Log(SERVER) + + If PASO = 2 Then + Dim result As Int + result = Msgbox2("El proceso de enviar información no a terminado, Continuar", "", "Si", "", "No", LoadBitmap(File.DirAssets, "alert2.png")) + If result = DialogResponse.POSITIVE Then + VALIDA_INFO + Else + PASO = 0 + End If + Else + PASO =0 + End If + + f=skmt.ExecQuery("select count(*) as CAT_CL_RUTA from kmt_info") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + If l_ruta.Text = 0 Then + l_ruta.Text =0 + Else + f=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + End If + + ' c=skmt.ExecQuery("select noversion from version") +' c.Position=0 +' If c.GetString("NOVERSION") <> "2.1" Then +' ToastMessageShow("EXISTE UNA NUEVA VERSION ACTUALIZA POR FAVOR." , True) +' cargar.Visible = False +' Subir.Visible = False +' connecta.Visible = False +' trabajar.Visible = False +' BUSCA.Visible = False +' inv.Visible = False +' + ' End If + ' c.Close + c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA")) + c.Position =0 + If c.GetString("CUANTOS") = 0 Then + cmd.Initialize + cmd.Name = "select_fechat" + reqManager.ExecuteQuery(cmd , 0, "fecha") + + Msgbox("AJUSTAR FECHA","AVISO") + Activity_Resume + Else + + + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA")) + c.Position =0 + Dim sDate,sTime As String + DateTime.DateFormat = "yyyyMMddHHmm" + sDate=DateTime.Date(DateTime.Now) +' Msgbox("AaaaA " & " "& c.GetString("CAT_VA_VALOR") & " " & sDate & sTime ,"AVISO") + + If c.GetString("CAT_VA_VALOR") > sDate & sTime Then + Msgbox("AJUSTAR LA FECHA YA QUE ES MENOR AL SISTEMA" ,"AVISO") + DateTime.TimeFormat = "HH:mm:ss" + Activity_Resume + End If + DateTime.TimeFormat = "MM/dd/yyyyHH:mm:ss" + + End If + + + L_CUANTOST.Text = l_cuantosc.Text + l_cuantosn.Text + If EJECUTANDO =0 Then + Listo1 = 0 + Listo2 = 0 + Listo3 = 0 + Listo4 = 0 + Listo5 = 0 + inve = 0 + img2.Visible =False + End If +' DateTime.DateFormat = "MM/dd/yyyy" + fecha=DateTime.Date(DateTime.Now) + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + + c=skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") + C.Position =0 + ALMACEN = C.GetString("ID_ALMACEN") + C.Close + 'ALMACEN = 1 + + b=skmt.ExecQuery("Select count(*) as CUANTOS from pedido_cliente where pc_cliente <> 0") + b.Position=0 + Cuantos = b.GetString("CUANTOS") + + If Cuantos = 0 Then + L_MONTOD.Text =0 + l_cuantosc.Text = 0 + l_cuantosn.Text = 0 + drop = 0 + l_drop.Text = 0 + efectiva = 0 + l_efectiva.text =0 + l_ctast.Text = d.GetString("TOTAL_VISITAR") + l_porvisitar.Text = e.GetString("POR_VISITAR") + + Else + c=skmt.ExecQuery("select sum(pc_monto) as MONTO_DIA, count(pc_cliente) AS CLIENTES_DIA from pedido_cliente where pc_cliente <> 0") + b=skmt.ExecQuery("select count(*) as CUANTOS from noventa") + 'where pc_fecha = ?", Array As String(fecha) + C.Position=0 + b.Position=0 + L_MONTOD.Text = c.GetString("MONTO_DIA") + l_cuantosc.Text = c.GetString("CLIENTES_DIA") + l_cuantosn.Text = b.GetString("CUANTOS") + + L_CUANTOST.Text = l_cuantosc.Text + l_cuantosn.Text + + End If + +' bu.Initialize +' batterystatus = bu.BatteryInformation +' +' sb.Initialize +' PHONE.Shell("ping -c1 -W1 google.com",Null, sb,Null) +' +' c = skmt.ExecQuery2("select count(CAT_VA_DESCRIPCION) as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso")) +' c.Position = 0 +' +' 'Valida si ya se cuenta con hora para enviar cada 5 min----------- +' If c.GetString("HoraIngreso") > 0 Then +' D2 = skmt.ExecQuery2("select CAT_VA_VALOR as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso")) +' D2.Position = 0 +' HORAINGRESO = D2.GetString("HoraIngreso") +' D2.Close +' End If +' DateTime.TimeFormat = "HHmmss" +' +' If HORAINGRESO + 500 < DateTime.Time(DateTime.Now) Then +' +' +' If sb.Length > 2 And sb.ToString.SubString2(110,114) <> "smit" Then +' c=skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS") +' +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' ' s=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO"))) +' ' s.Position =0 +' 'LO DOCUMENTO PARA NO HACER TAN PESADO LA TRAN DE DATOS QUE SOLO MANDE UNO +'' Dim cmd As DBCommand +'' cmd.Initialize +'' cmd.Name = "insert_gps_actual_GUNA" +'' cmd.Parameters = Array As Object(c.GetString("hglat"),c.GetString("hglon"),usuario,ALMACEN,l_ruta.Text ) +'' 'cmd.Parameters = Array As Object(C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON") ) +' +' 'reqManager.ExecuteQuery(cmd , 0, "inst_visitas") +' +' cmd.Initialize +' cmd.Name = "select_fechat" +' reqManager.ExecuteQuery(cmd , 0, "fechat") +' +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "UPDATE_DURK_ACTUAL2_GPS" +' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,c.GetString("hglat"),c.GetString("hglon"),batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text ) +' reqManager.ExecuteCommand(cmd,"inst_visitas") +' skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso")) +' +' +' +' ' Dim cmd As DBCommand +' ' cmd.Initialize +' ' cmd.Name = "update_gps_actual_TKM" +' ' cmd.Parameters = Array As Object(C.GetString("HGLAT"),C.GetString("HGLON"),usuario ) +' ' reqManager.ExecuteQuery(cmd , 0, "inst_visitas") +' 'lv.AddTwoLines(c.GetString("HIST_VI_CREDITO"),c.GetString("HIST_VI_RESULTADO")) +' Next +' End If +' c.Close +' End If +' End If + + Main.montoActual = L_MONTOD.Text + Main.clientestotal = L_CUANTOST.Text + Main.clientesventa = l_cuantosc.Text + Main.clientesvisitados = l_porvisitar.TEXT + Main.ALMACEN = ALMACEN + Main.rutapreventa = l_ruta.text + + DateTime.TimeFormat = "HH:mm:ss" + + c=skmt.ExecQuery("select NOVERSION FROM VERSION") + c.Position = 0 + + If c.GetString("NOVERSION") <> "2.6" Then + Msgbox("VERSION INCORRECTA SOLICITAR O DESCARGAR LA NUEVA","ALERTA") + Activity_Resume + End If + CallSub(Starter,"ENVIA_ULTIMA_GPS") +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + cargar.Visible = False + Subir.Visible = False + SUBIR_P.Visible = False + + connecta.Visible = True + inv.Visible = False + If PASO = 1 Then + PASO = 2 + End If +End Sub +Sub trabajar_Click + 'CallSubDelayed(gestion,"gestion") + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MARCAS")) + c.Position =0 + MARCASQ = c.GetString("CAT_VA_VALOR") + c.Close + skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_CLASIF NOT IN (" & MARCASQ &")" ) + skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_DP_ID FROM CAT_DETALLES_PAQ WHERE CAT_DP_IDPROD NOT IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD))") + StartActivity(colonia) + +End Sub + + + +Sub Subir_Click + Awake.KeepAlive(True) + CARGA = "SUBIR" + P1.Visible = True + trabajar.Visible = False + B_PROXIMA.Visible =False + Btn_UbicarR.Visible=False + + NUEVO.Visible =False + BUSCA.Visible=False + connecta.Visible=False + Subir.Visible=False + SUBIR_P.Visible = False + + cargar.Visible=False + L_P_1.Visible = False + S_CC.Visible = False + L_P_3.Visible = False + S_CH.Visible = False + PB1.Visible = False + Resumen.Visible= False + PORCENTAJE = 0 + + L_P_2.Text = "Envio de Pedidos" + L_P_3.Text = "Envio de Pedidos" + S_CH.Text = "EN PROCESO" + S_CP.Text = "EN PROCESO" + PB1.Progress = 0 + PB2.Progress = 0 + PB2.Visible = True + conteo = 0 + 'i_gif.Visible = True +' load_gif + + PASO = 1 + 'End If + If PASO =1 Then + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO")) + c.Position = 0 + L_ABORDO.Text = c.GetString("MONTO_DIA") + c.Close + Else + L_ABORDO.Text = 0 + End If + E1.Close + + + + c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + PERFIL = c.GetString("CUANTOS") + c.Close + + If PERFIL > 0 Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + PERFIL = c.GetString("CAT_VA_VALOR") + c.Close + End If + + c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("NUMERO_PEDIDO")) + c.Position =0 + Cuantos = c.GetString("CUANTOS") + c.Close + If Cuantos > 0 Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("NUMERO_PEDIDO")) + c.Position =0 + NUMERO_PEDIDO = c.GetString("CAT_VA_VALOR") + c.Close + Else + NUMERO_PEDIDO = 0 + End If + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)") + + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + d3=skmt.ExecQuery("SELECT SUM(PE_COSTO_TOT) as MONTO FROM PEDIDO") + d3.Position = 0 + Dim cmd As DBCommand + cmd.Initialize + cmd.Name ="UPDATE_INFO_E_DURK" + cmd.Parameters = Array As Object(d3.GetDouble("MONTO")- L_ABORDO.text, L_ABORDO.Text, d3.GetDouble("MONTO"),l_ruta.TEXT, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name ="insert_drop2_DUR" + cmd.Parameters = Array As Object(usuario,l_ruta.Text,fecha, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO", ALMACEN, L_VENTA.Text, L_PREVENTA.Text, L_ABORDO.Text, l_cambios.TEXT) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + d3.Close + ' PEDIO_CLIENTE + c=skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN FROM PEDIDO_CLIENTE ") + d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedidos_DUR" + cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"),C.GetString("PC_FECHA"),C.GetString("PC_USER"),C.GetString("PC_NOART"),C.GetString("PC_MONTO"),C.GetString("PC_LON"),C.GetString("PC_LAT"),ALMACEN,l_ruta.text,C.GetString("PC_COSTO_SIN") ) + reqManager.ExecuteQuery(cmd , 0,"ins_pedidos") + + Next + c.Close + End If + d.Position=0 + cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC") + d.Close + + c=skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT FROM kmt_info") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_QR_DUR" + cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),ALMACEN,l_ruta.text ) + reqManager.ExecuteQuery(cmd , 0,"ins_QR") + + Next + c.Close + End If + + c=skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA") + ' S_CP.Text = "Envio Encuesta" + ' PB2.Progress = 1 + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_encuesta_DUR" + cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO"),l_ruta.Text ) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + + + Next + + End If + c.Close + ' PEDIO + + skmt.ExecNonQuery("update PEDIDO set PE_FOLIO = rowid ") + + ' +' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FOLIO")) +' c.Position =0 + ' armafolio = l_ruta.text * 1000000 +' armafolio = armafolio + c.GetString("CAT_VA_VALOR") +' c.Close +' c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC,PE_TIPO FROM PEDIDO WHERE PE_FOLIO IS NULL") +' +' +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' skmt.ExecNonQuery2("update PEDIDO set PE_FOLIO = ? where PE_PROID = ? AND PE_CLIENTE =? AND PE_FECHA =? AND PE_FOLIO IS NULL ", Array As Object(armafolio, c.GetString("PE_PROID"), c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"))) + ' +' armafolio = armafolio + 1 +' +' Next +' c.Close +' End If + ' armafolio = armafolio - (l_ruta.Text * 1000000) + ' skmt.ExecNonQuery2("update CAT_VARIABLES set CAT_VA_VALOR = ? where CAT_VA_DESCRIPCION = ? ", Array As Object(armafolio,"FOLIO")) +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "update_folio" +' cmd.Parameters = Array As Object(armafolio,l_ruta.Text , "1") +' reqManager.ExecuteQuery(cmd , 0, "folio") + + + If PERFIL = "V-ESPECIAL" Then + + + c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO,PE_TIPO FROM PEDIDO ORDER BY PE_CLIENTE") + d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") + d.Position=0 + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido_esp_DUR" + cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO"),NUMERO_PEDIDO ) + reqManager.ExecuteQuery(cmd , 0, "ins_pedido") + Next + c.Close + End If + Else + c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO,PE_TIPO FROM PEDIDO") + d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") + d.Position=0 + TIEMPO = 0 + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + TIEMPO = TIEMPO + 1 + + If TIEMPO > 20 Then + If L_P_2.Text = "Envio de Pedidos" Then + L_P_2.Text = "Envio de Pedidos --" + else if L_P_2.Text = "Envio de Pedidos --" Then + L_P_2.Text = "Envio de Pedidos \" + else if L_P_2.Text = "Envio de Pedidos \" Then + L_P_2.Text = "Envio de Pedidos |" + else if L_P_2.Text = "Envio de Pedidos |" Then + L_P_2.Text = "Envio de Pedidos /" + else if L_P_2.Text = "Envio de Pedidos /" Then + L_P_2.Text = "Envio de Pedidos --" + End If + T3.Initialize("T3", 2000) ' 1000 = 1 second + T3.Enabled = True + Wait For t3_tick + TIEMPO = 0 + + End If + conteo = conteo + 1 + cuantos_ped = D.GetString("CUANTOS_PEDIDO") + PORCENTAJE = 2 'Round(100/ (D.GetString("CUANTOS_PEDIDO") + 1)) + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido_DUR" + cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO")) + reqManager.ExecuteQuery(cmd , 0, "ins_pedido") + + Next + c.Close + End If + + End If + + cuantos_pedido = D.GetString("CUANTOS_PEDIDO") + d.Close + + ' NOVENTA + c=skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") + D=skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_noventa_DUR" + cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + + Next + c.Close + End If + d.Position=0 + cuantos_noventa = D.GetString("CUANTOS_NOVENTA") + d.Close + + ' NOVENTA HIST_EXIBIDORES(CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR) + c=skmt.ExecQuery("SELECT CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR from HIST_EXIBIDORES") + D=skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM HIST_EXIBIDORES") + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_HIST_EXIBIDORES_DUR" + cmd.Parameters = Array As Object(C.GetString("CAT_CL_CLIENTE"),C.GetString("CAT_CL_EXHIBIDOR"),C.GetString("CAT_CL_BEXHIBIDOR"),l_ruta.TEXT) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + + Next + c.Close + End If + d.Position=0 + cuantos_exib = D.GetString("CUANTOS_NOVENTA") + d.Close + + ' VERIFICACION +' c=skmt.ExecQuery("SELECT HVE_CLIENTE, HVE_IDPROD, HVE_EXISTENCIA FROM HIST_VERIFICACION") + +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_verificacion_DUR" +' cmd.Parameters = Array As Object(C.GetString("HVE_CLIENTE"),C.GetString("HVE_IDPROD"),C.GetString("HVE_EXISTENCIA")) +' reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + ' +' Next + ' c.Close + ' End If + ' + +' c=skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS") +' +' +' '' HACER ESTO PARA EL FORANEO +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' 's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO"))) +' 's.Position =0 +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_gps_actual_DUR" +' cmd.Parameters = Array As Object(c.GetString("hgdate"),c.GetString("hglat"),c.GetString("hglon"),usuario ) +' 'cmd.Parameters = Array As Object(C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON") ) +' +' reqManager.ExecuteQuery(cmd , 0, "") +' +' + ' +' ' Dim cmd As DBCommand +' ' cmd.Initialize +' ' cmd.Name = "update_gps_actual_TKM" +' ' cmd.Parameters = Array As Object(C.GetString("HGLAT"),C.GetString("HGLON"),usuario ) +' ' reqManager.ExecuteQuery(cmd , 0, "inst_visitas") +' 'lv.AddTwoLines(c.GetString("HIST_VI_CREDITO"),c.GetString("HIST_VI_RESULTADO")) +' Next +' End If +' c.Close +' + + + + ' DROP + + t1.Initialize("T1", 20000) ' 1000 = 1 second + t1.Enabled = True + + img2.Visible =True + + + ' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) + If S_CP.Text = "SUBIENDO" Then + S_CP.Text = "VALIDANDO" + End If + + + End If +End Sub +Sub cargar_Click + Log(SERVER) + CARGA = "CARGAR" + img2.Visible =True + L_P_1.Visible = True + S_CC.Visible = True + + P1.Visible = True + trabajar.Visible = False + B_PROXIMA.Visible =False + Btn_UbicarR.Visible=False + + NUEVO.Visible =False + BUSCA.Visible=False + connecta.Visible=False + L_P_3.Visible = True + S_CH.Visible = True + PB1.Visible = True + Resumen.Visible= False + + L_P_1.Text = "Catalogo de Clientes" + L_P_2.Text = "Catalogos de Productos" + L_P_3.Text = "Catalogos Historicos" + S_CC.Text = "EN PROCESO" + S_CH.Text = "EN PROCESO" + S_CP.Text = "EN PROCESO" + PB1.Progress = 0 + PB2.Progress = 0 + EJECUTANDO = 1 + + 'c=skmt.ExecQuery("CREATE TABLE kmt_info (pr_cd_credito NUMERIC,pr_cd_nombre TEXT,pr_cd_calle TEXT,pr_cd_numero TEXT,pr_cd_num_int TEXT,pr_cd_entrecalle1 TEXT,pr_cd_entrecalle2 TEXT,pr_cd_colonia TEXT,pr_cd_poblacion TEXT,pr_cd_edo TEXT,pr_cd_cp TEXT,pr_cd_zona TEXT,pr_cf_credito NUMERIC,pr_cf_saldotot NUMERIC,pr_cf_saldooper NUMERIC,pr_cf_saldof1 NUMERIC, pr_cf_penalizacion NUMERIC)") + TOPE = 0 + ' NUEVOS CLIENTE + + skmt.ExecNonQuery2("delete from kmt_info where substr(CAT_CL_CODIGO,1,1) <> ?", Array As Object ("N")) + skmt.ExecNonQuery("delete from cod_result") + skmt.ExecNonQuery("delete from hist_gest") + skmt.ExecNonQuery("delete from cat_gunaprod") + skmt.ExecNonQuery("delete from cat_gunaprod2") + + skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") + skmt.ExecNonQuery("delete from telefonos") + skmt.ExecNonQuery("delete from HIST_VENTAS") + skmt.ExecNonQuery("delete from HIST_PROMOS") + skmt.ExecNonQuery("delete from HIST_CLIENTE_CANT_PROMOS") + skmt.ExecNonQuery("delete from PROMOS_COMP") + skmt.ExecNonQuery("delete from CAT_VERIFICACION") + skmt.ExecNonQuery("delete from LISTA_PRECIOS") + skmt.ExecNonQuery("delete from CAT_PRECIOS") + skmt.ExecNonQuery("delete from HIST_RMI") + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0)) + skmt.ExecNonQuery("delete from HIST_EXIBIDORES") + skmt.ExecNonQuery("delete from CAT_EXHIBIDORES") + skmt.ExecNonQuery("delete from CAT_ENCUESTA_PREGUNTA") + + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name ="insert_drop2_DUR" + 'cmd.Name = "UPDATE_DUR_ACTUALR2_GPS" + cmd.Parameters = Array As Object(usuario, e_ruta.Text,fecha, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"CARGO", ALMACEN, L_VENTA.Text, L_PREVENTA.Text, L_ABORDO.Text, l_cambios.TEXT) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + 'sql.UPDATE_DUR_ACTUALR2_GPS=UPDATE DURAKELO.CAT_RUTAS_REPARTO SET CAT_RR_MONTO_ACT = (?),CAT_RR_MRECH_ACT =(?),CAT_RR_VISIT_ACT =(?), CAT_RR_DEV_ACT =(?), CAT_RR_LAT_ACT =(?), CAT_RR_LONG_ACT =(?), CAT_RR_BAT_ACT =(?), CAT_RR_TT = (?), CAT_RR_MONTO = (?), CAT_RR_FECHA_ACT = SYSDATE WHERE CAT_RR_IDALMACEN = (?) And CAT_RR_RUTA = (?) + + 'cmd.Initialize + 'cmd.Name = "Select_count_clie" + 'reqManager.ExecuteQuery(cmd,0,"count_cli") + + cmd.Initialize + cmd.Name = "select_codigo_exhibidor" + 'cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "catalogo_exhibidor") + + cmd.Initialize + cmd.Name = "select_cat_gunaprod_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprod") + + cmd.Initialize + cmd.Name = "select_cat_gunaprod2_DUR" + cmd.Parameters = Array As Object(ALMACEN, e_ruta.Text) + reqManager.ExecuteQuery(cmd , 0, "gunaprod2") + + cmd.Initialize + cmd.Name = "select_cat_paquetes_abordo_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprodpa") + + cmd.Initialize + cmd.Name = "select_cat_paquetes_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprodp") + + cmd.Initialize + cmd.Name = "select_cat_paquetess_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprodps") + + cmd.Initialize + cmd.Name = "select_cat_detallepa_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "detallepaq") + + cmd.Initialize + cmd.Name = "select_cat_clientes_guna_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "kmt_datos") + + cmd.Initialize + cmd.Name = "select_hist_datos_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_datos") + + cmd.Initialize + cmd.Name = "select_hist_promos_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_promos") + + cmd.Initialize + cmd.Name = "select_hist_cliente_promos_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_cliente_promos") + + cmd.Initialize + cmd.Name = "select_promo_comp_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_comp_promos") + + ''' validar para que sirve esto ya que no esta en la base de datos. + + cmd.Initialize + cmd.Name = "select_verificacion_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "cat_verificacion") + + cmd.Initialize + cmd.Name = "select_fecha" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "fecha") + + cmd.Initialize + cmd.Name = "select_folio_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "folio") + + ' esto es para sacar el perfil y marcas del usuario + cmd.Initialize + cmd.Name = "select_perfil_DUR" + cmd.Parameters = Array As Object(usuario) + reqManager.ExecuteQuery(cmd , 0, "perfil") + + cmd.Initialize + cmd.Name = "select_marcas_DUR" + cmd.Parameters = Array As Object(usuario) + reqManager.ExecuteQuery(cmd , 0, "marcas") + + cmd.Initialize + cmd.Name = "select_precios_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "precios") + + cmd.Initialize + cmd.Name = "select_hist_rmi1_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_rmi") + + cmd.Initialize + cmd.Name = "select_hist_rmi2_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_rmi") + + cmd.Initialize + cmd.Name = "select_hist_rmi3_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_rmi") + + cmd.Initialize + cmd.Name = "select_hist_rmi4_DUR" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "hist_rmi") + + cmd.Initialize + cmd.Name = "select_CAMBIOS_DUR" + 'cmd.Parameters = Array As Object( ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "cat_cambios") + + cmd.Initialize + cmd.Name = "select_SUCURSAL_DUR" + cmd.Parameters = Array As Object( ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "sucursal") + + cmd.Initialize + cmd.Name = "select_cat_encuesta_p_DUR" + cmd.Parameters = Array As Object( ALMACEN,e_ruta.text ) + reqManager.ExecuteQuery(cmd , 0, "carga_encuesta") + + ' c=skmt.ExecQuery("select HIST_VI_CREDITO, HIST_VI_PRODUCTO,HIST_VI_VISITADOR, HIST_VI_RESULTADO, HIST_VI_CODIGO, HIST_VI_PARENTESCO, HIST_VI_COMENTARIO, HIST_VI_DTEVISITA, HIST_VI_LONGITUD, HIST_VI_LATITUD, hist_vi_imagen, hist_vi_dprom, hist_vi_mprom from HIST_VISITAS") + ' If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + ' c.Position=i + ' foto1 = c.GetBlob("HIST_VI_IMAGEN") + ' + ' Dim cmd As DBCommand + ' cmd.Initialize + ' cmd.Name = "insert_gestion_plan" + ' cmd.Parameters = Array As Object(C.GetString("HIST_VI_CREDITO"),C.GetString("HIST_VI_PRODUCTO"),C.GetString("HIST_VI_VISITADOR"),C.GetString("HIST_VI_DTEVISITA"),C.GetString("HIST_VI_RESULTADO"),C.GetString("HIST_VI_CODIGO"),C.GetString("HIST_VI_COMENTARIO"),C.GetString("HIST_VI_PARENTESCO"),C.GetString("HIST_VI_LONGITUD"), C.GetString("HIST_VI_LATITUD"), foto1, c.GetString("HIST_VI_DPROM"),C.GetString("HIST_VI_MPROM")) + ' reqManager.ExecuteQuery(cmd , 0, "inst_visitas") + + 'lv.AddTwoLines(c.GetString("HIST_VI_CREDITO"),c.GetString("HIST_VI_RESULTADO")) + ' Next + ' End If + 'skmt.ExecNonQuery("DELETE FROM HIST_VISITAS") + + cargar.Visible = False + Subir.Visible = False + SUBIR_P.Visible = False + +' connecta.Visible = True + inv.Visible = False + + 'Dim cmd As DBCommand + 'cmd.Initialize + 'cmd.Name = "select_telefonos_riva" + 'cmd.Parameters = Array As Object(usuario) + 'reqManager.ExecuteQuery(cmd , 0, "telefonos") + + ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias" , True) +End Sub +Sub JobDone(Job As HttpJob) + If Job.Success = False Then + 'If Job.ErrorMessage <> "STREAM" Then + ' ToastMessageShow("Error: " & Job.ErrorMessage, True) + 'End If + If Job.ErrorMessage = "STREAM" Then + If CARGA = "SUBIR" Then + PB2.Progress = PB2.Progress + PORCENTAJE + + If S_CP.Text = "EN PROCESO" Then + S_CP.Text = "SUBIENDO" + End If + ' If PB2.Progress > 99 Then + ' S_CP.Text = "VALIDANDO" + ' End If + + If cuantos_ped = conteo Then + S_CP.Text = "VALIDANDO" + End If + End If + End If + Else + LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027 + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "kmt_datos" Then 'query tag + skmt.BeginTransaction + Try + S_CC.TEXT = "CARGANDO" + For Each records() As Object In RESULT.Rows + Dim CAT_CL_CODIGO As String = records(RESULT.Columns.Get("CAT_CL_CODIGO")) + Dim CAT_CL_RUTA As String = records(RESULT.Columns.Get("CAT_CL_RUTA")) + Dim CAT_CL_NOMBRE As String = records(RESULT.Columns.Get("CAT_CL_NOMBRE")) + Dim CAT_CL_ATIENDE1 As String = records(RESULT.Columns.Get("CAT_CL_ATIENDE1")) + Dim CAT_CL_ATIENTE2 As String = records(RESULT.Columns.Get("CAT_CL_ATIENTE2")) + Dim CAT_CL_TELEFONO As String = records(RESULT.Columns.Get("CAT_CL_TELEFONO")) + Dim CAT_CL_EMAIL As String = records(RESULT.Columns.Get("CAT_CL_EMAIL")) + Dim CAT_CL_CALLE As String = records(RESULT.Columns.Get("CAT_CL_CALLE")) + Dim CAT_CL_NOEXT As String = records(RESULT.Columns.Get("CAT_CL_NOEXT")) + Dim CAT_CL_NOINT As String = records(RESULT.Columns.Get("CAT_CL_NOINT")) + Dim CAT_CL_CALLE1 As String = records(RESULT.Columns.Get("CAT_CL_CALLE1")) + Dim CAT_CL_CALLE2 As String = records(RESULT.Columns.Get("CAT_CL_CALLE2")) + Dim CAT_CL_COLONIA As String = records(RESULT.Columns.Get("CAT_CL_COLONIA")) + Dim CAT_CL_MUNI As String = records(RESULT.Columns.Get("CAT_CL_MUNI")) + Dim CAT_CL_EDO As String = records(RESULT.Columns.Get("CAT_CL_EDO")) + Dim CAT_CL_CP As String = records(RESULT.Columns.Get("CAT_CL_CP")) + Dim CAT_CL_LONG As String = records(RESULT.Columns.Get("CAT_CL_LONG")) + Dim CAT_CL_LAT As String = records(RESULT.Columns.Get("CAT_CL_LAT")) + Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA")) + Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) + Dim CAT_CL_BFACTURA As String = records(RESULT.Columns.Get("CAT_CL_BFACTURA")) + Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BBLOQUEOCRED")) + + skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO)) + Next + skmt.TransactionSuccessful + Catch + Log(LastException) + ToastMessageShow(LastException, True) + End Try + skmt.EndTransaction + skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","null","null","null","null","NULL","NULL")) + Listo1 = 1 + S_CC.Text = "LISTO" + ' ToastMessageShow("Catalogo Clientes Actualizados." , True) + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + End If + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "hist_promos" Then 'query tag + skmt.BeginTransaction + Try + For Each records() As Object In RESULT.Rows + Dim HP_CLIENTE As String = records(RESULT.Columns.Get("HP_CLIENTE")) + Dim HP_CODIGO_PROMOCION As String = records(RESULT.Columns.Get("HP_CODIGO_PROMOCION")) + + skmt.ExecNonQuery2("INSERT INTO HIST_PROMOS(HP_CLIENTE, HP_CODIGO_PROMOCION) VALUES (?,?)", Array As Object (HP_CLIENTE, HP_CODIGO_PROMOCION)) + Next + 'ToastMessageShow("Historico Promociones Actualizado." , True) + If PB1.Progress = 0 Then + PB1.Progress = 30 + S_CH.Text = "CARGANDO" + ELSE If PB1.Progress = 30 Then + PB1.Progress = 50 + ELSE IF PB1.Progress = 50 Then + PB1.Progress = 80 + ELSE If PB1.Progress = 80 Then + PB1.Progress = 100 + S_CH.Text = "LISTO" + End If + Catch + Log(LastException) + ToastMessageShow(LastException, True) + End Try + skmt.EndTransaction + End If + End If + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "catalogo_exhibidor" Then 'query tag + skmt.BeginTransaction + Try + For Each records() As Object In RESULT.Rows + Dim CAT_EX_ID As String = records(RESULT.Columns.Get("CAT_EX_ID")) + Dim CAT_EX_TIPO As String = records(RESULT.Columns.Get("CAT_EX_TIPO")) + Dim CAT_EX_VALOR As String = records(RESULT.Columns.Get("CAT_EX_VALOR")) + + skmt.ExecNonQuery2("INSERT INTO CAT_EXHIBIDORES(CAT_EX_ID, CAT_EX_TIPO, CAT_EX_VALOR) VALUES (?,?,?)", Array As Object (CAT_EX_ID, CAT_EX_TIPO, CAT_EX_VALOR)) + Next + ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True) + Catch + Log(LastException) + ToastMessageShow(LastException, True) + End Try + skmt.EndTransaction + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "hist_cliente_promos" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim HCCP_CLIENTE As String = records(RESULT.Columns.Get("HCCP_CLIENTE")) + Dim HCCP_PROMO As String = records(RESULT.Columns.Get("HCCP_PROMO")) + Dim HCCP_CANT As String = records(RESULT.Columns.Get("HCCP_CANT")) + + skmt.ExecNonQuery2("INSERT INTO HIST_CLIENTE_CANT_PROMOS(HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT) VALUES (?,?,?)", Array As Object (HCCP_CLIENTE, HCCP_PROMO,HCCP_CANT)) + Next + ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True) + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "hist_comp_promos" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAT_PA_ID As String = records(RESULT.Columns.Get("CAT_PA_ID")) + Dim CAT_PA_MAXPROM As String = records(RESULT.Columns.Get("CAT_PA_MAXPROM")) + Dim CAT_PA_MAXPROMREC As String = records(RESULT.Columns.Get("CAT_PA_MAXPROMREC")) + Dim CAT_PA_MAXPROMCLIE As String = records(RESULT.Columns.Get("CAT_PA_MAXPROMCLIE")) + + skmt.ExecNonQuery2("INSERT INTO PROMOS_COMP(CAT_PA_ID, CAT_PA_MAXPROM, CAT_PA_MAXPROMREC, CAT_PA_MAXPROMCLIE) VALUES (?,?,?,?)", Array As Object (CAT_PA_ID, CAT_PA_MAXPROM,CAT_PA_MAXPROMREC,CAT_PA_MAXPROMCLIE)) + Next + + If PB1.Progress = 0 Then + PB1.Progress = 30 + S_CH.Text = "CARGANDO" + ELSE If PB1.Progress = 30 Then + PB1.Progress = 50 + ELSE IF PB1.Progress = 50 Then + PB1.Progress = 80 + ELSE If PB1.Progress = 80 Then + PB1.Progress = 100 + S_CH.Text = "LISTO" + End If + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "cat_verificacion" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAT_VE_IDPROD As String = records(RESULT.Columns.Get("CAT_VE_IDPROD")) + Dim CAT_VE_NOMBRE As String = records(RESULT.Columns.Get("CAT_VE_NOMBRE")) + Dim CAT_VE_ORDEN As String = records(RESULT.Columns.Get("CAT_VE_ORDEN")) + + skmt.ExecNonQuery2("INSERT INTO CAT_VERIFICACION(CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN) VALUES (?,?,?)", Array As Object (CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN)) + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "gunaprod" Then 'query tag + S_CP.Text = "CARGANDO" + For Each records() As Object In RESULT.Rows + + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE")) + Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1")) + Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_GP_IMP2")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_GP_CLASIF")) + Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_GP_STS")) + Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_GP_TIPO")) + Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) + Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) + Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) + Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) + Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) + Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA")) + 'CAT_GP_INICIATIVA = 5 + ' + ' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV)) + skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_GP_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_GP_DEV)) + + Next + ' c=skmt.ExecQuery("select CAT_GP_CLASIF, COUNT(*) AS CUANTOS from CAT_GUNAPROD GROUP BY CAT_GP_CLASIF order by CAT_GP_CLASIF asc") + ' c.Position=0 + ' skmt.ExecNonQuery("DELETE FROM COUNT_GUNAPROD") + ' skmt.ExecNonQuery2("INSERT INTO COUNT_GUNAPROD(CAT_GP_CLASIF, CUANTOS) VALUES (?,?)", Array As Object (c.GetString("CAT_GP_CLASIF"), c.GetString("CUANTOS"))) + ' c.Close + + Listo2=1 + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 80 + ELSE IF PB2.Progress = 80 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + + + ' ToastMessageShow("Productos Actualizados." , True) + + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + + End If + + End If + End If + + ' CARGA DEL CATALOGO ABORDO + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "gunaprod2" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE")) + Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1")) + Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_GP_IMP2")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_GP_CLASIF")) + Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_GP_STS")) + Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_GP_TIPO")) + Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) + Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) + Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) + Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) + Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) + Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA")) + Dim CAT_GP_CODPROMO As String = records(RESULT.Columns.Get("CAT_GP_CODPROMO")) + 'CAT_GP_INICIATIVA = 5 + ' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV)) + skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_GP_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_GP_DEV,CAT_GP_CODPROMO)) + Next + c=skmt.ExecQUERY2("SELECT COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_TIPO = ?", Array As String ("VENTA")) + c.Position = 0 + cuantos_pedidosc = c.GetString("CUANTOS") + c.Close + If cuantos_pedidosc > 0 Then + c=skmt.ExecQUERY2("SELECT PE_PROID, PE_CANT FROM PEDIDO WHERE PE_TIPO = ?", Array As String ("VENTA")) + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + skmt.ExecNonQuery2("update CAT_GUNAPROD2 set CAT_GP_ALMACEN = CAT_GP_ALMACEN - ? where CAT_GP_ID = ? ", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID"))) + Next + End If + End If + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "gunaprodpa" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE")) + Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1")) + Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_GP_IMP2")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_GP_CLASIF")) + Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_GP_STS")) + Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_GP_TIPO")) + Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) + Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) + Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) + Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) +' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) + skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD,"0")) + Next + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 80 + ELSE IF PB2.Progress = 80 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + ' ToastMessageShow("Promociones Actualizados." , True) + Listo4=1 + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + End If + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "gunaprodp" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE")) + Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1")) + Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_GP_IMP2")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_GP_CLASIF")) + Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_GP_STS")) + Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_GP_TIPO")) + Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) + Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) + Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) + Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) +' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) + skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD,"0")) + Next + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 80 + ELSE IF PB2.Progress = 80 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + ' ToastMessageShow("Promociones Actualizados." , True) + Listo4=1 + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + End If + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "gunaprodps" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE")) + Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1")) + Dim CAT_GP_IMP2 As String = records(RESULT.Columns.Get("CAT_GP_IMP2")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_CLASIF As String = records(RESULT.Columns.Get("CAT_GP_CLASIF")) + Dim CAT_GP_STS As String = records(RESULT.Columns.Get("CAT_GP_STS")) + Dim CAT_GP_TIPO As String = records(RESULT.Columns.Get("CAT_GP_TIPO")) + Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) + Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) + Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) + Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) + skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD)) + Next + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 80 + ELSE IF PB2.Progress = 80 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + 'ToastMessageShow("Promociones especiales Actualizados." , True) + Listo4=1 + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + End If + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "fechat" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim FECHA_HOY As String = records(RESULT.Columns.Get("FECHA")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",FECHA_HOY)) + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "detallepaq" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAT_DP_ALMACEN As String = records(RESULT.Columns.Get("CAT_DP_ALMACEN")) + Dim CAT_DP_ID As String = records(RESULT.Columns.Get("CAT_DP_ID")) + Dim CAT_DP_IDPROD As String = records(RESULT.Columns.Get("CAT_DP_IDPROD")) + Dim CAT_DP_TIPO As String = records(RESULT.Columns.Get("CAT_DP_TIPO")) + Dim CAT_DP_PZAS As String = records(RESULT.Columns.Get("CAT_DP_PZAS")) + Dim CAT_DP_USUARIO As String = records(RESULT.Columns.Get("CAT_DP_USUARIO")) + Dim CAT_DP_FECHA As String = records(RESULT.Columns.Get("CAT_DP_FECHA")) + Dim CAT_DP_REGALO As String = records(RESULT.Columns.Get("CAT_DP_REGALO")) + Dim CAT_DP_CLASIF As String = records(RESULT.Columns.Get("CAT_DP_CLASIF")) + Dim CAT_DP_PRECIO As String = records(RESULT.Columns.Get("CAT_DP_PRECIO")) + Dim CAT_DP_PRECIO_SIMPTOS As String = records(RESULT.Columns.Get("CAT_DP_PRECIO_SIMPTOS")) + + + + + skmt.ExecNonQuery2("INSERT INTO CAT_DETALLES_PAQ(CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS)) + + + Next + + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 80 + ELSE IF PB2.Progress = 80 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + Listo3 =1 + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + End If + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "hist_datos" Then 'query tag + + For Each records() As Object In RESULT.Rows + + Dim HVD_CLIENTE As String = records(RESULT.Columns.Get("HVD_CLIENTE")) + Dim HVD_PRONOMBRE As String = records(RESULT.Columns.Get("HVD_PRONOMBRE")) + Dim HVD_CANT As String = records(RESULT.Columns.Get("HVD_CANT")) + Dim HVD_COSTO_TOT As String = records(RESULT.Columns.Get("HVD_COSTO_TOT")) + Dim HVD_FECHA As String = records(RESULT.Columns.Get("HVD_FECHA")) + skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA) VALUES (?,?,?,?,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA)) + + + Next + Listo3 =1 + + If PB1.Progress = 0 Then + PB1.Progress = 30 + S_CH.Text = "CARGANDO" + ELSE If PB1.Progress = 30 Then + PB1.Progress = 50 + ELSE IF PB1.Progress = 50 Then + PB1.Progress = 80 + ELSE If PB1.Progress = 80 Then + + PB1.Progress = 100 + S_CH.Text = "LISTO" + End If + + ' ToastMessageShow("Venta historico Actualizado." , True) + + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + + End If + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "carga_encuesta" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAT_EP_ID As String = records(RESULT.COLUMNS.GET("CAT_EP_ID")) + Dim CAT_EP_IDTIPOPREGUNTA As String = records(RESULT.COLUMNS.GET("CAT_EP_IDTIPOPREGUNTA")) + Dim CAT_CE_DESCRIPCION As String = records(RESULT.COLUMNS.GET("CAT_CE_DESCRIPCION")) + Dim CAT_EP_PREGUNTA As String = records(RESULT.COLUMNS.GET("CAT_EP_PREGUNTA")) + Dim CAT_EP_RES1_PRED As String = records(RESULT.COLUMNS.GET("CAT_EP_RES1_PRED")) + Dim CAT_EP_RES2_PRED As String = records(RESULT.COLUMNS.GET("CAT_EP_RES2_PRED")) + Dim CAT_EP_RES3_PRED As String = records(RESULT.COLUMNS.GET("CAT_EP_RES3_PRED")) + Dim CAT_EP_ORDEN_PREGUNTA As String = records(RESULT.COLUMNS.GET("CAT_EP_ORDEN_PREGUNTA")) + + + skmt.ExecNonQuery2("INSERT INTO CAT_ENCUESTA_PREGUNTA (CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA ) VALUES (?,?,?,?,?,?,?,?)", Array As Object (CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA)) + + + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "hist_rmi" Then 'query tag + + For Each records() As Object In RESULT.Rows + + Dim HVD_CLIENTE As String = records(RESULT.Columns.Get("HVD_CLIENTE")) + Dim HVD_PRONOMBRE As String = records(RESULT.Columns.Get("HVD_PRONOMBRE")) + Dim HVD_CANT As String = records(RESULT.Columns.Get("HVD_CANT")) + Dim HVD_PROID As String = records(RESULT.Columns.Get("HVD_PROID")) + skmt.ExecNonQuery2("INSERT INTO HIST_RMI(HR_CLIENTE,HR_PRONOMBRE,HR_PROID, HR_CANT) VALUES (?,?,?,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_PROID, HVD_CANT)) + + + Next + Listo3 =1 + + If PB1.Progress = 0 Then + PB1.Progress = 30 + S_CH.Text = "CARGANDO" + ELSE If PB1.Progress = 30 Then + PB1.Progress = 50 + ELSE IF PB1.Progress = 50 Then + PB1.Progress = 80 + ELSE If PB1.Progress = 80 Then + + PB1.Progress = 100 + S_CH.Text = "LISTO" + End If + + 'ToastMessageShow("Venta historico Actualizado." , True) + + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + Activity_Resume + img2.Visible=False + EJECUTANDO=0 + + End If + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "variables" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim Cat_Va_Descripcion As String = records(RESULT.Columns.Get("CAT_VA_DESCRIPCION")) + Dim Cat_Va_Valor As String = records(RESULT.Columns.Get("CAT_VA_VALOR")) + + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object (Cat_Va_Descripcion, Cat_Va_Valor)) + + + Next + End If + End If + + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "valida_pedido" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP")) + + If cuantos_pedido < = CUANTOSP Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" + S_CP.Text = "INFO OK" + i_gif.Visible = False + Else + ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True) + S_CP.Text = "ENVIAR DATOS (K-2)" + End If + + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "valida_pedidoc" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC")) + + If cuantos_pedidosc = CUANTOSC Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" + Else + ToastMessageShow("No se cargo bien la info C. Sync Nuevamente" & CUANTOSC & " " & cuantos_pedidosc, True) + + End If + + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "valida_noventa" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN")) + + If cuantos_noventa = CUANTOSN Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" + Else + ToastMessageShow("No se cargo bien la info N. Sync Nuevamente" & CUANTOSN & " " & cuantos_noventa, True) + + End If + + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "ins_pedido" Then 'query tag + For Each records() As Object In RESULT.Rows + + PB2.Progress = PB2.Progress + 5 + '' S_CP.Text = "SUBIENDO" + + Next + PB2.Progress = 100 + S_CP.Text = "LISTO" + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "version" Then 'query tag + For Each records() As Object In RESULT.Rows + skmt.ExecNonQuery("delete from VERSION") + Dim CAT_VE_VERSION As String = records(RESULT.Columns.Get("CAT_VE_VERSION")) + + skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION)) + + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "count_cli" Then 'query tag + For Each records() As Object In RESULT.Rows + + COUNT_CLIE = records(RESULT.Columns.Get("COUNT_CLIE")) + + + + + Next + End If + End If + '' PEDIDO + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "pedido_env" Then 'query tag + skmt.ExecNonQuery("delete from telefonos") + + For Each records() As Object In RESULT.Rows + + Dim FOLIO_PE As String = records(RESULT.Columns.Get("FOLIO")) + + skmt.ExecNonQuery2("INSERT INTO telefonos (PR_CD_CREDITO) VALUES (?)", Array As Object (FOLIO_PE)) + + + + + Next + PASO_info = 1 + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "ruta" Then 'query tag + +' cargar.Visible = True +' Subir.Visible = True +' SUBIR_P.Visible = True +' inv.Visible = True +' connecta.Visible = False +' If conn = "1" Then +' ToastMessageShow("Existe Conexión con el Servidor." , True) +' End If + + For Each records() As Object In RESULT.Rows + Dim VALIDO As String = records(RESULT.Columns.Get("VALIDO")) + If VALIDO = "OK" Then + cargar.Visible = True + Subir.Visible = True + SUBIR_P.Visible = True + inv.Visible = True + connecta.Visible = False + If conn = "1" Then + ToastMessageShow("Existe Conexión con el Servidor." , True) + End If + Else + cargar.Visible = False + Subir.Visible = False + SUBIR_P.Visible = False + inv.Visible = False + connecta.Visible = False + End If + Next + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "usuario" Then 'query tag + + For Each records() As Object In RESULT.Rows + Dim name2 As String = records(RESULT.Columns.Get("VALIDO")) + + + Next + If name2 = "OK" Then + PASO = 1 + End If + P1.Visible = False + End If + End If + + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "fecha" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim FECHA_HOY As String = records(RESULT.Columns.Get("FECHA")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",FECHA_HOY)) + + Next + + End If + End If + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "folio" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim FOLIO As String = records(RESULT.Columns.Get("FOLIO")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FOLIO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FOLIO",FOLIO)) + + Next + + End If + End If + 'perfil + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "perfil" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim PERFIL As String = records(RESULT.Columns.Get("PERFIL")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("PERFIL")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("PERFIL",PERFIL)) + + Next + + End If + End If + ' marcas + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "marcas" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim MARCAS As String = records(RESULT.Columns.Get("MARCAS")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MARCAS")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MARCAS",MARCAS)) + + Next + + End If + End If + ' SUCURSAL + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "sucursal" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim SUCURSAL As String = records(RESULT.Columns.Get("SUCURSAL")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SUCURSAL")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SUCURSAL",SUCURSAL)) + + Next + + End If + End If + ' cambios + + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "cat_cambios" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAMBIOS As String = records(RESULT.Columns.Get("CAT_VA_VALOR")) + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("CAMBIOS")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CAMBIOS",CAMBIOS)) + + Next + + End If + End If + + ' precios + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "precios" Then 'query tag + For Each records() As Object In RESULT.Rows + + Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID")) + Dim CAT_GP_PRECIO As String = records(RESULT.Columns.Get("CAT_GP_PRECIO")) + Dim CAT_GP_PRECIO1 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO1")) + Dim CAT_GP_PRECIO2 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO2")) + Dim CAT_GP_PRECIO3 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO3")) + Dim CAT_GP_PRECIO4 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO4")) + Dim CAT_GP_PRECIO5 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO5")) + Dim CAT_GP_PRECIO6 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO6")) + Dim CAT_GP_PRECIO7 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO7")) + Dim CAT_GP_PRECIO8 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO8")) + Dim CAT_GP_PRECIO9 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO9")) + Dim CAT_GP_PRECIO10 As String = records(RESULT.Columns.Get("CAT_GP_PRECIO10")) + + + skmt.ExecNonQuery2("INSERT INTO CAT_PRECIOS(CAT_GP_ID,CAT_GP_PRECIO, CAT_GP_PRECIO1,CAT_GP_PRECIO2,CAT_GP_PRECIO3,CAT_GP_PRECIO4,CAT_GP_PRECIO5,CAT_GP_PRECIO6,CAT_GP_PRECIO7,CAT_GP_PRECIO8,CAT_GP_PRECIO9, CAT_GP_PRECIO10) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_PRECIO, CAT_GP_PRECIO1,CAT_GP_PRECIO2,CAT_GP_PRECIO3,CAT_GP_PRECIO4,CAT_GP_PRECIO5,CAT_GP_PRECIO6,CAT_GP_PRECIO7,CAT_GP_PRECIO8,CAT_GP_PRECIO9,CAT_GP_PRECIO10)) + + Next + skmt.ExecNonQuery("delete from LISTA_PRECIOS") + skmt.ExecNonQuery(" insert into LISTA_PRECIOS(PRECIO, CAT_GP_ID, NLISTA) select cat_gp_precio as precio, cat_gp_id, '1' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO1 As precio, CAT_GP_ID, '2' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO2 As precio, CAT_GP_ID, '3' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO3 As precio, CAT_GP_ID, '4' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO4 As precio, CAT_GP_ID, '5' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO5 As precio, CAT_GP_ID, '6' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO6 As precio, CAT_GP_ID, '7' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO7 As precio, CAT_GP_ID, '8' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO8 As precio, CAT_GP_ID, '9' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO9 As precio, CAT_GP_ID, '10' as NLISTA from CAT_PRECIOS union Select CAT_GP_PRECIO10 As precio, CAT_GP_ID, '11' as NLISTA from CAT_PRECIOS") + + ' ToastMessageShow("LISTA DE PRECIOS OK LISTA DE PRECIOS OK", True) + End If + End If + + Job.Release + + End If + +End Sub + +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(Main) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub + +Sub GPS_LocationChanged (Location1 As Location) +' lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +' lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + +Sub connecta_Click +' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("RUTA")) +' c.Position =0 +' If c.GetString("CAT_VA_VALOR") = l_ruta.Text Then + ime.HideKeyboard + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "UPDATE_DURK_ACTUAL2_GPS" + cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text ) + reqManager.ExecuteCommand(cmd,"inst_visitas") + + connecta1 = connecta1 + 1 + imei = p.GetDeviceId + conn = "1" + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_version_DUR" + reqManager.ExecuteQuery(cmd , 0, "version") + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_ruta_DUR2" + cmd.Parameters = Array As Object(ALMACEN,e_ruta.text,imei) + Log($"${ALMACEN},${e_ruta.text},${imei}"$) + reqManager.ExecuteQuery(cmd , 0, "ruta") + + If e_ruta.Text = "ROOT" Then + cargar.Visible = True + Subir.Visible = True + SUBIR_P.Visible = True + e_ruta.Text = "" + End If + ToastMessageShow("Validando Conexión." , True) +' Else +' Msgbox("LA RUTA NO ES CORRECTA","") +' End If +End Sub + +Sub BUSCA_Click + StartActivity(BUSCAR) +End Sub + +Sub b_mapa_Click + StartActivity(mapas) +End Sub + +Sub e_ruta_EnterPressed + If e_ruta.Text = "FIN DIA" Then + RES = Msgbox2("Seguro que desa hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If RES = DialogResponse.POSITIVE Then + + e_ruta.Text = "" + skmt.ExecNonQuery("delete from pedido_cliente") + skmt.ExecNonQuery("delete from pedido") + skmt.ExecNonQuery("delete from noventa") + skmt.ExecNonQuery("delete from clie_act") + skmt.ExecNonQuery("delete from kmt_info") + skmt.ExecNonQuery("delete from cat_gunaprod") + skmt.ExecNonQuery("delete from cat_gunaprod2") + + skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") + skmt.ExecNonQuery("delete from HIST_VENTAS") + skmt.ExecNonQuery("delete from HIST_VERIFICACION") + skmt.ExecNonQuery("delete from HIST_ENCUESTA") + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0)) + + + + Activity_Resume + End If + End If + If e_ruta.Text = "HUGO" Then + trabajar.Visible = False + B_PROXIMA.Visible =False + Btn_UbicarR.Visible=False + + NUEVO.Visible =False + BUSCA.Visible=False + connecta.Visible=False + img3.Visible =True + Resumen.Visible= False + + End If + +End Sub +Sub inv_Click + img2.Visible =True + EJECUTANDO = 1 + inve = 1 + skmt.ExecNonQuery("delete from cat_gunaprod") + skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") + + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + + cmd.Initialize + cmd.Name = "select_cat_gunaprod_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprod") + + cmd.Initialize + cmd.Name = "select_cat_paquetes_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "gunaprodp") + + cmd.Initialize + cmd.Name = "select_cat_detallepa_DUR" + cmd.Parameters = Array As Object(ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "detallepaq") + + cargar.Visible = False + Subir.Visible = False + SUBIR_P.Visible = False + connecta.Visible = True + inv.Visible = False + ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias" , True) + +End Sub +Sub t1_tick + + cmd.Initialize + cmd.Name = "select_cuantos_pedido_DUR" + cmd.Parameters = Array As Object(ALMACEN,l_ruta.text) + reqManager.ExecuteQuery(cmd , 0, "valida_pedido") + + T3.Initialize("T3", 5000) ' 1000 = 1 second + T3.Enabled = True + Wait For t3_tick + '' +' +' cmd.Initialize +' cmd.Name = "select_cuantos_noventa_DUR" +' cmd.Parameters = Array As Object(ALMACEN,l_ruta.text) +' reqManager.ExecuteQuery(cmd , 0, "valida_noventa") +' +' cmd.Initialize +' cmd.Name = "select_cuantos_pedidoc_DUR" +' cmd.Parameters = Array As Object(ALMACEN,l_ruta.text) +' reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc") +' + If PB2.Progress = 0 Then + S_CP.Text = "ENVIAR DATOS (K-1)" + End If + img2.Visible=False + t1.Enabled = False +End Sub +Sub B_OK_PAS_Click + + If CARGA = "SUBIR" And S_CP.Text = "INFO OK" Then + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) + c.Position =0 + PERFIL = c.GetString("CAT_VA_VALOR") + c.Close + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("NUMERO_PEDIDO")) + c.Position =0 + NUMERO_PEDIDO = c.GetString("CAT_VA_VALOR") + c.Close + + If PERFIL = "V-ESPECIAL" Then + skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO")) + skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",NUMERO_PEDIDO + 1)) + End If + P1.Visible = False + trabajar.Visible = True + B_PROXIMA.Visible =True + Btn_UbicarR.Visible=True + + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + img2.Visible=False + Else If CARGA = "SUBIR" And S_CP.Text = "ERROR" Then + Msgbox("Tiene que subir de nuevo la información","Atención") + P1.Visible = False + trabajar.Visible = True + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + img2.Visible=False + + Else if CARGA = "SUBIR" And S_CP.Text <> "INFO OK" Then + RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If RES = DialogResponse.POSITIVE Then + P1.Visible = False + trabajar.Visible = True + B_PROXIMA.Visible =True + Btn_UbicarR.Visible=True + + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + img2.Visible=False + ExitApplication + End If + + End If + + If CARGA = "CARGAR" And S_CP.Text = "LISTO" And S_CC.Text = "LISTO" And S_CH.Text = "LISTO" Then + + P1.Visible = False + trabajar.Visible = True + B_PROXIMA.Visible =True + Btn_UbicarR.Visible=True + + + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + img2.Visible=False + Activity_Resume + Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then + RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If RES = DialogResponse.POSITIVE Then + P1.Visible = False + trabajar.Visible = True + B_PROXIMA.Visible =True + Btn_UbicarR.Visible=True + + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + img2.Visible=False + skmt.ExecNonQuery("delete from kmt_info") + skmt.ExecNonQuery("delete from cod_result") + skmt.ExecNonQuery("delete from hist_gest") + skmt.ExecNonQuery("delete from cat_gunaprod") + skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") + skmt.ExecNonQuery("delete from telefonos") + skmt.ExecNonQuery("delete from HIST_VENTAS") + skmt.ExecNonQuery("delete from HIST_PROMOS") + skmt.ExecNonQuery("delete from HIST_CLIENTE_CANT_PROMOS") + skmt.ExecNonQuery("delete from PROMOS_COMP") + skmt.ExecNonQuery("delete from CAT_VERIFICACION") + ExitApplication + End If + + End If + + + '------------- + '------------- TODO ESTE CODIGO ES PARA CUANDO APLICAN DESUCENTOS. + ' + ' Dim cmd As DBCommand' +' cmd.Initialize +' cmd.Name = "select_usuario_guna_super_DUR" +' cmd.Parameters = Array As Object(USUARIO1.Text, CLAVE.Text) +' reqManager.ExecuteQuery(cmd , 0, "usuario") + 'If PASO = 1 Then + 'c=skmt.ExecQuery("select usuario from usuarioa") + '' c.Position = 0 +' usuario = c.GetString("USUARIO") +' c.Close + ' PEDIO_CLIENTE +' c=skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN FROM PEDIDO_CLIENTE ") +' d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ") +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_pedidos_DUR" +' cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"),C.GetString("PC_FECHA"),C.GetString("PC_USER"),C.GetString("PC_NOART"),C.GetString("PC_MONTO"),C.GetString("PC_LON"),C.GetString("PC_LAT"),ALMACEN,l_ruta.text,C.GetString("PC_COSTO_SIN") ) +' reqManager.ExecuteQuery(cmd , 0,"inst_pedidos") + ' +' Next +' c.Close +' End If +' d.Position=0 +' cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC") +' d.Close +' +' ' PEDIO +' c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC FROM PEDIDO") +' d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") +' +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_pedido_DUR" +' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC")) +' reqManager.ExecuteQuery(cmd , 0, "ins_pedido") + ' +' Next +' c.Close +' End If +' d.Position=0 +' cuantos_pedido = D.GetString("CUANTOS_PEDIDO") +' d.Close +' +' ' NOVENTA +' c=skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") +' D=skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") +' +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_noventa_DUR" +' cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), ALMACEN, l_ruta.Text) +' reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + ' +' Next +' c.Close +' End If +' d.Position=0 +' cuantos_noventa = D.GetString("CUANTOS_NOVENTA") +' d.Close +' +' ' DROP + ' + ' t1.Initialize("T1", 60000) ' 1000 = 1 second + ' t1.Enabled = True + 'Dim cmd As DBCommand + 'cmd.Initialize +' cmd.Name ="insert_drop_DUR" +' cmd.Parameters = Array As Object(usuario,l_ruta.Text,fecha, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text) +' reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + ' img2.Visible =True +' +' +' +' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) + ' + 'USUARIO1.Text = "" + 'CLAVE.Text = "" + ' End If + ' +' Awake.KeepAlive(False) +End Sub + +Sub NUEVO_Click + StartActivity(nuevocliente) +End Sub + +Sub B_OK_RES_Click + trabajar.Visible = True + B_PROXIMA.Visible =True + Btn_UbicarR.Visible=True + + NUEVO.Visible =True + BUSCA.Visible=True + connecta.Visible=True + Resumen.Visible= True + P_RESUMEN.Visible=False +End Sub + +Sub Resumen_Click + P_RESUMEN.Visible = True + trabajar.Visible = False + B_PROXIMA.Visible =False + Btn_UbicarR.Visible=False + + NUEVO.Visible =False + BUSCA.Visible=False + connecta.Visible=False + Subir.Visible=False + SUBIR_P.Visible = False + cargar.Visible=False + Resumen.Visible= False + + b=skmt.ExecQuery("Select count(*) as CUANTOS from pedido_cliente where pc_cliente <> 0") + b.Position=0 + Cuantos = b.GetString("CUANTOS") + ToastMessageShow(Cuantos , True) + + d=skmt.ExecQuery("select count(*) as TOTAL_VISITAR from kmt_info where gestion = 0 and cat_cl_codigo <> 0") + D.Position=0 + b.Close + e=skmt.ExecQuery("select count(*) as POR_VISITAR from kmt_info where cat_cl_codigo <> 0") + e.Position=0 + f=skmt.ExecQuery("select count(*) as CAT_CL_RUTA from kmt_info where cat_cl_codigo <> 0") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + If l_ruta.Text = 0 Then + l_ruta.Text =0 + Else + f=skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") + f.Position=0 + l_ruta.Text = f.GetString("CAT_CL_RUTA") + f.Close + End If + If Cuantos = 0 Then + L_MONTOD.Text =0 + l_cuantosc.Text = 0 + l_cuantosn.Text = 0 + drop = 0 + l_drop.Text = 0 + efectiva = 0 + l_efectiva.text =0 + l_ctast.Text = d.GetString("TOTAL_VISITAR") + l_porvisitar.Text = e.GetString("POR_VISITAR") + d.Close + e.Close + Else + C=skmt.ExecQuery2("select count(*) as CUANTOS FROM CAT_GUNAPROD WHERE CAT_GP_CLASIF = ? ", Array As String ("KELLOGGS")) + c.Position = 0 + Log("Cuantos=" & Cuantos) + If c.GetString("CUANTOS") > 0 Then + Log("Entramos") + ImageView12.Bitmap = LoadBitmap(File.DirAssets, "k.png") + c=skmt.ExecQuery2("select sum(pe_cant) as CAMBIOS from pedido where substr(pe_pronombre,1,6) = ?", Array As String("CAMBIO")) + c.Position = 0 + l_cambios.Text = c.GetString("CAMBIOS") + c.Close + c=skmt.ExecQuery("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2' union Select CAT_GP_ID from cat_gunaprod2 where CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2')") + c.Position = 0 + l_monto_k.Text = c.GetString("MONTO_DIA") + c.Close + c=skmt.ExecQuery("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'PRINGLES' union Select CAT_GP_ID from cat_gunaprod2 where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'PRINGLES')") + c.Position = 0 + l_monto_kp.Text = c.GetString("MONTO_DIA") + Log("Pringles=" & l_monto_kp.text) + If l_monto_kp.Text = "null" Then + l_monto_kp.Text = "0" + End If + c.Close + c=skmt.ExecQuery("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'SNACK' union Select CAT_GP_ID from cat_gunaprod2 where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'SNACK')") + c.Position = 0 + l_monto_ks.Text = c.GetString("MONTO_DIA") + c.Close + Log("Snacks=" & l_monto_ks.text) + c=skmt.ExecQuery("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'CEREAL' union Select CAT_GP_ID from cat_gunaprod2 where (CAT_GP_CLASIF = 'KELLOGGS' Or CAT_GP_CLASIF = 'KELLOGGS 2') And CAT_GP_TIPO = 'CEREAL')") + c.Position = 0 + l_monto_kc.Text = c.GetString("MONTO_DIA") + c.Close + Log("Cereal=" & l_monto_kc.text) + + Else + ImageView12.Bitmap = LoadBitmap(File.DirAssets, "unilever.jpg") + c=skmt.ExecQuery2("select sum(pe_cant) as CAMBIOS from pedido where substr(pe_pronombre,1,6) = ?", Array As String("CAMBIO")) + c.Position = 0 + l_cambios.Text = c.GetString("CAMBIOS") + c.Close + + c=skmt.ExecQuery("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where CAT_GP_CLASIF = 'UNILEVER' union Select CAT_GP_ID from cat_gunaprod2 where CAT_GP_CLASIF = 'UNILEVER')") + c.Position = 0 + l_monto_k.Text = c.GetString("MONTO_DIA") + c.Close + + l_monto_kp.Text = "0" + l_monto_ks.Text = "0" + End If + + Log($"${l_monto_k.text}, ${l_monto_kp.text}, ${l_monto_ks.text}"$) + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("VENTA")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("VENTA")) + c.Position = 0 + L_VENTA.Text = c.GetString("MONTO_DIA") + c.Close + Else + L_VENTA.Text = 0 + End If + E1.Close + + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("PREVENTA")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("PREVENTA")) + c.Position = 0 + L_PREVENTA.Text = c.GetString("MONTO_DIA") + c.Close + Else + L_PREVENTA.Text = 0 + End If + E1.Close + + + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO")) + c.Position = 0 + L_ABORDO.Text = c.GetString("MONTO_DIA") + c.Close + Else + L_ABORDO.Text = 0 + End If + E1.Close + +' c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_CLIENTE <> 0 and pe_proid in (Select CAT_GP_ID from cat_gunaprod where (CAT_GP_CLASIF = ? Or CAT_GP_CLASIF = ?) And CAT_GP_TIPO = ?)", Array As String("KELLOGGS", "KELLOGGS 2","SNACK")) +' c.Position = 0 +' l_monto_ks.Text = c.GetString("MONTO_DIA") +' c.Close + + c=skmt.ExecQuery("select sum(pc_monto) as MONTO_DIA, count(pc_cliente) AS CLIENTES_DIA from pedido_cliente where pc_cliente <> 0") + b=skmt.ExecQuery("select count(*) as CUANTOS from noventa") + 'where pc_fecha = ?", Array As String(fecha) + C.Position=0 + b.Position=0 + L_MONTOD.Text = c.GetString("MONTO_DIA") + l_cuantosc.Text = c.GetString("CLIENTES_DIA") + l_cuantosn.Text = b.GetString("CUANTOS") + efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR") + l_efectiva.text = Round2(efectiva*100,2) + l_ctast.Text = d.GetString("TOTAL_VISITAR") + l_porvisitar.Text = e.GetString("POR_VISITAR") + L_CUANTOST.Text = l_cuantosc.Text + l_cuantosn.Text + drop = (c.GetString("CLIENTES_DIA") + b.GetString("CUANTOS"))/ d.GetString("TOTAL_VISITAR") + l_drop.Text = Round(drop * 100) + If l_drop.Text + l_efectiva.Text < 100 Then + ImageView3.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png") + Else If l_drop.Text + l_efectiva.Text > = 100 And l_drop.Text + l_efectiva.Text < 130 Then + ImageView3.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png") + Else + ImageView3.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png") + End If + L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")),2) + If c.GetString("MONTO_DIA") < 2500 Then + ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png") + Else if c.GetString("MONTO_DIA") > = 2500 And c.GetString("MONTO_DIA") < 4000 Then + ImageView5.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png") + Else + ImageView5.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png") + End If + + c.Close + b.Close + End If + + +End Sub + +Sub B_PROXIMA_Click + skmt.ExecNonQuery("delete from CUENTAA") + skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0")) + Main.tipov = "ABORDO" + StartActivity(colonia2) +End Sub + + + +Sub Timer_GIF1_Tick + Timer_GIF1.Enabled = False + Frame1 = Frame1 + 1 + If Frame1 >= gif1.FrameCount Then + Frame1 = 0 + End If + Timer_GIF1.Interval = gif1.Delay(Frame1) + i_gif.Bitmap = gif1.Frame(Frame1) + Timer_GIF1.Enabled = True +End Sub + +Sub load_gif + + gif1.DisposeFrames + + + gif1.Load(ruta, "espera.gif") + Frame1 = 0 + + + Timer_GIF1.Interval = gif1.Delay(Frame1) + i_gif.Bitmap = gif1.Frame(Frame1) + + Timer_GIF1.Initialize("TG", 40) ' 1000 = 1 second + + Timer_GIF1.Enabled = True + + + + gif1.SaveFrame(0, ruta, "frame1.png", "P", 85) + gif1.SaveFrame(0, ruta, "frame1.jpg", "J", 85) + +End Sub + +Sub VALIDA_INFO + + cmd.Initialize + cmd.Name = "select_datos_enviados_pe" + cmd.Parameters = Array As Object(ALMACEN, e_ruta.Text) + reqManager.ExecuteQuery(cmd , 0, "pedido_env") + PASO_info = 0 + + For I = 0 To 2 + T3.Initialize("T3", 8000) ' 1000 = 1 second + T3.Enabled = True + Wait For t3_tick + If PASO_info = 0 Then + I = 0 + End If + Next + +End Sub + + +Sub B_MARCAS_Click + Panel5.Visible = True + + pnlTitle.Visible = False + pnlTitle.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight + DividerHeight) + pnlTitle.LoadLayout("CellTitle") + c=skmt.ExecQuery("Select CAT_GP_CLASIF, SUM(TOTAL) AS TOTAL FROM TOTAL_MARCAS GROUP BY CAT_GP_CLASIF") + CLV1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + AddTitle(c.GetString("CAT_GP_CLASIF")) + CLV1.AddTextItem("TOTAL VENTA Y PREVENTA = $" & c.GetString("TOTAL"),"1") + + Next + End If +End Sub +Sub AddTitle (Title As String) + Dim p_MARCAS As B4XView = xui.CreatePanel("") + p_MARCAS.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight) + p_MARCAS.LoadLayout("CellTitle") + lblTitle.Text = Title + Dim td As TitleData + td.Title = Title + CLV1.Add(p_MARCAS, td) +End Sub + + +Sub B_OK_PANEL5_Click + Panel5.Visible = False + +End Sub + +Sub e_ruta_TextChanged (Old As String, New As String) + Dim validChars As String ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " + Try + If validChars.Contains(New.SubString(New.Length-1)) = False Then + e_ruta.Text = New.SubString2(0, New.Length-1) + e_ruta.SelectionStart = e_ruta.Text.Length + End If + Catch + Log(LastException) + End Try +End Sub + +Sub Btn_UbicarR_Click + c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MARCAS")) + c.Position =0 + MARCASQ = c.GetString("CAT_VA_VALOR") + c.Close + skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_CLASIF NOT IN (" & MARCASQ &")" ) + skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_DP_ID FROM CAT_DETALLES_PAQ WHERE CAT_DP_IDPROD NOT IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD))") + StartActivity(MAPA_RUTAS) +End Sub + +Sub SUBIR_P_Click + Awake.KeepAlive(True) + CARGA = "SUBIR" + P1.Visible = True + trabajar.Visible = False + B_PROXIMA.Visible =False + Btn_UbicarR.Visible=False + + NUEVO.Visible =False + BUSCA.Visible=False + connecta.Visible=False + Subir.Visible=False + SUBIR_P.Visible = False + + cargar.Visible=False + L_P_1.Visible = False + S_CC.Visible = False + L_P_3.Visible = False + S_CH.Visible = False + PB1.Visible = False + Resumen.Visible= False + + L_P_2.Text = "Envio de Pedidos" + L_P_3.Text = "Envio de Pedidos" + S_CH.Text = "EN PROCESO" + S_CP.Text = "EN PROCESO" + PB1.Progress = 0 + PB2.Progress = 0 + PB2.Visible = True + conteo = 0 + 'i_gif.Visible = True +' load_gif + + PASO = 1 + 'End If + If PASO =1 Then + E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO")) + E1.Position = 0 + If E1.GetString("CUANTOS") > 0 Then + + c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO")) + c.Position = 0 + L_ABORDO.Text = c.GetString("MONTO_DIA") + c.Close + Else + L_ABORDO.Text = 0 + End If + E1.Close + + + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)") + + c=skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + d3=skmt.ExecQuery("SELECT SUM(PE_COSTO_TOT) as MONTO FROM PEDIDO") + d3.Position = 0 + Dim cmd As DBCommand + cmd.Initialize + cmd.Name ="UPDATE_INFO_E_DURK" + cmd.Parameters = Array As Object(d3.GetDouble("MONTO")- L_ABORDO.text, L_ABORDO.Text, d3.GetDouble("MONTO"),l_ruta.TEXT, ALMACEN) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name ="insert_drop2_DUR" + cmd.Parameters = Array As Object(usuario,l_ruta.Text,fecha, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO", ALMACEN, L_VENTA.Text, L_PREVENTA.Text, L_ABORDO.Text, l_cambios.TEXT) + reqManager.ExecuteQuery(cmd , 0, "inst_noventa") + d3.Close + cuantos_pedidosc = 0 + + + ' PEDIO + + skmt.ExecNonQuery("update PEDIDO set PE_FOLIO = rowid ") + + ' +' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FOLIO")) +' c.Position =0 + ' armafolio = l_ruta.text * 1000000 +' armafolio = armafolio + c.GetString("CAT_VA_VALOR") +' c.Close +' c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC,PE_TIPO FROM PEDIDO WHERE PE_FOLIO IS NULL") +' +' +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' skmt.ExecNonQuery2("update PEDIDO set PE_FOLIO = ? where PE_PROID = ? AND PE_CLIENTE =? AND PE_FECHA =? AND PE_FOLIO IS NULL ", Array As Object(armafolio, c.GetString("PE_PROID"), c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"))) + ' +' armafolio = armafolio + 1 +' +' Next +' c.Close +' End If + ' armafolio = armafolio - (l_ruta.Text * 1000000) + ' skmt.ExecNonQuery2("update CAT_VARIABLES set CAT_VA_VALOR = ? where CAT_VA_DESCRIPCION = ? ", Array As Object(armafolio,"FOLIO")) +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "update_folio" +' cmd.Parameters = Array As Object(armafolio,l_ruta.Text , "1") +' reqManager.ExecuteQuery(cmd , 0, "folio") + + + + c=skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO,PE_TIPO FROM PEDIDO WHERE PE_CLIENTE = 0") + d=skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO WHERE PE_CLIENTE = 0") + d.Position=0 + TIEMPO = 0 + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + TIEMPO = TIEMPO + 1 + + If TIEMPO > 20 Then + If L_P_2.Text = "Envio de Pedidos" Then + L_P_2.Text = "Envio de Pedidos --" + else if L_P_2.Text = "Envio de Pedidos --" Then + L_P_2.Text = "Envio de Pedidos \" + else if L_P_2.Text = "Envio de Pedidos \" Then + L_P_2.Text = "Envio de Pedidos |" + else if L_P_2.Text = "Envio de Pedidos |" Then + L_P_2.Text = "Envio de Pedidos /" + else if L_P_2.Text = "Envio de Pedidos /" Then + L_P_2.Text = "Envio de Pedidos --" + End If + T3.Initialize("T3", 2000) ' 1000 = 1 second + T3.Enabled = True + Wait For t3_tick + TIEMPO = 0 + + End If + conteo = conteo + 1 + cuantos_ped = D.GetString("CUANTOS_PEDIDO") + PORCENTAJE = 2 'Round(100/ (D.GetString("CUANTOS_PEDIDO") + 1)) + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido_DUR" + cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO")) + reqManager.ExecuteQuery(cmd , 0, "ins_pedido") + + Next + c.Close + End If + + + + cuantos_pedido = D.GetString("CUANTOS_PEDIDO") + d.Close + + + t1.Initialize("T1", 20000) ' 1000 = 1 second + t1.Enabled = True + + img2.Visible =True + + + ' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) + If S_CP.Text = "SUBIENDO" Then + S_CP.Text = "VALIDANDO" + End If + + + End If + +End Sub + +Sub b_e_resumen_Click + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "UPDATE_DURK_ACTUAL2_GPS" + cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text ) + reqManager.ExecuteCommand(cmd,"inst_visitas") +End Sub \ No newline at end of file diff --git a/tarjeta.bas b/tarjeta.bas new file mode 100644 index 0000000..55ee963 --- /dev/null +++ b/tarjeta.bas @@ -0,0 +1,340 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim skmt As SQL + Dim g As GPS + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String + +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + Dim c As Cursor + Dim d As Cursor + Dim ruta As String + Dim Regresar As Button + + + Dim ListView1 As ListView + Dim L_CANT As Label + Dim L_TOTAL As Label + Dim borra As Button + Dim Existe As String + Dim result As String +' Dim lat_gps, lon_gps As String + Dim DESC As String + + Private Titulo As Label + Private b_desc As Button + Dim DESCUENTO As String + Dim folio As String + Dim TIPO As String +End Sub + +Sub Activity_Create(FirstTime As Boolean) + If(FirstTime) Then + g.Initialize("GPS") + End If + ruta = File.DirInternal + Activity.LoadLayout("tarjeta") + borra.Visible = True + Titulo.Text = "Pedido Actual" + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + + skmt.Initialize(ruta,"kmt.db", True) + skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null") + c=skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)") + C.Position=0 + Existe = C.GetString("EXISTE") + C.Close + c=skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("PE_PRONOMBRE"),"Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO")) + folio = c.GetString("PE_FOLIO") + Next + End If + If Existe <> 0 Then + c=skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") + C.Position=0 + L_CANT.Text = c.GetString("PC_NOART") + L_TOTAL.Text = c.GetString("PC_MONTO") + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + + 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia")) + ' Next + 'End If + +End Sub + +Sub Activity_Resume +If g.GPSEnabled=False Then + ToastMessageShow("Habilitar el GPS", True) + StartActivity(g.LocationSettingsIntent) + Else + g.Start(0,0) +End If + +L_CANT.Text ="" +L_TOTAL.Text="" + skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null") + + c=skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)") + C.Position=0 + Existe = C.GetString("EXISTE") + C.Close + c=skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc") + ListView1.Clear + + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 10 + label2.TextColor = Colors.Blue + ListView1.AddTwoLines(c.GetString("PE_PRONOMBRE"),"Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO")) + folio = c.GetString("PE_FOLIO") + Next + End If + If Existe <> 0 Then + c=skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") + C.Position=0 + L_CANT.Text = c.GetString("PC_NOART") + L_TOTAL.Text = c.GetString("PC_MONTO") + c.Close + c=skmt.ExecQuery("select SUM(IFNULL(PE_DESC,0)) AS DESCUENTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + DESC = c.GetString("DESCUENTO") + 'If L_TOTAL.Text > 1000 And DESC = 0 Then + + 'b_desc.Visible = True + 'b_desc.Text = "- 5% DESC" + 'DESCUENTO = "MENOS" + 'Else if L_TOTAL.Text > 1000 Then + 'b_desc.Visible = True + 'b_desc.Text = "Cancela Desc" + 'DESCUENTO = "MAS" + 'Else + b_desc.Visible = False + + 'End If + End If + 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT") + + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + +Sub GPS_LocationChanged (Location1 As Location) +'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) +'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + + + +Sub Regresar_Click + StartActivity(fila) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub +Sub borra_Click +If folio <> "" Then + result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If result = DialogResponse.POSITIVE Then + + c=skmt.ExecQuery("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + + TIPO = c.GetString("PE_TIPO") + If c.GetString("PE_TIPO") = "VENTA" Then + skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID"))) + Else + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID"))) + End If + Next + End If + + + skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") + skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)") + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + Activity_Resume + End If +Else +Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") +End If + +End Sub +Sub ListView1_ItemLongClick (Position As Int, Value As Object) + result = Msgbox2("Seguro que desa borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + + If result = DialogResponse.POSITIVE Then + +' If TIPO = "VENTA" Then +' c=skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod2 where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value)) +' Else +' c=skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value)) +' End If + c=skmt.ExecQuery2("SELECT COUNT(*) as CUANTOS FROM PEDIDO WHERE pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3 ", Array As String(Value)) + c.Position=0 + If c.GetString("CUANTOS") > 0 Then + + d=skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3", Array As String(Value)) + + If d.RowCount>0 Then + For i=0 To d.RowCount -1 + d.Position=i + TIPO = d.GetString("PE_TIPO") + If d.GetString("PE_TIPO") = "VENTA" Then + skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID"))) + Else + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID"))) + End If + Next + End If + d.Close + + + skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value)) + Else + d=skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value)) + d.Position = 0 + + TIPO = d.GetString("PE_TIPO") + If d.GetString("PE_TIPO") = "VENTA" Then + skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID"))) + Else + skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID"))) + End If + d.Close + + + skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value)) + End If + + + + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + If c.GetString("CUANTOS") > 0 Then + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps)) + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + Else + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)") + End If + Activity_Resume + + + End If +End Sub +Sub b_desc_Click + If DESCUENTO = "MENOS" Then + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + c.Close + result = Msgbox2("Seguro que desa dar descuento del 5%?","Dar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If result = DialogResponse.POSITIVE Then + skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT * .95, PE_DESC = 5 WHERE PE_CLIENTE In (select cuenta from cuentaa)") + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps)) + c.Close + Activity_Resume + End If + ELSE IF DESCUENTO = "MAS" Then + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + c=skmt.ExecQuery("Select CUENTA from cuentaa") + c.Position=0 + clie_id = c.GetString("CUENTA") + c.Close + c=skmt.ExecQuery("select USUARIO from usuarioa") + c.Position=0 + usuario = c.GetString("USUARIO") + c.Close + result = Msgbox2("Seguro que desa CANCELAR el descuento?","Cancelar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) + If result = DialogResponse.POSITIVE Then + skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT / .95, PE_DESC = 0 WHERE PE_CLIENTE In (select cuenta from cuentaa)") + c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + c.Position=0 + skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") + skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"),Main.lon_gps, Main.lat_gps)) + c.Close + Activity_Resume + End If + End If +End Sub \ No newline at end of file diff --git a/telefonos.bas b/telefonos.bas new file mode 100644 index 0000000..e977c9c --- /dev/null +++ b/telefonos.bas @@ -0,0 +1,128 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Activity +Version=6.8 +@EndOfDesignText@ +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Dim skmt As SQL +End Sub + +Sub Globals + 'These global variables will be redeclared each time the activity is created. + 'These variables can only be accessed from this module. + + Dim c As Cursor + Dim ruta As String + + Dim Regresa As Button + + Dim Agrega As Button + Dim e_atiende1 As EditText + Dim e_atiende2 As EditText + Dim e_tel As EditText + Dim e_email As EditText + Dim e_edo As EditText + Dim e_mpo As EditText + Dim e_cp As EditText +End Sub + +Sub Activity_Create(FirstTime As Boolean) + 'Do not forget to load the layout file created with the visual designer. For example: + 'Activity.LoadLayout("Layout1") + ruta = File.DirInternal + Activity.LoadLayout("telefonos") + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + e_edo.Text = c.GetString("CAT_CL_EDO") + If e_edo.Text <> "" Or e_edo.text <> "null" Then + e_edo.Enabled = False + End If + e_cp.Text = c.GetString("CAT_CL_CP") + If e_cp.Text <> "" Then + e_cp.Enabled = False + End If + e_mpo.Text = c.GetString("CAT_CL_MUNI") + If e_mpo.Text <> "" Then + e_mpo.Enabled = False + End If + e_email.Text = c.GetString("CAT_CL_EMAIL") + e_tel.Text = c.GetString("CAT_CL_TELEFONO") + e_atiende1.Text = c.GetString("CAT_CL_ATIENDE1") + e_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") + + ' se crea o no el archivo de la base de ddatos de kmt + 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE + 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA + 'SI SE REGRESA A ESTE ACTIVIDAD. + + +End Sub + +Sub Activity_Resume + skmt.Initialize(ruta,"kmt.db", True) + c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + ' ListView1.Clear + + 'If c.RowCount>0 Then + ' For i=0 To c.RowCount -1 + c.Position=0 + e_edo.Text = c.GetString("CAT_CL_EDO") + If e_edo.Text <> "" Or e_edo.text <> "null" Then + e_edo.Enabled = False + End If + e_cp.Text = c.GetString("CAT_CL_CP") + If e_cp.Text <> "" Then + e_cp.Enabled = False + End If + e_mpo.Text = c.GetString("CAT_CL_MUNI") + If e_mpo.Text <> "" Then + e_mpo.Enabled = False + End If + e_email.Text = c.GetString("CAT_CL_EMAIL") + e_tel.Text = c.GetString("CAT_CL_TELEFONO") + e_atiende1.Text = c.GetString("CAT_CL_ATIENDE1") + e_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + +End Sub + + + +Sub Regresa_Click + StartActivity(fila) +End Sub +Sub Activity_KeyPress (key As Int) As Boolean + ' BACK key pressed + If key=KeyCodes.KEYCODE_BACK Then + ' I want to capture the key here so I return True + StartActivity(seleccion) + 'Return True + End If + ' Returning False signals the system to handle the key + Return False +End Sub +Sub Agrega_Click + c=skmt.ExecQuery("Select CUENTA from cuentaa") + C.Position =0 + skmt.ExecNonQuery2("insert into CLIE_ACT(CLIENTE,ATIENDE1, ATIENDE2,TEL,EMAIL,EDO,CP, MPO) VALUES (?,?,?,?,?,?,?,?)", Array As Object(c.GetString("CUENTA"),e_atiende1.Text ,e_atiende2.Text,e_tel.text,e_email.Text,e_edo.Text,e_cp.Text,e_mpo.Text)) + c.Close + StartActivity(seleccion) +End Sub \ No newline at end of file