internal void CreateExpenseGroupForOffer(int idOffer) { Offer offer = new OfferBL().GetEntityById(idOffer); SAPData sapData = new SAPDataBL().GetSAPDataByDateActiveTo(offer.OfferDate); List <Expense> listExpenseToBeSave = new List <Expense>(); if (sapData != null) { List <Expense> list = new ExpenseCalculationBL().LoadExpenseGroupByIdSAPData(sapData.idSAPData); } else { throw new ETEMModelException("Not found expenses. "); } }
protected void btnLoadSAPData_Click(object sender, EventArgs e) { ExpenseCalculationBL expenseCalculationBL = new ExpenseCalculationBL(); List<Expense> list = expenseCalculationBL.LoadExpenseGroupByIdSAPData(Int32.Parse(this.tbxIDSAPData.Text)); }
public Dictionary <string, TableRow[]> LoadSAPDataExpensesAndQuantities(int idEntity, CallContext resultContext) { Dictionary <string, TableRow[]> result = new Dictionary <string, TableRow[]>(); try { List <string> listKeyTypeIntCodes = new List <string>() { ETEMEnums.KeyTypeEnum.CostCenter.ToString(), ETEMEnums.KeyTypeEnum.ExpensesType.ToString(), ETEMEnums.KeyTypeEnum.ExpensesTypeGroup.ToString(), ETEMEnums.KeyTypeEnum.QuantityType.ToString() }; List <KeyValueDataView> listKeyValuesToSAPDataExpensesAndQuantity = new List <KeyValueDataView>(); List <KeyValueDataView> listKeyValueCostCenter = new List <KeyValueDataView>(); List <KeyValueDataView> listKeyValueExpensesType = new List <KeyValueDataView>(); List <KeyValueDataView> listKeyValueExpensesTypeGroup = new List <KeyValueDataView>(); List <KeyValueDataView> listKeyValueQuantityType = new List <KeyValueDataView>(); listKeyValuesToSAPDataExpensesAndQuantity = (from kv in this.dbContext.KeyValues join kt in this.dbContext.KeyTypes on kv.idKeyType equals kt.idKeyType where listKeyTypeIntCodes.Contains(kt.KeyTypeIntCode) orderby kv.V_Order ascending select new KeyValueDataView { idKeyValue = kv.idKeyValue, Name = kv.Name, NameEN = kv.NameEN, DefaultValue1 = kv.DefaultValue1, KeyValueIntCode = kv.KeyValueIntCode, KeyTypeIntCode = kt.KeyTypeIntCode } ).ToList <KeyValueDataView>(); listKeyValueCostCenter = listKeyValuesToSAPDataExpensesAndQuantity.Where(w => w.KeyTypeIntCode == ETEMEnums.KeyTypeEnum.CostCenter.ToString()).ToList(); listKeyValueExpensesType = listKeyValuesToSAPDataExpensesAndQuantity.Where(w => w.KeyTypeIntCode == ETEMEnums.KeyTypeEnum.ExpensesType.ToString()).ToList(); listKeyValueExpensesTypeGroup = listKeyValuesToSAPDataExpensesAndQuantity.Where(w => w.KeyTypeIntCode == ETEMEnums.KeyTypeEnum.ExpensesTypeGroup.ToString()).ToList(); listKeyValueQuantityType = listKeyValuesToSAPDataExpensesAndQuantity.Where(w => w.KeyTypeIntCode == ETEMEnums.KeyTypeEnum.QuantityType.ToString()).ToList(); SAPData currSAPData = GetEntityById(idEntity); List <SAPDataExpense> listSAPDataExpenses = currSAPData.SAPDataExpenses.ToList <SAPDataExpense>(); List <SAPDataQuantity> listSAPDataQuantities = currSAPData.SAPDataQuantities.ToList <SAPDataQuantity>(); int countRows = 2 + listKeyValueExpensesType.Count + 3 + listKeyValueExpensesTypeGroup.Count + 3 + listKeyValueQuantityType.Count + 3 + listKeyValueExpensesTypeGroup.Count + 1; TableRow[] arrExpenses = new TableRow[countRows]; TableRow[] arrExpensesTypeGroup = new TableRow[listKeyValueExpensesTypeGroup.Count + 1]; TableRow[] arrQuantites = new TableRow[listKeyValueQuantityType.Count + 1]; TableRow[] arrExpensesTypeGroupMH = new TableRow[listKeyValueExpensesTypeGroup.Count + 2]; TableRow tableRow = new TableRow(); TableCell tableCell = new TableCell(); TableHeaderRow tableHeaderRow = new TableHeaderRow(); TableHeaderCell tableHeaderCell = new TableHeaderCell(); int rowIndex = 0; #region Detailed Expenses by Cost Centers (EUR) tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Expenses by Cost Centers (EUR)"; tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Main"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Detailed Expenses"; tableHeaderCell.Width = Unit.Pixel(320); tableHeaderCell.CssClass = "GridExpenses_td_item_center"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex] = tableHeaderRow; // Add header columns foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = kvCostCenter.Name; tableHeaderCell.CssClass = "GridExpenses_td_item_center"; arrExpenses[rowIndex].Cells.Add(tableHeaderCell); } rowIndex++; // Add header rows foreach (KeyValueDataView kvExpensesType in listKeyValueExpensesType) { tableRow = new TableRow(); tableCell = new TableCell(); tableCell.Text = kvExpensesType.Name; tableRow.Cells.Add(tableCell); arrExpenses[rowIndex++] = tableRow; } rowIndex = rowIndex - listKeyValueExpensesType.Count; foreach (KeyValueDataView kvExpensesType in listKeyValueExpensesType) { foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableCell = new TableCell(); tableCell.HorizontalAlign = HorizontalAlign.Right; tableCell.CssClass = "GridExpenses_td_item_right"; var currExpense = listSAPDataExpenses.Where(w => w.idExpensesType == kvExpensesType.idKeyValue && w.idCostCenter == kvCostCenter.idKeyValue).FirstOrDefault(); if (currExpense != null) { tableCell.Text = currExpense.ValueDataRoundFormatted; arrExpenses[rowIndex].Cells.Add(tableCell); } } rowIndex++; } #endregion #region Expenses by Cost Centers (EUR) //rowIndex = 0; //rowIndex++; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Empty"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Expenses by Cost Centers (EUR)"; tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Main"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Expenses"; tableHeaderCell.Width = Unit.Pixel(320); tableHeaderCell.CssClass = "GridExpenses_td_item_center"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex] = tableHeaderRow; // Add header columns foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = kvCostCenter.Name; tableHeaderCell.CssClass = "GridExpenses_td_item_center"; arrExpenses[rowIndex].Cells.Add(tableHeaderCell); } rowIndex++; // Add header rows foreach (KeyValueDataView kvExpensesTypeGroup in listKeyValueExpensesTypeGroup) { tableRow = new TableRow(); tableCell = new TableCell(); tableCell.Text = kvExpensesTypeGroup.Name.Replace(" group", ""); tableRow.Cells.Add(tableCell); arrExpenses[rowIndex++] = tableRow; } List <Expense> listGroupExpense = new List <Expense>(); listGroupExpense = new ExpenseCalculationBL().LoadExpenseGroupByIdSAPData(idEntity); rowIndex = rowIndex - listKeyValueExpensesTypeGroup.Count; foreach (KeyValueDataView kvExpensesTypeGroup in listKeyValueExpensesTypeGroup) { foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableCell = new TableCell(); tableCell.HorizontalAlign = HorizontalAlign.Right; tableCell.CssClass = "GridExpenses_td_item_right"; var currGroupExpense = listGroupExpense.Where(w => w.ExpenseGroup.idKeyValue == kvExpensesTypeGroup.idKeyValue && w.CostCenter.idKeyValue == kvCostCenter.idKeyValue).FirstOrDefault(); if (currGroupExpense != null) { tableCell.Text = currGroupExpense.ExpenseValueRoundFour.ToStringFormatted4(); arrExpenses[rowIndex].Cells.Add(tableCell); } } rowIndex++; } #endregion #region Quantity // rowIndex = 0; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Empty"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Quantity"; tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Main"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Quantity"; tableHeaderCell.Width = Unit.Pixel(320); tableHeaderCell.CssClass = "GridExpenses_td_item_center"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex] = tableHeaderRow; // Add header columns foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = kvCostCenter.Name; tableHeaderCell.CssClass = "GridExpenses_td_item_center"; arrExpenses[rowIndex].Cells.Add(tableHeaderCell); } rowIndex++; // Add header rows foreach (KeyValueDataView kvQuantityType in listKeyValueQuantityType) { tableRow = new TableRow(); tableCell = new TableCell(); tableCell.Text = kvQuantityType.Name; tableRow.Cells.Add(tableCell); arrExpenses[rowIndex++] = tableRow; } rowIndex = rowIndex - listKeyValueQuantityType.Count; foreach (KeyValueDataView kvQuantityType in listKeyValueQuantityType) { foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableCell = new TableCell(); tableCell.HorizontalAlign = HorizontalAlign.Right; tableCell.CssClass = "GridExpenses_td_item_right"; var currQuantity = listSAPDataQuantities.Where(w => w.idQuantityType == kvQuantityType.idKeyValue && w.idCostCenter == kvCostCenter.idKeyValue).FirstOrDefault(); if (currQuantity != null) { tableCell.Text = currQuantity.ValueDataRoundFormatted; arrExpenses[rowIndex].Cells.Add(tableCell); } } rowIndex++; } #endregion #region Expenses by Cost Centers (EUR/MH) // rowIndex = 0; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Empty"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Expenses by Cost Centers (EUR/MH)"; tableHeaderCell.ColumnSpan = 12; tableHeaderCell.CssClass = "GridExpenses_tr_th_Main"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex++] = tableHeaderRow; tableHeaderRow = new TableHeaderRow(); tableHeaderCell = new TableHeaderCell(); tableHeaderCell.Text = "Expenses"; tableHeaderCell.Width = Unit.Pixel(320); tableHeaderCell.CssClass = "GridExpenses_td_item_center"; tableHeaderRow.Cells.Add(tableHeaderCell); arrExpenses[rowIndex] = tableHeaderRow; // Add header columns foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableHeaderCell = new TableHeaderCell(); if (kvCostCenter.KeyValueIntCode == ETEMEnums.CostCenterEnum.DIESDepartment.ToString()) { tableHeaderCell.Text = kvCostCenter.Name + "<br/>" + "(EUR/kg)"; } else { tableHeaderCell.Text = kvCostCenter.Name; } tableHeaderCell.CssClass = "GridExpenses_td_item_center"; arrExpenses[rowIndex].Cells.Add(tableHeaderCell); } rowIndex++; // Add header rows foreach (KeyValueDataView kvExpensesTypeGroup in listKeyValueExpensesTypeGroup) { tableRow = new TableRow(); tableCell = new TableCell(); tableCell.Text = kvExpensesTypeGroup.Name.Replace(" group", ""); tableRow.Cells.Add(tableCell); arrExpenses[rowIndex++] = tableRow; } TableRow tableFooterRow = new TableRow(); tableCell = new TableCell(); tableCell.Text = "Total (EUR/MH)"; tableCell.CssClass = "GridExpenses_td_item_total"; tableFooterRow.Cells.Add(tableCell); arrExpenses[rowIndex] = tableFooterRow; //tableHeaderCell = new TableHeaderCell(); //tableHeaderCell.Text = "Total (EUR/MH)"; //tableHeaderCell.Font.Bold = true; //arrExpensesTypeGroupMH[0].Cells.Add(tableHeaderCell); listGroupExpense = new List <Expense>(); listGroupExpense = new ExpenseCalculationBL().LoadExpenseGroupByIdSAPData(idEntity); Dictionary <string, decimal> dictTotalByColl = new Dictionary <string, decimal>(); decimal totalByRow = decimal.Zero; decimal total = decimal.Zero; decimal currValue = decimal.Zero; rowIndex = rowIndex - (listKeyValueExpensesTypeGroup.Count + 0); foreach (KeyValueDataView kvExpensesTypeGroup in listKeyValueExpensesTypeGroup) { totalByRow = decimal.Zero; foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableCell = new TableCell(); tableCell.HorizontalAlign = HorizontalAlign.Right; tableCell.CssClass = "GridExpenses_td_item_right"; var currGroupExpense = listGroupExpense.Where(w => w.ExpenseGroup.idKeyValue == kvExpensesTypeGroup.idKeyValue && w.CostCenter.idKeyValue == kvCostCenter.idKeyValue).FirstOrDefault(); if (currGroupExpense != null) { currValue = currGroupExpense.ExpenseValue_MH_RoundFour; totalByRow += currValue; total += currValue; if (dictTotalByColl.ContainsKey(kvCostCenter.KeyValueIntCode)) { dictTotalByColl[kvCostCenter.KeyValueIntCode] += currValue; } else { dictTotalByColl.Add(kvCostCenter.KeyValueIntCode, currValue); } tableCell.Text = currValue.ToStringFormatted4(); arrExpenses[rowIndex].Cells.Add(tableCell); } } //tableCell = new TableCell(); //tableCell.HorizontalAlign = HorizontalAlign.Right; //tableCell.CssClass = "MainGrid_td_item_right"; //tableCell.Font.Bold = true; //tableCell.Text = totalByRow.ToStringFormatted(); //arrExpensesTypeGroupMH[rowIndex].Cells.Add(tableCell); rowIndex++; } foreach (KeyValueDataView kvCostCenter in listKeyValueCostCenter) { tableCell = new TableCell(); tableCell.HorizontalAlign = HorizontalAlign.Right; tableCell.CssClass = "GridExpenses_td_item_right GridExpenses_td_item_total"; tableCell.Text = Math.Round(dictTotalByColl[kvCostCenter.KeyValueIntCode], 4, MidpointRounding.AwayFromZero).ToStringFormatted4(); arrExpenses[rowIndex].Cells.Add(tableCell); } //tableCell = new TableCell(); //tableCell.HorizontalAlign = HorizontalAlign.Right; //tableCell.CssClass = "MainGrid_td_item_right"; //tableCell.Font.Bold = true; //tableCell.Text = total.ToStringFormatted(); //arrExpensesTypeGroupMH[rowIndex].Cells.Add(tableCell); #endregion result.Add("Expenses", arrExpenses); result.Add("ExpensesTypeGroup", arrExpensesTypeGroup); result.Add("Quantities", arrQuantites); result.Add("ExpensesTypeGroupMH", arrExpensesTypeGroupMH); } catch (Exception ex) { resultContext.Message = "Error load SAP data expenses and quantities!"; BaseHelper.Log("Error load SAP data expenses and quantities!"); BaseHelper.Log(ex.Message); BaseHelper.Log(ex.StackTrace); } return(result); }
internal void CreateExpenseGroupForOffer(int idOffer) { Offer offer = new OfferBL().GetEntityById(idOffer); SAPData sapData = new SAPDataBL().GetSAPDataByDateActiveTo(offer.OfferDate); List<Expense> listExpenseToBeSave = new List<Expense>(); if (sapData != null) { List<Expense> list = new ExpenseCalculationBL().LoadExpenseGroupByIdSAPData(sapData.idSAPData); } else { throw new ETEMModelException("Not found expenses. "); } }