Ejemplo n.º 1
0
        private void BuildSalesReport(ref Report report,
                                     IEnumerable<object[]> reportData, Guid responsibleID,
                                     DateTime fromDate,
                                     DateTime toDate)
        {

            report.Lables = new List<String>
                                {
                                    CRMDealResource.DealAmount,
                                    CRMDealResource.DealCount,
                                    CRMCommonResource.Part
                                };

            var fromDateStr = String.Empty;

            if (fromDate != DateTime.MinValue)
                fromDateStr = fromDate.ToShortDateString();


            var toDateStr = String.Empty;

            if (toDate != DateTime.MinValue)
                toDateStr = toDate.ToShortDateString();

            var responsibleStr = String.Empty;

            if (responsibleID != Guid.Empty)
                responsibleStr = ASC.Core.CoreContext.UserManager.GetUsers(ASC.Core.SecurityContext.CurrentAccount.ID).DisplayUserName();


            var result = reportData.GroupBy(row =>
            {
                var bidCurrency = Convert.ToString(row[1]);

                if (bidCurrency != Global.TenantSettings.DefaultCurrency.Abbreviation)
                    row[2] = CurrencyProvider.MoneyConvertToDefaultCurrency(Convert.ToDecimal(row[2]), bidCurrency);

                return row[0];

            }).Select(group => new[]
                                   {
                                      group.Key,
                                      group.Sum(p => Convert.ToDecimal(p[2])),
                                      group.Sum(p => Convert.ToDecimal(p[3])),
                                      0
                                   }).ToList();

            var totalDeals = result.Sum(row => Convert.ToInt32(row[2]));

            foreach (var item in result)
                item[3] = Convert.ToInt32(item[2]) * 100 / totalDeals;
                       

            report.Data = result.ConvertAll(row => new
                                                       {
                                                           title = row[0],
                                                           amount = row[1],
                                                           count = row[2],
                                                           percent = row[3]
                                                       });

        }
Ejemplo n.º 2
0
        private void BuildSalesReport(ref Report report,
                                     IEnumerable<object[]> reportData, Guid responsibleID,
                                     DateTime fromDate,
                                     DateTime toDate)
        {

            report.Lables = new List<String>
                                {
                                    CRMDealResource.DealAmount,
                                    CRMDealResource.DealCount,
                                    CRMCommonResource.Part
                                };

            var result = reportData.GroupBy(row =>
            {
                var bidCurrency = Convert.ToString(row[1]);

                if (bidCurrency != Global.TenantSettings.DefaultCurrency.Abbreviation)
                    row[2] = CurrencyProvider.MoneyConvertToDefaultCurrency(Convert.ToDecimal(row[2]), bidCurrency);

                return row[0];

            }).Select(group => new[]
                                   {
                                      group.Key,
                                      group.Sum(p => Convert.ToDecimal(p[2])),
                                      group.Sum(p => Convert.ToDecimal(p[3])),
                                      0
                                   }).ToList();

            var totalDeals = result.Sum(row => Convert.ToInt32(row[2]));

            foreach (var item in result)
                item[3] = Convert.ToInt32(item[2]) * 100 / totalDeals;
                       

            report.Data = result.ConvertAll(row => new
                                                       {
                                                           title = row[0],
                                                           amount = row[1],
                                                           count = row[2],
                                                           percent = row[3]
                                                       });

        }