Odstranjenn projekt
dodan vnos pozicije fakture
This commit is contained in:
@@ -5,7 +5,6 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using EveryThing.Models.Project;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -47,226 +46,8 @@ namespace EveryThing.Pages
|
||||
|
||||
public IActionResult OnGetData(int year)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var dateMonthFrom = new DateTime(DateTime.Now.AddDays(-31).Year, DateTime.Now.AddDays(-31).Month, DateTime.Now.AddDays(-31).Day, 0, 0, 0);
|
||||
var dateMonthTo = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 23, 59, 59);
|
||||
|
||||
var xAxisMonth = Enumerable.Range(0, 1 + dateMonthTo.Subtract(dateMonthFrom).Days)
|
||||
.Select(offset => dateMonthFrom.AddDays(offset))
|
||||
.OrderBy(x => x)
|
||||
.Select(x => x.ToString("dd.MM.yy"))
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
var projectPartItemsMonth = _context.ProjectPartItems
|
||||
.Include(x => x.ProjectPart)
|
||||
.ThenInclude(x => x.Project)
|
||||
.Where(x => x.ProjectPart.Project.IdCompanyFk == user.IdCompanyFk && x.ShippingDate >= dateMonthFrom && x.ShippingDate <= dateMonthTo)
|
||||
.ToList();
|
||||
|
||||
//Neka fora z chart JS da ne pozicionira prav ce ni nastavjleno y=0 za prazne
|
||||
//var month = new
|
||||
//{
|
||||
// xAxis = xAxisMonth,
|
||||
// diferenceInPrice = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.DifferenceInPriceValue) }),
|
||||
// sales = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.SellingValue) }),
|
||||
// expenses = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.MaterialValue + y.WorkValue) })
|
||||
//};
|
||||
|
||||
var dicDiferenceInPriceMonth = new Dictionary<string, double>();
|
||||
var dicSalesMonth = new Dictionary<string, double>();
|
||||
var dicExpensesMonth = new Dictionary<string, double>();
|
||||
xAxisMonth.ForEach(x =>
|
||||
{
|
||||
dicDiferenceInPriceMonth[x] = 0;
|
||||
dicSalesMonth[x] = 0;
|
||||
dicExpensesMonth[x] = 0;
|
||||
});
|
||||
|
||||
foreach (var day in projectPartItemsMonth
|
||||
.GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
.OrderBy(x => x.Key))
|
||||
{
|
||||
var x = day.Key.ToString("dd.MM.yy");
|
||||
dicDiferenceInPriceMonth[x] = day.Sum(x => x.DifferenceInPriceValue);
|
||||
dicSalesMonth[x] = day.Sum(x => x.SellingValue);
|
||||
dicExpensesMonth[x] = day.Sum(x => x.WorkValue + x.MaterialValue);
|
||||
}
|
||||
|
||||
var month = new
|
||||
{
|
||||
xAxis = xAxisMonth,
|
||||
diferenceInPrice = dicDiferenceInPriceMonth.Select(x => new {x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
sales = dicSalesMonth.Select(x => new {x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
expenses = dicExpensesMonth.Select(x => new {x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
};
|
||||
|
||||
//Leto
|
||||
|
||||
var dateYearTo = new DateTime(year, 12, 31, 23, 59, 59);
|
||||
var dateYearFrom = new DateTime(year, 1, 1, 1, 0, 0, 0);
|
||||
|
||||
var xAxisYear = Enumerable.Range(0, 1 + dateYearTo.Subtract(dateYearFrom).Days)
|
||||
.Select(offset => dateYearFrom.AddDays(offset))
|
||||
.OrderBy(x => x)
|
||||
.Select(x => x.ToString("MM.yy"))
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
var projectPartItemsYear = _context.ProjectPartItems
|
||||
.Include(x => x.ProjectPart)
|
||||
.ThenInclude(x => x.Project)
|
||||
.Where(x => x.ProjectPart.Project.IdCompanyFk == user.IdCompanyFk && x.ShippingDate >= dateYearFrom && x.ShippingDate <= dateYearTo)
|
||||
.ToList();
|
||||
|
||||
//Neka fora z chart JS da ne pozicionira prav ce ni nastavjleno y=0 za prazne
|
||||
//var month = new
|
||||
//{
|
||||
// xAxis = xAxisMonth,
|
||||
// diferenceInPrice = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.DifferenceInPriceValue) }),
|
||||
// sales = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.SellingValue) }),
|
||||
// expenses = projectPartItemsMonth
|
||||
// .GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
// .Select(x => new { x = x.Key.ToString("dd.MM.yy"), y = x.Sum(y => y.MaterialValue + y.WorkValue) })
|
||||
//};
|
||||
|
||||
var dicDiferenceInPriceYear = new Dictionary<string, double>();
|
||||
var dicSalesYear = new Dictionary<string, double>();
|
||||
var dicExpensesYear = new Dictionary<string, double>();
|
||||
xAxisYear.ForEach(x =>
|
||||
{
|
||||
dicDiferenceInPriceYear[x] = 0;
|
||||
dicSalesYear[x] = 0;
|
||||
dicExpensesYear[x] = 0;
|
||||
});
|
||||
|
||||
foreach (var day in projectPartItemsYear
|
||||
.GroupBy(x => new DateTime(((DateTime)x.ShippingDate).Year, ((DateTime)x.ShippingDate).Month, ((DateTime)x.ShippingDate).Day))
|
||||
.OrderBy(x => x.Key))
|
||||
{
|
||||
var x = day.Key.ToString("MM.yy");
|
||||
dicDiferenceInPriceYear[x] = day.Sum(x => x.DifferenceInPriceValue);
|
||||
dicSalesYear[x] = day.Sum(x => x.SellingValue);
|
||||
dicExpensesYear[x] = day.Sum(x => x.WorkValue + x.MaterialValue);
|
||||
}
|
||||
|
||||
var yearData = new
|
||||
{
|
||||
xAxis = xAxisYear,
|
||||
diferenceInPrice = dicDiferenceInPriceYear.Select(x => new { x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
sales = dicSalesYear.Select(x => new { x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
expenses = dicExpensesYear.Select(x => new { x = x.Key, y = Math.Round(x.Value, 2) }),
|
||||
};
|
||||
|
||||
//Zgornji napisi - labels
|
||||
var dateLabelsFrom = new DateTime(DateTime.Now.AddDays(-31).Year, DateTime.Now.AddDays(-31).Month, DateTime.Now.AddDays(-31).Day, 0, 0, 0);
|
||||
var dateLabelsTo = new DateTime(DateTime.Now.AddDays(-1).Year, DateTime.Now.AddDays(-1).Month, DateTime.Now.AddDays(-1).Day, 23, 59, 59);
|
||||
|
||||
var projectPartItemsLabels = _context.ProjectPartItems
|
||||
.Include(x => x.ProjectPart)
|
||||
.ThenInclude(x => x.Project)
|
||||
.Where(x => x.ProjectPart.Project.IdCompanyFk == user.IdCompanyFk && x.ShippingDate >= dateLabelsFrom && x.ShippingDate <= dateLabelsTo)
|
||||
.ToList();
|
||||
|
||||
var labels = new
|
||||
{
|
||||
diferenceInPrice = Math.Round(projectPartItemsLabels.Sum(x => x.DifferenceInPriceValue),2).ToString("#,###,##0.00", new CultureInfo("sl-SI")),
|
||||
sales = Math.Round(projectPartItemsLabels.Sum(x => x.SellingValue), 2).ToString("#,###,##0.00", new CultureInfo("sl-SI")),
|
||||
expenses = Math.Round(projectPartItemsLabels.Sum(x => x.WorkValue + x.MaterialValue), 2).ToString("#,###,##0.00", new CultureInfo("sl-SI")),
|
||||
activeProjects = _context.Projects.Count(x => x.IdCompanyFk == user.IdCompanyFk && x.Status != ProjectStatus.Finished)
|
||||
};
|
||||
|
||||
//Graf po partnerjih preteklo leto
|
||||
var datePartnersYearTo = new DateTime(year, 12, 31, 23, 59, 59);
|
||||
var datePartnersYearFrom = new DateTime(year, 1, 1, 1, 0, 0, 0);
|
||||
|
||||
var projectPartItemsPartnersYear = _context.ProjectPartItems
|
||||
.Include(x => x.ProjectPart)
|
||||
.ThenInclude(x => x.Project)
|
||||
.ThenInclude(x => x.Partner)
|
||||
.Where(x => x.ProjectPart.Project.IdCompanyFk == user.IdCompanyFk && x.ShippingDate >= datePartnersYearFrom && x.ShippingDate <= datePartnersYearTo)
|
||||
.ToList();
|
||||
|
||||
|
||||
var diferenceInPricePartnersYear = new List<dynamic>();
|
||||
var salesPartnersYear = new List<dynamic>();
|
||||
var expensesPartnersYear = new List<dynamic>();
|
||||
var xAxisPartnersYear = new List<string>();
|
||||
|
||||
foreach (var partner in projectPartItemsPartnersYear
|
||||
.GroupBy(x => x.ProjectPart.Project.Partner.Title)
|
||||
.OrderBy(x => x.Key))
|
||||
{
|
||||
var x = partner.Key;
|
||||
if (x.Length > 20)
|
||||
x = x.Substring(0, 20);
|
||||
|
||||
xAxisPartnersYear.Add(x);
|
||||
diferenceInPricePartnersYear.Add(new {x = x, y = Math.Round(partner.Sum(x => x.DifferenceInPriceValue))});
|
||||
salesPartnersYear.Add(new {x = x, y = Math.Round(partner.Sum(x => x.SellingValue))});
|
||||
expensesPartnersYear.Add(new {x = x, y = Math.Round(partner.Sum(x => x.WorkValue+ x.MaterialValue))});
|
||||
}
|
||||
|
||||
var partnersYear = new
|
||||
{
|
||||
xAxis = xAxisPartnersYear,
|
||||
diferenceInPrice = diferenceInPricePartnersYear,
|
||||
sales = salesPartnersYear,
|
||||
expenses = expensesPartnersYear,
|
||||
};
|
||||
|
||||
//Graf po projetkih preteklo leto
|
||||
var dateProjectsYearTo = new DateTime(year, 12, 31, 23, 59, 59);
|
||||
var dateProjectsYearFrom = new DateTime(year, 1, 1, 1, 0, 0, 0);
|
||||
|
||||
var projectPartItemsProjectsYear = _context.ProjectPartItems
|
||||
.Include(x => x.ProjectPart)
|
||||
.ThenInclude(x => x.Project)
|
||||
.Where(x => x.ProjectPart.Project.IdCompanyFk == user.IdCompanyFk && x.ShippingDate >= dateProjectsYearFrom && x.ShippingDate <= dateProjectsYearTo)
|
||||
.ToList();
|
||||
|
||||
|
||||
var diferenceInPriceProjectsYear = new List<dynamic>();
|
||||
var salesProjectsYear = new List<dynamic>();
|
||||
var expensesProjectsYear = new List<dynamic>();
|
||||
var xAxisProjectsYear = new List<string>();
|
||||
|
||||
foreach (var partner in projectPartItemsProjectsYear
|
||||
.GroupBy(x => x.ProjectPart.Project.Title)
|
||||
.OrderBy(x => x.Key))
|
||||
{
|
||||
var x = partner.Key;
|
||||
if (x.Length > 20)
|
||||
x = x.Substring(0, 20);
|
||||
|
||||
xAxisProjectsYear.Add(x);
|
||||
diferenceInPriceProjectsYear.Add(new { x = x, y = Math.Round(partner.Sum(x => x.DifferenceInPriceValue)) });
|
||||
salesProjectsYear.Add(new { x = x, y = Math.Round(partner.Sum(x => x.SellingValue)) });
|
||||
expensesProjectsYear.Add(new { x = x, y = Math.Round(partner.Sum(x => x.WorkValue + x.MaterialValue)) });
|
||||
}
|
||||
|
||||
var projectsYear = new
|
||||
{
|
||||
xAxis = xAxisProjectsYear,
|
||||
diferenceInPrice = diferenceInPriceProjectsYear,
|
||||
sales = salesProjectsYear,
|
||||
expenses = expensesProjectsYear,
|
||||
};
|
||||
|
||||
var data = new { month, year = yearData, labels, partnersYear, projectsYear };
|
||||
|
||||
return new JsonResult(new { data, error = "", successful = true });
|
||||
return new JsonResult(new { data = new List<int>(), error = "", successful = true });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user