public IActionResult AgregarEntreDate([FromBody] RegisterFacturaDto model) ///Estamos pidiendo los datos de EmpleadoDto { Factura factura = _mapper.Map <Factura>(model); var valeResult = _facturaService.getBetweenDate(model.FechaInicial, model.FechaFinal); if (!valeResult.isSuccess) { return(BadRequest(valeResult.Errors)); } factura.FechaExpedicion = DateTime.Now; //Fecha de hoy factura.Vales = valeResult.Results; factura.Monto = factura.montoTotal(); var facturaResult = _facturaService.Save(factura, null); if (facturaResult.isSuccess) { return(Ok(_mapper.Map <RegisterFacturaResponseDto>(facturaResult.Result))); } else { return(BadRequest(facturaResult.Errors)); } }
static void menu() { bool ejecucion = true; Pizza Pizza; Ingrediente Ingrediente; Pedido Pedido; DetallePedido DetallePedido; Factura Factura; while (ejecucion) { Console.WriteLine("Elija una opcion:"); Console.WriteLine("1- Guardar Nuevas Pizzas"); Console.WriteLine("2- Guardar Nuevos Ingredientes"); Console.WriteLine("3- Crear Pedido"); Console.WriteLine("4- Crear Factura"); Console.WriteLine("5- Modificar Pizza"); Console.WriteLine("6- Mostrar todas las Pizzas"); Console.WriteLine("7- Modificar Pedido"); Console.WriteLine("8- Modificar Factura"); Console.WriteLine("9- Eliminar Pizza"); Console.WriteLine("10- Buscar Pedido por nombre del Cliente"); Console.WriteLine("0- Salir"); var opcion = Convert.ToInt32(Console.ReadLine()); switch (opcion) { case 0: ejecucion = false; break; case 1: Console.WriteLine("Escriba el Nombre de la Pizza"); var nombre = Console.ReadLine(); Console.WriteLine("Escriba el Precio"); var precio = Convert.ToDouble(Console.ReadLine()); var NuevaPizza = new Pizza { nombre = nombre, precio = precio }; Console.WriteLine("Desea agregar Ingredientes 1-Si 2-No"); var opcion1 = Convert.ToInt16(Console.ReadLine()); List <Ingrediente> IngList = new List <Ingrediente>(); while (opcion1 == 1) { Console.WriteLine("Ingrese id de Ingrediente "); Ingrediente = IngredienteService.Get(Int32.Parse(Console.ReadLine())); if (Ingrediente != null) { IngList.Add(Ingrediente); } Console.WriteLine("Desea agregar otro Ingrediente? (1- SI 2- NO): "); opcion1 = Convert.ToInt16(Console.ReadLine()); } if (IngList.Count != 0) { NuevaPizza.Ingrediente = IngList; } PizzaService.Save(NuevaPizza); break; case 2: Console.WriteLine("Escriba el Nombre de la Ingrediente"); var nombreI = Console.ReadLine(); var NuevoIngrediente = new Ingrediente { nombre = nombreI }; Console.WriteLine("Desea agregar Pizza 1-Si 2-No"); var opcion2 = Convert.ToInt16(Console.ReadLine()); List <Pizza> PizzaList = new List <Pizza>(); while (opcion2 == 1) { Console.WriteLine("Ingrese id de Pizza "); Pizza = PizzaService.Get(Int32.Parse(Console.ReadLine())); if (Pizza != null) { PizzaList.Add(Pizza); } Console.WriteLine("Desea agregar otra Pizza? (1- SI 2- NO): "); opcion2 = Convert.ToInt16(Console.ReadLine()); } if (PizzaList.Count != 0) { NuevoIngrediente.Pizza = PizzaList; } IngredienteService.Save(NuevoIngrediente); Console.WriteLine("Ver todos los ingrediente 1- Si 2-No"); var op2 = Convert.ToInt16(Console.ReadLine()); if (op2 == 1) { List <Ingrediente> ingrediente = IngredienteService.GetAll(); foreach (var i in ingrediente) { Console.WriteLine("- " + i.nombre); } } break; case 3: Console.WriteLine("Escriba el nombre del Cliente:"); var nombreCliente = Console.ReadLine(); Console.WriteLine("Escriba fecha:"); var fecha = Console.ReadLine(); Console.WriteLine("Escriba el estado"); var estado = Console.ReadLine(); Console.WriteLine("Escriba la demora"); var demora = Console.ReadLine(); var pedidoNuevo = new Pedido { nombreCliente = nombreCliente, fecha = Convert.ToDateTime(fecha), estado = estado, demora = demora }; Console.WriteLine("Desea Continuar 1-Si 2-No"); var op3 = Convert.ToInt16(Console.ReadLine()); while (op3 == 1) { pedidoNuevo.DetallePedidos = new List <DetallePedido>(); double tipo = 0, tamaño = 0; Console.WriteLine("Escriba id Pizza"); var idPizza = Convert.ToInt16(Console.ReadLine()); Pizza = PizzaService.Get(idPizza); var pre = Pizza.precio; Console.WriteLine("Escriba la cantidad"); var cantidad = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Seleccione tipo: 1- A la Piedra 2- A la Parrilla 3- Al Molde"); var seleccion = Convert.ToInt16(Console.ReadLine()); if (seleccion == 1) { tipo = 0.5; } else { if (seleccion == 2) { tipo = 0.4; } else { if (seleccion == 3) { tipo = 0.3; } else { Console.WriteLine("Opcion incorrecta"); } } } Console.WriteLine("Seleccione tamaño: 1- 8 Porciones 2- 10 Porciones 3- 12 Porciones"); var seleccion1 = Convert.ToInt16(Console.ReadLine()); if (seleccion1 == 1) { tamaño = 0.2; } else { if (seleccion1 == 2) { tamaño = 0.3; } else { if (seleccion1 == 3) { tamaño = 0.6; } else { Console.WriteLine("Opcion incorrecta"); } } } var subtotal = pre + cantidad + tipo + tamaño; var detallepedidonuevo = new DetallePedido { PizzaId = idPizza, cantidad = cantidad, tipo = seleccion, tamaño = seleccion1 }; pedidoNuevo.DetallePedidos.Add(detallepedidonuevo); Console.WriteLine("Desea agregar algo mas 1-Si 2-No"); op3 = Convert.ToInt16(Console.ReadLine()); } PedidoService.Save(pedidoNuevo); break; case 4: Console.WriteLine("Escriba la forma de pago"); var formaPago = Console.ReadLine(); Console.WriteLine("Escriba id pedido"); var idPedido = Convert.ToInt16(Console.ReadLine()); var facturaNueva = new Factura { formaPago = formaPago, PedidoId = idPedido }; FacturaService.Save(facturaNueva); break; case 5: Console.WriteLine("Ingrese ID de Pizza a modificar:"); var id = Int32.Parse(Console.ReadLine()); Pizza = PizzaService.Get(id); if (Pizza != null) { Console.WriteLine("Precio anterior: " + Pizza.precio); Console.WriteLine("Ingrese el nuevo Precio:"); var nuevoPrecio = Console.ReadLine(); if (nuevoPrecio != "") { Pizza.precio = Convert.ToDouble(nuevoPrecio); } PizzaService.Save(Pizza); } else { Console.WriteLine("No se encontró Pizza"); } break; case 6: List <Pizza> pizza = PizzaService.GetAll(); foreach (var p in pizza) { Console.WriteLine("- " + p.nombre + " $" + p.precio); } break; case 7: Console.WriteLine("Ingrese ID de Pedido a modificar:"); var idPed = Int32.Parse(Console.ReadLine()); Pedido = PedidoService.Get(idPed); if (Pedido != null) { Console.WriteLine("Estado anterior: " + Pedido.estado); Console.WriteLine("Demora anterior: " + Pedido.demora); Console.WriteLine("Ingrese el nuevo estado:"); var nuevoEstado = Console.ReadLine(); Console.WriteLine("Ingrese el nueva demora:"); var nuevaDemora = Console.ReadLine(); if (nuevoEstado != "" && nuevaDemora != "") { Pedido.estado = nuevoEstado; Pedido.demora = nuevaDemora; } PedidoService.Save(Pedido); } else { Console.WriteLine("No se encontró Pedido"); } break; case 8: Console.WriteLine("Ingrese ID de Factura a modificar:"); var idfac = Int32.Parse(Console.ReadLine()); Factura = FacturaService.Get(idfac); if (Factura != null) { Console.WriteLine("Forma de Pago anterior: " + Factura.formaPago); Console.WriteLine("Ingrese la nueva forma de pago:"); var nuevaFormaPago = Console.ReadLine(); if (nuevaFormaPago != "") { Factura.formaPago = nuevaFormaPago; } FacturaService.Save(Factura); } else { Console.WriteLine("No se encontró Factura"); } break; case 9: Console.WriteLine("Indique id post a eliminar:"); var b = PizzaService.Delete(Int32.Parse(Console.ReadLine())); if (b) { Console.WriteLine("Se eliminó la Pizza Seleccionada"); } else { Console.WriteLine("No se encontró la Pizza seleccionada"); } break; case 10: Console.WriteLine("Ingresa nombre del cliente a buscar"); var frase = Console.ReadLine(); List <Pedido> listaPedido = PedidoService.BuscarPorContenido(frase); if (listaPedido.Count != 0) { Console.WriteLine("Clientes encontrados:"); foreach (var p in listaPedido) { Console.WriteLine("- " + p.nombreCliente + " estado" + p.estado); } } else { Console.WriteLine("No se encontro el cliente"); } break; default: Console.WriteLine("La opcion seleccionada no existe"); break; } } }
static void Menu() { bool ejecucion = true; while (ejecucion) { Console.WriteLine("-------------------------"); Console.WriteLine("Elegir una opción:"); Console.WriteLine("1- Cargar nueva pizza"); Console.WriteLine("2- Cargar nuevo ingrediente"); Console.WriteLine("3- Listar todas las pizzas"); Console.WriteLine("4- Nuevo pedido"); Console.WriteLine("5- Listar pedidos"); Console.WriteLine("6- Finalizar Pedido"); Console.WriteLine("7- Cancelar pedido"); Console.WriteLine("8- Variedades mas pedidas"); Console.WriteLine("9- Tipos mas pedidos"); Console.WriteLine("10- Visualizar ingresos"); Console.WriteLine("0- SALIR:"); var opcion = Int32.Parse(Console.ReadLine()); switch (opcion) { case 0: ejecucion = false; break; case 1: Console.WriteLine("Escriba el nombre de la variedad de pizza a ingresar:"); var variedad = Console.ReadLine(); bool continuarAgregando = true; List <Ingrediente> ingredientes = new List <Ingrediente>(); while (continuarAgregando) { Console.WriteLine("Seleccione un ingrediente a agregar:"); Console.WriteLine("Los ingredientes disponibles son:"); List <Ingrediente> listaI = IngredienteService.GetAll(); foreach (var I in listaI) { Console.WriteLine(I.id + " - " + I.nombre); } var ing = Int32.Parse(Console.ReadLine()); Ingrediente ingrediente = listaI.Where(i => i.id == ing).FirstOrDefault(); ingredientes.Add(ingrediente); Console.WriteLine("Desea agregar mas ingredientes? Y/N:"); var seguir = Console.ReadLine().ToUpper(); switch (seguir) { case "Y": break; case "N": continuarAgregando = false; break; default: Console.WriteLine("Opcion invalida"); break; } } Console.WriteLine("Escriba el precio de la variedad de pizza:"); var precio = Int32.Parse(Console.ReadLine()); var nuevaPizza = new Pizza { nombre = variedad, precio = precio, ingredientes = ingredientes }; PizzaService.Save(nuevaPizza); break; case 2: Console.WriteLine("Escriba el nombre del ingrediente:"); var nombre = Console.ReadLine(); var ingNuevo = new Ingrediente { nombre = nombre }; IngredienteService.Save(ingNuevo); break; case 3: listarPizzas(); break; case 4: Console.WriteLine("Ingrese el nombre del cliente: "); var cli = Console.ReadLine(); Console.WriteLine("Cuantas pizzas desea ordenar? "); var totalAPedir = Int32.Parse(Console.ReadLine()); var demora = totalAPedir * 15; Pedido p = new Pedido { cliente = cli, fechaEmision = DateTime.Now, estado = "En Preparacion", demora = demora }; PedidoService.Save(p); while (totalAPedir != 0) { Console.WriteLine("Elija una pizza de entre las siguiente opciones: "); listarPizzas(); var pizzaId = Int32.Parse(Console.ReadLine()); Pizza pizza = PizzaService.Get(pizzaId); double subtot = pizza.precio; Console.WriteLine("Ingrese el tamaño de la pizza (numero de porciones): 8 Porciones/ 10 porciones/ 12 porciones"); var tam = Int32.Parse(Console.ReadLine()); switch (tam) { case 8: break; case 10: subtot = subtot * 1.10; break; case 12: subtot = subtot * 1.20; break; default: Console.WriteLine("tamaño no valido"); break; } Console.WriteLine("Ingrese el tipo de pizza: 1- A la piedra/ 2- A la parrilla/ 3- De molde"); var op = Int32.Parse(Console.ReadLine()); string tipoPizza; if (op == 1) { tipoPizza = "A la piedra"; } else { if (op == 2) { tipoPizza = "A la parrilla"; } else { tipoPizza = "De molde"; } } Console.WriteLine("Ingrese la cantidad de pizzas de la variedad " + pizza.nombre + " de " + tam.ToString() + " porciones, del tipo " + tipoPizza + " a ordenar: "); var cantidad = Int32.Parse(Console.ReadLine()); DetallePedido det = new DetallePedido { pedido = p, pizza = pizza, cantidad = cantidad, subtotal = subtot, tamaño = tam, tipo = tipoPizza }; DetallePedidoService.Save(det); totalAPedir = totalAPedir - cantidad; } break; case 5: List <Pedido> pedidos = PedidoService.GetAll(); foreach (var ped in pedidos) { Console.WriteLine("ID- " + ped.id); Console.WriteLine("Cliente- " + ped.cliente); Console.WriteLine("Estado- " + ped.estado); Console.WriteLine("Demora- " + ped.demora); Console.WriteLine("Fecha Emision- " + ped.fechaEmision); } break; case 6: var Listapedidos = listarPedidosEnPreparacion(); Console.WriteLine("Seleccione el id del pedido a Finalizar:"); var final = Int32.Parse(Console.ReadLine()); PedidoService.Update(final); Console.WriteLine("Ingrese forma de pago:"); var FP = Console.ReadLine(); var pedido = Listapedidos.Where(p => p.id == final).FirstOrDefault(); Factura factura = new Factura { pedido = pedido, formaPago = FP }; FacturaService.Save(factura); break; case 7: var ListapedidosEnPrep = listarPedidosEnPreparacion(); Console.WriteLine("Seleccione el id del pedido a cancelar:"); var idCancelacion = Int32.Parse(Console.ReadLine()); var exito = PedidoService.Remove(idCancelacion); if (exito) { Console.WriteLine("Pedido cancelado"); } else { Console.WriteLine("Pedido Inexistente"); } break; case 8: Console.WriteLine("Variedades de pizza mas pedidas del ultimo mes"); List <DetallePedido> detallepedidosParaVariedad = DetallePedidoService.GetAll(); Dictionary <string, int> PizzasMasPedidas = new Dictionary <string, int>(); foreach (var detalle in detallepedidosParaVariedad) { if (PizzasMasPedidas.ContainsKey(detalle.pizza.nombre.ToString())) { PizzasMasPedidas[detalle.pizza.nombre.ToString()]++; } else { PizzasMasPedidas.Add(detalle.pizza.nombre.ToString(), 1); } } var sortedDict = (from entry in PizzasMasPedidas orderby entry.Value descending select entry).Take(3).ToDictionary(pair => pair.Key, pair => pair.Value); foreach (KeyValuePair <string, int> kvp in sortedDict) { Console.WriteLine("Variedad = {0}, Cantidad de veces pedida = {1}", kvp.Key, kvp.Value); } break; case 9: Console.WriteLine("Tipos de pizza mas pedidas del ultimo mes"); List <DetallePedido> detallepedidosParaTipo = DetallePedidoService.GetAllJoinPizza(); Dictionary <string, int> tiposMasPedidas = new Dictionary <string, int>(); foreach (var detalle in detallepedidosParaTipo) { if (tiposMasPedidas.ContainsKey(detalle.tipo.ToString())) { tiposMasPedidas[detalle.tipo.ToString()]++; } else { tiposMasPedidas.Add(detalle.tipo.ToString(), 1); } } var sortedDictionary = (from entry in tiposMasPedidas orderby entry.Value descending select entry).Take(3).ToDictionary(pair => pair.Key, pair => pair.Value); foreach (KeyValuePair <string, int> kvp in sortedDictionary) { Console.WriteLine("Tipo = {0}, Cantidad de veces pedida = {1}", kvp.Key, kvp.Value); } break; case 10: Console.WriteLine("Ingresos del ultimo mes"); List <DetallePedido> detalles = DetallePedidoService.GetAllJoinPedido(); foreach (var d in detalles) { Console.WriteLine("Fecha: " + d.pedido.fechaEmision.ToString()); Console.WriteLine("Monto: " + d.subtotal.ToString()); } break; default: Console.WriteLine("No existe la opcion ingresada."); break; } } }