public static List<Byte[]> CocarEncabezadoAListadosDeTramas(List<Byte[]> _listTramas)
        {
            List<Byte[]> newListTramas = new List<Byte[]>();
            EstructuraTiquete estructuraTiquete;
            using (ModeloPOS modPOS = new ModeloPOS())
            {
                estructuraTiquete = modPOS.ObtenerDefinicionTiquete();
            }
            if (object.Equals( estructuraTiquete,null) == false)
            {
                if (estructuraTiquete.Cab1 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab1,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Cab2 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab2,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Cab3 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab3,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Cab4 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab4,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Cab5 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab5,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Cab6 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Cab6,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                foreach (byte[] _byte in _listTramas)
                {
                    newListTramas.Add(_byte);
                }
                if (estructuraTiquete.Pie1 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie1,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Pie2 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie2,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Pie3 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie3,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Pie4 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie4,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Pie5 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie5,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                if (estructuraTiquete.Pie6 != "") newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(estructuraTiquete.Pie6,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos,'-')));

                newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                    Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));

                newListTramas.Add(UtilidadesTramas.ObtenerByteDeString(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                    Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' ')));
                return newListTramas;
            }
            else
            {
                return _listTramas;
            }
        }
        public ResultadoTrama EnvioTotales(string[] data)
        {
            try
            {
                //desglosar mensaje
                string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
                string cara = data[1];
                decimal galon_m1 = (Convert.ToDecimal(data[2])/1000);
                int dinero_m1 = Convert.ToInt32(data[3]);
                int ppu_m1 = Convert.ToInt32(data[4]);
                decimal galon_m2 = (Convert.ToDecimal(data[5])/1000);
                int dinero_m2 = Convert.ToInt32(data[6]);
                int ppu_m2 = Convert.ToInt32(data[7]);
                decimal galon_m3 = (Convert.ToDecimal(data[8])/1000);
                int dinero_m3 = Convert.ToInt32(data[9]);
                int ppu_m3 = Convert.ToInt32(data[10]);
                string idProducto;
                string usuarioIslero;
                string idXbeeDispensador;
                DataTable dtPosicion;
                DataTable dtVentasTotales;
                bool RealizoVentaTotal = false;
                string ventaGalones = "";
                string ventaDinero = "";
                bool esCredito = false;
                int ImprimeTiquete = 0;

                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)
                //    {
                //        esCredito = true;
                //        serialCredito = objCredito.serial;
                //        descuentoCredito = objCredito.descuento;
                //        instancia.ListaFidelizadosCreditosPendientes.Remove(objCredito);
                //    }
                //}

                //obtengo el id de la posición por la cara, y traigo el idProducto tambien
                //Obtengo el ultimo registro de ventas en la cara
                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    dtPosicion = modPOS.ObtenerPosicionesPorCara(cara);

                    if (dtPosicion != null && dtPosicion.Rows.Count > 0)
                    {
                        idProducto = dtPosicion.Rows[0]["idProducto"].ToString();
                        idXbeeDispensador = dtPosicion.Rows[0]["idXbee"].ToString();
                        var DatosTurno = modPOS.ObtenerTurnoPorPosicionyEstado(dtPosicion.Rows[0]["idPosicion"].ToString());
                        if (DatosTurno != null && DatosTurno.Rows.Count>0)
                        {
                            usuarioIslero = DatosTurno.Rows[0]["idUsuario"].ToString();
                        }
                        else
                        {
                            return new ResultadoTrama(false, null, "No se pudo obtener los datos de un turno abierto para esta cara");
                        }
                    }
                    else
                    {
                        return new ResultadoTrama(false, null, "No se pudo obtener el id del producto de la posición");
                    }
                    dtVentasTotales = modPOS.ObtenerTotalesVentaPorCara(cara);

                    if (dtVentasTotales == null) return new ResultadoTrama(false, null, "Hubo error obteniendo los valores de las ventas totales");
                    if (dtVentasTotales.Rows.Count > 0)
                    {
                        //detectamos si en alguna de las mangueras hubo cambios para insertar en la tabla de ventas
                        if (Convert.ToDecimal(dtVentasTotales.Rows[0]["g1"]) != galon_m1)
                        {
                            RealizoVentaTotal = true;
                            decimal difGalon = (galon_m1 - Convert.ToDecimal(dtVentasTotales.Rows[0]["g1"]));
                            int difDinero = (dinero_m1 - Convert.ToInt32(dtVentasTotales.Rows[0]["p1"]));
                            ventaGalones = difGalon.ToString();
                            ventaDinero = difDinero.ToString();
                            using (ModeloDispensador modDIS = new ModeloDispensador())
                            {
                                DataTable dtPosicionProductoCorrecto;
                                dtPosicionProductoCorrecto = modPOS.ObtenerPosicionesPorCarayManguera(cara,"1");
                                if (dtPosicionProductoCorrecto.Rows.Count == 0) return new ResultadoTrama(false, null, "No se encontro producto en la cara " + cara + " manguera 1");
                                ImprimeTiquete = modDIS.GuardaVenta(dtPosicionProductoCorrecto.Rows[0]["idProducto"].ToString(), cara, "1", difDinero.ToString(), difGalon.ToString(), ppu_m1.ToString(), _FechaActual, usuarioIslero, idXbeeDispensador, serialFidelizado,serialCredito,descuentoCredito);
                            }
                        }
                        if (Convert.ToDecimal(dtVentasTotales.Rows[0]["g2"]) != galon_m2)
                        {
                            DataTable dtPosicionProductoCorrecto;
                            dtPosicionProductoCorrecto = modPOS.ObtenerPosicionesPorCarayManguera(cara, "2");
                            if (dtPosicionProductoCorrecto.Rows.Count == 0) return new ResultadoTrama(false, null, "No se encontro producto en la cara " + cara + " manguera 2");
                            RealizoVentaTotal = true;
                            decimal difGalon = (galon_m2 - Convert.ToDecimal(dtVentasTotales.Rows[0]["g2"]));
                            int difDinero = (dinero_m2 - Convert.ToInt32(dtVentasTotales.Rows[0]["p2"]));
                            ventaGalones = difGalon.ToString();
                            ventaDinero = difDinero.ToString();
                            using (ModeloDispensador modDIS = new ModeloDispensador())
                            {
                                ImprimeTiquete = modDIS.GuardaVenta(dtPosicionProductoCorrecto.Rows[0]["idProducto"].ToString(), cara, "2", difDinero.ToString(), difGalon.ToString(), ppu_m2.ToString(), _FechaActual, usuarioIslero, idXbeeDispensador, serialFidelizado, serialCredito, descuentoCredito);
                            }
                        }
                        if (Convert.ToDecimal(dtVentasTotales.Rows[0]["g3"]) != galon_m3)
                        {
                            DataTable dtPosicionProductoCorrecto;
                            dtPosicionProductoCorrecto = modPOS.ObtenerPosicionesPorCarayManguera(cara, "3");
                            if (dtPosicionProductoCorrecto.Rows.Count == 0) return new ResultadoTrama(false, null, "No se encontro producto en la cara " + cara + " manguera 3");
                            RealizoVentaTotal = true;
                            decimal difGalon = (galon_m3 - Convert.ToDecimal(dtVentasTotales.Rows[0]["g3"]));
                            int difDinero = (dinero_m3 - Convert.ToInt32(dtVentasTotales.Rows[0]["p3"]));
                            ventaGalones = difGalon.ToString();
                            ventaDinero = difDinero.ToString();
                            using (ModeloDispensador modDIS = new ModeloDispensador())
                            {
                                ImprimeTiquete = modDIS.GuardaVenta(dtPosicionProductoCorrecto.Rows[0]["idProducto"].ToString(), cara, "3", difDinero.ToString(), difGalon.ToString(), ppu_m3.ToString(), _FechaActual, usuarioIslero, idXbeeDispensador, serialFidelizado, serialCredito, descuentoCredito);
                            }
                        }
                    }
                    if (RealizoVentaTotal)
                    {
                        using (ModeloDispensador modDIS = new ModeloDispensador())
                        {
                            //Por ultimo guardamos en ventas totales
                            var resultGuardarTotales = modDIS.GuardaVentasTotales(data, _FechaActual, idXbeeDispensador);
                        }
                    }
                    else
                    {
                        return new ResultadoTrama(false, null, "No se guardo venta por que no se detectaron diferencias en galones ni dinero");
                    }
                }

                return new ResultadoTrama(true, null,"",_ventaGalones:ventaGalones,_ventaDinero:ventaDinero,_esCredito: esCredito,_imprimeTiquete:ImprimeTiquete);
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
Beispiel #3
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);
            }
        }
Beispiel #4
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);
            }
        }
Beispiel #5
0
        public ResultadoTrama GuardarTramaCTD(string[] data, int idXbee)
        {
            try
            {
                List<string> mensajeTrama = new List<string>();
                string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
                string dato = data[1];

                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    modPOS.GuardaTramaCTD(dato, idXbee);
                }

                return new ResultadoTrama(true, null, "Trama CTD recibida");
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
Beispiel #6
0
        public List<byte[]> TramaAutorizarVentaDispensador(string idXbee)
        {
            List<byte[]> TramasDevolver = new List<byte[]> { };
            string TramaCara1 = "W0";
            string TramaCara2 = "Q0";
            using (ModeloPOS modPOS = new ModeloPOS())
            {
                DataTable dtAutorizados = modPOS.EstaTurnoAbiertoPorIdXbee(idXbee);
                foreach (DataRow _row in dtAutorizados.Rows)
                {
                    //Cara1
                    if (_row["LetraTrama"].ToString() == "W")
                    {
                        TramaCara1 = "W1";
                    }
                    //Cara2
                    if (_row["LetraTrama"].ToString() == "Q")
                    {
                        TramaCara2 = "Q1";
                    }
                }

                TramasDevolver.Add(UtilidadesTramas.ObtenerByteDeString(TramaCara1));
                TramasDevolver.Add(UtilidadesTramas.ObtenerByteDeString(TramaCara2));
                return TramasDevolver;
            }
        }
Beispiel #7
0
        /// <summary>
        /// Resuelve la peticion de consignacion en efectivo, H:1075227951:1075227951
        /// </summary>
        /// <param name="data">recivo un array de strings con la informacion de la trama recibida
        /// donde 0 es el tipo de petición, 1 es la identificación del usuario, y 2 es el dinero que consigna</param>
        /// <returns></returns>
        public ResultadoTrama ConsignacionEfectivo(string[] data)
        {
            try
            {
                List<string> mensajeTrama = new List<string>();
                string Identificacion = data[1];
                int Dinero = Convert.ToInt32(data[2]);
                string NomApeUsuario = "";
                bool encontroUsuario = false;
                DataTable dtUsuario = null;
                using (Generales modGenerales = new Generales())
                {
                    //Buscar el usuario y validar que sea islero.
                    dtUsuario = modGenerales.ObtenerUsuario(Identificacion);
                    if (dtUsuario != null && dtUsuario.Rows.Count > 0)
                    {
                        if (dtUsuario.Rows[0]["tipoPerfil"].ToString().Trim() == "3")
                        {
                            encontroUsuario = true;
                        }
                    }
                }
                if (encontroUsuario == true)
                {
                    using (ModeloPOS modPOS = new ModeloPOS())
                    {
                        if (modPOS.GuardaConsignacion(Identificacion,Dinero.ToString()) == true) //mando a guardar la consignación en la base de datos
                        {
                            NomApeUsuario = dtUsuario.Rows[0]["nomUsuario"].ToString().Trim() + " " + dtUsuario.Rows[0]["apeUsuario"].ToString().Trim();
                            //Devuelvo trama exitosa
                            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("CONSIGNACION",
                                Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.ambos, '-'));
                            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(NomApeUsuario,
                                Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.izquierda, ' '));
                            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss"),
                                Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.izquierda, ' '));
                            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("$" + Dinero.ToString(""),
                                Enumeraciones.TipodeMensaje.ConAlerta, Enumeraciones.Direccion.izquierda, ' '));
                            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, ' '));
                        }
                        else
                        {
                            return new ResultadoTrama(false, null,"No se pudo guardar la consignación en la base de datos");
                        }
                    }

                }
                else
                {
                    //Devuelvo trama que el usuario no es islero
                    return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Usuario no existe o incorrecto"}), "Usuario no existe o incorrecto para consignación en efectivo");
                }
                return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(mensajeTrama),"");
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null,e.Message);
            }
        }
Beispiel #8
0
        public ResultadoTrama Fidelizado(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 serial = data[2];
                string NomApeUsuario = "";
                DataTable dtFidelizado;
                using (ModeloPOS modPOS = new ModeloPOS())
                {
                    dtFidelizado = modPOS.ObtenerFidelizadoPorSerial(serial);
                }

                if (dtFidelizado.Rows.Count == 0) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se encontro fidelizado", "con codigo: " + serial }), "No se encontro fidelizado con serial " + serial);
                if (object.Equals(dtFidelizado.Rows[0]["nomPlan"], DBNull.Value) == true)
                {
                    return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Usuario no tiene", "parametrizado puntos" }), "Usuario No Tiene Parametrizado Puntos");
                }

                DataTable dtUsuario;
                int idXbee = 0;
                using (Generales modGenerales = new Generales())
                {
                    dtUsuario = modGenerales.ObtenerUsuario(dtFidelizado.Rows[0]["propietario"].ToString());
                    if (dtUsuario.Rows.Count == 0) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Usuario no existe o incorrecto" }), "Usuario no existe o incorrecto");
                    NomApeUsuario = dtUsuario.Rows[0]["nomUsuario"].ToString().Trim() + " " + dtUsuario.Rows[0]["apeUsuario"].ToString().Trim();
                    using (ModeloPOS modPOS = new ModeloPOS())
                    {
                        DataTable dtPosicion = modPOS.ObtenerPosicionesPorCara(cara);
                        idXbee = (int)dtPosicion.Rows[0]["idXbee"];
                        if (dtPosicion.Rows.Count == 0) return new ResultadoTrama(false, null, "No se pudo obtener la posición.");
                        var DatosTurno = modPOS.ObtenerTurnoPorPosicionyEstado(dtPosicion.Rows[0]["idPosicion"].ToString());
                        if (DatosTurno.Rows.Count == 0) return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No hay turno en la cara " + cara }), "No hay turno en la cara " + cara);

                        ResultadoTrama _resultado = new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Venta al usuario:", NomApeUsuario }), "Venta fidelizado al usuario: " + NomApeUsuario, idXbee, true);

                        return _resultado;
                    }
                }
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
Beispiel #9
0
 /// <summary>
 /// Devuelve información de ventas de un turno por consecutivo
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 public ResultadoTrama ConsecutivoCierre_AperturaTurno(string[] data)
 {
     try
     {
         List<string> mensajeTrama = new List<string>();
         string _FechaActual = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss");
         string tipoTurno = data[1]; //1-> apertura, 2->Cierre
         string idTurno = data[2];
         if (tipoTurno == "1")
         {
             return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(ArmarMensajeAperturaTurno(idTurno)), "");
         }
         else
         {
             using (ModeloPOS modPOS = new ModeloPOS())
             {
                 VentasPorTurno datosVenta = modPOS.ObtenerDatosVentaPorIdTurno(idTurno);
                 if (object.Equals(datosVenta, null)) return new ResultadoTrama(false, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "No se obtuvo informacion", "de las ventas del turno " + idTurno }), "No se pudo obtener información de las ventas del turno!");
                 return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(ArmarMensajeVentasTurno(datosVenta)), "");
             }
         }
     }
     catch (Exception e)
     {
         LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
         return new ResultadoTrama(false, null, e.Message);
     }
 }
Beispiel #10
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();
            }
        }
Beispiel #11
0
        public ResultadoTrama AbrirTurno(string[] data)
        {
            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];
                string NomApeUsuario = "";
                bool encontroUsuario = false;
                DataTable dtUsuario;
                int idXbee = 0;
                using (Generales modGenerales = new Generales())
                {
                    //Buscar el usuario y validar que sea islero.
                    dtUsuario = modGenerales.ObtenerUsuario(Identificacion);
                    if (dtUsuario != null && dtUsuario.Rows.Count > 0)
                    {
                        if (dtUsuario.Rows[0]["tipoPerfil"].ToString().Trim() == "3")
                        {
                            encontroUsuario = true;
                        }
                    }
                    if (encontroUsuario == true)
                    {
                        NomApeUsuario = dtUsuario.Rows[0]["nomUsuario"].ToString().Trim() + " " + dtUsuario.Rows[0]["apeUsuario"].ToString().Trim();
                        using (ModeloPOS modPOS = new ModeloPOS())
                        {
                            DataTable dtPosicion = modPOS.ObtenerPosicionesPorCara(cara);
                            idXbee = (int)dtPosicion.Rows[0]["idXbee"];

                            if (dtPosicion != null && dtPosicion.Rows.Count > 0)
                            {
                                //Valido si ya hay turno abierto en la cara
                                var DatosTurno = modPOS.ObtenerTurnoPorPosicionyEstado(dtPosicion.Rows[0]["idPosicion"].ToString());
                                if (DatosTurno == null)
                                {
                                    return new ResultadoTrama(false, null, "Error Sql al momento de obbtener los datos del turno");
                                }
                                if (DatosTurno.Rows.Count == 0)
                                {
                                    DataTable dtVentas = modPOS.ObtenerTotalesVentaPorCara(cara);
                                    if (dtVentas != null && dtVentas.Rows.Count > 0)
                                    {
                                        var resultGuardar = modPOS.GuardarAperturaTurno(Identificacion, dtPosicion.Rows[0]["idPosicion"].ToString(), _FechaActual, (int)(dtVentas.Rows[0][0]));
                                        if (resultGuardar >0)
                                        {
                                            mensajeTrama = ArmarMensajeAperturaTurno(resultGuardar.ToString());
                                        }
                                        else
                                        {
                                            return new ResultadoTrama(false, null, "No se pudo guardar la apertura del turno");
                                        }
                                    }
                                    else
                                    {
                                        return new ResultadoTrama(false, null, "No se encontraron totales de ventas para la cara " + cara + ".");
                                    }
                                }
                                else
                                {
                                    return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Ya se abrio turno","en la cara: " + cara}), "Usuario no existe o incorrecto para consignación en efectivo");
                                }
                            }
                            else
                            {
                                return new ResultadoTrama(false, null, "No se pudo obtener la posición.");
                            }
                        }
                    }
                    else
                    {
                        //Devuelvo trama que el usuario no es islero
                        return new ResultadoTrama(true, AsistenteMensajes.GenerarMensajeAlerta(new string[] { "Usuario no existe o incorrecto" }), "Usuario no existe o incorrecto para apertura de turno");
                    }
                }
                return new ResultadoTrama(true, UtilidadesTramas.ConvertirListadoStringaByte(mensajeTrama), "",idXbee);
            }
            catch (Exception e)
            {
                LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError);
                return new ResultadoTrama(false, null, e.Message);
            }
        }
Beispiel #12
0
        public List<string> ArmarMensajeVenta(bool esOriginal, string idVenta)
        {
            DataTable dtInfo;
            using (ModeloPOS modPOS = new ModeloPOS())
            {
                dtInfo = modPOS.ObtenerUltimaVentaPorId(idVenta);
            }
            if (dtInfo.Rows.Count == 0) throw new Exception("No se pudo obtener información de la venta con consecutivo " + idVenta);
            List<string> mensajeTrama = new List<string>();
            string textoEncabezado;
            if (esOriginal == true)
            {
                textoEncabezado = "ORIGINAL";
            }
            else
            {
                textoEncabezado = "COPIA";
            }
            string fecha = Convert.ToDateTime(dtInfo.Rows[0]["fecha"]).ToString("yyyy-MM-dd");
            string hora = Convert.ToDateTime(dtInfo.Rows[0]["fecha"]).ToString(" H:mm:ss");
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(textoEncabezado,
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));
            mensajeTrama.Add("CFecha: " + fecha + " " + hora);
            mensajeTrama.Add("CTiquete: " + idVenta.ToString() + " Placa: " + dtInfo.Rows[0]["placa"].ToString());
            mensajeTrama.Add("CKilometraje: " + dtInfo.Rows[0]["kilometraje"].ToString());
            mensajeTrama.Add("CCara: " + dtInfo.Rows[0]["cara"].ToString() + " Mang: " + dtInfo.Rows[0]["manguera"].ToString());
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                                               Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));
            mensajeTrama.Add("CProd: " + dtInfo.Rows[0]["nomProducto"].ToString());
            mensajeTrama.Add("CCant: " + dtInfo.Rows[0]["galones"].ToString() + " PPG: $" + dtInfo.Rows[0]["ppu"].ToString() + "");
            mensajeTrama.Add("CTotal: $" + dtInfo.Rows[0]["precio"].ToString());

            if (object.Equals(dtInfo.Rows[0]["tipoCuenta"],DBNull.Value) == false && dtInfo.Rows[0]["tipoCuenta"].ToString() == "1")
            {
                mensajeTrama.Add("CForma de Pago: Credito");
                string descuento = "0";
                if (object.Equals(dtInfo.Rows[0]["descuento"], DBNull.Value) == false && dtInfo.Rows[0]["descuento"].ToString().Trim() != "")
                {
                    descuento = dtInfo.Rows[0]["descuento"].ToString();
                }
                decimal DineroDescontar = Convert.ToDecimal(dtInfo.Rows[0]["precio"]) - Convert.ToDecimal(descuento);

                if (Convert.ToDecimal(descuento) != 0)
                {
                    if (Convert.ToDecimal(descuento) < 0)
                    {
                        mensajeTrama.Add("CIncremento: $" + Math.Abs(Convert.ToDecimal(descuento)) + "");
                    }
                    else
                    {
                        mensajeTrama.Add("CDescuento: $" + descuento + "");
                    }
                }

                mensajeTrama.Add("CTotal acreditado: $" + DineroDescontar + "");
            }
            else if (object.Equals(dtInfo.Rows[0]["tipoCuenta"], DBNull.Value) == false && dtInfo.Rows[0]["tipoCuenta"].ToString() == "2")
            {
                mensajeTrama.Add("CForma de Pago: Contado");
            }
            else if (object.Equals(dtInfo.Rows[0]["tipoCuenta"], DBNull.Value) == false && dtInfo.Rows[0]["tipoCuenta"].ToString() == "3")
            {
                mensajeTrama.Add("CForma de Pago: Prepago");
                string descuento = "0";
                if (object.Equals(dtInfo.Rows[0]["descuento"], DBNull.Value) == false && dtInfo.Rows[0]["descuento"].ToString().Trim() != "")
                {
                    descuento = dtInfo.Rows[0]["descuento"].ToString();
                }
                decimal DineroDescontar = Convert.ToDecimal(dtInfo.Rows[0]["precio"]) - Convert.ToDecimal(descuento);

                if (Convert.ToDecimal(descuento) != 0)
                {
                    if (Convert.ToDecimal(descuento) < 0)
                    {
                        mensajeTrama.Add("CIncremento: $" + Math.Abs(Convert.ToDecimal(descuento)) + "");
                    }
                    else
                    {
                        mensajeTrama.Add("CDescuento: $" + descuento + "");
                    }
                }
                mensajeTrama.Add("CTotal Venta Prepago:");
                mensajeTrama.Add("C$" + DineroDescontar + "");
            }
            else
            {
                mensajeTrama.Add("CForma de Pago: Datafono");
            }
            mensajeTrama.Add("CCliente: " + dtInfo.Rows[0]["cliente"].ToString());
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                                                           Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));
            mensajeTrama.Add("CAtendido: " + dtInfo.Rows[0]["nomUsuario"].ToString() + " " + dtInfo.Rows[0]["apeUsuario"].ToString());
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                                                                       Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));
            string puntosVenta = "0";
            string puntosTotal = "0";
            if (object.Equals(dtInfo.Rows[0]["puntosEnVenta"], DBNull.Value) == false && dtInfo.Rows[0]["puntosEnVenta"].ToString().Trim() != "")
            {
                puntosVenta = dtInfo.Rows[0]["puntosEnVenta"].ToString();
            }
            if (object.Equals(dtInfo.Rows[0]["puntosTotal"], DBNull.Value) == false && dtInfo.Rows[0]["puntosTotal"].ToString().Trim() != "")
            {
                puntosTotal = dtInfo.Rows[0]["puntosTotal"].ToString();
            }
            mensajeTrama.Add("?     PUNTOS");
            mensajeTrama.Add("?COMPRA: " + puntosVenta);
            mensajeTrama.Add("?TOTAL: " + puntosTotal );
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                                                                       Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));

            return mensajeTrama;
        }
Beispiel #13
0
        public List<string> ArmarMensajeAperturaTurno(string idConsecutivo)
        {
            DataTable dtDatosApertura;
            using (ModeloPOS modPOS = new ModeloPOS())
            {
                dtDatosApertura = modPOS.ObtenerAperturaTurnoPorId(idConsecutivo);
            }
            List<string> mensajeTrama = new List<string>();
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("ABRIR TURNO",
                                                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));

            mensajeTrama.Add("C Consecutivo: " + idConsecutivo);

            mensajeTrama.Add("C " + dtDatosApertura.Rows[0]["nomUsuario"].ToString().Trim() + " " + dtDatosApertura.Rows[0]["apeUsuario"].ToString().Trim());

            mensajeTrama.Add("C CARA: " + dtDatosApertura.Rows[0]["cara"].ToString().Trim());

            mensajeTrama.Add("C " + dtDatosApertura.Rows[0]["abrirTurno"].ToString());

            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("INICIO DE TURNO",
                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));

            //MANGERA 1
            if ((int)dtDatosApertura.Rows[0]["p1"] != 0)
            {
                int dinero = (int)dtDatosApertura.Rows[0]["p1"];
                mensajeTrama.Add("C MANGERA 1");
                mensajeTrama.Add("C $: " + dinero.ToString()
                    + " | G: " + dtDatosApertura.Rows[0]["g1"].ToString());
            }
            //MANGERA 2
            if ((int)dtDatosApertura.Rows[0]["p2"] != 0)
            {
                int dinero = (int)dtDatosApertura.Rows[0]["p2"];
                mensajeTrama.Add("C MANGERA 2");
                mensajeTrama.Add("C $: " + dinero.ToString()
                    + " | G: " + dtDatosApertura.Rows[0]["g2"].ToString());
            }
            //MANGERA 3
            if ((int)dtDatosApertura.Rows[0]["p3"] != 0)
            {
                int dinero = (int)dtDatosApertura.Rows[0]["p3"];
                mensajeTrama.Add("C MANGERA 3");
                mensajeTrama.Add("C $: " + dinero.ToString()
                    + " | G: " + dtDatosApertura.Rows[0]["g3"].ToString());
            }
            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama("-",
                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, '-'));

            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' '));

            mensajeTrama.Add(UtilidadesTramas.CentrarConcatenarMensajeTrama(" ",
                Enumeraciones.TipodeMensaje.SinAlerta, Enumeraciones.Direccion.ambos, ' '));

            return mensajeTrama;
        }