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