public JsonResult UpdateCreate_UnidadesArmazenamento([FromBody] List <StockkeepingUnitViewModel> data) { List <StockkeepingUnitViewModel> results = DBStockkeepingUnit.ParseToViewModel(DBStockkeepingUnit.GetAll()); data.RemoveAll(x => results.Any( u => u.ProductNo == x.ProductNo && u.Description == x.Description && u.Code == x.Code && u.Inventory == x.Inventory && u.ShelfNo == x.ShelfNo && u.Blocked == x.Blocked && u.CodeWareHouse == x.CodeWareHouse && u.WareHouseValue == x.WareHouseValue && u.VendorNo == x.VendorNo && u.VendorItemNo == x.VendorItemNo && u.CodeUnitMeasure == x.CodeUnitMeasure && u.UnitCost == x.UnitCost && u.LastCostDirect == x.LastCostDirect && u.PriceSale == x.PriceSale )); data.ForEach(x => { if (!string.IsNullOrEmpty(x.ProductNo) && DBFichaProduto.GetById(x.ProductNo) != null) { UnidadeDeArmazenamento toCreate = DBStockkeepingUnit.ParseToDb(x); UnidadeDeArmazenamento toUpdate = DBStockkeepingUnit.ParseToDb(x); UnidadeDeArmazenamento toSearch = DBStockkeepingUnit.GetById(x.ProductNo); FichaProdutoViewModel product = DBFichaProduto.ParseToViewModel(DBFichaProduto.GetById(x.ProductNo)); LocationViewModel localizacao = DBLocations.ParseToViewModel(DBLocations.GetById(x.Code)); NAVVendorViewModel fornecedor = DBNAV2017Vendor.GetVendor(_config.NAVDatabaseName, _config.NAVCompanyName).Where(y => y.No_ == x.VendorNo).FirstOrDefault(); UnidadeMedidaViewModel unidadeMedida = DBUnidadeMedida.ParseToViewModel(DBUnidadeMedida.GetById(x.CodeUnitMeasure)); if (toSearch == null) { toCreate.NºProduto = x.ProductNo; toCreate.Descrição = product.Descricao; if (localizacao != null) { toCreate.CódLocalização = x.Code; } else { toCreate.CódLocalização = null; } toCreate.Inventário = x.Inventory; toCreate.NºPrateleira = x.ShelfNo; toCreate.Bloqueado = x.Blocked.HasValue ? x.Blocked.ToString().ToLower() == "sim" ? true : false : false; toCreate.ArmazémPrincipal = x.CodeWareHouse.HasValue ? x.CodeWareHouse.ToString().ToLower() == "sim" ? true : false : false; toCreate.ValorEmArmazem = x.WareHouseValue; if (fornecedor != null) { toCreate.NºFornecedor = x.VendorNo; } else { toCreate.NºFornecedor = null; } toCreate.CódProdForn = x.VendorItemNo; if (unidadeMedida != null) { toCreate.CódUnidadeMedidaProduto = x.CodeUnitMeasure; } else { toCreate.CódUnidadeMedidaProduto = null; } toCreate.CustoUnitário = x.UnitCost; toCreate.UltimoCustoDirecto = x.LastCostDirect; toCreate.PreçoDeVenda = x.PriceSale; toCreate.UtilizadorCriação = User.Identity.Name; toCreate.DataHoraCriação = DateTime.Now; DBStockkeepingUnit.Create(toCreate); } else { toUpdate.NºProduto = x.ProductNo; toUpdate.Descrição = product.Descricao; if (localizacao != null) { toUpdate.CódLocalização = x.Code; } else { toUpdate.CódLocalização = null; } toUpdate.Inventário = x.Inventory; toUpdate.NºPrateleira = x.ShelfNo; toUpdate.Bloqueado = x.Blocked.HasValue ? x.Blocked.ToString().ToLower() == "sim" ? true : false : false; toUpdate.ArmazémPrincipal = x.CodeWareHouse.HasValue ? x.CodeWareHouse.ToString().ToLower() == "sim" ? true : false : false; toUpdate.ValorEmArmazem = x.WareHouseValue; if (fornecedor != null) { toUpdate.NºFornecedor = x.VendorNo; } else { toUpdate.NºFornecedor = null; } toUpdate.CódProdForn = x.VendorItemNo; if (unidadeMedida != null) { toUpdate.CódUnidadeMedidaProduto = x.CodeUnitMeasure; } else { toUpdate.CódUnidadeMedidaProduto = null; } toUpdate.CustoUnitário = x.UnitCost; toUpdate.UltimoCustoDirecto = x.LastCostDirect; toUpdate.PreçoDeVenda = x.PriceSale; toUpdate.UtilizadorModificação = User.Identity.Name; toUpdate.DataHoraModificação = DateTime.Now; DBStockkeepingUnit.Update(toUpdate); } } }); return(Json(data)); }
public JsonResult GetUnitStockeeping() { List <StockkeepingUnitViewModel> result = DBStockkeepingUnit.ParseToViewModel(DBStockkeepingUnit.GetAll()); return(Json(result)); }
public JsonResult OnPostImport_UnidadesArmazenamento() { var files = Request.Form.Files; List <StockkeepingUnitViewModel> ListToCreate = DBStockkeepingUnit.ParseToViewModel(DBStockkeepingUnit.GetAll()); StockkeepingUnitViewModel nrow = new StockkeepingUnitViewModel(); for (int i = 0; i < files.Count; i++) { IFormFile file = files[i]; string folderName = "Upload"; string webRootPath = _generalConfig.FileUploadFolder + "UnidadesArmazenamento\\" + "tmp\\"; string newPath = Path.Combine(webRootPath, folderName); StringBuilder sb = new StringBuilder(); if (!Directory.Exists(newPath)) { Directory.CreateDirectory(newPath); } if (file.Length > 0) { string sFileExtension = Path.GetExtension(file.FileName).ToLower(); ISheet sheet; string fullPath = Path.Combine(newPath, file.FileName); using (var stream = new FileStream(fullPath, FileMode.Create)) { file.CopyTo(stream); stream.Position = 0; if (sFileExtension == ".xls") { HSSFWorkbook hssfwb = new HSSFWorkbook(stream); //This will read the Excel 97-2000 formats sheet = hssfwb.GetSheetAt(0); //get first sheet from workbook } else { XSSFWorkbook hssfwb = new XSSFWorkbook(stream); //This will read 2007 Excel format sheet = hssfwb.GetSheetAt(0); //get first sheet from workbook } for (int j = (sheet.FirstRowNum + 1); j <= sheet.LastRowNum; j++) { IRow row = sheet.GetRow(j); if (row != null) { nrow = new StockkeepingUnitViewModel(); nrow.ProductNo = row.GetCell(0) != null?row.GetCell(0).ToString() : ""; nrow.Description = row.GetCell(1) != null?row.GetCell(1).ToString() : ""; nrow.Code = row.GetCell(2) != null?row.GetCell(2).ToString() : ""; nrow.InventoryText = row.GetCell(3) != null?row.GetCell(3).ToString() : ""; nrow.ShelfNo = row.GetCell(4) != null?row.GetCell(4).ToString() : ""; nrow.BlockedText = row.GetCell(5) != null?row.GetCell(5).ToString() : ""; nrow.CodeWareHouseText = row.GetCell(6) != null?row.GetCell(6).ToString() : ""; nrow.WareHouseValueText = row.GetCell(7) != null?row.GetCell(7).ToString() : ""; nrow.VendorNo = row.GetCell(8) != null?row.GetCell(8).ToString() : ""; nrow.VendorItemNo = row.GetCell(9) != null?row.GetCell(9).ToString() : ""; nrow.CodeUnitMeasure = row.GetCell(10) != null?row.GetCell(10).ToString() : ""; nrow.UnitCostText = row.GetCell(11) != null?row.GetCell(11).ToString() : ""; nrow.LastCostDirectText = row.GetCell(12) != null?row.GetCell(12).ToString() : ""; nrow.PriceSaleText = row.GetCell(13) != null?row.GetCell(13).ToString() : ""; ListToCreate.Add(nrow); } } } } if (ListToCreate.Count > 0) { foreach (StockkeepingUnitViewModel item in ListToCreate) { if (!string.IsNullOrEmpty(item.InventoryText)) { item.Inventory = Convert.ToDecimal(item.InventoryText); item.InventoryText = ""; } if (!string.IsNullOrEmpty(item.BlockedText)) { item.Blocked = item.BlockedText.ToLower() == "sim" ? true : false; item.BlockedText = ""; } if (!string.IsNullOrEmpty(item.CodeWareHouseText)) { item.CodeWareHouse = item.CodeWareHouseText.ToLower() == "sim" ? true : false; item.CodeWareHouseText = ""; } if (!string.IsNullOrEmpty(item.WareHouseValueText)) { item.WareHouseValue = Convert.ToDecimal(item.WareHouseValueText); item.WareHouseValueText = ""; } if (!string.IsNullOrEmpty(item.UnitCostText)) { item.UnitCost = Convert.ToDecimal(item.UnitCostText); item.UnitCostText = ""; } if (!string.IsNullOrEmpty(item.LastCostDirectText)) { item.LastCostDirect = Convert.ToDecimal(item.LastCostDirectText); item.LastCostDirectText = ""; } if (!string.IsNullOrEmpty(item.PriceSaleText)) { item.PriceSale = Convert.ToDecimal(item.PriceSaleText); item.PriceSaleText = ""; } } } } return(Json(ListToCreate)); }