/// <summary> /// Metodo para abrir conexion a xbee con el puerto predefinido /// </summary> private void Conectar() { try { using (Generales modGenerales = new Generales()) { var XbeeCoordinador = modGenerales.ObtenerXbeeCoordinador(); if (XbeeCoordinador == null) { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Error Sql al momento de obtener el xbee coordinador",ETipoEvento.Error,0,"")); } if (XbeeCoordinador != null && XbeeCoordinador.Rows.Count > 0) { puerto = XbeeCoordinador.Rows[0]["puertoXbee"].ToString().Trim(); velocidadTrasmision = (int)XbeeCoordinador.Rows[0]["velocidadXbee"]; } else { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("No se encontró Xbee Coordinador en base de datos!", ETipoEvento.Error, 0, "")); return; } } if (instancia.Controller == null) instancia.Controller = new XBeeController(); //Configuro el manejador para escuchar los datos recibidos instancia.Controller.DataReceived += DataReceivedXbee; //Configuro manejador para escuchar el metodo que descubre los xbee en red instancia.Controller.NodeDiscovered += NodeDiscovered_controller; instancia.Controller.OpenAsync(puerto, velocidadTrasmision); if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se abrió conexión en el puerto " + puerto + " con velocidad de trasmisión " + velocidadTrasmision.ToString() + " ", ETipoEvento.Exitoso, 0, "")); //instancia.Controller.Dispose(); } catch (Exception e) { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se detectó un error:\n" + e.Message, ETipoEvento.Error, 0, "")); LocalLogManager.EscribeLog(e.Message,LocalLogManager.TipoImagen.TipoError); } }
private void SFbwConsultaPorcentajesGasolina_DoWork(object sender, DoWorkEventArgs e) { DataTable dtProductos; using (Generales modGen = new Generales()) { dtProductos = modGen.ObtenerProductosGasolina(); } e.Result = dtProductos; }
void NodoAgregadoEventHandler(NodosXbee e) { if (e.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.Dispensador) { string cara1 = ""; string cara2 = ""; if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.Dispensador).Count == 1) { cara1 = "SFPanelCara1"; cara2 = "SFPanelCara2"; } if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.Dispensador).Count == 2) { cara1 = "SFPanelCara3"; cara2 = "SFPanelCara4"; } if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.Dispensador).Count == 3) { cara1 = "SFPanelCara5"; cara2 = "SFPanelCara6"; } if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.Dispensador).Count == 4) { cara1 = "SFPanelCara7"; cara2 = "SFPanelCara8"; } Panel PanelCara1 = FindPanel(TsPanelContainerDispensadores, cara1); Panel PanelCara2 = FindPanel(TsPanelContainerDispensadores, cara2); DataTable dtCaras; using (Generales modGEN = new Generales()) { dtCaras = modGEN.GetTable("select DISTINCT numPosicion FROM posicion WHERE idXbee = " + e.IdXbee); } if (dtCaras != null && dtCaras.Rows.Count > 1) { if (ListadoObjetosCaras == null) ListadoObjetosCaras = new List<ctrCara>(); ctrCara newCara1 = new ctrCara(); newCara1.NumCara = Convert.ToInt32(dtCaras.Rows[0][0]); newCara1.EstadoCara = EnumEstadoCara.Normal; newCara1.NombreCara = "Cara " + newCara1.NumCara.ToString(); newCara1.idXbee = e.IdXbee; newCara1.NombreNodo = e.Nombre; PanelCara1.Controls.Add(newCara1); newCara1.Dock = DockStyle.Fill; ListadoObjetosCaras.Add(newCara1); ctrCara newCara2 = new ctrCara(); newCara2.NumCara = Convert.ToInt32(dtCaras.Rows[1][0]); newCara2.EstadoCara = EnumEstadoCara.Normal; newCara2.NombreCara = "Cara " + newCara2.NumCara.ToString(); newCara2.idXbee = e.IdXbee; newCara2.NombreNodo = e.Nombre; PanelCara2.Controls.Add(newCara2); newCara2.Dock = DockStyle.Fill; ListadoObjetosCaras.Add(newCara2); } } //else if (e.TipoDispositivo == XbeeUtils.Enumeraciones.TipoDispositivo.moduloPOS) //{ // string pos = ""; // if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == // XbeeUtils.Enumeraciones.TipoDispositivo.moduloPOS).Count == 1) // { // pos = "SFPanelPOS1"; // } // if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == // XbeeUtils.Enumeraciones.TipoDispositivo.moduloPOS).Count == 2) // { // pos = "SFPanelPOS2"; // } // if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == // XbeeUtils.Enumeraciones.TipoDispositivo.moduloPOS).Count == 3) // { // pos = "SFPanelPOS3"; // } // if (instancia.ListNodes.FindAll(item => item.TipoDispositivo == // XbeeUtils.Enumeraciones.TipoDispositivo.moduloPOS).Count == 4) // { // pos = "SFPanelPOS4"; // } // Panel PanelPOS = FindPanel(SFLayoutContainer, pos); // if (PanelPOS != null) // { // using (Generales modGEN = new Generales()) // { // DataTable dtPOS = modGEN.GetTable("select nomXbee FROM xbee WHERE idXbee = " + e.IdXbee); // if (dtPOS != null && dtPOS.Rows.Count > 0) // { // ctrPOS newPOS = new ctrPOS(); // newPOS.NombrePOS = dtPOS.Rows[0][0].ToString(); // newPOS.idXbee = e.IdXbee; // PanelPOS.Controls.Add(newPOS); // newPOS.Dock = DockStyle.Fill; // newPOS.EstableceColor(); // } // } // } //} }
/// <summary> /// Evento que escanea la red en busqueda de los xbee para conexión /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void NodeDiscovered_controller(object sender, NodeDiscoveredEventArgs args) { try { if (instancia.ListNodes == null) { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Escaneando Red...", ETipoEvento.Exitoso, 0, "")); instancia.ListNodes = new List<NodosXbee>(); } string _macNodoEncontrado = args.Node.Address.LongAddress.Value.ToString("X"); string _macImpresora = ""; int _tiempoEspera = 0; int _idXbee = 0; Enumeraciones.TipoDispositivo _tipDisp; using (Generales modGenerales = new Generales()) { DataTable XbeeConsultado = modGenerales.ObtenerXbeePorMac(_macNodoEncontrado); if (XbeeConsultado != null && XbeeConsultado.Rows.Count > 0) { _macImpresora = (string)XbeeConsultado.Rows[0]["impresoraXbee"]; _tiempoEspera = (int)XbeeConsultado.Rows[0]["tiempoEspXbee"]; _idXbee = (int)XbeeConsultado.Rows[0]["idXbee"]; _tipDisp = (Enumeraciones.TipoDispositivo)XbeeConsultado.Rows[0]["tipoXbee"]; NodosXbee newDispositivo = new NodosXbee(args.Node, args.Name, _macNodoEncontrado, _macImpresora, _tiempoEspera, _tipDisp, _idXbee); instancia.AgregarNodo(newDispositivo); if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se conectó el dispositivo: " + args.Name + " MAC:" + _macNodoEncontrado + "", ETipoEvento.Exitoso, 0, "")); if (_tipDisp == Enumeraciones.TipoDispositivo.Dispensador) { ActualizarDatosDispensador(newDispositivo.IdXbee); } } else { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se encontro dispositivo pero no esta registrado en base de datos: " + args.Name + " MAC: " + _macNodoEncontrado + "", ETipoEvento.Exitoso, 0, "")); } } } catch (Exception e) { LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError); if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se detectó un error:\n" + e.Message, ETipoEvento.Error, 0, "")); } }
public async void EscanearRed() { try { if (instancia.ListNodes == null) { if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Escaneando Red...", ETipoEvento.Exitoso, 0, "")); instancia.ListNodes = new List<NodosXbee>(); } string _macNodoEncontrado; string _macImpresora = ""; int _tiempoEspera = 0; int _idXbee = 0; Enumeraciones.TipoDispositivo _tipDisp; DataTable dtXbees; using (Generales modGEN = new Generales()) { dtXbees = modGEN.ObtenerTodosLosXbee(); } foreach (DataRow _row in dtXbees.Rows) { _macNodoEncontrado = (string)_row["macXbee"]; _macImpresora = (string)_row["impresoraXbee"]; _tiempoEspera = (int)_row["tiempoEspXbee"]; _idXbee = (int)_row["idXbee"]; _tipDisp = (Enumeraciones.TipoDispositivo)_row["tipoXbee"]; NodosXbee newDispositivo = new NodosXbee(null, (string)_row["nomXbee"].ToString(), _macNodoEncontrado, _macImpresora, _tiempoEspera, _tipDisp, _idXbee); //Buscar nodo en red ulong _ulong = Convert.ToUInt64(_row["macXbee"].ToString(), 16); NodeAddress Address = new NodeAddress(new LongAddress(_ulong)); XBeeNode nodoXbee = null; nodoXbee = await instancia.Controller.GetRemoteAsync(Address); if (nodoXbee != null) { newDispositivo.Nodo = nodoXbee; if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se conectó el dispositivo: " + newDispositivo.Nombre + " MAC:" + _macNodoEncontrado + "", ETipoEvento.Exitoso, newDispositivo.IdXbee, "")); if (_tipDisp == Enumeraciones.TipoDispositivo.Dispensador) { ActualizarDatosDispensador(newDispositivo.IdXbee); } } instancia.AgregarNodo(newDispositivo); } } catch (Exception e) { LocalLogManager.EscribeLog(e.Message, LocalLogManager.TipoImagen.TipoError); if (MonitoreoEvent != null) MonitoreoEvent(this, new MonitoreoEventArgs("Se detectó un error:\n" + e.Message, ETipoEvento.Error, 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); } }
/// <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 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); } }