public async Task <IActionResult> Edit(int id, [Bind("Id,IdWayBill,IdProducto,Cantidad")] WayBillDetalle wayBillDetalle)
        {
            if (id != wayBillDetalle.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(wayBillDetalle);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!WayBillDetalleExists(wayBillDetalle.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdProducto"] = new SelectList(_context.Producto, "Id", "Nombre", wayBillDetalle.IdProducto);
            ViewData["IdWayBill"]  = new SelectList(_context.WayBill, "Id", "Codigo", wayBillDetalle.IdWayBill);
            return(View(wayBillDetalle));
        }
        public async Task <IActionResult> Create([Bind("Id,IdWayBill,IdProducto,Cantidad")] WayBillDetalle wayBillDetalle)
        {
            if (ModelState.IsValid)
            {
                _context.Add(wayBillDetalle);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdProducto"] = new SelectList(_context.Producto, "Id", "Nombre", wayBillDetalle.IdProducto);
            ViewData["IdWayBill"]  = new SelectList(_context.WayBill, "Id", "Codigo", wayBillDetalle.IdWayBill);
            return(View(wayBillDetalle));
        }
Example #3
0
        public async Task <JsonResult> Import([Bind("Id")] WayBill wayBill, IFormFile formFile, CancellationToken cancellationToken)
        {
            if (formFile == null || formFile.Length <= 0)
            {
                return(Json(Response <List <WayBillDetalle> > .GetResult(-1, "formfile is empty")));
            }

            if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
            {
                return(Json(Response <List <WayBillDetalle> > .GetResult(-1, "Not Support file extension")));
            }
            List <WayBillDetalle> items = new List <WayBillDetalle>();

            using (var stream = new MemoryStream())
            {
                await formFile.CopyToAsync(stream, cancellationToken);

                using (var package = new ExcelPackage(stream))
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                    var            rowCount  = worksheet.Dimension.Rows;
                    try
                    {
                        int     errors = 0;
                        string  message;
                        int     idproducto;
                        decimal cantidad;
                        for (int row = 2; row <= rowCount; row++)
                        {
                            ModelState.Clear();
                            int.TryParse((worksheet.Cells[row, 1].Text == "" ? null : worksheet.Cells[row, 1].Text), out idproducto);
                            decimal.TryParse((worksheet.Cells[row, 2].Text == "" ? null : worksheet.Cells[row, 2].Text), out cantidad);

                            WayBillDetalle item = new WayBillDetalle();
                            item.IdWayBill  = wayBill.Id;
                            item.IdProducto = idproducto;
                            item.Cantidad   = cantidad;
                            item.Fecha      = DateTime.Now;
                            TryValidateModel(item);
                            var res = ModelState.IsValid;
                            if (res == false)
                            {
                                errors += 1;
                                message = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
                            }
                            else
                            {
                                message = "Ok";
                            }

                            item.resultado = message;
                            items.Add(item);

                            //ModelState.Clear();
                        }
                        if (errors == 0)
                        {
                            _context.AddRange(items);
                            _context.SaveChanges();
                            return(Json(Response <List <WayBillDetalle> > .GetResult(0, "OK", items)));
                        }
                    }
                    catch (Exception e)
                    {
                        return(Json(Response <List <WayBillDetalle> > .GetResult(-2, e.Message, items)));
                    }
                }
            }
            return(Json(Response <List <WayBillDetalle> > .GetResult(0, "OK", items)));
        }