public Response Crear(TerceroEmpleadoRequest request) { Tercero tercero = this._unitOfWork.TerceroRepository. FindFirstOrDefault(tercero => tercero.Nit == request.NitTercero); if (tercero == null) { return(new Response { Mensaje = $"La identificación {request.NitTercero}," + $" no se encuentra registrada hasta el momento" }); } TerceroEmpleado empleado = this._unitOfWork.TerceroEmpleadoRepository. FindBy(empleado => empleado.Tercero.Nit == request.NitTercero, includeProperties: "Tercero").FirstOrDefault(); if (empleado != null) { return(new Response { Mensaje = $"No se pudo registrar el empleado porque ya esta en el sistema" }); } empleado = new TerceroEmpleado(tercero); this._unitOfWork.TerceroEmpleadoRepository.Add(empleado); this._unitOfWork.Commit(); return(new Response { Mensaje = "Empleado registrado con éxito", Data = new TerceroEmpleadoRequest().Map(empleado) }); }
public TerceroEmpleadoRequest Map(TerceroEmpleado empleado) { this.Id = empleado.Id; this.NitTercero = empleado.Tercero.Nit; FechaCreacion = empleado.FechaCreacion; Tercero = new TerceroRequest().Map(empleado.Tercero); return(this); }
public Response BuscarEmpleado(int id) { TerceroEmpleado empleado = this.unitOfWork.TerceroEmpleadoRepository. FindBy(empleado => empleado.Id == id, includeProperties: "Tercero.Contactos") .FirstOrDefault(); if (empleado == null) { return(new Response { Mensaje = "No se encontró al empleado" }); } return(new Response { Data = new TerceroEmpleadoRequest().Map(empleado) }); }
public void Setup() { leche = new ProductoMateriaPrima().SetNombre("leche").SetCantidad(15). SetCostoUnitario(2000).SetUnidadDeMedida(UnidadDeMedida.Litros); azucar = new ProductoMateriaPrima().SetNombre("Azucar").SetCantidad(10). SetCostoUnitario(1000).SetUnidadDeMedida(UnidadDeMedida.Libras); ArinaPan = new ProductoMateriaPrima().SetNombre("Arina Pan").SetCantidad(0.5). SetCostoUnitario(1000).SetUnidadDeMedida(UnidadDeMedida.Litros); calderoLeche = new ProductoParaFabricarDuro().SetNombre("Caldero de Leche"); calderoLeche.PorcentajeDeUtilidad = 30; BandejaSelloPlus4Onzas = new ProductoMateriaPrima().SetNombre("Bandeja de Sello Plus de 4 Onzas"). SetCantidad(1).SetCostoUnitario(300).SetUnidadDeMedida(UnidadDeMedida.Litros); BandejaSelloPlus4Onzas.SetCantidad(4); PresentacionBandejaSelloPlus4Onzas = new ProductoParaVenderConEnvoltorio().SetNombre ("Presentacion de Bandeja Sello Plus 4 Onzas"); PresentacionBandejaSelloPlus4Onzas.SetEnvoltorio(BandejaSelloPlus4Onzas); tercero = new Tercero.TerceroBuilder("Duvan", "1065840833").Build(); TerceroEmpleado = new TerceroEmpleado(tercero); Administrador = new TerceroPropietario(tercero); Administrador.Productos.Add(leche); materiasPrimas = new List <ProductoMateriaPrima>(); materiasPrimas.Add(leche); materiasPrimas.Add(ArinaPan); materiasPrimas.Add(azucar); Administrador.Productos.Add(azucar); Administrador.Productos.Add(PresentacionBandejaSelloPlus4Onzas); UnidadesDeLeche = new ProductoParaVenderSinEnvoltorio(); }
public Response IniciarFabricacion(FabricacionRequest request) { Producto productoParaFabricar = this._unitOfWork.ProductoRepository. FindBy(producto => producto.Id == request.IdProducto, includeProperties: "Fabricaciones").FirstOrDefault(); if (productoParaFabricar == null) { return(new Response { Mensaje = "El producto para fabricar no existe, agréguelo" }); } if (productoParaFabricar.Especificacion == Especificacion.MateriaPrima) { return(new Response { Mensaje = $"El {productoParaFabricar.Nombre} no se puede fabricar" }); } TerceroEmpleado empleado = this._unitOfWork.TerceroEmpleadoRepository. FindBy(empleado => empleado.Tercero.Nit == request.NitEmpleado, includeProperties: "Tercero").FirstOrDefault(); if (empleado == null) { return(new Response { Mensaje = $"No hay un empleado con identificación {request.NitEmpleado}" }); } if (request.Detalles.Count == 0) { return(new Response { Mensaje = $"Por favor, agregue materias primas " + $"para fabricar el {productoParaFabricar.Nombre}" }); } Fabricacion fabricacion = new Fabricacion(empleado); productoParaFabricar.AgregarFabricacion(fabricacion); Producto temp = null; temp = ComprobarExistenciasDeEnMateriasPrimas(request, fabricacion, temp); if (fabricacion.FabricacionDetalles.Count != request.Detalles.Count) { if (temp == null) { return(new Response { Mensaje = "El " + $"{request.Detalles[fabricacion.FabricacionDetalles.Count].NombreMateriaPrima}" + " no se encuentra en el sistema, agréguelo" }); } return(new Response { Mensaje = $"No hay cantidades suficientes de {temp.Nombre}, " + $"solo hay {temp.Cantidad}" }); } fabricacion.DescontarCantidadesEnMateriasPrimas(); this._unitOfWork.ProductoRepository.Edit(productoParaFabricar); this._unitOfWork.Commit(); return(new Response { Mensaje = "Fabricacion realizada con éxito, a espera de definir la cantidad producida", Data = request.Map(fabricacion) }); }
public void SetEmpleado(TerceroEmpleado terceroEmpleado) { this.TerceroEmpleado = terceroEmpleado; }
public Fabricacion(TerceroEmpleado terceroEmpleado) { this.TerceroEmpleado = terceroEmpleado; this.FabricacionDetalles = new List <FabricacionDetalle>(); }