public async Task <string> UpdateSaleFileDataSku(SaleFileDataDto saleFileDataDtos) { var saleFileDataEntityList = await _saleFileDataRepository.CustomFind(x => x.ProductDescription == saleFileDataDtos.ProductDescription, x => x.SaleFileSkuStatus, x => x.SaleFile, x => x.SaleFile.FileStatus); var messageReturn = ""; if (!saleFileDataDtos.NotExisting) { messageReturn = $"Linhas de arquivo de venda dados com id {saleFileDataDtos.Id} validada com o produto {saleFileDataDtos.Product}!"; foreach (var item in saleFileDataEntityList) { item.Product = saleFileDataDtos.Product; item.SaleFileSkuStatus = await _saleFileSkuStatusRepository.GetById((int)FileSKUStatusEnum.Validated); } } else { messageReturn = $"Linhas de arquivo de venda dados com id {saleFileDataDtos.Id} foi inválidada!"; foreach (var item in saleFileDataEntityList) { item.SaleFileSkuStatus = await _saleFileSkuStatusRepository.GetById((int)FileSKUStatusEnum.NotValidated); } } await _unitOfWork.CommitAsync(); return(messageReturn); }
private async Task <(IEnumerable <SaleFileDataError> errorList, IEnumerable <SaleFileData> dataList)> ValidateSaleTab(SaleFile saleFile, ExcelWorksheet saleTab) { var ListSaleFileDataError = new List <SaleFileDataError>(); var ListSaleFileData = new List <SaleFileData>(); for (var row = 2; row <= saleTab.Dimension.End.Row; row++) { if (saleTab.Cells[row, 1].Value != null && saleTab.Cells[row, 2].Value != null && saleTab.Cells[row, 3].Value != null && saleTab.Cells[row, 4].Value != null && saleTab.Cells[row, 5].Value != null && saleTab.Cells[row, 7].Value != null && saleTab.Cells[row, 8].Value != null && saleTab.Cells[row, 9].Value != null && saleTab.Cells[row, 10].Value != null && saleTab.Cells[row, 11].Value != null) { var saleFileData = new SaleFileData { ShopCode = (saleTab.Cells[row, 2].Value != null) ? saleTab.Cells[row, 2].Value.ToString().Replace(".0", "") : String.Empty, Cnpj = (saleTab.Cells[row, 3].Value != null) ? saleTab.Cells[row, 3].Value.ToString().PadLeft(14, '0').Replace("-", "").Replace("/", "").Replace(".", "").Replace(".0", "") : String.Empty, CpfSalesman = (saleTab.Cells[row, 4].Value != null) ? saleTab.Cells[row, 4].Value.ToString().PadLeft(11, '0').Replace("-", "").Replace(".", "").Replace(".0", "").Trim() : String.Empty, RequestNumber = (saleTab.Cells[row, 10].Value != null) ? saleTab.Cells[row, 10].Value.ToString().Replace(".0", "") : String.Empty, SaleDate = (saleTab.Cells[row, 9].Value != null) && Validation.CheckValidDateFromBr(saleTab.Cells[row, 9].Value.ToString()) ? new DateTime(int.Parse(saleTab.Cells[row, 9].Value.ToString().Split('/')[2]), int.Parse(saleTab.Cells[row, 9].Value.ToString().Split('/')[1]), int.Parse(saleTab.Cells[row, 9].Value.ToString().Split('/')[0])) : DateTime.MinValue, ProductDescription = (saleTab.Cells[row, 7].Value != null) ? saleTab.Cells[row, 7].Value.ToString().Replace("'", "").Substring(0, saleTab.Cells[row, 7].Value.ToString().Length - 1) : String.Empty, Amount = (saleTab.Cells[row, 8].Value != null) ? Convert.ToInt16(saleTab.Cells[row, 8].Value.ToString().Replace(".0", "")) : 0, Category = (saleTab.Cells[row, 6].Value != null) ? saleTab.Cells[row, 6].Value.ToString() : String.Empty, NameSalesman = (saleTab.Cells[row, 5].Value != null) ? saleTab.Cells[row, 5].Value.ToString() : String.Empty, Resale = (saleTab.Cells[row, 1].Value != null) ? saleTab.Cells[row, 1].Value.ToString() : String.Empty, CreatedAt = DateTime.Now, SaleFile = saleFile, SaleFileSkuStatus = await _saleFileSkuStatusRepository.GetById((int)FileSKUStatusEnum.PendingClassification), Product = 0, EanCode = (saleTab.Cells[row, 11].Value != null) ? saleTab.Cells[row, 11].Value.ToString() : String.Empty, }; ListSaleFileDataError.AddRange(await ValidateSpreadsheetRow(saleFileData, saleFile, row, saleFile.CurrentMonth)); ListSaleFileData.Add(saleFileData); } else { ListSaleFileDataError.Add(new SaleFileDataError { CreatedAt = DateTime.Now, Description = "Possui uma coluna não preenchida", SaleFile = saleFile, Line = row }); } } return(ListSaleFileDataError, ListSaleFileData); }