public static Cuenta CrearyObtnerCuenta(UsuarioMesaDetalle usuarioMesaDetalle) { try { // UserMesa userMesa = UserMesaController.Get(iduserMesa); Cuenta Cuenta = new Cuenta(); Cuenta.idUserMesa = usuarioMesaDetalle.id; Cuenta.estadoCod = (int)EnumEstadoCuenta.Solicitada; Cuenta.estado_descri = EnumEstadoCuenta.Solicitada.ToString(); Cuenta.total = PedidoController.ObtnerSubtotalXMesa(usuarioMesaDetalle.mesaNumero); Cuenta.esactual = true; Cuenta.fecha = DateTime.Now; using (mbDBContext CuentaDBEntities = new mbDBContext()) { CuentaDBEntities.Cuentas.Add(Cuenta); CuentaDBEntities.SaveChanges(); } } catch { exito = false; errorCuenta = new ErrorCuenta(1, "Error al carga Cuenta por parametros"); } return(GetActualporusuario(usuarioMesaDetalle.id)); }
//Cerrar la cuenta, pedidos y mesa public static bool CerrarCuenta(int idCuenta, int numeroMesa) { exito = false; try { //Cierro todos los pedidos (id estado pedido 5, Recibido y pagado) que tengan el idcuenta pasado if (PedidoController.UpdatePedidosDeMesaEstado(numeroMesa, PedidoController.EnumEstadoPedido.RecibidoYpagado)) { //Actualizo el estado de la cuenta Cuenta cuenta = GetActualporNumeroMesa(numeroMesa); cuenta.estadoCod = (int)EnumEstadoCuenta.PagadoyCerrado; cuenta.estado_descri = EnumEstadoCuenta.PagadoyCerrado.ToString(); cuenta.esactual = false; //Corro update if (Update(cuenta)) { //Libero la mesa (Actualizo el estado de todos los usuarios mesa a activo false Mesa mesa = MesaController.GetbyNumeroMesa(numeroMesa); if (UserMesaController.CerrarUsuariosDeMesa(mesa)) { //Finalizo con exito exito = true; } else { //No pudo actualizarse el estado de los usuarios en la mesa exito = false; } } else { //No pudo actualizarse el estado de la cuenta exito = false; } } else { //No pudo actualizarse los pedidos de la mesa exito = false; } } catch { //No pudo actualizarse exito = false; } return(exito); }