示例#1
0
        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. ");
            }
        }
示例#2
0
        protected void btnLoadSAPData_Click(object sender, EventArgs e)
        {
            ExpenseCalculationBL expenseCalculationBL = new ExpenseCalculationBL();

            List<Expense> list = expenseCalculationBL.LoadExpenseGroupByIdSAPData(Int32.Parse(this.tbxIDSAPData.Text));
        }
示例#3
0
        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. ");
            }

        }