Ejemplo n.º 1
0
        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();
 }
Ejemplo n.º 8
0
        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;
                }
            }
        }
Ejemplo n.º 10
0
        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();
        }