Beispiel #1
0
        public IActionResult Post([FromBody] SalesRangeRequestModel range)
        {
            var credentials = (from x in context.CLogid
                               where x.CLogPortal == "PH"
                               select x).FirstOrDefault();
            var filePath = credentials.CLogRutaDescarga;

            if (!filePath.EndsWith(@"\"))
            {
                filePath += @"\";
            }

            RemoveSales(range, filePath);
            var explorer = new AwebExplorer();
            var files    = explorer.OnlyDownloadSales(credentials.CLogUsuario, credentials.CLogContrasenia, range.From, range.To);

            WriteSales(filePath, files);
            return(NoContent());
        }
Beispiel #2
0
        private async Task DownloadFilesAsync()
        {
            using (var context = new PortalesPRODEntities())
            {
                var aweb         = new AwebExplorer();
                var yesterday    = DateTime.Today.AddDays(-1);
                var yesterdayStr = yesterday.ToString("ddMMyyyy");
                var users        = await(from x in context.cLogin
                                         where x.cLogPortal == "PH"
                                         select new User
                {
                    User         = x.cLogUsuario,
                    Password     = x.cLogContrasenia,
                    DownloadPath = x.cLogRutaDescarga,
                    Variables    = (from x1 in context.cLoginPhReportVariables
                                    select new DownloadFileVariablesModel
                    {
                        NavUrl = x1.NavUrl,
                        ObjIds = x1.ObjIds,
                        ExcelFileName = x1.ExcelFileName,
                        TypeId = (DownloadFileVariablesTypes)x1.TypeId
                    }).ToList(),
                    SalesVsInvParams = (from s in context.cLoginPhReportSalesInv
                                        join u in context.cLogin on s.cLogId equals u.cLogId
                                        where u.cLogUsuario == x.cLogUsuario
                                        select new DownloadFileSalesVsInvParams
                    {
                        Spv = s.Spv,
                        ExcelFileName = s.ExcelFileName,
                        InitDocumentId = s.InitDocumentId
                    })
                                       .ToList()
                }).ToListAsync();

                foreach (var login in users)
                {
#if !(DEBUG)
                    var downloadPath = login.DownloadPath;
                    var salesList    = await aweb.DownloadAsync(login, yesterday, yesterday);
#else
                    var downloadPath = "EXCEL";
                    var salesList    = aweb.Download(login, yesterday, yesterday);
#endif
                    MergeInvIpiFiles(ref salesList);

                    foreach (var sales in salesList)
                    {
                        var fileName = sales.ExcelFileName.Replace(".xlsx", ".csv");
                        using (var memory = new MemoryStream(sales.ExcelContent))
                        {
                            using (var excel = new ExcelPackage(memory))
                            {
                                RemoveUnecesaryFields(excel);
                                var buffer = excel.GetCsv(excel.Workbook.Worksheets.FirstOrDefault());
                                File.WriteAllBytes($@"{downloadPath}\{fileName}", buffer);
                            }
                        }

#if !(DEBUG)
                        if (context.ARCHIVOS.FirstOrDefault(x => x.FECHA == yesterdayStr && x.CLIENTE == "3" && x.ARCHIVO == fileName) == null)
                        {
                            context.ARCHIVOS.Add(new ARCHIVOS
                            {
                                FECHA   = yesterdayStr,
                                CLIENTE = "3",
                                ARCHIVO = fileName,
                                RUTA    = downloadPath.EndsWith(@"\") ? downloadPath : $@"{downloadPath}\",
                                TIPO    = fileName.Contains("_VTA_") ? "VTA" : "INV"
                            });
                        }
#endif
                    }

                    context.SaveChanges();
                }
            }
        }