private async void BuscarPromocion() { SalesEstado resultado = SalesEstado.ErrorSistema; await Task.Run(() => { TSSalesApp.SalesVerificarPromocion += TSSalesApp_SalesVerificarPromocion; resultado = TSSalesApp.VerificarPrecioArticulo(new TS_BEPromotionInput() { cdarticulo = TSSalesApp.vArticuloSeleccionado.cdarticulo, cantidad = TSSalesApp.CantidadProducto, precio = TSSalesApp.vArticuloSeleccionado.precio, precio_orig = TSSalesApp.vArticuloSeleccionado.precio_orig, total = Math.Round(TSSalesApp.CantidadProducto * (decimal)TSSalesApp.vArticuloSeleccionado.precio, 2), cdcliente = TSCustomerApp.ClientOuput == null ? "" : (TSCustomerApp.ClientOuput.cdcliente ?? "").Trim(), isCredito = TSCustomerApp.TipoComprobante == TSSalesInput.NotaDeDespacho() }).Result; }); if (resultado != SalesEstado.EsperandoRespuesta) { switch (resultado) { case SalesEstado.ErrorInternet: await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar"); break; case SalesEstado.ErrorSistema: await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar"); break; } } }
private void _SalesCorrelativo(TSSales respuesta) { TSSalesApp.SalesCorrelativo -= _SalesCorrelativo; Device.BeginInvokeOnMainThread(async() => { busyindicator.IsVisible = false; if (respuesta.EstadoRespuesta == SalesEstado.InformacionNoObtenida) { await DisplayAlert("Aviso", respuesta.vSales.Mensaje, "Aceptar"); return; } if (respuesta.EstadoRespuesta == SalesEstado.ErrorSistema) { await DisplayAlert("Aviso", "Hubo un problema en la comunicación con el servidor, por favor intente después.", "Aceptar"); return; } if (respuesta.EstadoRespuesta == SalesEstado.InformacionObtenida) { if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Boleta().Nombre) { lblNroComprobante.Text = respuesta.vCorrelativo.boleta; TSSalesApp.Correlativo = respuesta.vCorrelativo.boleta; } if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Factura().Nombre) { lblNroComprobante.Text = respuesta.vCorrelativo.factura; TSSalesApp.Correlativo = respuesta.vCorrelativo.factura; } } }); }
private void LoadDocumentos() { TSSalesApp.vTipoDocuments = new ObservableCollection <TipoComprobate> { new TipoComprobate() { Nombre = TSSalesInput.Boleta().Nombre, Nro = TSSalesInput.Boleta().Nro }, new TipoComprobate() { Nombre = TSSalesInput.Factura().Nombre, Nro = TSSalesInput.Factura().Nro }, new TipoComprobate() { Nombre = TSSalesInput.NotaDeDespacho().Nombre, Nro = TSSalesInput.NotaDeDespacho().Nro }, new TipoComprobate() { Nombre = TSSalesInput.Serafin().Nombre, Nro = TSSalesInput.Serafin().Nro }, }; }
private void BtnNuevo_Clicked(object sender, EventArgs e) { ProcDisableControllStart(true); TSCustomerApp.TipoComprobante = TSSalesInput.Boleta(); txtTipoComprobante.Text = TSSalesInput.Boleta().Nombre; TSSalesApp.Detalles.Clear(); TSSalesApp.DetallesDisplay.Clear(); SalesCorrelativo(); }
public SemiAutomatic() { btnCaraContext = new ButtonStateContext(); TSSalesApp.Detalles = new ObservableCollection <TS_BEArticulo>(); TSSalesApp.DetallesDisplay = new ObservableCollection <TS_BEArticulo>(); TSCustomerApp.ClientOuput = new TS_BEClienteOutput(); TSCustomerApp.TipoComprobante = TSSalesInput.Boleta(); InitializeComponent(); ProcDisableControllStart(false); }
protected async override void OnAppearing() { base.OnAppearing(); if (Cargado) { return; } Cargado = true; IndicadorDeCarga.IsVisible = false; var flag = TSSalesApp.vParemetros.flg_pideplacatb ?? false; if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Factura().Nombre || flag) { if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca)) { await RegexExpresion.SolicitarPlaca(this.Navigation); if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca) || string.IsNullOrEmpty(TSSalesApp.vCabecera.odometro)) { await Navigation.PopAsync(); return; } } } List <TS_BEPagoInput> cPago = ObtenerPago(); TSSalesApp.cPagoInput = new TS_BEPagoInput[] { }; TSSalesApp.cPagoInput = cPago.ToArray(); TSSalesApp.TipoVenta = ""; IndicadorDeCarga.IsVisible = true; SalesEstado resultado = SalesEstado.ErrorSistema; await Task.Run(delegate { TSSalesApp.SalesGrabarVenta += _SalesGrabarVenta;; resultado = TSSalesApp.GrabarVenta(false, false, false).Result; }); if (resultado != SalesEstado.EsperandoRespuesta) { switch (resultado) { case SalesEstado.ErrorInternet: await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar"); break; case SalesEstado.ErrorSistema: await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar"); break; } } }
private void BtnDeshacer_OnClicked(object sender, EventArgs e) { ProcDisableControllStart(false); TSCustomerApp.TipoComprobante = TSSalesInput.Boleta(); txtTipoComprobante.Text = TSSalesInput.Boleta().Nombre; TSSalesApp.Detalles.Clear(); TSSalesApp.DetallesDisplay.Clear(); SalesCorrelativo(); TSCustomerApp.ClientOuput.rscliente = ""; TSCustomerApp.ClientOuput.drcliente = ""; TSCustomerApp.ClientOuput.ruccliente = ""; TSCustomerApp.ClientOuput.emcliente = ""; TSCustomerApp.ClientOuput.cdcliente = ""; TSCustomerApp.ClientOuput.tarjafiliacion = ""; TSCustomerApp.ClientOuput.Saldos = null; txtRuc.Text = ""; txtRazonSocial.Text = ""; PrintTotales(); }
protected async override void OnAppearing() { base.OnAppearing(); if (Cargado) { return; } List <TS_BEPagoInput> cPago = ObtenerPago(); TSSalesApp.cPagoInput = new TS_BEPagoInput[] { }; TSSalesApp.cPagoInput = cPago.ToArray(); TSSalesApp.TipoVenta = ""; IndicadorDeCarga.IsVisible = true; TSCustomerApp.TipoComprobante = TSSalesInput.NotaDeDespacho(); SalesEstado resultado = SalesEstado.ErrorSistema; await Task.Run(() => { TSSalesApp.SalesGrabarVenta += _SalesGrabarVenta;; resultado = TSSalesApp.GrabarVenta(false, false, false).Result; }); if (resultado != SalesEstado.EsperandoRespuesta) { switch (resultado) { case SalesEstado.ErrorInternet: await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar"); break; case SalesEstado.ErrorSistema: await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar"); break; } } }
private async void BtnSaveEfectivo_Clicked(object sender, EventArgs e) { if (IsEvent) { List <TS_BEPagoInput> cPagos = ObtenerPago(); if (cPagos.Count == 0) { await DisplayAlert("Aviso", "Debe seleccionar al menos un pago", "Aceptar"); return; } List <TerminalSIGES.Models.Pago> pagos = new List <TerminalSIGES.Models.Pago>(); foreach (TS_BEPagoInput item in cPagos) { pagos.Add(new TerminalSIGES.Models.Pago() { Codigo = item.cdtppago, Tipo = item.cdtppago, Referencia = item.nrotarjeta, Soles = Convert.ToDecimal(item.mtopagosol), Dolares = Convert.ToDecimal(item.mtopagodol) }); } OnReponse(pagos); await Navigation.PopAsync(); return; } CalcularTotales(); var flag = TSSalesApp.vParemetros.flg_pideplacatb ?? false; if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Factura().Nombre || flag) { flagPlaca = true; string result = await RegexExpresion.SolicitarPlaca(this.Navigation); if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca) || string.IsNullOrEmpty(TSSalesApp.vCabecera.odometro)) { await DisplayAlert("Aviso", "Ingrese placa y odómetro", "ok"); return; } } List <TS_BEPagoInput> cPago = ObtenerPago(); TSSalesApp.cPagoInput = new TS_BEPagoInput[] { }; if (cPago == null) { //await DisplayAlert("Aviso", "Por favor, ingresar el monto pagado", "Aceptar"); return; } TSSalesApp.cPagoInput = cPago.ToArray(); if (cPago.Count <= 0) { await DisplayAlert("Aviso", "Por favor, ingresar el monto pagado", "Aceptar"); return; } if (TSSalesApp.vCabecera.mtototal > TSSalesApp.vCabecera.mtorecaudo) { await DisplayAlert("Aviso", "Por favor, falta completar el monto a pagar", "Aceptar"); return; } TSSalesApp.TipoVenta = ""; busyindicator.IsVisible = true; ToolBarItems(false); SalesEstado resultado = SalesEstado.ErrorSistema; await Task.Run(() => { TSSalesApp.SalesGrabarVenta += _SalesGrabarVenta;; resultado = TSSalesApp.GrabarVenta(Convert.ToBoolean(this.ConIgv.IsChecked ?? false), false, false).Result; }); if (resultado != SalesEstado.EsperandoRespuesta) { busyindicator.IsVisible = false; ToolBarItems(true); switch (resultado) { case SalesEstado.ErrorInternet: await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar"); break; case SalesEstado.ErrorSistema: await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar"); break; } } }
private async void BtnSaveCredito_Clicked(object sender, EventArgs e) { int isBuscada = 0; foreach (string tarjeta in TarjetasBuscadas) { if ((tarjeta ?? "").Trim().Equals((contexto.Codigo_cliente ?? "").Trim())) { isBuscada++; } } if (isBuscada == 0) { await DisplayAlert("Aviso", "Por favor debe procesar la busqueda de la tarjeta seleccionada correctamente, verifique que no este bloqueada o sin saldo", "Aceptar"); return; } if (TSCustomerApp.ClientOuput.mtodisponible <= 0 || TSCustomerApp.ClientOuput.mtodisponible == null) { await DisplayAlert("Aviso", "Cliente no tiene saldo, no puede continuar la venta.", "Aceptar"); return; } if (String.IsNullOrEmpty(contexto.Chofer)) { await DisplayAlert("Aviso", "Ingrese datos del chofer.", "Aceptar"); return; } if (String.IsNullOrEmpty(contexto.Placa)) { await DisplayAlert("Aviso", "Ingrese número de placa.", "Aceptar"); return; } if (String.IsNullOrEmpty(contexto.Odometro)) { await DisplayAlert("Aviso", "Ingrese datos del Odómetro.", "Aceptar"); return; } if (IsEvent) { SaveEvent(new Lado() { Cara = this.Cara, Placa = this.txtPlaca.Text, Chofer = this.txtChofer.Text, Codigo = this.txtCodigoCliente.Text, Tarjeta_afiliacion = "", Ruc = "", RazonSocial = contexto.Razon_social_cliente, Direccion = "", Correo = "", Tarjeta = contexto.Tarjeta, Telefono = "", Odometro = this.txtOdoMetro.Text, Marca = "", Modelo = "", Fecha_Nacimiento = null, Pago = "NOTA DESPACHO", Documento = EDocumento.NotaDespacho, }); await Navigation.PopAsync(); return; } TSSalesApp.vCabecera.nroplaca = contexto.Placa; TSSalesApp.vCabecera.chofer = contexto.Chofer; TSSalesApp.vCabecera.odometro = contexto.Odometro; TSSalesApp.vCabecera.nrotarjeta = contexto.Tarjeta; TSCustomerApp.ClientOuput.nroTarjeta = contexto.Tarjeta; TSCustomerApp.CdCliente = contexto.Codigo_cliente; TSCustomerApp.ClientOuput.tipocli = ""; TSCustomerApp.TipoComprobante = TSSalesInput.NotaDeDespacho(); TSCustomerApp.FlagSearch = true; await Navigation.PopAsync(); }
private void BtnSave_Clicked(object sender, EventArgs e) { /** INICIO DE VALIDACIONES DE TARJETAS DE ACUMULACION DE PUNTOS **/ if ((this.txtTarjetaAfiliacion.Text ?? "").Length > 0) { if (TSCustomerApp.vTarjetasBuscadas.Count == 0) { DisplayAlert("Aviso", "Debe buscar la tarjeta seleccionada", "Aceptar"); return; } else { foreach (string tarjeta in TSCustomerApp.vTarjetasBloqueadas) { if (tarjeta.Equals(txtTarjetaAfiliacion.Text)) { DisplayAlert("Aviso", "La tarjeta descrita en la busqueda esta bloqueada", "Aceptar"); return; } } bool isbuscado = false; foreach (string tarjeta in TSCustomerApp.vTarjetasBuscadas) { if ((tarjeta ?? "").Trim().Equals((txtTarjetaAfiliacion.Text ?? "").Trim())) { isbuscado = true; } } if (isbuscado == false) { DisplayAlert("Aviso", "Debe buscar la tarjeta descrita", "Aceptar"); return; } } } /**FIN VALIDACIONES DE TARJETAS DE PUNTOS**/ /** INICIO DE VALIDACIONES DE TIPO DE DOCUMENTO**/ if ((this.txtCodigo.Text ?? "").Trim().Length == 11 || (this.txtRuc.Text ?? "").Trim().Length == 11) { TS_BEMensaje validacion = validateFactura(); if (validacion.Ok) { TSCustomerApp.TipoComprobante = TSSalesInput.Factura(); } else { DisplayAlert("Aviso", validacion.mensaje, "Aceptar"); return; } } else if ((this.txtCodigo.Text ?? "").Trim().Length != 11 && (this.txtRuc.Text ?? "").Trim().Length != 11) { TS_BEMensaje validacion = validateBoleta(); if (validacion.Ok) { TSCustomerApp.TipoComprobante = TSSalesInput.Boleta(); } else { DisplayAlert("Aviso", validacion.mensaje, "Aceptar"); return; } } /** FIN DE VALIDACIONES DE TIPO DE DOCUMENTO **/ /** INICIO DE VALIDACIONES DE TARJETA CREDITO EN CLIENTES **/ if (TSCustomerApp.vCodigoBloqueado.Count > 0) { foreach (string tarjeta in TSCustomerApp.vCodigoBloqueado) { if (tarjeta.Equals((this.txtCodigo.Text ?? "").Trim())) { DisplayAlert("Aviso", "No puede utilizar una tarjeta credito en pagos al contado", "Aceptar"); return; } } } var varVerificaCodigo = (txtCodigo.Text ?? "").Trim(); if (varVerificaCodigo.Length > 0) { string creditoCorp = (TSSalesApp.vParemetros.prefcredcorp ?? "").Trim(); string creditoLocal = (TSSalesApp.vParemetros.prefcredlocal ?? "").Trim(); string creditoFlot = (TSSalesApp.vParemetros.prefflotlocal ?? "").Trim(); if (varVerificaCodigo.Length >= creditoCorp.Length) { if (varVerificaCodigo.Substring(0, creditoCorp.Length).Equals(creditoCorp)) { DisplayAlert("Aviso", "No puede pasar una tarjeta coorporativa en ventas al contado", "Aceptar"); return; } } if (varVerificaCodigo.Length >= creditoLocal.Length) { if (varVerificaCodigo.Substring(0, creditoLocal.Length).Equals(creditoLocal)) { DisplayAlert("Aviso", "No puede pasar una tarjeta de credito local en ventas al contado", "Aceptar"); return; } } if (varVerificaCodigo.Length >= creditoFlot.Length) { if (varVerificaCodigo.Substring(0, creditoFlot.Length).Equals(creditoFlot)) { DisplayAlert("Aviso", "No puede pasar una tarjeta de flota en ventas al contado", "Aceptar"); return; } } } /** FIN DE VALIDACIONES DE TARJETA CREDITO EN CLIENTES **/ TSCustomerApp.ClientOuput.rscliente = this.txtRscliente.Text; TSCustomerApp.ClientOuput.drcliente = this.txtDireccion.Text; TSCustomerApp.ClientOuput.ruccliente = this.txtRuc.Text; TSCustomerApp.ClientOuput.emcliente = this.txtEmail.Text; TSCustomerApp.ClientOuput.cdcliente = this.txtCodigo.Text; TSCustomerApp.ClientOuput.tarjafiliacion = this.txtTarjetaAfiliacion.Text; TSCustomerApp.ClientOuput.puntos = (this.txtTarjetaAfiliacion.Text ?? "").Equals((cliente.tarjafiliacion ?? "").Trim()) ? cliente.puntos : 0; TSCustomerApp.ClientOuput.valoracumula = (this.txtTarjetaAfiliacion.Text ?? "").Equals((cliente.tarjafiliacion ?? "").Trim()) ? cliente.valoracumula : 0; TSCustomerApp.ClientOuput.isafiliacion = (this.txtTarjetaAfiliacion.Text ?? "").Equals((cliente.tarjafiliacion ?? "").Trim()); TSSalesApp.vCabecera.nroplaca = this.txtPlaca.Text; TSCustomerApp.FlagSearch = true; Navigation.PopAsync(); }
protected override void OnAppearing() { base.OnAppearing(); this.labelRuc.Text = "Ruc"; this.Title = ("FACTURACIÓN - " + (TSSalesApp.vTerminal.nropos ?? "").Trim() + ", Turno: " + TSSalesApp.vTerminal.turno + ", VENDEDOR:" + (TSSalesApp.vVendedor.dsvendedor ?? "").Trim()).ToUpper(); if (TSCustomerApp.TipoComprobante != null) { txtTipoComprobante.Text = TSCustomerApp.TipoComprobante.Nombre; } else { txtTipoComprobante.Text = TSSalesInput.Boleta().Nombre; TSCustomerApp.TipoComprobante = TSSalesInput.Boleta(); } if (TSCustomerApp.FlagSearch) { if (!TSCustomerApp.FlagArticuloSearch) { ClearDetalles(); } if (TSCustomerApp.ClientOuput != null) { if (TSCustomerApp.ClientOuput.isafiliacion) { txtPuntosDisponible.Text = TSCustomerApp.ClientOuput.puntos.ToString(); txtValorAcumulado.Text = TSCustomerApp.ClientOuput.valoracumula.ToString(CultureInfo.CreateSpecificCulture("en-GB")); } if (TSCustomerApp.ClientOuput.Saldos == null) { btnAutomatic.IsEnabled = false; btnCredito.IsEnabled = false; btnCliente.IsEnabled = false; btnSerafin.IsEnabled = false; btnEfectivo.IsEnabled = true; btnTarjeta.IsEnabled = true; } if (TSCustomerApp.ClientOuput.Saldos != null) { btnAutomatic.IsEnabled = false; btnCredito.IsEnabled = false; btnCliente.IsEnabled = false; btnTranfGrat.IsEnabled = false; btnSerafin.IsEnabled = false; btnEfectivo.IsEnabled = false; btnTarjeta.IsEnabled = false; } } if (TSCustomerApp.TipoComprobante == TSSalesInput.NotaDeDespacho()) { this.labelRuc.Text = "Código"; } if (TSCustomerApp.TipoComprobante != TSSalesInput.NotaDeDespacho()) { this.labelRuc.Text = (TSCustomerApp.ClientOuput.ruccliente ?? "").Trim().Length == 11 ? "Ruc" : "Código"; } } if (flagArticulo) { PrintTotales(); flagArticulo = false; } if (TSSalesApp.ArticleAdd) { PrintTotales(); TSSalesApp.ArticleAdd = false; } txtRuc.Text = (TSCustomerApp.ClientOuput.ruccliente ?? "").Trim().Length == 11 ? (TSCustomerApp.ClientOuput.ruccliente ?? "").Trim() : (TSCustomerApp.ClientOuput.cdcliente ?? "").Trim(); txtRazonSocial.Text = (TSCustomerApp.ClientOuput.rscliente ?? "").Trim(); flagCliente = false; flagbtnInferior = false; flagbtnCaras = false; TSCustomerApp.FlagArticuloSearch = false; TSCustomerApp.FlagSearch = false; SalesCaras(); isCarasSearch = true; if (Cargado) { return; } SalesCorrelativo(); PrintTotales(); }