public async Task <IActionResult> Crear([FromBody] CreateSaleDTO model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var fechaHora = DateTime.Now;

            Sale venta = new Sale
            {
                idcliente         = model.idcliente,
                idusuario         = model.idusuario,
                tipo_comprobante  = model.tipo_comprobante,
                serie_comprobante = model.serie_comprobante,
                num_comprobante   = model.num_comprobante,
                fecha_hora        = fechaHora,
                impuesto          = model.impuesto,
                total             = model.total,
                estado            = "Aceptado"
            };


            try
            {
                _context.Sales.Add(venta);
                await _context.SaveChangesAsync();

                var id = venta.idventa;
                foreach (var det in model.detalles)
                {
                    SalesDetails detalle = new SalesDetails
                    {
                        idventa    = id,
                        idarticulo = det.idarticulo,
                        cantidad   = det.cantidad,
                        precio     = det.precio,
                        descuento  = det.descuento
                    };
                    _context.DetailsSales.Add(detalle);
                }
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Example #2
0
        public async Task <SaleDTO> CreateSale(CreateSaleDTO dto)
        {
            var reseller = await _resellerRepository.FindResellerByCPF(dto.CPF);

            if (reseller != null)
            {
                var sale = _mapper.Map <Sale>(dto);
                sale.StatusSaleId = SalesHelper.SALES_CPF_APPROVED == reseller.CPF ? (int)SaleStatus.Approved : (int)SaleStatus.InValidation;
                sale.ResellerId   = reseller.Id;
                sale.Reseller     = reseller;
                var insert = _saleRepository.Add(sale);
                return(_mapper.Map <SaleDTO>(insert));
            }
            return(null);
        }
Example #3
0
        public void TestCreateSale()
        {
            var returns = new SaleDTO
            {
                Code       = "12300",
                Date       = DateTime.Now,
                ResellerId = new Guid("027bc4bb-9b66-4b18-9f9d-8705f87ebc95"),
                SaleStatus = SaleStatus.InValidation,
                Value      = 23,
                Status     = "Em Validação"
            };

            var create = new CreateSaleDTO
            {
                Code  = "12300",
                CPF   = "05524947982",
                Date  = DateTime.Now,
                Value = 23
            };

            _mock.Setup(x => x.CreateSale(create)).Returns(Task.FromResult(returns));

            Assert.AreEqual(create.Code, returns.Code);
        }
        public async Task Sale_Create_Post_OkResponse()
        {
            var createSale = new CreateSaleDTO
            {
                Code  = new Random().Next(1, 50000).ToString(),
                CPF   = "15350946056",
                Date  = DateTime.Now,
                Value = 200
            };

            var json = JsonConvert.SerializeObject(createSale);

            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var token = await Authenticate();

            _testContext.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);

            var response = await _testContext.Client.PostAsync("/api/sale", content);

            response.EnsureSuccessStatusCode();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Example #5
0
        public async Task <IActionResult> CreateSale(CreateSaleDTO saleDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(Utils.GetResponse("EmptySale", "The sale is null")));
            }

            ApplicationUser user = await _db.Users.AsNoTracking()
                                   .SingleOrDefaultAsync(u => u.Email == saleDTO.UserEmail.ToUpper());

            if (user == null)
            {
                return(BadRequest(Utils.GetResponse("UserNotFound", "The user not exists")));
            }

            Products product = new Products
            {
                ProductName   = saleDTO.ProductName,
                Description   = saleDTO.Description,
                Prize         = saleDTO.Prize,
                PublishedDate = DateTime.Now,
                EndDate       = saleDTO.EndDate
            };


            if (saleDTO.Images != null && saleDTO.Images.Count > 0)
            {
                List <ProductImages> images = new List <ProductImages>();

                for (int i = 0; i < saleDTO.Images.Count; i++)
                {
                    images.Add(new ProductImages
                    {
                        Base64   = saleDTO.Images[i],
                        ImageAlt = saleDTO.ProductName,
                    });
                }
                product.ProductImages = images;
            }

            product = _db.Products.Add(product).Entity;

            Sales sale = new Sales
            {
                Goal     = saleDTO.Goal,
                Product  = product,
                UserId   = user.Id,
                StatusId = 1 //Opened
            };

            sale = _db.Sales.Add(sale).Entity;

            List <SalesCategories> categories = new List <SalesCategories>();

            for (int i = 0; i < saleDTO.Categories.Count; i++)
            {
                categories.Add(new SalesCategories
                {
                    CategoryId = saleDTO.Categories[i],
                    SaleId     = sale.Id
                });
            }

            sale.Categories = categories;

            _db.SaveChanges();

            return(Ok());
        }
        public async Task <IActionResult> Create(CreateSaleDTO sale)
        {
            var createSale = await _saleService.CreateSale(sale);

            return(await ResponseAsync(createSale));
        }