public ActionResult PTOReportPartial([ModelBinder(typeof(DevExpressEditorsBinder))] ProductionLedgerReport item, [ModelBinder(typeof(DevExpressEditorsBinder))] PTOReportParams reportParams) { if (item.isSubmitted != true) { return(base.PartialView(string.Format(PTOReportPath, nameof(PTOReportPartial)), new Helpers.PTOReport())); } if (reportParams != null) { if (reportParams.Year > 0 && item.Month > 0) { var date = new DateTime(reportParams.Year, item.Month, 1); item.DateFrom = date; item.DateTo = date.AddMonths(1).AddDays(-1); } else { var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); item.DateFrom = date; item.DateTo = date.AddMonths(1).AddDays(-1); } } var _permittee = unitOfWork.PermiteesRepo.Fetch(); if (reportParams.PermitteeId > 0) { _permittee = _permittee.Where(x => x.Id == reportParams.PermitteeId); } if (reportParams.PermitteeTypeId > 0) { _permittee = _permittee.Where(x => x.PermiteeTypeId == reportParams.PermitteeTypeId); } List <SummaryProductionReport> reports = new List <SummaryProductionReport>(); List <Permitees> permittees = new List <Permitees>(); var sag = unitOfWork.SagsRepo.Fetch(); foreach (var permittee in _permittee) { var productionLedgerReports = new List <ProductionLedgerReport>(); foreach (var i in permittee.Quarries) { var r = new ProductionLedgerReport() { OrdinaryEarth = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 1) .Sum(m => m.Quantity) ?? 0, OrdinaryEarthAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 1) .Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Mixed = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 4) .Sum(m => m.Quantity) ?? 0, MixedAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 4) .Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Fined = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 5) .Sum(m => m.Quantity) ?? 0, FinedAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 5) .Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Coarse = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 8) .Sum(m => m.Quantity) ?? 0, CoarseAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 8).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Boulders = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 6) .Sum(m => m.Quantity) ?? 0, BouldersAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 6) .Sum(m => m.Quantity) ?? 0, Crushed = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 7) .Sum(m => m.Quantity) ?? 0, CrushedAmount = unitOfWork.ProductionsRepo.Fetch(m => m.PermiteeId == permittee.Id && (m.ProductionDate >= item.DateFrom && m.ProductionDate <= item.DateTo) && m.Quarries.Id == i.Id && m.SagId == 7) .Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Permitees = permittee, Quarries = i, ReportDate = DateTime.Now.ToLongDateString() }; productionLedgerReports.Add(r); } permittee.ProductionLedgerReports = productionLedgerReports; permittees.Add(permittee); } reports.Add(new SummaryProductionReport() { Permitees = permittees }); Helpers.PTOReport summary = new Helpers.PTOReport() { DataSource = reports }; return(PartialView($"/views/reports/birreport/{nameof(BIRReportPartial)}.cshtml", summary)); }
public ActionResult ProductionLedgerGridViewPartial([ModelBinder(typeof(DevExpressEditorsBinder))] ProductionLedgerReport item) { var permittee = unitOfWork.PermiteesRepo.Fetch(includeProperties: "Productions"); if (item.PermitteeId != 0) { permittee = permittee.Where(x => x.Id == item.PermitteeId); } var datefrom = new DateTime(item.Year.ToInt(), item.Month.ToInt(), 1); var dateTo = new DateTime(item.Year.ToInt(), item.Month.ToInt(), DateTime.DaysInMonth(item.Year.ToInt(), item.Month.ToInt())).AddHours(23); var res = permittee.ToList().Where(x => x.Productions.Any(m => (m.DateCreated >= datefrom && m.DateCreated <= dateTo))); foreach (var i in res) { i.Productions = unitOfWork.ProductionsRepo.Get(m => (m.DateCreated >= datefrom && m.DateCreated <= dateTo) && m.PermiteeId == i.Id).ToList(); } var rpt = new rptDetailProductionPivot() { DataSource = res }; foreach (var i in res) { List <ProductionLedgerReport> reports = new List <ProductionLedgerReport>(); foreach (var quarry in i.Quarries) { var transaction = unitOfWork.TransactionSagsRepo.Fetch(m => m.Transactions.PermiteeId == i.Id).Where(x => x.Transactions.Permitees.Quarries.Any(m => m.Id == quarry.Id)); var r = new ProductionLedgerReport() { Boulders = transaction.Where(x => x.SagId == 6).Sum(m => m.Quantity) ?? 0, BouldersAmount = transaction.Where(x => x.SagId == 6).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Coarse = transaction.Where(x => x.SagId == 8).Sum(m => m.Quantity) ?? 0, CoarseAmount = transaction.Where(x => x.SagId == 8).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Crushed = transaction.Where(x => x.SagId == 7).Sum(m => m.Quantity) ?? 0, CrushedAmount = transaction.Where(x => x.SagId == 7).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Fined = transaction.Where(x => x.SagId == 5).Sum(m => m.Quantity) ?? 0, FinedAmount = transaction.Where(x => x.SagId == 5).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, Mixed = transaction.Where(x => x.SagId == 4).Sum(m => m.Quantity) ?? 0, MixedAmount = transaction.Where(x => x.SagId == 4).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, OrdinaryEarth = transaction.Where(x => x.SagId == 1).Sum(m => m.Quantity) ?? 0, OrdinaryEarthAmount = transaction.Where(x => x.SagId == 1).Sum(m => m.Quantity * m.Sags.UnitCost) ?? 0, ProductionBoulders = i.Productions.Where(x => x.SagId == 6 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, ProductionBouldersAmount = i.Productions.Where(x => x.SagId == 6 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost) ?? 0, ProductionCoarse = i.Productions.Where(x => x.SagId == 8 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, ProductionCoarseAmount = i.Productions.Where(x => x.SagId == 8 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost) ?? 0, ProductionCrushed = i.Productions.Where(x => x.SagId == 7 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, ProductionCrushedAmount = i.Productions.Where(x => x.SagId == 7 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost) ?? 0, ProductionMixed = i.Productions.Where(x => x.SagId == 4 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, ProductionMixedAmount = i.Productions.Where(x => x.SagId == 4 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost) ?? 0, ProductionOrdinaryEarth = i.Productions.Where(x => x.SagId == 1 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, ProductionOrdinaryEarthAmount = i.Productions.Where(x => x.SagId == 1 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost) ?? 0, ProductionFinedAmount = i.Productions.Where(x => x.SagId == 5 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity * x.Sags.UnitCost), ProductionFined = i.Productions.Where(x => x.SagId == 5 && x.QuarriesId == quarry.Id).Sum(x => x.Quantity) ?? 0, Quarries = quarry, Permitees = i, }; reports.Add(r); } i.ProductionLedgerReports = reports; } /* var OrdinaryEarth = reports.Sum(m => m.ProductionOrdinaryEarth).ToInt(); * var Mixed = reports.Sum(m => m.ProductionMixed).ToInt(); * var Fined = reports.Sum(m => m.ProductionFined).ToInt(); * var Coarse = reports.Sum(m => m.ProductionCoarse).ToInt(); * var Boulders = reports.Sum(m => m.ProductionBoulders).ToInt(); * var Crushed = reports.Sum(m => m.ProductionCrushed).ToInt(); * * //reports.ForEach(x => * //{ * // x.OrdinaryEarth = x.OrdinaryEarth.ToInt() - OrdinaryEarth; * // x.Mixed = x.Mixed.ToInt() - Mixed; * // x.Fined = x.Fined.ToInt() - Fined; * // x.Coarse = x.Coarse.ToInt() - Coarse; * // x.Boulders = x.Boulders.ToInt() - Boulders; * // x.Crushed = x.Crushed.ToInt() - Crushed; * //}); * permittee.ProductionLedgerReports = reports;*/ // Session["ProductionLedgerReport"] = reports; SummaryLedgerReportByRange summaryLedgerReport = new SummaryLedgerReportByRange() { DataSource = new List <SummaryProductionReport>() { new SummaryProductionReport() { Permitees = res.ToList(), Month = item.Month, Year = item.Year } } }; return(PartialView("_ProductionLedgerGridViewPartial", summaryLedgerReport)); }
public ActionResult PTOReport([ModelBinder(typeof(DevExpressEditorsBinder))] ProductionLedgerReport item) { return(View(string.Format(PTOReportPath, nameof(PTOReport)))); }