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); } }
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); } }
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); } }
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); } }
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; } }
/// <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); } }
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); } }
/// <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); } }
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(); } }
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); } }
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; }
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; }