public BudgetCashflowDivisionItemDto(string currencyIdString, string currencyCode, double currencyRate, string divisionIdString, string unitIdString, double total, BudgetCashflowCategoryLayoutOrder layoutOrder) { int.TryParse(currencyIdString, out var currencyId); CurrencyId = currencyId; int.TryParse(unitIdString, out var unitId); UnitId = unitId; int.TryParse(divisionIdString, out var divisionId); DivisionId = divisionId; if (currencyCode != "IDR") { CurrencyNominal = total; ActualNominal = total * currencyRate; } else { Nominal = total; ActualNominal = total; } LayoutOrder = layoutOrder; LayoutName = layoutOrder.ToDescriptionString(); }
public List <BudgetCashflowItemDto> GetBudgetCashflowUnit(BudgetCashflowCategoryLayoutOrder layoutOrder, int unitId, DateTimeOffset dueDate) { var queryResult = GetDebtAndDispositionSummary(layoutOrder, unitId, dueDate, 0); var result = queryResult .GroupBy(element => new { element.CurrencyId, element.UnitId, element.DivisionId }) .Select(element => new BudgetCashflowItemDto( element.Key.CurrencyId, element.FirstOrDefault().CurrencyCode, element.FirstOrDefault().CurrencyRate, element.Sum(s => s.Total), layoutOrder, element.Key.UnitId, element.Key.DivisionId )) .ToList(); if (result.Count <= 0) { result = new List <BudgetCashflowItemDto>() { new BudgetCashflowItemDto(0, 0, 0, 0, 0, layoutOrder) }; } return(result); }
public BudgetCashflowWorstCaseItem(BudgetCashflowCategoryLayoutOrder layoutOrder, int currencyId, double currencyNominal, double nominal, double actualNominal, int budgetCashflowWorstCaseId, int unitId) { LayoutOrder = layoutOrder; CurrencyId = currencyId; CurrencyNominal = currencyNominal; Nominal = nominal; ActualNominal = actualNominal; BudgetCashflowWorstCaseId = budgetCashflowWorstCaseId; UnitId = unitId; }
public BudgetCashflowItemDto(int id, int currencyId, double currencyNominal, double nominal, double actualNominal, BudgetCashflowCategoryLayoutOrder layoutOrder) { Id = id; CurrencyId = currencyId; CurrencyNominal = currencyNominal; Nominal = nominal; ActualNominal = actualNominal; LayoutOrder = layoutOrder; LayoutName = layoutOrder.ToDescriptionString(); }
public BudgetCashflowItemDto(int currencyId, double currencyNominal, double nominal, double actualNominal, double bestCaseCurrencyNominal, double bestCaseNominal, double bestCaseActualNominal, BudgetCashflowCategoryLayoutOrder layoutOrder) { CurrencyId = currencyId; CurrencyNominal = currencyNominal; Nominal = nominal; ActualNominal = actualNominal; BestCaseCurrencyNominal = bestCaseCurrencyNominal; BestCaseNominal = bestCaseNominal; BestCaseActualNominal = bestCaseActualNominal; LayoutOrder = layoutOrder; }
public BudgetCashflowDivisionItemDto(int currencyId, int divisionId, int unitId, double nominal, double currencyNominal, double actualNominal, BudgetCashflowCategoryLayoutOrder layoutOrder) { CurrencyId = currencyId; CurrencyNominal = currencyNominal; Nominal = nominal; ActualNominal = actualNominal; LayoutOrder = layoutOrder; LayoutName = layoutOrder.ToDescriptionString(); UnitId = unitId; DivisionId = divisionId; }
public static string ToDescriptionString(this BudgetCashflowCategoryLayoutOrder me) { var enumType = me.GetType(); var memberInfo = enumType.GetMember(me.ToString()); if (memberInfo != null && memberInfo.Length > 0) { var _attr = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false); if (_attr != null && _attr.Count() > 0) { return(((DescriptionAttribute)_attr.ElementAt(0)).Description); } } return(me.ToString()); }
public IActionResult GetBudgetCashflowBestCase([FromQuery] BudgetCashflowCategoryLayoutOrder layoutOrder, [FromQuery] int unitId, [FromQuery] DateTimeOffset dueDate) { try { VerifyUser(); var result = _service.GetBudgetCashflowUnit(layoutOrder, unitId, dueDate); return(Ok(new { apiVersion = ApiVersion, statusCode = General.OK_STATUS_CODE, message = General.OK_MESSAGE, data = result })); } catch (Exception e) { return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, e.Message + " " + e.StackTrace)); } }
public BudgetCashflowDivisionDto GetBudgetCashflowDivision(BudgetCashflowCategoryLayoutOrder layoutOrder, int divisionId, DateTimeOffset dueDate) { //var queryResult = GetDebtAndDispositionSummary(layoutOrder, 0, dueDate, divisionId); //var result = queryResult // .GroupBy(element => new { element.CurrencyId, element.UnitId }) // .Select(element => new BudgetCashflowDivisionItemDto( // element.Key.CurrencyId, // element.FirstOrDefault().CurrencyCode, // element.FirstOrDefault().CurrencyRate, // element.FirstOrDefault().DivisionId, // element.Key.UnitId, // element.Sum(s => s.Total), // layoutOrder // )) // .ToList(); //if (result.Count <= 0) //{ // result = new List<BudgetCashflowDivisionItemDto>() { new BudgetCashflowDivisionItemDto("0", "", 0, "0", "0", 0, layoutOrder) }; //} //var unitIds = result.Where(element => element.UnitId != 0).Select(element => element.UnitId).Distinct().ToList(); //return new BudgetCashflowDivisionDto(unitIds, result); var unitIds = _units.Where(element => element.DivisionId == divisionId).Select(element => element.Id).ToList(); var query = _dbContext.BudgetCashflowWorstCases.Where(entity => entity.Year == dueDate.AddMonths(1).Year&& entity.Month == dueDate.AddMonths(1).Month); if (divisionId > 0) { query = query.Where(entity => unitIds.Contains(entity.UnitId)); } unitIds = query.Select(entity => entity.UnitId).Distinct().ToList(); var models = query.ToList(); var result = new List <BudgetCashflowDivisionItemDto>(); if (models.Count > 0) { var modelIds = models.Select(model => model.Id).ToList(); result = _dbContext .BudgetCashflowWorstCaseItems .Where(entity => modelIds.Contains(entity.BudgetCashflowWorstCaseId) && entity.LayoutOrder == layoutOrder) .GroupBy(element => new { element.CurrencyId, element.UnitId }) .Select(element => new BudgetCashflowDivisionItemDto( element.Key.CurrencyId, divisionId, element.Key.UnitId, element.Sum(s => s.Nominal), element.Sum(s => s.CurrencyNominal), element.Sum(s => s.ActualNominal), layoutOrder)) .OrderBy(entity => entity.LayoutOrder) .ToList(); } if (result.Count <= 0) { result = new List <BudgetCashflowDivisionItemDto>() { new BudgetCashflowDivisionItemDto("0", "", 0, "0", "0", 0, layoutOrder) }; } return(new BudgetCashflowDivisionDto(unitIds, result)); }
private List <DebtAndDispositionSummaryDto> GetDebtAndDispositionSummary(BudgetCashflowCategoryLayoutOrder layoutOrder, int unitId, DateTimeOffset dueDate, int divisionId) { var budgetingCategoryNames = new List <string>(); var budgetingCategoryIds = new List <int>(); var result = new List <DebtAndDispositionSummaryDto>(); switch (layoutOrder) { case BudgetCashflowCategoryLayoutOrder.ImportedRawMaterial: budgetingCategoryNames = new List <string>() { "BAHAN BAKU" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, true, divisionId, true)); case BudgetCashflowCategoryLayoutOrder.LocalRawMaterial: budgetingCategoryNames = new List <string>() { "BAHAN BAKU" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, true)); case BudgetCashflowCategoryLayoutOrder.AuxiliaryMaterial: budgetingCategoryNames = new List <string>() { "BAHAN PEMBANTU" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.Embalage: budgetingCategoryNames = new List <string>() { "EMBALAGE" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.Coal: budgetingCategoryNames = new List <string>() { "BATU BARA" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.FuelOil: budgetingCategoryNames = new List <string>() { "BBM & PELUMAS" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.SparePartsMachineMaintenance: budgetingCategoryNames = new List <string>() { "SPARE PART & PEMELIHARAAN MESIN" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.GeneralAdministrativeBuildingMaintenance: budgetingCategoryNames = new List <string>() { "PEMELIHARAAN GEDUNG" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.GeneralAdministrativeStationary: budgetingCategoryNames = new List <string>() { "ALAT TULIS" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.GeneralAdministrativeCorporateHousehold: budgetingCategoryNames = new List <string>() { "URTP" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.GeneralAdministrativeVehicleCost: budgetingCategoryNames = new List <string>() { "KENDARAAN (BEBAN)" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.GeneralAdministrativeOthersCost: budgetingCategoryNames = new List <string>() { "LAIN-LAIN" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.MachineryPurchase: budgetingCategoryNames = new List <string>() { "MESIN" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.VehiclePurchase: budgetingCategoryNames = new List <string>() { "KENDARAAN" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.InventoryPurchase: budgetingCategoryNames = new List <string>() { "INVENTARIS" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); case BudgetCashflowCategoryLayoutOrder.ComputerToolsPurchase: budgetingCategoryNames = new List <string>() { "ALAT KOMPUTER" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); //case BudgetCashflowCategoryLayoutOrder.ProductionToolsMaterialsPurchase: // budgetingCategoryNames = new List<string>() { "ALAT DAN BAHAN PRODUKSI" }; // budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); // return GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false); case BudgetCashflowCategoryLayoutOrder.ProjectPurchase: budgetingCategoryNames = new List <string>() { "PROYEK" }; budgetingCategoryIds = _budgetingCategories.Where(element => budgetingCategoryNames.Contains(element.Name.ToUpper())).Select(element => element.Id).ToList(); return(GetDebtDispositionSummary(budgetingCategoryIds, unitId, dueDate, false, divisionId, false)); default: return(result); } }