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)); }
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))); }