示例#1
0
        public ResultadoTrama UltimaVenta(string[] data)
        {
            try
            {
                List<string> mensajeTrama = new List<string>();
                string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
                string cara = data[1];
                string placa = data[2];
                string km = data[3];

                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    DataTable dtTurno = modPOS.ObtenerTurnoPorCara(cara);
                    if (dtTurno.Rows.Count == 0) return new ResultadoTrama(false, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No hay turno abierto ", "en la cara: " + cara}), "No hay turno abierto en la cara:" + cara);
                    DataTable dtUltimaVenta = modPOS.ObtenerUltimaVentaPorCara(cara);
                    if (dtUltimaVenta.Rows.Count == 0) return new ResultadoTrama(false, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se obtuvo ultima ", "venta en la cara: " + cara }), "No se pudo obtener ultima venta en cara:" + cara);
                    if (modPOS.ActualizarPlacaKmUltimaVenta(placa, km, dtUltimaVenta.Rows[0]["idVenta"].ToString()) == false)
                    {
                        return new ResultadoTrama(false, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se pudo actualizar", "datos de ultima venta ","en la cara " + cara}), "No se pudo actualizar los datos de última venta en la cara :" + cara);
                    }
                    return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(ArmarMensajeVenta(true, dtUltimaVenta.Rows[0]["idVenta"].ToString())), "");
                }
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
示例#2
0
        public ResultadoTrama VentaCanasta(string[] data)
        {
            try
            {
                List<string> mensajeTrama = new List<string>();
                string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
                string idProducto = data[1];
                int cantidad = Convert.ToInt32(data[2]);
                string cara = data[3];

                string serialFidelizado = "";
                string serialCredito = "";
                int descuentoCredito = 0;
                //Capturo si es venta fidelizado
                if (instancia.ListaFidelizadosCreditosPendientes.Count > 0)
                {
                    FidelizadoCreditoPendiente objFidelizado = instancia.ListaFidelizadosCreditosPendientes.Find(item => item.cara == cara && item.tipoSolicitud == ETipoSolicitudSerial.Fidelizado);
                    if (objFidelizado != null)
                    {
                        serialFidelizado = objFidelizado.serial;
                        instancia.ListaFidelizadosCreditosPendientes.Remove(objFidelizado);
                    }
                    FidelizadoCreditoPendiente objCredito = instancia.ListaFidelizadosCreditosPendientes.Find(item => item.cara == cara && item.tipoSolicitud == ETipoSolicitudSerial.Credito);
                    if (objCredito != null)
                    {
                        serialCredito = objCredito.serial;
                        descuentoCredito = objCredito.descuento;
                        instancia.ListaFidelizadosCreditosPendientes.Remove(objCredito);
                    }
                }
                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    //Validamos que el producto exista, ademas que tenga existencias, y validar tambien que haya turno abierto
                    DataTable producto = modPOS.ObtenerProductoPorId(idProducto);
                    DataTable turno = modPOS.ObtenerTurnoPorCara(cara);
                    if (producto.Rows.Count == 0) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se encontro producto ",  idProducto.ToString() }), "Usuario no existe o incorrecto para consignación en efectivo");
                    if (producto.Rows[0]["idTipoProducto"].ToString().Trim() == "1") return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se puede vender","productos tipo combustible"}), "No se puede vender productos tipo Combustible");

                    if (Convert.ToInt32(producto.Rows[0]["existenciaProducto"]) < cantidad)
                    {
                        List<Byte[]> tramaAlerta = AsistenteMensajes.GenerarMensajeAlerta(new string[] {"La cantidad a vender","es mayor a la existente"});
                        return new ResultadoTrama(true, tramaAlerta, "El producto con id " + idProducto + " no cuenta con las cantidades solicitadas: " + cantidad);
                    }
                    if (turno.Rows.Count == 0) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No hay turno abierto ", "en cara " + cara }), "No hay turno abierto en cara " + cara + "para venta de canasta");

                    int valorVenta = Convert.ToInt32(producto.Rows[0]["precioventaProducto"]) * cantidad;
                    var result = modPOS.GuardaVentaCanasta(idProducto, cara, valorVenta.ToString(), _FechaActual, turno.Rows[0]["idUSuario"].ToString(), turno.Rows[0]["idXbee"].ToString(), cantidad, serialFidelizado, serialCredito, descuentoCredito);
                    if (result > 0)
                    {

                        //mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("CANASTA VENTA",
                        //                        Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));
                        //mensajeTrama.Add("C SE VENDIO EL PRODUCTO:");
                        //mensajeTrama.Add("C " + producto.Rows[0]["nomProducto"].ToString().Trim());
                        //mensajeTrama.Add("C CANTIDAD: " + cantidad);
                        //mensajeTrama.Add("C TOTAL: $" + valorVenta.ToString());
                        //mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                        //   Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.ambos, '-'));
                        //mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                        //    Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.ambos, ' '));
                        //mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                        //    Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.ambos, ' '));
                        return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(ArmarMensajeVenta(true, result.ToString())), "");
                    }
                    else
                    {
                        return new ResultadoTrama(false, null, "No se pudo guardar la venta, porfavor contacte al administrador");
                    }
                }

                return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(mensajeTrama), "");
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
示例#3
0
        public ResultadoTrama CerrarTurno(string[] data)
        {
            Generales modGenerales = new Generales();
            try
            {
                List<string> mensajeTrama = new List<string>();
                string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
                string identificacion = data[1];
                string cara = data[2];
                int idXbee = 0;
                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    DataTable dtPosicion = modPOS.ObtieneInformacionCara(cara);
                    if (dtPosicion.Rows.Count == 0) return new ResultadoTrama(false, null, "La cara " + cara + "no existe!");
                    DataTable dtUsuario = modGenerales.ObtenerUsuario(identificacion);
                    if (dtUsuario.Rows.Count == 0) return new ResultadoTrama(false, null, "El usuario con código " + identificacion + " no existe!");
                    DataTable dtTurno = modPOS.ObtenerTurnoPorCara(cara);
                    if (dtTurno.Rows.Count == 0) return new ResultadoTrama(false, null, "No hay turno en la cara " + cara);

                    if (dtTurno.Rows[0]["idUsuario"].ToString().Trim() != identificacion) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "El usuario " + identificacion, "no tiene turno abierto"}), "El usuario " + identificacion + " no tiene turno abierto");

                    string idTurno = dtTurno.Rows[0][0].ToString();
                    string idPosicion = dtPosicion.Rows[0][0].ToString();
                    idXbee = Convert.ToInt32(dtPosicion.Rows[0]["idXbee"]);
                    var resCierre = modPOS.GuardaCerrarTurno(idTurno,idPosicion,cara,_FechaActual);
                    if (resCierre == false) return new ResultadoTrama(false, null, "No se pudo guardar el cierre de turno" + cara);
                    VentasPorTurno datosVenta = modPOS.ObtenerDatosVentaPorIdTurno(idTurno);
                    if (object.Equals(datosVenta,null)) return new ResultadoTrama(false, null, "No se pudo obtener información de las ventas del turno!");
                    return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(ArmarMensajeVentasTurno(datosVenta)), "",idXbee);
                }
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
            finally
            {
                modGenerales.Dispose();
            }
        }