/// <summary> /// Function to fill Datagridview /// </summary> public void FillGrid() { try { if (!isFormLoad) { DateValidation objValidation = new DateValidation(); objValidation.DateValidationFunction(txtToDate); if (txtToDate.Text == string.Empty) { txtToDate.Text = PublicVariables._dtToDate.ToString("dd-MMM-yyyy"); } Font newFont = new Font(dgvReport.Font, FontStyle.Bold); CurrencyInfo InfoCurrency = new CurrencyInfo(); CurrencySP SpCurrency = new CurrencySP(); InfoCurrency = SpCurrency.CurrencyView(1); int inDecimalPlaces = InfoCurrency.NoOfDecimalPlaces; dgvReport.Rows.Clear(); FinancialStatementSP SpFinance = new FinancialStatementSP(); DataSet DsetBalanceSheet = new DataSet(); DataTable dtbl = new DataTable(); SettingsInfo InfoSettings = new SettingsInfo(); SettingsSP SpSettings = new SettingsSP(); //--------------- Selection Of Calculation Method According To Settings ------------------// if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "FIFO") { calculationMethod = "FIFO"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Average Cost") { calculationMethod = "Average Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "High Cost") { calculationMethod = "High Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Low Cost") { calculationMethod = "Low Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Last Purchase Rate") { calculationMethod = "Last Purchase Rate"; } DsetBalanceSheet = SpFinance.BalanceSheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); //------------------- Asset -------------------------------// dtbl = DsetBalanceSheet.Tables[0]; foreach (DataRow rw in dtbl.Rows) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = rw["Name"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = rw["Balance"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId1"].Value = rw["ID"].ToString(); } decimal dcTotalAsset = 0; if (dtbl.Rows.Count > 0) { dcTotalAsset = decimal.Parse(dtbl.Compute("Sum(Balance)", string.Empty).ToString()); } //------------------------ Liability ---------------------// dtbl = new DataTable(); dtbl = DsetBalanceSheet.Tables[1]; int index = 0; foreach (DataRow rw in dtbl.Rows) { if (index < dgvReport.Rows.Count) { dgvReport.Rows[index].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[index].Cells["Amount2"].Value = rw["Balance"].ToString(); dgvReport.Rows[index].Cells["GroupId2"].Value = rw["ID"].ToString(); } else { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = rw["Balance"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId2"].Value = rw["ID"].ToString(); } index++; } decimal dcTotalLiability = 0; if (dtbl.Rows.Count > 0) { dcTotalLiability = decimal.Parse(dtbl.Compute("Sum(Balance)", string.Empty).ToString()); } decimal dcClosingStock = SpFinance.StockValueGetOnDate(Convert.ToDateTime(txtToDate.Text), calculationMethod, false, false); dcClosingStock = Math.Round(dcClosingStock, inDecimalPlaces); //---------------------Opening Stock--------------------------------------------------------------------------------------------------------------- decimal dcOpeninggStock = SpFinance.StockValueGetOnDate(PublicVariables._dtFromDate, calculationMethod, true, true); decimal dcProfit = 0; DataSet dsetProfitAndLoss = new DataSet(); dsetProfitAndLoss = SpFinance.ProfitAndLossAnalysisUpToaDateForBalansheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); DataTable dtblProfit = new DataTable(); dtblProfit = dsetProfitAndLoss.Tables[0]; for (int i = 0; i < dsetProfitAndLoss.Tables.Count; ++i) { dtbl = dsetProfitAndLoss.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfit = dcProfit - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfit = dcProfit + dcSum; } } } decimal decCurrentProfitLoss = 0; decCurrentProfitLoss = dcProfit + (dcClosingStock - dcOpeninggStock); decimal dcProfitOpening = 0; DataSet dsetProfitAndLossOpening = new DataSet(); dsetProfitAndLossOpening = SpFinance.ProfitAndLossAnalysisUpToaDateForPreviousYears(PublicVariables._dtFromDate); DataTable dtblProfitOpening = new DataTable(); dtblProfitOpening = dsetProfitAndLossOpening.Tables[0]; for (int i = 0; i < dsetProfitAndLossOpening.Tables.Count; ++i) { dtbl = dsetProfitAndLossOpening.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening + dcSum; } } } DataTable dtblProfitLedgerOpening = new DataTable(); dtblProfitLedgerOpening = DsetBalanceSheet.Tables[3]; decimal decProfitLedgerOpening = 0; foreach (DataRow dRow in dtblProfitLedgerOpening.Rows) { decProfitLedgerOpening += decimal.Parse(dRow["Balance"].ToString()); } DataTable dtblProf = new DataTable(); dtblProf = DsetBalanceSheet.Tables[2]; decimal decProfitLedger = 0; if (dtblProf.Rows.Count > 0) { decProfitLedger = decimal.Parse(dtblProf.Compute("Sum(Balance)", string.Empty).ToString()); } decimal decTotalProfitAndLoss = 0; if (dcProfitOpening >= 0) { decTotalProfitAndLoss = decProfitLedger; } else if (dcProfitOpening < 0) { decTotalProfitAndLoss = decProfitLedger; } index = 0; if (dcClosingStock >= 0) { //---------- Asset ----------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Closing Stock"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(dcClosingStock, inDecimalPlaces); dcTotalAsset += dcClosingStock; } else { //--------- Liability ---------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Closing Stock"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = -(Math.Round(dcClosingStock, inDecimalPlaces)); dcTotalLiability += -dcClosingStock; } dgvReport.Rows.Add(); decimal decOpeningOfProfitAndLoss = decProfitLedgerOpening + dcProfitOpening; decimal decTotalProfitAndLossOverAll = decTotalProfitAndLoss + decOpeningOfProfitAndLoss + decCurrentProfitLoss; if (decTotalProfitAndLossOverAll <= 0) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; foreach (DataRow dRow in dtblProf.Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = dRow["Name"].ToString(); if (decCurrentProfitLoss < 0) { decCurrentProfitLoss = decCurrentProfitLoss * -1; } dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId1"].Value = dRow["ID"].ToString(); } } //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(decTotalProfitAndLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Current Period"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; dcTotalAsset = dcTotalAsset + (decCurrentProfitLoss + decTotalProfitAndLoss); dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; } else if (decTotalProfitAndLossOverAll > 0) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; foreach (DataRow dRow in dtblProf.Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = dRow[1].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId2"].Value = dRow[0].ToString(); } } //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round(decTotalProfitAndLoss, inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; dcTotalLiability += decOpeningOfProfitAndLoss; //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Current Period"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round(decCurrentProfitLoss, inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; dcTotalLiability = dcTotalLiability + (decCurrentProfitLoss + decTotalProfitAndLoss); //dcProfit; dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; } dgvReport.Rows.Add(); decimal dcDiffAsset = 0; decimal dcDiffLiability = 0; decimal dcTotalValue = dcTotalAsset; if (dcTotalAsset != dcTotalLiability) { if (dcTotalAsset > dcTotalLiability) { //--------------- Liability exceeds so in asset side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Difference"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round((dcTotalAsset - dcTotalLiability), inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffLiability = dcTotalAsset - dcTotalLiability; } else { //--------------- Asset exceeds so in liability side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Difference"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round((dcTotalLiability - dcTotalAsset), inDecimalPlaces);; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffAsset = dcTotalLiability - dcTotalAsset; } } dgvReport.Rows.Add(); dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = "__________________________"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = "__________________________"; dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Total"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Total"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round((dcTotalAsset + dcDiffAsset), inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round((dcTotalLiability + dcDiffLiability), inDecimalPlaces); if (dgvReport.Columns.Count > 0) { dgvReport.Columns["Amount1"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvReport.Columns["Amount2"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } decPrintOrNot = dcTotalAsset + dcDiffAsset; decPrintOrNot1 = dcTotalLiability + dcDiffLiability; if (inCurrenRowIndex >= 0 && dgvReport.Rows.Count > 0 && inCurrenRowIndex < dgvReport.Rows.Count) { if (dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex].Visible) { dgvReport.CurrentCell = dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex]; } if (dgvReport.CurrentCell != null && dgvReport.CurrentCell.Visible) { dgvReport.CurrentCell.Selected = true; } } inCurrenRowIndex = 0; } } catch (Exception ex) { MessageBox.Show("BS :1" + ex.Message, "OpenMiracle", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Function to fill Datagridview /// </summary> public void FillGrid() { try { if (!isFormLoad) { DateValidation objValidation = new DateValidation(); objValidation.DateValidationFunction(txtToDate); if (txtToDate.Text == string.Empty) txtToDate.Text = PublicVariables._dtToDate.ToString("dd-MMM-yyyy"); Font newFont = new Font(dgvReport.Font, FontStyle.Bold); CurrencyInfo InfoCurrency = new CurrencyInfo(); CurrencySP SpCurrency = new CurrencySP(); InfoCurrency = SpCurrency.CurrencyView(1); int inDecimalPlaces = InfoCurrency.NoOfDecimalPlaces; dgvReport.Rows.Clear(); FinancialStatementSP SpFinance = new FinancialStatementSP(); DataSet DsetBalanceSheet = new DataSet(); DataTable dtbl = new DataTable(); SettingsInfo InfoSettings = new SettingsInfo(); SettingsSP SpSettings = new SettingsSP(); //--------------- Selection Of Calculation Method According To Settings ------------------// if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "FIFO") { calculationMethod = "FIFO"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Average Cost") { calculationMethod = "Average Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "High Cost") { calculationMethod = "High Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Low Cost") { calculationMethod = "Low Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Last Purchase Rate") { calculationMethod = "Last Purchase Rate"; } DsetBalanceSheet = SpFinance.BalanceSheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); //------------------- Asset -------------------------------// dtbl = DsetBalanceSheet.Tables[0]; foreach (DataRow rw in dtbl.Rows) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = rw["Name"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = rw["Balance"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId1"].Value = rw["ID"].ToString(); } decimal dcTotalAsset = 0; if (dtbl.Rows.Count > 0) { dcTotalAsset = decimal.Parse(dtbl.Compute("Sum(Balance)", string.Empty).ToString()); } //------------------------ Liability ---------------------// dtbl = new DataTable(); dtbl = DsetBalanceSheet.Tables[1]; int index = 0; foreach (DataRow rw in dtbl.Rows) { if (index < dgvReport.Rows.Count) { dgvReport.Rows[index].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[index].Cells["Amount2"].Value = rw["Balance"].ToString(); dgvReport.Rows[index].Cells["GroupId2"].Value = rw["ID"].ToString(); } else { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = rw["Balance"].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId2"].Value = rw["ID"].ToString(); } index++; } decimal dcTotalLiability = 0; if (dtbl.Rows.Count > 0) { dcTotalLiability = decimal.Parse(dtbl.Compute("Sum(Balance)", string.Empty).ToString()); } decimal dcClosingStock = SpFinance.StockValueGetOnDate(Convert.ToDateTime(txtToDate.Text), calculationMethod, false, false); dcClosingStock = Math.Round(dcClosingStock, inDecimalPlaces); //---------------------Opening Stock--------------------------------------------------------------------------------------------------------------- decimal dcOpeninggStock = SpFinance.StockValueGetOnDate(PublicVariables._dtFromDate, calculationMethod, true, true); decimal dcProfit = 0; DataSet dsetProfitAndLoss = new DataSet(); dsetProfitAndLoss = SpFinance.ProfitAndLossAnalysisUpToaDateForBalansheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); DataTable dtblProfit = new DataTable(); dtblProfit = dsetProfitAndLoss.Tables[0]; for (int i = 0; i < dsetProfitAndLoss.Tables.Count; ++i) { dtbl = dsetProfitAndLoss.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfit = dcProfit - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfit = dcProfit + dcSum; } } } decimal decCurrentProfitLoss = 0; decCurrentProfitLoss = dcProfit + (dcClosingStock - dcOpeninggStock); decimal dcProfitOpening = 0; DataSet dsetProfitAndLossOpening = new DataSet(); dsetProfitAndLossOpening = SpFinance.ProfitAndLossAnalysisUpToaDateForPreviousYears(PublicVariables._dtFromDate); DataTable dtblProfitOpening = new DataTable(); dtblProfitOpening = dsetProfitAndLossOpening.Tables[0]; for (int i = 0; i < dsetProfitAndLossOpening.Tables.Count; ++i) { dtbl = dsetProfitAndLossOpening.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening + dcSum; } } } DataTable dtblProfitLedgerOpening = new DataTable(); dtblProfitLedgerOpening = DsetBalanceSheet.Tables[3]; decimal decProfitLedgerOpening = 0; foreach (DataRow dRow in dtblProfitLedgerOpening.Rows) { decProfitLedgerOpening += decimal.Parse(dRow["Balance"].ToString()); } DataTable dtblProf = new DataTable(); dtblProf = DsetBalanceSheet.Tables[2]; decimal decProfitLedger = 0; if (dtblProf.Rows.Count > 0) { decProfitLedger = decimal.Parse(dtblProf.Compute("Sum(Balance)", string.Empty).ToString()); } decimal decTotalProfitAndLoss = 0; if (dcProfitOpening >= 0) { decTotalProfitAndLoss = decProfitLedger; } else if (dcProfitOpening < 0) { decTotalProfitAndLoss = decProfitLedger; } index = 0; if (dcClosingStock >= 0) { //---------- Asset ----------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Closing Stock"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(dcClosingStock, inDecimalPlaces); dcTotalAsset += dcClosingStock; } else { //--------- Liability ---------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Closing Stock"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = -(Math.Round(dcClosingStock, inDecimalPlaces)); dcTotalLiability += -dcClosingStock; } dgvReport.Rows.Add(); decimal decOpeningOfProfitAndLoss = decProfitLedgerOpening + dcProfitOpening; decimal decTotalProfitAndLossOverAll = decTotalProfitAndLoss + decOpeningOfProfitAndLoss + decCurrentProfitLoss; if (decTotalProfitAndLossOverAll <= 0) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; foreach (DataRow dRow in dtblProf.Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = dRow["Name"].ToString(); if (decCurrentProfitLoss < 0) { decCurrentProfitLoss = decCurrentProfitLoss * -1; } dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value =Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss,PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId1"].Value = dRow["ID"].ToString(); } } //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(decTotalProfitAndLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Current Period"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round(decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; dcTotalAsset = dcTotalAsset + (decCurrentProfitLoss + decTotalProfitAndLoss); dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; } else if (decTotalProfitAndLossOverAll > 0) { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; foreach (DataRow dRow in dtblProf.Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = dRow[1].ToString(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value =Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss,PublicVariables._inNoOfDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["GroupId2"].Value = dRow[0].ToString(); } } //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round(decTotalProfitAndLoss, inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; dcTotalLiability += decOpeningOfProfitAndLoss; //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Current Period"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round(decCurrentProfitLoss, inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; dcTotalLiability = dcTotalLiability + (decCurrentProfitLoss + decTotalProfitAndLoss); //dcProfit; dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; } dgvReport.Rows.Add(); decimal dcDiffAsset = 0; decimal dcDiffLiability = 0; decimal dcTotalValue = dcTotalAsset; if (dcTotalAsset != dcTotalLiability) { if (dcTotalAsset > dcTotalLiability) { //--------------- Liability exceeds so in asset side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Difference"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round((dcTotalAsset - dcTotalLiability), inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffLiability = dcTotalAsset - dcTotalLiability; } else { //--------------- Asset exceeds so in liability side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Difference"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round((dcTotalLiability - dcTotalAsset), inDecimalPlaces); ; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffAsset = dcTotalLiability - dcTotalAsset; } } dgvReport.Rows.Add(); dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = "__________________________"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = "__________________________"; dgvReport.Rows.Add(); dgvReport.Rows[dgvReport.Rows.Count - 1].DefaultCellStyle.Font = newFont; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtLiability"].Value = "Total"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["dgvtxtAsset"].Value = "Total"; dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount1"].Value = Math.Round((dcTotalAsset + dcDiffAsset), inDecimalPlaces); dgvReport.Rows[dgvReport.Rows.Count - 1].Cells["Amount2"].Value = Math.Round((dcTotalLiability + dcDiffLiability), inDecimalPlaces); if (dgvReport.Columns.Count > 0) { dgvReport.Columns["Amount1"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvReport.Columns["Amount2"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } decPrintOrNot = dcTotalAsset + dcDiffAsset; decPrintOrNot1 = dcTotalLiability + dcDiffLiability; if (inCurrenRowIndex >= 0 && dgvReport.Rows.Count > 0 && inCurrenRowIndex < dgvReport.Rows.Count) { if (dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex].Visible) { dgvReport.CurrentCell = dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex]; } if (dgvReport.CurrentCell != null && dgvReport.CurrentCell.Visible) dgvReport.CurrentCell.Selected = true; } inCurrenRowIndex = 0; } } catch (Exception ex) { MessageBox.Show("BS :1" + ex.Message, "OpenMiracle", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Function to fill Datagridview /// </summary> public void FillGrid() { try { if (!isFormLoad) { DateValidation objValidation = new DateValidation(); objValidation.DateValidationFunction(txtToDate); if (txtToDate.Text == string.Empty) { txtToDate.Text = PublicVariables._dtToDate.ToString("dd-MMM-yyyy"); } Font newFont = new Font(dgvReport.Font, FontStyle.Bold); CurrencyInfo InfoCurrency = new CurrencyInfo(); CurrencySP SpCurrency = new CurrencySP(); InfoCurrency = SpCurrency.CurrencyView(1); int inDecimalPlaces = InfoCurrency.NoOfDecimalPlaces; dgvReport.Rows.Clear(); FinancialStatementSP SpFinance = new FinancialStatementSP(); DataSet DsetBalanceSheet = new DataSet(); DataTable dtbl = new DataTable(); SettingsInfo InfoSettings = new SettingsInfo(); SettingsSP SpSettings = new SettingsSP(); //--------------- Selection Of Calculation Method According To Settings ------------------// if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "FIFO") { calculationMethod = "FIFO"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Average Cost") { calculationMethod = "Average Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "High Cost") { calculationMethod = "High Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Low Cost") { calculationMethod = "Low Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Last Purchase Rate") { calculationMethod = "Last Purchase Rate"; } int LiabilityRow = 0; int AssetRow = 0; decimal TotalAssets = 0; decimal TotalLiabilities = 0; decimal OpeningStock = SpFinance.StockValueGetOnDate(Convert.ToDateTime(txtToDate.Text), calculationMethod, true, true); OpeningStock = Math.Round(OpeningStock, inDecimalPlaces); DsetBalanceSheet = SpFinance.BalanceSheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); //------------------- Asset -------------------------------// dtbl = DsetBalanceSheet.Tables[0]; foreach (DataRow rw in dtbl.Rows) { dgvReport.Rows.Add(); decimal balance = (rw["ID"].ToString() == "6") ? Convert.ToDecimal(rw["Balance"].ToString()) + OpeningStock : Convert.ToDecimal(rw["Balance"].ToString()); if (balance > 0) { dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = rw["Name"].ToString(); dgvReport.Rows[AssetRow].Cells["Amount1"].Value = balance.ToString("N2"); dgvReport.Rows[AssetRow].Cells["GroupId1"].Value = rw["ID"].ToString(); TotalAssets += balance; AssetRow++; } else { balance = balance * -1; dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = balance.ToString("N2"); dgvReport.Rows[LiabilityRow].Cells["GroupId2"].Value = rw["ID"].ToString(); TotalLiabilities += balance; LiabilityRow++; } } //------------------------ Liability ---------------------// dtbl = DsetBalanceSheet.Tables[1]; foreach (DataRow rw in dtbl.Rows) { decimal balance = Convert.ToDecimal(rw["Balance"].ToString()); if (balance < 0) { balance = balance * -1; dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = rw["Name"].ToString(); dgvReport.Rows[AssetRow].Cells["Amount1"].Value = balance.ToString("N2"); dgvReport.Rows[AssetRow].Cells["GroupId1"].Value = rw["ID"].ToString(); TotalAssets += balance; AssetRow++; } else { dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = rw["Name"].ToString(); dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = balance.ToString("N2"); dgvReport.Rows[LiabilityRow].Cells["GroupId2"].Value = rw["ID"].ToString(); TotalLiabilities += balance; LiabilityRow++; } } //---------------------Closing Stock--------------------------------------------------------------------------------------------------------------- decimal ClosingStock = SpFinance.StockValueGetOnDate(Convert.ToDateTime(txtToDate.Text), calculationMethod, false, false); ClosingStock = Math.Round(ClosingStock, inDecimalPlaces) - OpeningStock; if (ClosingStock != 0) { if (ClosingStock > 0) { dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "Closing Stock"; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = ClosingStock.ToString("N2"); TotalAssets += ClosingStock; AssetRow++; } else { ClosingStock = ClosingStock * -1; dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "Closing Stock"; dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = ClosingStock.ToString("N2"); TotalLiabilities += ClosingStock; LiabilityRow++; } } if (AssetRow > LiabilityRow) { LiabilityRow = AssetRow; } else { AssetRow = LiabilityRow; } //---------------------Profit And Loss--------------------------------------------------------------------------------------------------------------- DataSet dsetProfitAndLoss = SpFinance.ProfitAndLossAnalysisUpToaDateForBalansheet(PublicVariables._dtFromDate, DateTime.Parse(txtToDate.Text)); decimal dcProfit = 0; for (int i = 0; i < dsetProfitAndLoss.Tables.Count; ++i) { dtbl = dsetProfitAndLoss.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfit = dcProfit - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfit = dcProfit + dcSum; } } } DataSet dsetProfitAndLossOpening = SpFinance.ProfitAndLossAnalysisUpToaDateForPreviousYears(PublicVariables._dtFromDate); decimal dcProfitOpening = 0; for (int i = 0; i < dsetProfitAndLossOpening.Tables.Count; ++i) { dtbl = dsetProfitAndLossOpening.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Debit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening - dcSum; } } else { if (dtbl.Rows.Count > 0) { dcSum = decimal.Parse(dtbl.Compute("Sum(Credit)", string.Empty).ToString()); dcProfitOpening = dcProfitOpening + dcSum; } } } decimal decProfitLedgerOpening = decimal.Parse(DsetBalanceSheet.Tables[3].Compute("Sum(Balance)", string.Empty).ToString()); decimal decTotalProfitAndLoss = decimal.Parse(DsetBalanceSheet.Tables[2].Compute("Sum(Balance)", string.Empty).ToString()); decimal decCurrentProfitLoss = dcProfit + ClosingStock; decimal decOpeningOfProfitAndLoss = decProfitLedgerOpening + dcProfitOpening; decimal decTotalProfitAndLossOverAll = decTotalProfitAndLoss + decOpeningOfProfitAndLoss + decCurrentProfitLoss; decTotalProfitAndLoss = (decTotalProfitAndLoss < 0) ? decTotalProfitAndLoss * -1 : decTotalProfitAndLoss; decOpeningOfProfitAndLoss = (decOpeningOfProfitAndLoss < 0) ? decOpeningOfProfitAndLoss * -1 : decOpeningOfProfitAndLoss; decCurrentProfitLoss = (decCurrentProfitLoss < 0) ? decCurrentProfitLoss * -1 : decCurrentProfitLoss; if (decTotalProfitAndLossOverAll >= 0) { dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; AssetRow++; foreach (DataRow dRow in DsetBalanceSheet.Tables[2].Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[AssetRow].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = dRow["Name"].ToString(); dgvReport.Rows[AssetRow].Cells["Amount1"].Value = Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces).ToString("N2"); dgvReport.Rows[AssetRow].Cells["GroupId1"].Value = dRow["ID"].ToString(); AssetRow++; } } //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = Math.Round(decTotalProfitAndLoss, PublicVariables._inNoOfDecimalPlaces).ToString("N2"); dgvReport.Rows[AssetRow].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; AssetRow++; //-------------- Asset ---------------// dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "Current Period"; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = Math.Round(decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces).ToString("N2"); dgvReport.Rows[AssetRow].Cells["Amount1"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Style.ForeColor = Color.DarkSlateGray; AssetRow++; TotalAssets = TotalAssets + (decCurrentProfitLoss + decTotalProfitAndLoss); dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "----------------------------------------"; dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; AssetRow++; } else { dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; LiabilityRow++; foreach (DataRow dRow in DsetBalanceSheet.Tables[2].Rows) { if (dRow["Name"].ToString() == "Profit And Loss Account") { dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[LiabilityRow].DefaultCellStyle.ForeColor = Color.DarkSlateGray; dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = dRow[1].ToString(); dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = Math.Round(decTotalProfitAndLoss + decCurrentProfitLoss, PublicVariables._inNoOfDecimalPlaces).ToString("N2"); dgvReport.Rows[LiabilityRow].Cells["GroupId2"].Value = dRow[0].ToString(); LiabilityRow++; } } //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "Profit And Loss (Opening)"; dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = Math.Round(decTotalProfitAndLoss, inDecimalPlaces).ToString("N2"); dgvReport.Rows[LiabilityRow].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; TotalLiabilities += decOpeningOfProfitAndLoss; LiabilityRow++; //------------ Liability ------------// dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "Current Period"; dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = Math.Round(decCurrentProfitLoss, inDecimalPlaces).ToString("N2"); dgvReport.Rows[LiabilityRow].Cells["Amount2"].Style.ForeColor = Color.DarkSlateGray; dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Style.ForeColor = Color.DarkSlateGray; TotalLiabilities = TotalLiabilities + (decCurrentProfitLoss + decTotalProfitAndLoss); //dcProfit; LiabilityRow++; dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "----------------------------------------"; dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; LiabilityRow++; } if (AssetRow > LiabilityRow) { LiabilityRow = AssetRow; } else { AssetRow = LiabilityRow; } dgvReport.Rows.Add(); decimal dcDiffAsset = 0; decimal dcDiffLiability = 0; LiabilityRow++; AssetRow++; if (TotalAssets > TotalLiabilities) { //--------------- Liability exceeds so in asset side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[LiabilityRow].Cells["dgvtxtLiability"].Value = "Difference"; dgvReport.Rows[LiabilityRow].Cells["Amount2"].Value = Math.Round((TotalAssets - TotalLiabilities), inDecimalPlaces).ToString("N2"); dgvReport.Rows[LiabilityRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[LiabilityRow].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffLiability = TotalAssets - TotalLiabilities; LiabilityRow++; } else { //--------------- Asset exceeds so in liability side ----------------// dgvReport.Rows.Add(); dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "Difference"; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = Math.Round((TotalLiabilities - TotalAssets), inDecimalPlaces).ToString("N2"); dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[AssetRow].DefaultCellStyle.ForeColor = Color.DarkRed; dcDiffAsset = TotalLiabilities - TotalAssets; AssetRow++; } if (AssetRow > LiabilityRow) { LiabilityRow = AssetRow; } else { AssetRow = LiabilityRow; } dgvReport.Rows.Add(); dgvReport.Rows.Add(); AssetRow++; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = "________________________"; dgvReport.Rows[AssetRow].Cells["Amount2"].Value = "________________________"; dgvReport.Rows.Add(); AssetRow++; dgvReport.Rows[AssetRow].DefaultCellStyle.Font = newFont; dgvReport.Rows[AssetRow].Cells["dgvtxtLiability"].Value = "Total"; dgvReport.Rows[AssetRow].Cells["dgvtxtAsset"].Value = "Total"; dgvReport.Rows[AssetRow].Cells["Amount1"].Value = Math.Round((TotalAssets + dcDiffAsset), inDecimalPlaces).ToString("N2"); dgvReport.Rows[AssetRow].Cells["Amount2"].Value = Math.Round((TotalLiabilities + dcDiffLiability), inDecimalPlaces).ToString("N2"); LiabilityRow++; if (dgvReport.Columns.Count > 0) { dgvReport.Columns["Amount1"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvReport.Columns["Amount2"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } decPrintOrNot = TotalAssets + dcDiffAsset; decPrintOrNot1 = TotalLiabilities + dcDiffLiability; if (inCurrenRowIndex >= 0 && dgvReport.Rows.Count > 0 && inCurrenRowIndex < dgvReport.Rows.Count) { if (dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex].Visible) { dgvReport.CurrentCell = dgvReport.Rows[inCurrenRowIndex].Cells[inCurentcolIndex]; } if (dgvReport.CurrentCell != null && dgvReport.CurrentCell.Visible) { dgvReport.CurrentCell.Selected = true; } } } } catch (Exception ex) { formMDI.infoError.ErrorString = "BS1:" + ex.Message; } }
/// <summary> /// Function to fill Datagridview after calculation /// </summary> public void GridFill() { try { if (!isFormLoad) { string calculationMethod = string.Empty; SettingsInfo InfoSettings = new SettingsInfo(); SettingsSP SpSettings = new SettingsSP(); //--------------- Selection Of Calculation Method According To Settings ------------------// if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "FIFO") { calculationMethod = "FIFO"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Average Cost") { calculationMethod = "Average Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "High Cost") { calculationMethod = "High Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Low Cost") { calculationMethod = "Low Cost"; } else if (SpSettings.SettingsStatusCheck("StockValueCalculationMethod") == "Last Purchase Rate") { calculationMethod = "Last Purchase Rate"; } FinancialStatementSP SpFinance1 = new FinancialStatementSP(); DataTable dtbl1 = new DataTable(); CurrencyInfo InfoCurrency = new CurrencyInfo(); CurrencySP SpCurrency = new CurrencySP(); int inDecimalPlaces = InfoCurrency.NoOfDecimalPlaces; decimal dcClosingStock = SpFinance1.StockValueGetOnDate(Convert.ToDateTime(txtTodate.Text), calculationMethod, false, false); dcClosingStock = Math.Round(dcClosingStock, inDecimalPlaces); //---------------------Opening Stock----------------------- decimal dcOpeninggStock = SpFinance1.StockValueGetOnDate(PublicVariables._dtFromDate, calculationMethod, true, true); decimal dcProfit = 0; DataSet dsetProfitAndLoss = new DataSet(); dsetProfitAndLoss = SpFinance1.ProfitAndLossAnalysisUpToaDateForBalansheet(PublicVariables._dtFromDate, DateTime.Parse(txtTodate.Text)); DataTable dtblProfit = new DataTable(); dtblProfit = dsetProfitAndLoss.Tables[0]; for (int i = 0; i < dsetProfitAndLoss.Tables.Count; ++i) { dtbl1 = dsetProfitAndLoss.Tables[i]; decimal dcSum = 0; if (i == 0 || (i % 2) == 0) { if (dtbl1.Rows.Count > 0) { dcSum = decimal.Parse(dtbl1.Compute("Sum(Debit)", string.Empty).ToString()); } } else { if (dtbl1.Rows.Count > 0) { dcSum = decimal.Parse(dtbl1.Compute("Sum(Credit)", string.Empty).ToString()); } } } DateValidation objValidation = new DateValidation(); objValidation.DateValidationFunction(txtTodate); if (txtTodate.Text == string.Empty) txtTodate.Text = PublicVariables._dtToDate.ToString("dd-MMM-yyyy"); Font newFont = new Font(dgvTrailBalance.Font, FontStyle.Bold); FinancialStatementSP SpFinance = new FinancialStatementSP(); DataSet DsetTrailbalance = new DataSet(); DataTable dtbl = new DataTable(); decimal dcTotalCredit = 0; decimal dcTotalDebit = 0; DateValidation objvalidation = new DateValidation(); objvalidation.DateValidationFunction(txtFromDate); if (txtFromDate.Text == string.Empty) { txtFromDate.Text = PublicVariables._dtFromDate.ToString("dd-MMM-yyyy"); } objvalidation.DateValidationFunction(txtTodate); if (txtTodate.Text == string.Empty) { txtTodate.Text = PublicVariables._dtToDate.ToString("dd-MMM-yyyy"); } DataTable dtblTrail = new DataTable(); DataTable dtblTrail1 = new DataTable(); DataTable dtblProfitAndLossAcc = new DataTable(); DataTable dtblProfitAndLossAcc1 = new DataTable(); DataSet dsTrial = new DataSet(); Font newfont = new Font(dgvTrailBalance.Font, FontStyle.Bold); FinancialStatementSP spfinancial = new FinancialStatementSP(); dgvTrailBalance.Rows.Clear(); dsTrial = spfinancial.TrialBalance(DateTime.Parse(txtFromDate.Text), DateTime.Parse(txtTodate.Text), 0); dtblTrail = dsTrial.Tables[0]; dtblProfitAndLossAcc = dsTrial.Tables[1]; if (dgvTrailBalance.RowCount > 0) { dcTotalCredit = decimal.Parse(dtblTrail.Compute("Sum(credit)", string.Empty).ToString()); dcTotalDebit = decimal.Parse(dtblTrail.Compute("Sum(debit)", string.Empty).ToString()); } for (int i = 0; i < dtblTrail.Rows.Count; ++i) { dgvTrailBalance.Rows.Add(); if (Convert.ToDecimal(dtblTrail.Rows[i]["accountGroupId"].ToString()) != 6) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtAccountGroupId"].Value = dtblTrail.Rows[i]["accountGroupId"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["accountGroupName"].Value = dtblTrail.Rows[i]["name"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = dtblTrail.Rows[i]["OpeningBalance"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = dtblTrail.Rows[i]["Balance"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = dtblTrail.Rows[i]["credit"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = dtblTrail.Rows[i]["debit"]; dcTotalCredit += decimal.Parse(dtblTrail.Rows[i]["credit"].ToString()); dcTotalDebit += decimal.Parse(dtblTrail.Rows[i]["debit"].ToString()); } else { decimal decOpBalance = dcOpeninggStock + Convert.ToDecimal(dtblTrail.Rows[i]["OpBalance"].ToString()); decimal decBalance = dcOpeninggStock + Convert.ToDecimal(dtblTrail.Rows[i]["Balance1"].ToString()); string strOpBalance = string.Empty; string strBalance = string.Empty; if (decOpBalance < 0) { strOpBalance = Math.Round(decOpBalance, PublicVariables._inNoOfDecimalPlaces).ToString() + "Cr"; } else { strOpBalance = Math.Round(decOpBalance, PublicVariables._inNoOfDecimalPlaces).ToString() + "Dr"; } if (decBalance < 0) { strBalance = Math.Round(decBalance, PublicVariables._inNoOfDecimalPlaces).ToString() + "Cr"; } else { strBalance = Math.Round(decBalance, PublicVariables._inNoOfDecimalPlaces).ToString() + "Dr"; } dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtAccountGroupId"].Value = dtblTrail.Rows[i]["accountGroupId"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["accountGroupName"].Value = dtblTrail.Rows[i]["name"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = strOpBalance; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = strBalance; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = dtblTrail.Rows[i]["credit"]; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = dtblTrail.Rows[i]["debit"]; dcTotalCredit += decimal.Parse(dtblTrail.Rows[i]["credit"].ToString()); dcTotalDebit += decimal.Parse(dtblTrail.Rows[i]["debit"].ToString()); } } decimal OpeningProfit; dtblProfitAndLossAcc1 = dsTrial.Tables[2]; if (dgvTrailBalance.RowCount > 0) { decimal dcTotalCredit1 = decimal.Parse(dtblTrail.Compute("Sum(credit)", string.Empty).ToString()); decimal dcTotalDebit1 = decimal.Parse(dtblTrail.Compute("Sum(debit)", string.Empty).ToString()); OpeningProfit = dcTotalCredit1 + dcTotalDebit1; } DataSet DsetBalanceSheet = new DataSet(); DsetBalanceSheet = SpFinance.BalanceSheet(PublicVariables._dtFromDate, DateTime.Parse(txtTodate.Text)); DataTable dtblProf = new DataTable(); decimal dcProfitOpening = 0; dtblProf = DsetBalanceSheet.Tables[2]; decimal decProfitLedger = 0; if (dtblProf.Rows.Count > 0) { decProfitLedger = decimal.Parse(dtblProf.Compute("Sum(Balance)", string.Empty).ToString()); } DataTable dtblProfitLedgerOpening = new DataTable(); dtblProfitLedgerOpening = DsetBalanceSheet.Tables[3]; decimal decProfitLedgerOpening = 0; foreach (DataRow dRow in dtblProfitLedgerOpening.Rows) { decProfitLedgerOpening += decimal.Parse(dRow["Balance"].ToString()); } decimal decTotalProfitAndLoss = decProfitLedger; decimal OpeningProfit1; decimal openingBalance; dgvTrailBalance.Rows.Add(); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtSlNo"].Value = " "; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["accountGroupName"].Value = "Profit and Loss"; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtAccountGroupId"].Value = "0"; openingBalance = Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["OpeningBalance"].ToString()); { if (openingBalance > 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = openingBalance + "Dr"; } else dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = (-1) * openingBalance + "Cr"; } dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtSlNo"].Value = dgvTrailBalance.Rows.Count.ToString(); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.Blue; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.Font = new Font(dgvTrailBalance.Font, FontStyle.Regular); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = dtblProfitAndLossAcc.Rows[0]["credit"].ToString(); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = dtblProfitAndLossAcc.Rows[0]["debit"].ToString(); OpeningProfit1 = (Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["OpeningBalance"].ToString())) + Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["debit"].ToString()) - Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["credit"].ToString()); { if (OpeningProfit1 > 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = decTotalProfitAndLoss + dcProfit + "Dr"; } else dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = (-1) * decTotalProfitAndLoss - dcProfit + "Cr"; }; dcTotalCredit = dcTotalCredit + Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["credit"].ToString()); dcTotalDebit = dcTotalDebit + Convert.ToDecimal(dtblProfitAndLossAcc.Rows[0]["debit"].ToString()); //=================================Net profit and NetLoss transation for previousyear============== decimal decprofitLossbal = 0; decimal decbalance = 0; decimal decProfitAndLossOfPrevious = decProfitLedgerOpening; dgvTrailBalance.Rows.Add(); if (dcProfitOpening > 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = dcProfitOpening + "Dr"; decprofitLossbal = dcProfitOpening; } if (dcProfitOpening <= 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = (-1) * dcProfitOpening + "Cr"; decprofitLossbal = dcProfitOpening; } dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtSlNo"].Value = " "; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["accountGroupName"].Value = "Profit and Loss Opening"; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["openingBalance"].Value = "0.00Dr"; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.Brown; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.Font = new Font(dgvTrailBalance.Font, FontStyle.Regular); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtAccountGroupId"].Value = "0"; if (decProfitAndLossOfPrevious > 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = decProfitAndLossOfPrevious; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = "0.00"; decbalance = (decProfitAndLossOfPrevious); } if (decProfitAndLossOfPrevious <= 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = (-1) * (decProfitAndLossOfPrevious); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = "0.00"; decbalance = ((decProfitAndLossOfPrevious)); } if (decbalance >= 0) { dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = decbalance + decprofitLossbal + "Dr"; } if (decbalance < 0) { decbalance = -(decbalance); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtBalance"].Value = decbalance + decprofitLossbal + "Cr"; } dgvTrailBalance.Rows.Add(); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtSlNo"].Value = " "; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["accountGroupName"].Value = "Total:"; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["dgvtxtSlNo"].Value = string.Empty; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.Red; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].DefaultCellStyle.Font = new Font(dgvTrailBalance.Font, FontStyle.Bold); dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["credit"].Value = dcTotalCredit; dgvTrailBalance.Rows[dgvTrailBalance.Rows.Count - 1].Cells["debit"].Value = dcTotalDebit; if (dgvTrailBalance.Columns.Count > 0) { dgvTrailBalance.Columns["credit"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvTrailBalance.Columns["debit"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvTrailBalance.Columns["openingBalance"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvTrailBalance.Columns["dgvtxtBalance"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } dgvTrailBalance.ScrollBars = ScrollBars.Both; dgvTrailBalance.ClearSelection(); if (inCurrenRowIndex > 0 && dgvTrailBalance.Rows.Count > 0 && inCurrenRowIndex < dgvTrailBalance.Rows.Count) { if (dgvTrailBalance.Rows[inCurrenRowIndex].Cells[inCurrentColIndex].Visible) { dgvTrailBalance.CurrentCell = dgvTrailBalance.Rows[inCurrenRowIndex].Cells[inCurrentColIndex]; } else { dgvTrailBalance.CurrentCell = dgvTrailBalance.Rows[inCurrenRowIndex].Cells["debit"]; } dgvTrailBalance.CurrentCell.Selected = true; } inCurrenRowIndex = 0; } } catch (Exception ex) { MessageBox.Show("Tb:2" + ex.Message, "OpenMiracle", MessageBoxButtons.OK, MessageBoxIcon.Information); } }