Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }