示例#1
0
        public void SetUp()
        {
            #region BaseProductos

            _bandejaDeMaduro = new ProductoParaVenderConEnvoltorio().
                               SetNombre("Bandeja de maduro").SetCantidad(25).SetCostoUnitario(2500);
            _bandejaDeMaduro.Id = 1;

            _envueltoDeMaduro = new ProductoParaVenderConEnvoltorio().
                                SetNombre("Embuelto de Maduro").SetCantidad(10).SetCostoUnitario(3000);
            _envueltoDeMaduro.Id = 2;

            _bandejaDeLeche = new ProductoParaVenderConEnvoltorio().
                              SetNombre("Bandeja de Leche").SetCantidad(13).SetCostoUnitario(2700);
            _bandejaDeLeche.Id = 3;

            _leche = new ProductoMateriaPrima().SetNombre("Leche").
                     SetCantidad(15).SetCostoUnitario(1500);
            _leche.Id = 4;

            _dulceDeLeche = new ProductoParaFabricarDuro().SetNombre("Dulce de leche").
                            SetCantidad(35).SetCostoUnitario(1500);
            _dulceDeLeche.Id = 5;

            _unidadesMedianasDeMaduro = new ProductoParaVenderSinEnvoltorio().
                                        SetNombre("Unidades medianas de maduro").SetCantidad(50).
                                        SetCostoUnitario(300);
            #endregion
            #region BaseTercero
            _duvan = new Tercero.TerceroBuilder("1065840833", "Duvan").Build();

            #endregion
            #region BaseCliente


            _clienteDuvan = new TerceroCliente.
                            TerceroClienteBuilder(_duvan).Build();
            _clienteDuvan.Id = 1;

            TerceroClientePrecioProducto precioProducto3 = new TerceroClientePrecioProducto.
                                                           TerceroClientePrecioProductoBuilder(_clienteDuvan, _bandejaDeMaduro).
                                                           SetPrecio(3600).Build();
            _clienteDuvan.AddPrecio(precioProducto3);

            TerceroClientePrecioProducto precioProducto4 = new TerceroClientePrecioProducto.
                                                           TerceroClientePrecioProductoBuilder(_clienteDuvan, _bandejaDeLeche).
                                                           SetPrecio(3900).Build();
            _clienteDuvan.AddPrecio(precioProducto4);

            TerceroClientePrecioProducto precioProducto5 = new TerceroClientePrecioProducto.
                                                           TerceroClientePrecioProductoBuilder(_clienteDuvan, _envueltoDeMaduro).
                                                           SetPrecio(4300).Build();
            _clienteDuvan.AddPrecio(precioProducto5);
            #endregion
            #region BaseUsuario
            _usuarioDuvan = new TerceroUsuario.TerceroUsuarioBuilder(_duvan).
                            SetUsuario("duvaninho").SetPassword("1234").Build();
            _usuarioDuvan.Id = 1;
            #endregion
        }
        public Response HacerCompraService(CompraRequest request)
        {
            TerceroProveedor proveedor = this._unitOfWork.TerceroProvedorRepository.
                                         FindBy(provedor => provedor.Tercero.Nit == request.NitProveedor,
                                                includeProperties: "Tercero").FirstOrDefault();

            if (proveedor == null)
            {
                return(new Response
                {
                    Mensaje = $"El provedor con identificación {request.NitProveedor}" +
                              $" no fue encontrado en el sistema, agréguelo antes"
                });
            }
            TerceroUsuario usuario = this._unitOfWork.TerceroUsuarioRepository.
                                     FindFirstOrDefault(usuario => usuario.Id == request.UsuarioId);


            if (usuario == null)
            {
                return(new Response
                {
                    Mensaje = $"El usuario con id {request.UsuarioId}" +
                              $" no fue encontrado en el sistema, agréguelo antes"
                });
            }
            var errores = PuedeRegistrarDetalles(request.Detalles);

            if (errores.Any())
            {
                return(new Response
                {
                    Mensaje = string.Join(", ", errores)
                });
            }
            Compra compra = new Compra.CompraBuilder(proveedor, usuario).Build();

            request.Detalles.ForEach((detalle) =>
            {
                Producto producto = this._unitOfWork.ProductoRepository.
                                    FindBy(producto => producto.Id == detalle.ProductoId,
                                           includeProperties: "DetallesCompra.Compra").FirstOrDefault();

                CompraDetalle compraDetalle = new CompraDetalle.CompraDetalleBuilder(producto, compra).
                                              SetCantidad(detalle.Cantidad).SetCostoUnitario(detalle.Valor).Build();

                compra.AddDetalle(compraDetalle);
                producto.AddCompraDetalle(compraDetalle);
            });

            this._unitOfWork.CompraRepository.Add(compra);
            this._unitOfWork.TransaccionRepository.Add(new Transaccion(TipoDeTransaccion.Egreso, Concepto.CompraDeMateriasPrimas, compra.Total));
            this._unitOfWork.Commit();
            return(new Response
            {
                Mensaje = "Compra registrada con éxito",
                Data = new CompraRequest().Map(compra)
            });
        }
示例#3
0
        public void SetUp()
        {
            azucar = new ProductoMateriaPrima().SetNombre("azúcar").SetCantidad(15).
                     SetCostoUnitario(1700).SetUnidadDeMedida(UnidadDeMedida.Kilos);
            leche = new ProductoMateriaPrima().SetNombre("leche").SetCantidad(45).
                    SetCostoUnitario(1500).SetUnidadDeMedida(UnidadDeMedida.Litros);

            terceroDuvan  = new Tercero.TerceroBuilder("1065840833", "Duvan").Build();
            terceroMartin = new Tercero.TerceroBuilder("1010103118", "Martin").Build();

            usuarioDuvan   = new TerceroUsuario(terceroDuvan);
            provedorMartin = new TerceroProveedor(terceroMartin);
        }
示例#4
0
        public string CreateToken(TerceroUsuario user, DateTime expiry)
        {
            JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
            var identity = new ClaimsIdentity(new List <Claim>()
            {
                new Claim(ClaimTypes.Name, $"{user.Tercero.RazonSocial}"),
                new Claim(ClaimTypes.Role, user.Role.ToString()),
                new Claim(ClaimTypes.PrimarySid, user.Id.ToString())
            }, "Custom"
                                              );
            SecurityToken token = tokenHandler.CreateJwtSecurityToken(
                new SecurityTokenDescriptor
            {
                Audience           = this._audience,
                Issuer             = this._issuer,
                SigningCredentials = new SigningCredentials(this._key, this._algoritm),
                Expires            = expiry.ToUniversalTime(),
                Subject            = identity
            });

            return(tokenHandler.WriteToken(token));
        }
示例#5
0
 public CompraBuilder(TerceroProveedor provedor, TerceroUsuario usuario)
 {
     this.Proveedor = provedor;
     this.Usuario   = usuario;
 }
示例#6
0
 public VentaBuilder(TerceroUsuario usuario, TerceroCliente cliente)
 {
     this.Usuario = usuario;
     this.Cliente = cliente;
 }