public CarruselCerrarParteSat() { InitializeComponent(); bluetooth = CrossBluetoothLE.Current; adaptador = CrossBluetoothLE.Current.Adapter; Lista = new ObservableCollection <IDevice>(); var sati = BBDD.GetSat(Variables.DatosParte.N_Parte); sati.FechaEnvioApp = "1900-12-30 00:00:00.000"; // Aqui se verifica si el parte esta abierto o cerrado if (Variables.RevisaParte) { if ((Variables.DatosParte.Revisar == true) && (Variables.DatosParte.Realizado == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { btnConfig.Source = "candadocerrado.png"; btnImprimir.IsEnabled = true; } if ((Variables.NoRealizado == true && Variables.DatosParte.Revisar == false) && (Variables.DatosParte.Realizado == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { btnConfig.Source = "candadocerrado.png"; btnImprimir.IsEnabled = true; Variables.NoRealizado = false; } } BBDD.CerrarConexion(); }
//Busca si tiene más de una dirección del cliente. public async void BuscarDireccion(object objeto, EventArgs e) { RepositorySatApp database = new RepositorySatApp(); var direcciones = database.GetDireccionesCliente(Variables.DatosParte.CodigoCliente); database.CerrarConexion(); if (direcciones.Count > 0) { try { PopupDireccionesCliente popupDireccionesCliente = new PopupDireccionesCliente(direcciones); popupDireccionesCliente.CallbackEvent += OnPopupUnitsCallback; await PopupNavigation.Instance.PushAsync(popupDireccionesCliente); } catch (Exception ex) { throw ex; } } else { await Application.Current.MainPage.DisplayAlert("Aviso", "!!! No tiene más direcciones !!!", "OK"); } }
public void OnPopupUnitsCallback(object sender, EventArgs e) { var x = sender as PopupDireccionesCliente; var direccion = x.direccion; if (direccion != null) { RepositorySatApp database = new RepositorySatApp(); var parte = database.Get <SAT>(Variables.DatosParte.N_Parte); database.CerrarConexion(); parte.Direccion = direccion.ID; database.Guardar(parte); Variables.DatosParte.DireccionParte = direccion.Direccion; Variables.DatosParte.Poblacion = direccion.Poblacion; Variables.DatosParte.Provincia = direccion.Provincia; Variables.DatosParte.CodigoPostal = direccion.CP; Variables.DatosParte.TelefonoCliente = direccion.Telefono; } else { Application.Current.MainPage.DisplayAlert("Aviso", "!!! Dirección incorrecta !!!", "OK"); } }
// Este metodo permite actualizar la lista de partes public void ActualizarLista() { try { RepositorySatApp bbdd = new RepositorySatApp(); //BindingContext: propiedad del objeto de destino debe establecerse en el objeto de origen, se debe llamar al método //(que se usa a menudo junto con la Binding en el objeto de destino para enlazar una propiedad de ese objeto a una propiedad del objeto de origen. // var vm = BindingContext as SAT_VM; vm.ListadoPartes.Clear(); DatosParte parte; //Lista los partes asociados al Técnico. Busca por código de Personal List <SAT> ListadoSAT = bbdd.GetPartesAbiertos <SAT>(Variables.CodigoPersonal); //Añade los partes al ListView foreach (var st in ListadoSAT) { parte = bbdd.CargarDatosDeParte(st); vm.ListadoPartes.Add(parte); } bbdd.CerrarConexion(); } catch (Exception ex) { throw ex; } }
public CarruselSolucionParteSat() { InitializeComponent(); if (Variables.BloqueaParte) { RepositorySatApp BBDD = new RepositorySatApp(); var sati = BBDD.GetSat(Variables.DatosParte.N_Parte); BBDD.CerrarConexion(); if (Variables.RevisaParte) { if ((Variables.DatosParte.Revisar == true) && (Variables.DatosParte.Realizado == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { entrySolucion.IsEnabled = false; entryObservaciones.IsEnabled = false; } } else if (!Variables.RevisaParte) { if ((Variables.DatosParte.Realizado == true) && (Variables.DatosParte.Revisar == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { entrySolucion.IsEnabled = false; entryObservaciones.IsEnabled = false; } } } }
public void OnPopupUnitsCallbackVarios(object sender, EventArgs e) { try { var x = sender as PopupVarios; var iva = x.iva; if (iva != null) { txtTantoPorcierto.Text = iva.Porcentaje.ToString(); RepositorySatApp database = new RepositorySatApp(); var nuevoIva = database.ObtenerRecargoIva(iva.Codigo); nuevaLinea.Recargo = nuevoIva.Recargo; nuevaLinea.Iva = iva.Porcentaje; database.CerrarConexion(); } else { Application.Current.MainPage.DisplayAlert("Aviso", "Forma de Pago incorrecta.", "OK"); } } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }
public void OnPopupUnitsCallback(object sender, EventArgs e) { try { var x = sender as PopupVarios; var formaPago = x.forma_Pago; RepositorySatApp database = new RepositorySatApp(); if (formaPago != null) { txtFormaPago.Text = formaPago.Descripcion; var sat = database.Get <SAT>(Variables.DatosParte.N_Parte); sat.Forma_Pago = formaPago.Codigo; database.Guardar(sat); Variables.DatosParte.FormaPago = sat.Forma_Pago; } else { Application.Current.MainPage.DisplayAlert("Aviso", "Forma de Pago incorrecta.", "OK"); } database.CerrarConexion(); } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }
private async void Busqueda_SearchButtonPressed(object sender, EventArgs e) { //Busqueda de Articulo o Servicio por nombre RepositorySatApp database = new RepositorySatApp(); if (!string.IsNullOrEmpty(Busqueda.Text)) { try { if (bolEsArticulo)//Busqueda por Articulo { var listado = database.GetArticulosPorConsulta(Busqueda.Text); PopupArticulosServicios popupA = new PopupArticulosServicios(listado, bolEsArticulo); popupA.CallbackEvent += OnPopupUnitsCallback; await PopupNavigation.Instance.PushAsync(popupA); } else //Busqueda por Servicio { var listado = database.GetServiciosPorConsulta(Busqueda.Text); PopupArticulosServicios popupS = new PopupArticulosServicios(listado, false); popupS.CallbackEvent += OnPopupUnitsCallback; await PopupNavigation.Instance.PushAsync(popupS); } } catch (Exception ex) { await DisplayAlert("Aviso", ex.Message, "OK"); } } else { await Application.Current.MainPage.DisplayAlert("Aviso", "No hay articulo o servicio para buscar.", "OK"); } database.CerrarConexion(); }
//Este evento se ejecuta cuando clickeas un parte. async void Handle_ItemTapped(object sender, ItemTappedEventArgs e) { try { Variables.DatosParte = null; if (e.Item == null) { return; } var item = (DatosParte)e.Item; Variables.DatosParte = item; RepositorySatApp sat = new RepositorySatApp(); var todo = sat.GetSat(item.N_Parte); //var hora = todo.HoraInicioTarea.ToShortTimeString(); //if (hora == "22:00" || hora == "23:00" || hora == "0:00") //{ // todo.HoraInicioTarea = DateTime.Now; // sat.Guardar<SAT>(todo); //} sat.CerrarConexion(); await Navigation.PushAsync(new PrincipalContentPage()); } catch (Exception ex) { throw ex; } }
//Elimina la BBDD por completo public async void BtnEliminaBBDD_Clicked(object sender, EventArgs e) { if (Haypartesabiertos() == true) { await DisplayAlert("Aviso", "! Hay partes abiertos, cierre los partes antes de borrar la Base de Datos !", "OK"); } else { var respuesta = await DisplayAlert("Aviso", "¿ Deseas borrar la base de datos ?", "Si", "Cancelar"); if (respuesta == true) { DispositivosLista.IsVisible = false; popupLoadingView.IsVisible = true; lblLoadingText.Text = "Borrando base de datos.."; activityIndicator.IsRunning = true; RepositorySatApp BBDD = new RepositorySatApp(); try { BBDD.DeleteBBDD <Articulos>(); BBDD.DeleteBBDD <Cliente>(); BBDD.DeleteBBDD <Cliente_Maquina>(); BBDD.DeleteBBDD <Direccion_Cliente>(); BBDD.DeleteBBDD <Forma_Pago>(); BBDD.DeleteBBDD <Generales>(); BBDD.DeleteBBDD <Iva>(); BBDD.DeleteBBDD <Maquinas>(); BBDD.DeleteBBDD <Pais>(); BBDD.DeleteBBDD <Personal>(); BBDD.DeleteBBDD <Provincias>(); BBDD.DeleteBBDD <Regimen_IVA>(); BBDD.DeleteBBDD <SAT>(); BBDD.DeleteBBDD <SAT_Equipo>(); BBDD.DeleteBBDD <SAT_Lineas>(); BBDD.DeleteBBDD <Servicios>(); BBDD.DeleteBBDD <Valores_SAT>(); BBDD.CerrarConexion(); await DisplayAlert("Aviso", "! La base de datos se ha borrado correctamente !", "OK"); } catch (Exception a) { Console.WriteLine(a.Message); await DisplayAlert("Aviso", "! Error al eliminar la base de datos !", "OK"); } DispositivosLista.IsVisible = true; popupLoadingView.IsVisible = false; activityIndicator.IsRunning = false; } } }
public CarruselArtServParteSat() { InitializeComponent(); bolEsArticulo = true; if (Variables.BloqueaParte) { RepositorySatApp BBDD = new RepositorySatApp(); var sati = BBDD.GetSat(Variables.DatosParte.N_Parte); if (Variables.RevisaParte) { if ((Variables.DatosParte.Revisar == true) && (Variables.DatosParte.Realizado == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { Busqueda.IsEnabled = false; switchVarios.IsEnabled = false; txtReferencia.IsEnabled = false; txtNombre.IsEnabled = false; txtBase.IsEnabled = false; txtCantidad.IsEnabled = false; txtDto.IsEnabled = false; txtTantoPorcierto.IsEnabled = false; btnListarArticulos.IsEnabled = false; btnListarServicios.IsEnabled = false; imgAnadir.IsEnabled = false; imgQR.IsEnabled = false; ListadoLineas.IsEnabled = false; imgBuscarArt.IsEnabled = false; } } else if (!Variables.RevisaParte) { if ((Variables.DatosParte.Realizado == true) && (Variables.DatosParte.Revisar == false) && sati.FechaEnvioApp == "1900-12-30 00:00:00.000") { Busqueda.IsEnabled = false; switchVarios.IsEnabled = false; txtReferencia.IsEnabled = false; txtNombre.IsEnabled = false; txtBase.IsEnabled = false; txtCantidad.IsEnabled = false; txtDto.IsEnabled = false; txtTantoPorcierto.IsEnabled = false; btnListarArticulos.IsEnabled = false; btnListarServicios.IsEnabled = false; imgAnadir.IsEnabled = false; imgQR.IsEnabled = false; ListadoLineas.IsEnabled = false; imgBuscarArt.IsEnabled = false; } } BBDD.CerrarConexion(); } }
public PopupVarios(string _titulo) { InitializeComponent(); titulo = _titulo; RepositorySatApp database = new RepositorySatApp(); if (titulo.Equals("IVA")) { listado.ItemsSource = database.GetAll <Iva>(); } else if (titulo.Equals("FORMA_PAGO")) { listado.ItemsSource = database.GetAll <Forma_Pago>(); } database.CerrarConexion(); }
//Código para el código de barra void QR_Clicked(object sender, EventArgs e) { try { var scanCod = new ZXingScannerPage(); string codigoBarras = null; scanCod.OnScanResult += async(result) => { scanCod.IsScanning = false; Device.BeginInvokeOnMainThread(async() => { await Navigation.PopModalAsync(); codigoBarras = result.Text; RepositorySatApp database = new RepositorySatApp(); var articulo = database.GetArticuloPorCodBarras(codigoBarras); if (articulo != null) { txtReferencia.Text = articulo.Referencia.ToString(); txtNombre.Text = articulo.Articulo; txtBase.Text = articulo.PVP.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = articulo.IVA.ToString(); } else { await Application.Current.MainPage.DisplayAlert("Escaner", "El articulo no existe", "OK"); } database.CerrarConexion(); }); await Navigation.PushModalAsync(scanCod); }; } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso", ex.Message, "OK"); } }
private void CargaArticuloVarios(object sender, ToggledEventArgs e) { //Añade un articulo varios por defecto cuando activa el switch try { RepositorySatApp database = new RepositorySatApp(); Articulos item = database.ObtenerArticuloVarios(); if (item != null) { if (switchVarios.IsToggled) { txtReferencia.Text = item.Referencia.ToString(); txtNombre.Text = item.Articulo; txtBase.Text = item.PVP.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = item.IVA.ToString(); bolEsArticulo = true; btnListarArticulos.BackgroundColor = Color.FromHex("#0a4343"); btnListarServicios.BackgroundColor = Color.FromHex("#137F7F"); switchVarios.OnColor = Color.FromHex("#137F7F"); } else { txtReferencia.Text = ""; txtNombre.Text = ""; txtBase.Text = ""; txtCantidad.Text = ""; txtDto.Text = ""; txtTantoPorcierto.Text = ""; Busqueda.Text = ""; } } database.CerrarConexion(); } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso", ex.Message, "OK"); } }
private void Guardar(object sender, EventArgs e) { try { RepositorySatApp database = new RepositorySatApp(); SAT sat = new SAT(); sat = database.Get <SAT>(Variables.DatosParte.N_Parte); sat.Solucion = entrySolucion.Text; sat.Observaciones = entryObservaciones.Text; database.Guardar(sat); database.CerrarConexion(); } catch (Exception ex) { throw ex; } }
//Verifica si existe Partes Abiertos public bool Haypartesabiertos() { try { RepositorySatApp datos = new RepositorySatApp(); var list = datos.GetPartesAbiertos <SAT>(Variables.CodigoPersonal); datos.CerrarConexion(); if (list.Count > 0) { return(true); } else { return(false); } } catch (Exception ex) { throw ex; } }
private void EliminarLinea_Tapped(object sender, EventArgs e) { //Elimina la linea de un parte try { var imagen = sender as Image; var linea = imagen?.BindingContext as SAT_Lineas; var vm = BindingContext as ArtServParteSAT_VM; vm?.EliminarLinea.Execute(linea); RepositorySatApp database = new RepositorySatApp(); database.EliminarLineaParte(linea); var lineas = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); database.EliminarLineasParte(Variables.DatosParte.N_Parte.ToString()); var ordenLinea = 1; foreach (var item in lineas) { item.Orden_Linea = ordenLinea; database.Insert(item); ordenLinea++; } vm.LineasSAT = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); funciones.CalcularParte(Variables.DatosParte.N_Parte); database.CerrarConexion(); } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso", ex.Message, "OK"); } }
public CarruselPagoParteSat() { InitializeComponent(); RepositorySatApp database = new RepositorySatApp(); Funciones funciones = new Funciones(); var formaPago = database.ObtenerFormaPago(Variables.DatosParte.FormaPago); if (formaPago != null) { txtFormaPago.Text = formaPago.Descripcion; } if (Variables.BloqueaParte) { if (Variables.RevisaParte) { if ((Variables.DatosParte.Revisar == true) && (Variables.DatosParte.Realizado == false) && Variables.DatosParte.FechaEnvioApp == "1900-12-30 00:00:00.000") { txtFormaPago.IsEnabled = false; ImgFormaPago.IsEnabled = false; } } else if (!Variables.RevisaParte) { if ((Variables.DatosParte.Realizado == true) && (Variables.DatosParte.Revisar == false) && Variables.DatosParte.FechaEnvioApp == "1900-12-30 00:00:00.000") { txtFormaPago.IsEnabled = false; ImgFormaPago.IsEnabled = false; } } } funciones.CalcularParte(Variables.DatosParte.N_Parte); database.CerrarConexion(); }
public void OnPopupUnitsCallback(object sender, EventArgs e) { try { txtReferencia.Text = Variables.Referencia; if (!string.IsNullOrEmpty(txtReferencia.Text)) { RepositorySatApp database = new RepositorySatApp(); int referencia = int.Parse(txtReferencia.Text); if (bolEsArticulo) { var articulo = database.Get <Articulos>(referencia); txtNombre.Text = articulo.Articulo; txtBase.Text = articulo.PVP.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = articulo.IVA.ToString(); } else { var servicio = database.ObtenerServicio(decimal.Parse(txtReferencia.Text)); txtNombre.Text = servicio.Descripcion; txtBase.Text = servicio.Precio.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = servicio.IVA.ToString(); } database.CerrarConexion(); } } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }
// En el constructor se colocan los datos de servidor y puerto en caso de que existan, ademas de // la activación de algunos componentes public Configuracion() { InitializeComponent(); RepositorySatApp DatosServidor = new RepositorySatApp(); var Datos_Comunicacion = DatosServidor.GetAll <Conexiones>(); if (Variables.ConfImpresora == true) { Servidor.IsEnabled = false; Puerto.IsEnabled = false; BtnSincroniza.IsEnabled = false; BtnConfiguracion.IsEnabled = false; } if (Datos_Comunicacion != null) //Cuando se instala la app por primera vez la tabla Conexiones no existe y devuelve. { if (Datos_Comunicacion.Count != 0) //Una vez que esta instalada la app ya existe la tabla conexiones, pero solo entrará cuando existan datos. { Servidor.Text = Datos_Comunicacion[0].IP; Puerto.Text = Datos_Comunicacion[0].Puerto; BtnSincroniza.IsEnabled = true; BtnEliminaBBDD.IsEnabled = true; } } NavigationPage.SetHasBackButton(this, false); //Bluetooth = CrossBluetoothLE.Current; //Adaptador = CrossBluetoothLE.Current.Adapter; Lista = new ObservableCollection <IDevice>(); DispositivosLista.ItemsSource = Lista; DatosServidor.CerrarConexion(); }
/* * Mandamos a imprimir los datos del parte */ public async void Imprimir(Boolean imprimir) { try { lblLoadingText.Text = "Imprimiendo ticket..."; RepositorySatApp BBDD = new RepositorySatApp(); var empresa = BBDD.Get <Generales>(1); var Nombre = empresa.Empresa; var nif = empresa.NIF; var direc = empresa.Direccion; var telf = empresa.Telefono1; var comercial = empresa.N_Comercial; //Obtenemos y guardamos en objetos la información que deseamos imprimir //Transformamos los datos en Bytes antes de enviarlos a la impresora var parte = Variables.DatosParte; var masDatos = BBDD.GetSat(parte.N_Parte); var masCliente = BBDD.Get <Cliente>(masDatos.Cliente); var masProvincia = BBDD.GetProvincias(masCliente.Provincia); var lineasParte = BBDD.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString()); //Obtiene nombre comercial. De momento cliente no la quiere var codempresa = BBDD.Get <Generales>(0); //Hay que traerse la tabla comercialcliente // string masComercial = BBDD.GetComercialCliente(codempresa.Codigo, parte.CodigoCliente); string masPersonal = BBDD.GetNombreTecnico(masDatos.Realizado_Por); //Esta es la copia buena 28/01/2020 BBDD.CerrarConexion(); // Convertimos los strings a bytes y los imprimimos byte[] negrita = new byte[] { 0x1B, 0x21, 0x08 }; byte[] normal = new byte[] { 0x1B, 0x21, 0x00 }; byte[] negritamedia = new byte[] { 0x1B, 0x21, 0x20 }; byte[] N_Parte = Encoding.ASCII.GetBytes("Numero Parte: " + parte.N_Parte); byte[] Fecha = Encoding.ASCII.GetBytes("Fecha aviso: " + parte.Fecha.ToShortDateString()); byte[] HoraAviso = Encoding.ASCII.GetBytes("Hora aviso: " + masDatos.Hora_Entrada.ToShortTimeString()); byte[] FechaCerrado = Encoding.ASCII.GetBytes("Fecha realizado: " + Convert.ToDateTime(masDatos.Fecha_Realizado.ToString()).ToShortDateString()); var horainicio = masDatos.HoraInicioTarea.AddHours(1); var horafin = masDatos.HoraFinTarea.AddHours(1); byte[] Cliente = Encoding.ASCII.GetBytes("Cliente: " + parte.NombreCliente); byte[] nifCli = Encoding.ASCII.GetBytes("DNI / NIF: " + masCliente.NIF); byte[] Direccion = Encoding.ASCII.GetBytes("Direccion: " + parte.DireccionParte); byte[] Poblacion = Encoding.ASCII.GetBytes("C.P / Poblacion: " + masCliente.C_P); byte[] Provincia = Encoding.ASCII.GetBytes("Provincia: " + masProvincia.Provincia); byte[] nomcomercial = Encoding.ASCII.GetBytes("Tecnico: " + masPersonal); byte[] Anomalia = Encoding.ASCII.GetBytes("Anomalia:\n " + parte.AnomaliaParte); //byte[] Telefono = Encoding.ASCII.GetBytes("Telefono: " + parte.TelefonoCliente); byte[] Solucion = Encoding.ASCII.GetBytes("Trabajo efectuado:\n " + parte.Solucion); // byte[] Observaciones = Encoding.ASCII.GetBytes("Observaciones adicionales:\n " + parte.Observaciones); byte[] Pago = Encoding.ASCII.GetBytes("Forma de Pago: " + parte.FormaPago); byte[] Base = Encoding.ASCII.GetBytes(" Base imponible: " + parte.Base_Total.ToString("N2")); byte[] valorIva = Encoding.ASCII.GetBytes(" IVA: " + parte.Iva_Total.ToString("N2")); byte[] Total = Encoding.ASCII.GetBytes(" Total: " + parte.Total.ToString("N2")); byte[] estrellitas = Encoding.ASCII.GetBytes("===============================================\n"); byte[] separacontinua = Encoding.ASCII.GetBytes("_______________________________________________\n"); byte[] separacion = Encoding.ASCII.GetBytes("------------------------------------------------\n"); byte[] separaverticalFirma = Encoding.ASCII.GetBytes("Firma Trabajador: | Firma Cliente:\n"); byte[] separavertical = Encoding.ASCII.GetBytes(" | \n"); byte[] salto = Encoding.ASCII.GetBytes("\n"); byte[] firma1 = Encoding.ASCII.GetBytes("Firma Trabajador:"); byte[] firma2 = Encoding.ASCII.GetBytes("Firma Cliente:"); byte[] ArtServ = Encoding.ASCII.GetBytes(" Articulos y servicio:"); byte[] Cabecera = Encoding.ASCII.GetBytes("Referencia Precio Cantidad Importe Iva\n"); byte[] N_empresa = Encoding.ASCII.GetBytes(" " + Nombre + "\n"); byte[] dic_empresa = Encoding.ASCII.GetBytes(" " + direc + "\n"); byte[] telf_empresa = Encoding.ASCII.GetBytes(" Telf: " + telf + "\n"); byte[] nif_empresa = Encoding.ASCII.GetBytes(" N.I.F: " + nif + "\n"); byte[] Nombre_Comercial = Encoding.ASCII.GetBytes(" " + comercial); byte[] CabLineas = Encoding.ASCII.GetBytes(" PARTE TRABAJO\n"); byte[] Cabdesg = Encoding.ASCII.GetBytes(" Desglose categorias impositivas\n"); byte[] desglose = Encoding.ASCII.GetBytes(" Base Iva Importe\n"); byte[] valordesglose = Encoding.ASCII.GetBytes(" " + parte.Base_Total + " " + parte.TantoIva1 + " " + parte.Iva_Total); byte[] CabTotales = Encoding.ASCII.GetBytes(" Totales finales:\n"); byte[] gracias = Encoding.ASCII.GetBytes(" Le damos las gracias por su confianza\n"); byte[] docvista = Encoding.ASCII.GetBytes("Este documento solo es una vista preliminar y no reemplaza al documento de facturación\n"); var servicios = await dispositivo.GetServicesAsync(); foreach (var l in servicios) { if (l.Name == "Unknown Service") //Obtiene el servicio del que depende la caracteristica que nos permite enviar datos a la impresora { var server = l as IService; var caracteristica = await server.GetCharacteristicsAsync(); foreach (var m in caracteristica) { if (m.Name == "Unknown characteristic") //Localiza la caracteristica que se usa para enviar datos a la impresora { var carac = m as ICharacteristic; //Cabecera ticket if (carac.CanWrite && imprimir) // Este if comprueba si el proximo caracter es imprimible y si el booleano es true o false { // SIN ESTE IF NO IMPRIME await carac.WriteAsync(negrita); await carac.WriteAsync(N_empresa); await carac.WriteAsync(dic_empresa); await carac.WriteAsync(telf_empresa); await carac.WriteAsync(nif_empresa);//fin cabecera ticket await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Datos parte await carac.WriteAsync(normal); await carac.WriteAsync(N_Parte); await carac.WriteAsync(salto); await carac.WriteAsync(Fecha); await carac.WriteAsync(salto); await carac.WriteAsync(HoraAviso); await carac.WriteAsync(salto); await carac.WriteAsync(FechaCerrado); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Datos cliente await carac.WriteAsync(Cliente); await carac.WriteAsync(salto); await carac.WriteAsync(nifCli); await carac.WriteAsync(salto); await carac.WriteAsync(Direccion); await carac.WriteAsync(salto); await carac.WriteAsync(Poblacion); await carac.WriteAsync(salto); await carac.WriteAsync(Provincia); await carac.WriteAsync(salto); await carac.WriteAsync(nomcomercial); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Incidencia await carac.WriteAsync(Anomalia); await carac.WriteAsync(salto); await carac.WriteAsync(Solucion); await carac.WriteAsync(salto); // await carac.WriteAsync(Observaciones); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Cabecera lineas tarea await carac.WriteAsync(estrellitas); await carac.WriteAsync(salto); await carac.WriteAsync(CabLineas); await carac.WriteAsync(salto); await carac.WriteAsync(ArtServ); //Articulos y servicios await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(Cabecera); //Cabecera lineasSat await carac.WriteAsync(separacontinua); await carac.WriteAsync(salto); foreach (var h in lineasParte) //Lineas partesat { var precio = Math.Round(h.Precio, 2); var importe = Math.Round(h.Importe, 2); byte[] desc = Encoding.ASCII.GetBytes(h.Descripcion + "\n"); byte[] refer = Encoding.ASCII.GetBytes(" " + h.Referencia.ToString()); byte[] espacio = Encoding.ASCII.GetBytes(" "); byte[] prec = Encoding.ASCII.GetBytes(precio.ToString("N2") + " "); byte[] cant = Encoding.ASCII.GetBytes(h.Cantidad.ToString()); byte[] imp = Encoding.ASCII.GetBytes(importe.ToString("N2") + " "); byte[] iva = Encoding.ASCII.GetBytes(h.Iva.ToString() + "\n"); await carac.WriteAsync(desc); if (CuentaDigito(h.Referencia) <= 2) { espacio = Encoding.ASCII.GetBytes(" "); await carac.WriteAsync(refer); await carac.WriteAsync(espacio); } else { await carac.WriteAsync(refer); } if (CuentaDigito(precio) >= 5) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(precio) == 4) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(precio) == 3) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(precio) == 2) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(precio) == 1 || CuentaDigito(precio) == 0) { espacio = Encoding.ASCII.GetBytes(" "); } await carac.WriteAsync(espacio); await carac.WriteAsync(prec); await carac.WriteAsync(cant); if (CuentaDigito(importe) >= 5) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(importe) == 4) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(importe) == 3) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(importe) == 2) { espacio = Encoding.ASCII.GetBytes(" "); } else if (CuentaDigito(importe) == 1 || CuentaDigito(importe) == 0) { espacio = Encoding.ASCII.GetBytes(" "); } await carac.WriteAsync(espacio); await carac.WriteAsync(imp); await carac.WriteAsync(iva); } //Desglose categorias impositivas await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(Cabdesg); await carac.WriteAsync(desglose); await carac.WriteAsync(separacontinua); await carac.WriteAsync(valordesglose); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Totales finales await carac.WriteAsync(CabTotales); await carac.WriteAsync(salto); await carac.WriteAsync(Base); await carac.WriteAsync(salto); await carac.WriteAsync(valorIva); await carac.WriteAsync(salto); await carac.WriteAsync(Total); await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(salto); //Firmas await carac.WriteAsync(separacontinua); await carac.WriteAsync(separaverticalFirma); await carac.WriteAsync(separavertical); await carac.WriteAsync(separavertical); await carac.WriteAsync(separavertical); await carac.WriteAsync(separavertical); await carac.WriteAsync(separavertical); await carac.WriteAsync(separavertical); await carac.WriteAsync(separacontinua); await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(negritamedia); await carac.WriteAsync(Nombre_Comercial); await carac.WriteAsync(salto); await carac.WriteAsync(normal); await carac.WriteAsync(gracias); await carac.WriteAsync(salto); await carac.WriteAsync(docvista); await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(salto); await carac.WriteAsync(salto); var respuesta = await Application.Current.MainPage.DisplayAlert("Aviso", "Si desea una copia, pulse el botón de imprimir", "Ok", "Cancelar"); if (respuesta == true) // Si la respuesta es Cancelar, salimos del bucle { Imprimir(imprimir); } else { imprimir = false; popupLoadingView.IsVisible = false; activityIndicator.IsRunning = false; btnImprimir.IsEnabled = true; break; } } } } } } await adaptador.DisconnectDeviceAsync(dispositivo); } catch (Exception e) { Console.WriteLine(e.Message); } }
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e) { try { int Referencia; RepositorySatApp database = new RepositorySatApp(); Articulos articulo = new Articulos(); if (!string.IsNullOrEmpty(txtReferencia.Text)) { //Busqueda de articulos en caso de estar activo el botón Articulos if (bolEsArticulo) { if (int.TryParse(txtReferencia.Text, out Referencia)) { articulo = database.GetArticuloReferencia(txtReferencia.Text);//Busqueda por Referencia Or ReferenciaProveddor } if (articulo == null) { await Application.Current.MainPage.DisplayAlert("Aviso", "No se encontro ningun articulo con esa referencia o número de proveedor.", "OK"); txtReferencia.Text = ""; } else { txtNombre.Text = articulo.Articulo; txtBase.Text = articulo.PVP.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = articulo.IVA.ToString(); } } else//Busqueda de articulos en caso de estar activo el botón Servicios { if (int.TryParse(txtReferencia.Text, out Referencia)) { var servicio = database.ObtenerServicio(int.Parse(txtReferencia.Text)); if (servicio != null) { txtNombre.Text = servicio.Descripcion; txtBase.Text = servicio.Precio.ToString(); txtCantidad.Text = "1"; txtTantoPorcierto.Text = servicio.IVA.ToString(); } else { await Application.Current.MainPage.DisplayAlert("Aviso", "No existe el servicio.", "OK"); } } else { await Application.Current.MainPage.DisplayAlert("Aviso", "Referencia incorrecta", "OK"); txtReferencia.Text = ""; } } } database.CerrarConexion(); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }
private void Anadir_Clicked(object sender, EventArgs e) { try { //Añade un Articulo o Servicio if (!string.IsNullOrEmpty(txtReferencia.Text)) { if (!string.IsNullOrEmpty(txtNombre.Text) || !string.IsNullOrEmpty(txtCantidad.Text) || !string.IsNullOrEmpty(txtBase.Text)) { nuevaLinea = new SAT_Lineas(); RepositorySatApp database = new RepositorySatApp(); Articulos Articulo; if (bolEsArticulo) //Busqueda Articulos { Articulo = database.GetArticuloReferencia(txtReferencia.Text); //Busqueda por Referencia nuevaLinea.Referencia = Articulo.Referencia; nuevaLinea.Descripcion = txtNombre.Text; nuevaLinea.Cantidad = decimal.Parse(txtCantidad.Text); nuevaLinea.Precio = decimal.Parse(txtBase.Text); nuevaLinea.PrecioCoste = Articulo.Precio_Coste; if (!string.IsNullOrEmpty(txtDto.Text)) { nuevaLinea.DTO = decimal.Parse(txtDto.Text); } nuevaLinea.Iva = decimal.Parse(txtTantoPorcierto.Text); nuevaLinea.Recargo = decimal.Parse(Articulo.Recargo.ToString()); nuevaLinea.Importe = (nuevaLinea.Precio - (nuevaLinea.Precio * nuevaLinea.DTO / 100)) * nuevaLinea.Cantidad; nuevaLinea.N_Parte = Variables.DatosParte.N_Parte; nuevaLinea.Almacen = 1; nuevaLinea.Orden_Linea = database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString()).Count + 1; nuevaLinea.TipoReferencia = "A"; nuevaLinea.VieneDeAPP = true; } else//Busqueda por referencia { nuevaLinea.Referencia = decimal.Parse(txtReferencia.Text); nuevaLinea.Descripcion = txtNombre.Text; nuevaLinea.Cantidad = decimal.Parse(txtCantidad.Text); nuevaLinea.Precio = decimal.Parse(txtBase.Text); if (!string.IsNullOrEmpty(txtDto.Text)) { nuevaLinea.DTO = decimal.Parse(txtDto.Text); } nuevaLinea.Iva = decimal.Parse(txtTantoPorcierto.Text); nuevaLinea.Importe = (nuevaLinea.Precio - (nuevaLinea.Precio * nuevaLinea.DTO / 100)) * nuevaLinea.Cantidad; nuevaLinea.N_Parte = Variables.DatosParte.N_Parte; nuevaLinea.Orden_Linea = database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString()).Count + 1; nuevaLinea.TipoReferencia = "S"; nuevaLinea.VieneDeAPP = true; } var btnAnadir = sender as Button; var vm = BindingContext as ArtServParteSAT_VM; vm?.EliminarLinea.Execute(nuevaLinea); // Elimina la linea de Observable Collection (la lista de articulos de la vista) database.EliminarLineaParte(nuevaLinea); // Elimina la linea de la BD var lineas = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); // Crea una nueva coleccion database.EliminarLineasParte(Variables.DatosParte.N_Parte.ToString()); // Elimina todas las lineas del parte // Actualizala bd var ordenLinea = 1; foreach (var item in lineas) { item.Orden_Linea = ordenLinea; database.Insert(item); ordenLinea++; } vm.LineasSAT = new ObservableCollection <SAT_Lineas>(database.GetAllLineasParte(Variables.DatosParte.N_Parte.ToString())); funciones.CalcularParte(Variables.DatosParte.N_Parte); vm?.AnadirLinea.Execute(nuevaLinea); database.Insert(nuevaLinea); funciones.CalcularParte(Variables.DatosParte.N_Parte); txtReferencia.Text = ""; txtNombre.Text = ""; txtBase.Text = ""; txtCantidad.Text = ""; txtDto.Text = ""; txtTantoPorcierto.Text = ""; Busqueda.Text = ""; if (switchVarios.IsToggled == true) { switchVarios.IsToggled = false; } nuevaLinea = null; database.CerrarConexion(); } else { Application.Current.MainPage.DisplayAlert("Aviso", "Por favor, revise los datos introducidos. Hay valores incorrectos", "OK"); } } else { Application.Current.MainPage.DisplayAlert("Aviso", "No hay articulo o servicio para añadir", "OK"); txtReferencia.Text = ""; } } catch (Exception ex) { Application.Current.MainPage.DisplayAlert("Aviso ", ex.Message, " OK"); } }
/* * Busca toda la información de los partes que se han trabajado y los envia a central. * Por cada parte genera 3 JSON. * Tras confirmar la transferencia y guardado de la información en central borra los partes enviados. */ public async void EnvioMasivo(object sender, EventArgs e) { Login comprueba = new Login(); if (comprueba.CompruebaTerminados()) { Conecta envio = new Conecta(); List <SAT> sat; List <SAT_Lineas> lineas = new List <SAT_Lineas>(); RepositorySatApp bbdd = new RepositorySatApp(); if (Variables.RevisaParte == true) { sat = bbdd.SatRevisar <SAT>(); } else { sat = bbdd.SatCerrado <SAT>(); } bool SAT = false; bool LINEAS = false; bool NOLINEAS = false; int numparte = 0; int part = 0; foreach (SAT parte in sat) { sat[part].Hora = sat[part].Hora; sat[part].HoraInicioTarea = sat[part].HoraInicioTarea; sat[part].HoraFinTarea = sat[part].HoraFinTarea; //En el caso de alguno de los Pendientes de las opciones es true. Esta a prueba if (sat[part].PendienteRepuesto == true || sat[part].PendientePresupuesto == true || sat[part].PendienteRecambio == true || sat[part].SinReparar == true) { sat[part].Revisar = false; sat[part].FechaEnvioApp = "1900-12-30 00:00:00.000"; } else { sat[part].FechaEnvioApp = "1900-12-30 00:00:00.000"; } lineas = bbdd.LineasSatCerrado <SAT_Lineas>(parte.N_Parte); if (lineas.Count == 0) { await DisplayAlert("Aviso", "El parte número " + parte.N_Parte + " no tiene articulos ni servicios asociados por lo que no se pueden enviar los partes cerrados", "Ok"); NOLINEAS = true; } else { //Estamos en mantenimientos 03/02/2021 string[] rutaUrl = new string[] { "api/ListarSatLineas2", "api/SatAppRespaldo" }; for (int i = 0; i < rutaUrl.Length; i++) { if (rutaUrl[i] == "api/ListarSatLineas2") { if (await envio.UpdateDatosAsync(rutaUrl[i], lineas)) { LINEAS = true; } else { LINEAS = false; } } else if (rutaUrl[i] == "api/SatAppRespaldo") { if (LINEAS == true) { if (await envio.UpdateDatosAsync(rutaUrl[i], sat[part])) { part++; SAT = true; } else { part++; SAT = false; } } } } bbdd.BorrarSatLineas2 <SAT_Lineas>(parte.N_Parte); } if (SAT == false || LINEAS == false) { break; } } if (SAT == true & LINEAS == true & NOLINEAS == false) { bbdd.BorrarSatCerrado(sat); bbdd.BorrarLineasSatCerrado(lineas); await DisplayAlert("Aviso", "Enviados correctamente todos los partes trabajados", "Ok"); ActualizarLista(); } else if (SAT == false & LINEAS == false & NOLINEAS == false) { await DisplayAlert("Aviso", "Error en el envio de parte, el parte numero " + numparte + " no se envio correctamente", "Ok"); } bbdd.CerrarConexion(); } else { await DisplayAlert("Aviso", "No hay partes cerrados que enviar", "Ok"); } }
//Guarda la configuración del servidor y la impresora en la BBDD interna private async void BtnConfiguracion_Clicked(object sender, EventArgs e) { //Busca la Impresora al Presionar el boton de Lupa if (Variables.ConfImpresora == true) { string IP = Servidor.Text; string PORT = Puerto.Text; string impresora = "No impresora"; if (dispositivo != null) { impresora = dispositivo.NativeDevice.ToString(); } Conexiones datos = new Conexiones { Codigo = 1, IP = IP, Puerto = PORT, Dispositivo = impresora, Bloquea_Parte = BloqueParte, }; //Si no existe el registro lo guarda, si existe lo actualiza RepositorySatApp transferir = new RepositorySatApp(); transferir.InsertOrUpdate(datos, 1); if (impresora.Equals("No impresora")) { await DisplayAlert("Aviso", "Datos guardados:\n" + datos.IP + ",\n" + datos.Puerto + ",\n" + datos.Dispositivo, "OK"); } else { await Adaptador.DisconnectDeviceAsync(dispositivo); await DisplayAlert("Aviso", "Datos guardados:\n" + datos.IP + ",\n" + datos.Puerto + ",\n" + datos.Dispositivo, "OK"); } transferir.CerrarConexion(); } //Comprueba que todos los campos este rellenos. if (string.IsNullOrEmpty(Servidor.Text) && (string.IsNullOrEmpty(Puerto.Text) && Variables.ConfImpresora == false)) { await DisplayAlert("Aviso", "! Tiene que rellenar todos los datos !", "OK"); } else { string IP = Servidor.Text; string PORT = Puerto.Text; string impresora = "No impresora"; if (dispositivo != null) { impresora = dispositivo.NativeDevice.ToString(); } Conexiones datos = new Conexiones { Codigo = 1, IP = IP, Puerto = PORT, Dispositivo = impresora, Bloquea_Parte = BloqueParte, }; //Si no existe el registro lo guarda, si existe lo actualiza RepositorySatApp transferir = new RepositorySatApp(); transferir.InsertOrUpdate(datos, 1); if (dispositivo != null) { //Una vez guardado la mac del dispositivo lo desparejamos para que se empareje al ejecutar la aplicación await Adaptador.DisconnectDeviceAsync(dispositivo); } transferir.CerrarConexion(); await DisplayAlert("Aviso", "Datos guardados:\n" + datos.IP + ",\n" + datos.Puerto + ",\n" + datos.Dispositivo, "OK"); } Variables.ConfImpresora = false; }
/* * Realiza la busqueda de la impresora */ public async void BusquedaDispositivo(object objeto, EventArgs E) { try { RepositorySatApp impresora = new RepositorySatApp(); List <Conexiones> parametros = impresora.GetAll <Conexiones>(); foreach (var pa in parametros) //Obtiene los datos de la impresora configurada { mac = pa.Dispositivo; } if (mac == "No impresora") { await Application.Current.MainPage.DisplayAlert("Aviso", "No hay impresoras configuradas", "OK"); ConfiguraImpresora(); return; } if (bluetooth.State == BluetoothState.On) { popupLoadingView.IsVisible = true; lblLoadingText.Text = "Enviando datos a la impresora..."; activityIndicator.IsRunning = true; btnImprimir.IsEnabled = false; Lista.Clear(); adaptador.ScanTimeout = 10000; adaptador.ScanMode = ScanMode.Balanced; int nvecesencontrado = 0; // Esta variable permite filtrar el numero de veces que encuentra el dispositivo. Aveces se bugea e imprime dos veces adaptador.DeviceDiscovered += (obj, a) => { Lista.Add(a.Device); if (a.Device.NativeDevice.ToString().Equals(mac)) //Localiza la impresora que tiene configurada { dispositivo = a.Device as IDevice; if (nvecesencontrado < 1) // Si el dispositivo ya lo ha encontrado no volvera a intentar conectarse una segunda vez { Autoconexion(dispositivo); adaptador.StopScanningForDevicesAsync(); nvecesencontrado++; } } }; if (!bluetooth.Adapter.IsScanning) { await adaptador.StartScanningForDevicesAsync(); } } if (dispositivo == null) { Lista.Clear(); await Application.Current.MainPage.DisplayAlert("Aviso", "No se encuentra la impresora", "OK"); popupLoadingView.IsVisible = false; activityIndicator.IsRunning = false; btnImprimir.IsEnabled = true; } impresora.CerrarConexion(); } catch (Exception s) { Console.WriteLine(s.Message); } }