Esempio n. 1
0
        public async Task <CompanyExportSettingsDto> UpdateExportSettings(long id, CompanyExportSettingsDto dto)
        {
            var entity = await _companyExportSettingsManager.FindInclude(id);

            if (entity == null)
            {
                return(null);
            }

            var newEntity = _mapper.Map(dto, entity);

            entity = await _companyExportSettingsManager.Update(newEntity);

            #region UPDATE FiELDS LIST
            foreach (var fieldDto in dto.Fields)
            {
                var field = await _companyExportSettingsFieldManager.Find(fieldDto.Id);

                if (field != null)
                {
                    var fieldEntity = _mapper.Map(fieldDto, field);
                    fieldEntity = await _companyExportSettingsFieldManager.Update(fieldEntity);
                }
            }
            #endregion

            return(_mapper.Map <CompanyExportSettingsDto>(entity));
        }
Esempio n. 2
0
        public async Task <CompanyExportSettingsDto> CreateExportSettings(CompanyExportSettingsDto dto)
        {
            var company = await _companyManager.Find(dto.CompanyId);

            if (company == null)
            {
                return(null);
            }

            var newEntity = _mapper.Map <CompanyExportSettingsEntity>(dto);
            var entity    = await _companyExportSettingsManager.Create(newEntity);

            return(_mapper.Map <CompanyExportSettingsDto>(entity));
        }
Esempio n. 3
0
        public async Task <IActionResult> CreateExportSettings(long id)
        {
            var item = await _companyBusinessManager.GetCompany(id);

            if (item == null)
            {
                return(NotFound());
            }

            var dto = new CompanyExportSettingsDto()
            {
                CompanyId           = id,
                Name                = "Default Name",
                Title               = string.Format("Report-{0}.csv", item.Name),
                Sort                = 0,
                IncludeAllCustomers = false
            };

            dto = await _companyBusinessManager.CreateExportSettings(dto);

            return(RedirectToAction(nameof(EditExportSettings), new { Id = dto.Id }));
        }
Esempio n. 4
0
        private async Task <byte[]> GetExportData(long companyId, DateTime date, int numberOfPeriods, CompanyExportSettingsDto settings)
        {
            var result = await _reportBusinessManager.GetAgingReport(companyId, date, 30, numberOfPeriods, settings.IncludeAllCustomers);

            var mem       = new MemoryStream();
            var writer    = new StreamWriter(mem);
            var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture);

            var fields = settings.Fields.OrderBy(x => x.Sort);//.Concat(columns);

            foreach (var field in fields)
            {
                if (field.IsActive)
                {
                    csvWriter.WriteField <string>(field.Value);
                }
            }
            csvWriter.NextRecord();

            #region SORT BY ACCOUNT NUMBER/CUSTOMER BUSINESS NAME
            var sortedInvoices = result.Rows;
            if (settings.Sort == 0)
            {
                sortedInvoices = sortedInvoices.OrderBy(x => x.AccountNo).ToList();
            }
            else
            {
                sortedInvoices = sortedInvoices.OrderBy(x => x.Customer.Name).ToList();
            }
            #endregion

            foreach (var summary in sortedInvoices)
            {
                foreach (var field in fields)
                {
                    if (field.IsActive)
                    {
                        var value = ObjectExtension.GetPropValue(summary, field.Name);
                        var data  = summary.Data.ContainsKey(field.Name) ? summary.Data[field.Name].ToString() : value;

                        csvWriter.WriteField(data == null || data.Equals("0") ? "" : data);
                    }
                }

                csvWriter.NextRecord();
            }

            writer.Flush();
            mem.Position = 0;

            return(mem.ToArray());
        }