public bool InsertUserSession() { DataControl.Data objData = new DataControl.Data(); try { string macId = GetMACInformation(); string ipAddress = Request.ServerVariables["REMOTE_ADDR"].ToString(); string browserName = Request.Browser.Browser + " " + Request.Browser.MajorVersion.ToString() + "." + Request.Browser.MinorVersion.ToString(); string companyCode = _objCurInfo.GetCompanyCode(); string userCode = _objCurInfo.GetUserCode(); string userName = _objCurInfo.GetUserName(); string sessionId = _objCurInfo.GetSessionId(); string latitude = _objCurInfo.GetLattitude(); string longitude = _objCurInfo.GetLongitude(); string location = _objCurInfo.GetLocation(); string loginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"); bool isTrue = false; objData.OpenConnection(_objCurInfo.GetCompanyCode()); { objData.ExecuteNonQuery("exec sp_sdInsertUserSession '" + _objCurInfo.GetCompanyCode() + "','" + _objCurInfo.GetUserCode() + "','" + _objCurInfo.GetUserName() + "','" + _objCurInfo.GetSessionId() + "','" + loginTime + "','" + ipAddress + "','" + macId + "','" + browserName + "','" + latitude + "','" + longitude + "','" + location + "'"); } return(isTrue); } finally { objData.CloseConnection(); } }
public bool CheckSfcMasterExist() { try { bool flag = false; DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); string companyCode = objCurr.GetCompanyCode(); string regionCode = objCurr.GetRegionCode(); int result = 0; objData.OpenConnection(companyCode); { result = Convert.ToInt32(objData.ExecuteScalar("exec SP_hdCheckSfcMasterExist '" + companyCode + "','" + regionCode + "'")); } objData.CloseConnection(); if (result > 0) { flag = true; } return(flag); } catch (Exception ex) { throw ex; } }
public string ExpenseInsert(string storedProcedure, string expensetypeCode, string companyCode, string expensetypeName, string expensetypeStatus, string expenseMode, string Period, string Mode, string displayOrder) { try { DataControl.CurrentInfo objCurentInfo = new DataControl.CurrentInfo(); //string conStr = objData.GetConnectionString(objCurentInfo.GetCompanyCode()); //con.ConnectionString = conStr; DataControl.Data db = new DataControl.Data(); // Command - specify as StoredProcedure SqlCommand command = new SqlCommand(storedProcedure, con); command.CommandType = CommandType.StoredProcedure; AddParamToSqlCommand(command, "@Company_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, companyCode); AddParamToSqlCommand(command, "@Expense_Type_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, expensetypeCode); AddParamToSqlCommand(command, "@Expense_Type_Name", ParameterDirection.Input, SqlDbType.VarChar, 50, expensetypeName); AddParamToSqlCommand(command, "@Expense_Type_Status", ParameterDirection.Input, SqlDbType.VarChar, 30, expensetypeStatus); AddParamToSqlCommand(command, "@Expense_Mode", ParameterDirection.Input, SqlDbType.VarChar, 30, expenseMode); AddParamToSqlCommand(command, "@Expense_Period", ParameterDirection.Input, SqlDbType.VarChar, 30, Period); AddParamToSqlCommand(command, "@Mode", ParameterDirection.Input, SqlDbType.VarChar, 30, Mode); AddParamToSqlCommand(command, "@DisplayOrder", ParameterDirection.Input, SqlDbType.VarChar, 30, displayOrder); // Return value as parameter SqlParameter returnValue = new SqlParameter("@Result", SqlDbType.VarChar); returnValue.Direction = ParameterDirection.Output; returnValue.Size = 500; command.Parameters.Add(returnValue); if (db.OpenConnection(objCurentInfo.GetCompanyCode())) { // Execute the stored procedure db.ExecuteNonQuery(command); db.CloseConnection(); } //For Handle the Error return(returnValue.Value.ToString()); } catch (Exception ex) { ErrorLog.LogError(ex, "ExpenseInsert()"); return("ERROR"); } }
public string Inward(string storedProcedure, string companyCode, string UserCode, string ProductCode, string InwardDate, string Inwardstock, string UserInwardCode, string UserInwarddetails, string CurrentStock) { try { DataControl.CurrentInfo objCurentInfo = new DataControl.CurrentInfo(); //string conStr = objData.GetConnectionString(objCurentInfo.GetCompanyCode()); //con.ConnectionString = conStr; DataControl.Data db = new DataControl.Data(); // Command - specify as StoredProcedure SqlCommand command = new SqlCommand(storedProcedure, con); command.CommandType = CommandType.StoredProcedure; AddParamToSqlCommand(command, "@Company_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, companyCode); AddParamToSqlCommand(command, "@User_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, UserCode); AddParamToSqlCommand(command, "@Product_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, ProductCode); AddParamToSqlCommand(command, "@Inward_Date", ParameterDirection.Input, SqlDbType.VarChar, 30, InwardDate); AddParamToSqlCommand(command, "@Inward_stock", ParameterDirection.Input, SqlDbType.VarChar, 30, Inwardstock); AddParamToSqlCommand(command, "@User_Inward_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, UserInwardCode); AddParamToSqlCommand(command, "@User_Inward_Detail", ParameterDirection.Input, SqlDbType.VarChar, 30, UserInwarddetails); AddParamToSqlCommand(command, "@Current_Stock", ParameterDirection.Input, SqlDbType.VarChar, 30, CurrentStock); // Return value as parameter SqlParameter returnValue = new SqlParameter("@Result", SqlDbType.VarChar); returnValue.Direction = ParameterDirection.Output; returnValue.Size = 500; command.Parameters.Add(returnValue); if (db.OpenConnection(objCurentInfo.GetCompanyCode())) { // Execute the stored procedure db.ExecuteNonQuery(command); db.CloseConnection(); } //For Handle the Error return(returnValue.Value.ToString()); } catch (Exception ex) { ErrorLog.LogError(ex, "Inward()"); return("ERROR"); } }
public string productInsert(string storedProcedure, string companyCode, string salesproductCode, string mappingproductCode, string effectiveFrom, string createdDate, string createdBy, string recordStatus) { try { DataControl.CurrentInfo objCurentInfo = new DataControl.CurrentInfo(); //string conStr = objData.GetConnectionString(objCurentInfo.GetCompanyCode()); //con.ConnectionString = conStr; DataControl.Data db = new DataControl.Data(); // Command - specify as StoredProcedure SqlCommand command = new SqlCommand(storedProcedure, con); command.CommandType = CommandType.StoredProcedure; AddParamToSqlCommand(command, "@Company_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, companyCode); AddParamToSqlCommand(command, "@Sales_Product_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, salesproductCode); AddParamToSqlCommand(command, "@Mapping_Product_Code", ParameterDirection.Input, SqlDbType.VarChar, 30, mappingproductCode); AddParamToSqlCommand(command, "@Effective_From", ParameterDirection.Input, SqlDbType.VarChar, 30, effectiveFrom); AddParamToSqlCommand(command, "@Created_Date", ParameterDirection.Input, SqlDbType.VarChar, 30, createdDate); AddParamToSqlCommand(command, "@Created_By", ParameterDirection.Input, SqlDbType.VarChar, 30, createdBy); AddParamToSqlCommand(command, "@Record_Status", ParameterDirection.Input, SqlDbType.VarChar, 1, recordStatus); // Return value as parameter SqlParameter returnValue = new SqlParameter("@Result", SqlDbType.VarChar); returnValue.Direction = ParameterDirection.Output; returnValue.Size = 500; command.Parameters.Add(returnValue); if (db.OpenConnection(objCurentInfo.GetCompanyCode())) { // Execute the stored procedure db.ExecuteNonQuery(command); db.CloseConnection(); } //For Handle the Error return(returnValue.Value.ToString()); } catch (Exception ex) { ErrorLog.LogError(ex, "productInsert()"); return("ERROR"); } }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { double totalFare = 0.0; if (fareCalcPassed.DCR_Version == "DCR V3") { #region DCRV3 // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); totalFare = objD.CalculateSFCFare(fareCalcPassed); if (totalFare == 0.0)// for SFC { SFareCalcStrategy objS = new SFareCalcStrategy(); totalFare = objS.CalculateSFCFare(fareCalcPassed); } #endregion DCRV3 } else { #region DCRV4 string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string sumDistance = fareCalcPassed.Sum_Distance_Needed; DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); DataSet dsTravelPlace = new DataSet(); string companyCode = objCurr.GetCompanyCode(); // travelled place ds based on (category check, intermediated place privilege check) DataControl.BL_DCRStockiestExpense objBL = new DataControl.BL_DCRStockiestExpense(); dsTravelPlace = objBL.GetDCRTravelledPlacesForFareCalculation(companyCode, fareCalcPassed.DcrCode, fareCalcPassed.DcrFalg, fareCalcPassed.Entity); //seperate SFC and DFC if (dsTravelPlace != null && dsTravelPlace.Tables.Count > 0 && dsTravelPlace.Tables[0].Rows.Count > 0) { if (fareCalcPassed.Sum_Distance_Needed == "Y") { #region Sum Distance Yes var distanceTvlMode = from row in dsTravelPlace.Tables[0].AsEnumerable() group row by new { Travel_Mode = row.Field <string>("Travel_Mode"), } into grp select new { Travel_Mode = grp.Key.Travel_Mode, Distance = grp.Sum(r => r.Field <decimal>("Distance")) }; foreach (var dist in distanceTvlMode) { double fareAmount = 0.0; // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); fareAmount = objD.CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dist.Distance), dist.Travel_Mode.ToString().Trim(), entity, sumDistance); if (fareAmount == 0.0) { // for SFC DataRow[] drrRows; drrRows = dsTravelPlace.Tables[0].Select("Travel_Mode='" + dist.Travel_Mode.ToString() + "'"); foreach (var drr in drrRows) { fareAmount += objBL.GetSFCFare(companyCode, drr["From_Place"].ToString().Trim(), drr["To_Place"].ToString().Trim(), drr["SFC_Region_Code"].ToString().Trim(), drr["SFC_Category_Name"].ToString().Trim(), drr["Travel_Mode"].ToString().Trim(), fareCalcPassed.DcrDate); } } totalFare += fareAmount; } #endregion Sum Distance Yes } else { #region Sum distance No foreach (DataRow dr in dsTravelPlace.Tables[0].Rows) { double fareAmount = 0.0; // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); fareAmount = objD.CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dr["Distance"].ToString().Trim()), dr["Travel_Mode"].ToString().Trim(), entity, sumDistance); if (fareAmount == 0.0) { // for SFC fareAmount += objBL.GetSFCFare(companyCode, dr["From_Place"].ToString().Trim(), dr["To_Place"].ToString().Trim(), dr["SFC_Region_Code"].ToString().Trim(), dr["SFC_Category_Name"].ToString().Trim(), dr["Travel_Mode"].ToString().Trim(), fareCalcPassed.DcrDate); } totalFare += fareAmount; } #endregion Sum distance No } } #endregion DCRV4 } return(totalFare); }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { double totalFare = 0.0; if (fareCalcPassed.DCR_Version == "DCR V3") { #region DCRV3 bool flag = false; SFCFareCalculationFactory objSFCFact = new SFCFareCalculationFactory(); flag = objSFCFact.CheckSfcMasterExist(); if (flag) { // for SFC SFareCalcStrategy objS = new SFareCalcStrategy(); totalFare = objS.CalculateSFCFare(fareCalcPassed); if (totalFare == 0.0) { // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); totalFare = objD.CalculateSFCFare(fareCalcPassed); } } else { // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); totalFare = objD.CalculateSFCFare(fareCalcPassed); } #endregion DCRV3 } else { string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string sumDistance = fareCalcPassed.Sum_Distance_Needed; DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); DataSet dsTravelPlace = new DataSet(); string companyCode = objCurr.GetCompanyCode(); // travelled place ds based on (category check, intermediated place privilege check) DataControl.BL_DCRStockiestExpense objBL = new DataControl.BL_DCRStockiestExpense(); dsTravelPlace = objBL.GetDCRTravelledPlacesForFareCalculation(companyCode, fareCalcPassed.DcrCode, fareCalcPassed.DcrFalg, fareCalcPassed.Entity); dsTravelPlace.Tables[0].Columns.Add("IS_Calculated", typeof(string)); //seperate SFC and DFC //calculate for SFC and update the column IS_Calculated="Y" then calculate dfc for IS_Calculated!="Y" #region SFC Calculaion foreach (DataRow dr in dsTravelPlace.Tables[0].Rows) { // for SFC double fareAmount = 0.0; fareAmount += objBL.GetSFCFare(companyCode, dr["From_Place"].ToString().Trim(), dr["To_Place"].ToString().Trim(), dr["SFC_Region_Code"].ToString().Trim(), dr["SFC_Category_Name"].ToString().Trim(), dr["Travel_Mode"].ToString().Trim(), fareCalcPassed.DcrDate); if (fareAmount == 0.0) { dr["IS_Calculated"] = "N"; } else { dr["IS_Calculated"] = "Y"; totalFare += fareAmount; } } #endregion SFC Calculaion // Calculate for DFC #region DFC Calculation DataRow[] drrRow = dsTravelPlace.Tables[0].Select("IS_Calculated='N'"); if (drrRow.Length > 0) { if (fareCalcPassed.Sum_Distance_Needed == "Y") { #region Sum Distance Yes var distanceTvlMode = from row in drrRow.AsEnumerable() group row by new { Travel_Mode = row.Field <string>("Travel_Mode"), } into grp select new { Travel_Mode = grp.Key.Travel_Mode, Distance = grp.Sum(r => r.Field <decimal>("Distance")) }; foreach (var dist in distanceTvlMode) { double fareAmount = 0.0; // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); fareAmount = objD.CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dist.Distance), dist.Travel_Mode.ToString().Trim(), entity, sumDistance); totalFare += fareAmount; } #endregion Sum Distance Yes } else { #region Sum distance No foreach (DataRow dr in drrRow) { double fareAmount = 0.0; // for DFC DFareCalcStrategy objD = new DFareCalcStrategy(); fareAmount = objD.CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dr["Distance"].ToString().Trim()), dr["Travel_Mode"].ToString().Trim(), entity, sumDistance); totalFare += fareAmount; } #endregion Sum distance No } } #endregion DFC Calculation } return(totalFare); }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { try { string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string dcrCode = fareCalcPassed.DcrCode; string dcrDate = fareCalcPassed.DcrDate; string dcrFlag = fareCalcPassed.DcrFalg; double travelDistance = fareCalcPassed.TravelKm; string sumDistance = fareCalcPassed.Sum_Distance_Needed; Controllers.MasterController objMaster = new Controllers.MasterController(); DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); double totalFare = 0.0; double fromKm = 0.0; double toKm = 0.0; double fare = 0.0; double total = 0.0; string companyCode = objCurr.GetCompanyCode(); string userTypeCode = objCurr.GetUserTypeCode(); string userCode = objCurr.GetUserCode(); int j = 0; DataSet dsDistanceMatrix = new DataSet(); DataSet dsTravelPlace = new DataSet(); dsDistanceMatrix = objMaster.GetDistanceMatrix(companyCode, userTypeCode, entity); if (dsDistanceMatrix.Tables[0].Rows.Count > 0) { fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["From_Km"].ToString().Trim()); toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["TO_Km"].ToString().Trim()); //This is to calculate Fare for single travel distance (HQ or Intermediate place='NO' for other category) and for sum distance yes if (entity.Trim().ToUpper() == "HQ" || sumDistance == "Y") { if (travelDistance >= fromKm && travelDistance <= toKm) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare = total; } } else { dsTravelPlace = objMaster.GetTrvelPlace(companyCode, dcrCode, dcrFlag, userCode, dcrDate); if (dsTravelPlace.Tables[0].Rows.Count > 0) { for (j = 0; j <= dsTravelPlace.Tables[0].Rows.Count - 1; j++) { travelDistance = Convert.ToDouble(dsTravelPlace.Tables[0].Rows[j]["Distance"].ToString().Trim()); if (travelDistance >= fromKm && travelDistance <= toKm) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare += total; } } } } } return(totalFare); } catch (Exception ex) { throw ex; } }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { try { string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string dcrCode = fareCalcPassed.DcrCode; string dcrDate = fareCalcPassed.DcrDate; string dcrFlag = fareCalcPassed.DcrFalg; double travelDistance = fareCalcPassed.TravelKm; string sumDistance = fareCalcPassed.Sum_Distance_Needed; Controllers.MasterController objMaster = new Controllers.MasterController(); DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); double totalFare = 0.0; double fromKm = 0.0; double toKm = 0.0; double fare = 0.0; double total = 0.0; string companyCode = objCurr.GetCompanyCode(); string userTypeCode = objCurr.GetUserTypeCode(); string userCode = objCurr.GetUserCode(); int j = 0; DataSet dsDistanceMatrix = new DataSet(); DataSet dsTravelPlace = new DataSet(); if (fareCalcPassed.DCR_Version == "DCR V3") { #region DCRV3 dsDistanceMatrix = objMaster.GetDistanceMatrix(companyCode, userTypeCode, entity); if (dsDistanceMatrix.Tables[0].Rows.Count > 0) { //This is to calculate Fare for single travel distance (HQ or Intermediate place='NO' for other category) and for sum distance yes if (entity.Trim().ToUpper() == "HQ" || hopNeed.Trim().ToUpper() == "NO" || sumDistance == "Y") { for (int index = 0; index < dsDistanceMatrix.Tables[0].Rows.Count; index++) { fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["From_Km"].ToString().Trim()); toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["To_Km"].ToString().Trim()); if (travelDistance >= fromKm && travelDistance <= toKm) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare = total; } } } else if (hopNeed.Trim().ToUpper() == "YES") { dsTravelPlace = objMaster.GetTrvelPlace(companyCode, dcrCode, dcrFlag, userCode, dcrDate); if (dsTravelPlace.Tables[0].Rows.Count > 0) { for (int index = 0; index < dsDistanceMatrix.Tables[0].Rows.Count; index++) { fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["From_Km"].ToString().Trim()); toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["To_Km"].ToString().Trim()); for (j = 0; j <= dsTravelPlace.Tables[0].Rows.Count - 1; j++) { travelDistance = Convert.ToDouble(dsTravelPlace.Tables[0].Rows[j]["Distance"].ToString().Trim()); if (travelDistance >= fromKm && travelDistance <= toKm) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[index]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare += total; } } } } } } #endregion DCRV3 } // dcr v4 calcuation - included travel mode in distance matrix else { #region dcrv4 // travelled place ds based on (category check, intermediated place privilege check) DataControl.BL_DCRStockiestExpense objBL = new DataControl.BL_DCRStockiestExpense(); dsTravelPlace = objBL.GetDCRTravelledPlacesForFareCalculation(companyCode, dcrCode, dcrFlag, entity); // Call new class if (dsTravelPlace.Tables[0].Rows.Count > 0) { if (sumDistance != "Y") { for (j = 0; j <= dsTravelPlace.Tables[0].Rows.Count - 1; j++) { totalFare += CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dsTravelPlace.Tables[0].Rows[j]["Distance"].ToString().Trim()), dsTravelPlace.Tables[0].Rows[j]["Travel_Mode"].ToString().Trim(), entity, sumDistance); } } else { var distanceTvlMode = from row in dsTravelPlace.Tables[0].AsEnumerable() group row by new { Travel_Mode = row.Field <string>("Travel_Mode"), } into grp select new { Travel_Mode = grp.Key.Travel_Mode, Distance = grp.Sum(r => r.Field <decimal>("Distance")) }; foreach (var dist in distanceTvlMode) { totalFare += CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dist.Distance), dist.Travel_Mode.ToString(), entity, sumDistance); } } } #endregion dcrv4 } return(totalFare); } catch (Exception ex) { throw ex; } }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { try { string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string dcrCode = fareCalcPassed.DcrCode; string dcrDate = fareCalcPassed.DcrDate; string dcrFlag = fareCalcPassed.DcrFalg; double travelDistance = fareCalcPassed.TravelKm; string sumDistance = fareCalcPassed.Sum_Distance_Needed; Controllers.MasterController objMaster = new Controllers.MasterController(); DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); double totalFare = 0.0; double fromKm = 0.0; double toKm = 0.0; double fare = 0.0; double total = 0.0; string companyCode = objCurr.GetCompanyCode(); string userTypeCode = objCurr.GetUserTypeCode(); string userCode = objCurr.GetUserCode(); int j = 0; DataSet dsDistanceMatrix = new DataSet(); DataSet dsTravelPlace = new DataSet(); if (fareCalcPassed.DCR_Version == "DCR V3") { #region DCRv3 dsDistanceMatrix = objMaster.GetDistanceMatrix(companyCode, userTypeCode, entity); if (dsDistanceMatrix.Tables[0].Rows.Count > 0) { total = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0][1].ToString()) * Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0][2].ToString()); dsDistanceMatrix.Tables[0].Rows[0]["Fare"] = total.ToString(); dsDistanceMatrix.Tables[0].AcceptChanges(); total = 0.0; // This For loop is to calculate total for (j = 1; j <= dsDistanceMatrix.Tables[0].Rows.Count - 1; j++) { // ((70-30)*1.75)+60 = 130 fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[j - 1]["To_Km"].ToString()); // from km=30 toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[j]["To_Km"].ToString()); // to km=70 fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[j]["Fare_Amount"].ToString()); // amount for this limit =1.75 total = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[j - 1]["Fare"].ToString()); // total of previous limit = 60 total = ((toKm - fromKm) * fare) + total; // total of current limit = 130 dsDistanceMatrix.Tables[0].Rows[j]["Fare"] = total.ToString(); dsDistanceMatrix.Tables[0].AcceptChanges(); } fromKm = 0.0; toKm = 0.0; fare = 0.0; total = 0.0; //This is to calculate Fare for single travel distance (HQ or Intermediate place='NO' for other category) and for sum distance yes if (entity.Trim().ToUpper() == "HQ" || sumDistance == "Y") { for (int k = 0; k <= dsDistanceMatrix.Tables[0].Rows.Count - 1; k++) { // If this DataSet has more than 1 row, Intermediate palces entry has gone // ((66-30)*1.75)+60 = 123 fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["From_Km"].ToString().Trim()); toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["To_Km"].ToString().Trim()); if (travelDistance >= fromKm && travelDistance <= toKm) { if (k != 0) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["Fare_Amount"].ToString().Trim()); // 1.75 toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k - 1]["To_Km"].ToString().Trim()); // 30 total = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k - 1]["Fare"].ToString().Trim()); // 60 total = ((travelDistance - toKm) * fare) + total; // 123 totalFare = total; break; } else { if (dsDistanceMatrix.Tables[0].Rows[0]["Is_Amount_Fixed"].ToString().Trim() == "1") { travelDistance = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["To_Km"].ToString().Trim()); } fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare = total; break; } } } } else { dsTravelPlace = objMaster.GetTrvelPlace(companyCode, dcrCode, dcrFlag, userCode, dcrDate); if (dsTravelPlace.Tables[0].Rows.Count > 0) { for (j = 0; j <= dsTravelPlace.Tables[0].Rows.Count - 1; j++) { travelDistance = Convert.ToDouble(dsTravelPlace.Tables[0].Rows[j]["Distance"].ToString().Trim()); for (int k = 0; k <= dsDistanceMatrix.Tables[0].Rows.Count - 1; k++) { // ((66-30)*1.75)+60 = 123 fromKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["From_Km"].ToString().Trim()); toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["To_Km"].ToString().Trim()); if (travelDistance >= fromKm && travelDistance <= toKm) { if (k != 0) { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k]["Fare_Amount"].ToString().Trim()); // 1.75 toKm = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k - 1]["To_Km"].ToString().Trim()); // 30 total = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[k - 1]["Fare"].ToString().Trim()); // 60 total = ((travelDistance - toKm) * fare) + total; // 123 totalFare += total; break; } else { fare = Convert.ToDouble(dsDistanceMatrix.Tables[0].Rows[0]["Fare_Amount"].ToString().Trim()); total = travelDistance * fare; totalFare += total; break; } } } } } } } #endregion DCRv3 } // dcr v4 calcuation - included travel mode in distance matrix else { #region DCRV4 // travelled place ds based on (category check, intermediated place privilege check) DataControl.BL_DCRStockiestExpense objBL = new DataControl.BL_DCRStockiestExpense(); dsTravelPlace = objBL.GetDCRTravelledPlacesForFareCalculation(companyCode, dcrCode, dcrFlag, entity); // Call new class if (dsTravelPlace.Tables[0].Rows.Count > 0) { if (sumDistance != "Y") { for (j = 0; j <= dsTravelPlace.Tables[0].Rows.Count - 1; j++) { totalFare += CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dsTravelPlace.Tables[0].Rows[j]["Distance"].ToString().Trim()), dsTravelPlace.Tables[0].Rows[j]["Travel_Mode"].ToString().Trim(), entity, sumDistance); } } else { var distanceTvlMode = from row in dsTravelPlace.Tables[0].AsEnumerable() group row by new { Travel_Mode = row.Field <string>("Travel_Mode"), } into grp select new { Travel_Mode = grp.Key.Travel_Mode, Distance = grp.Sum(r => r.Field <decimal>("Distance")) }; foreach (var dist in distanceTvlMode) { totalFare += CalculateSFCFare(fareCalcPassed, Convert.ToDouble(dist.Distance), dist.Travel_Mode.ToString(), entity, sumDistance); } } } #endregion DCRV4 } return(totalFare); } catch (Exception ex) { throw ex; } }
public double CalculateSFCFare(Models.FareCalculationDTO fareCalcPassed) { try { double totalFare = 0.0; string hopNeed = fareCalcPassed.IntermediatePlace; string entity = fareCalcPassed.Entity; string dcrCode = fareCalcPassed.DcrCode; string dcrDate = fareCalcPassed.DcrDate; string dcrFlag = fareCalcPassed.DcrFalg; Controllers.MasterController objMaster = new Controllers.MasterController(); DataControl.CurrentInfo objCurr = new DataControl.CurrentInfo(); DataControl.Data objData = new DataControl.Data(); string companyCode = objCurr.GetCompanyCode(); string userCode = objCurr.GetUserCode(); string regionCode = objCurr.GetRegionCode(); if (entity == "HQ") { DataSet dsHop = new DataSet(); objData.OpenConnection(companyCode); { dsHop = objData.ExecuteDataSet("exec SP_hdGetHopPlaces '" + companyCode + "','" + dcrCode + "','" + userCode + "','" + dcrDate + "','" + dcrFlag + "'"); } objData.CloseConnection(); if (dsHop.Tables[0].Rows.Count > 0) { try { objData.OpenConnection(companyCode); { totalFare = Convert.ToDouble(objData.ExecuteScalar("exec SP_hdGetSFCAmount '" + companyCode + "','" + dsHop.Tables[0].Rows[0]["SFC_Region_Code"].ToString().Trim() + "','" + dsHop.Tables[0].Rows[0]["From_Place"].ToString().Trim() + "','" + dsHop.Tables[0].Rows[0]["To_Place"].ToString().Trim() + "','" + dsHop.Tables[0].Rows[0]["SFC_Category_Name"].ToString().Trim() + "','" + dsHop.Tables[0].Rows[0]["Travel_Mode"].ToString().Trim() + "','" + dcrDate + "','" + userCode + "','" + regionCode + "','" + entity + "'")); } objData.CloseConnection(); } catch { totalFare = 0.0; } } } else { DataSet dsTravelPlace = new DataSet(); double fareAmount = 0.0; double travelDistance = 0.0; dsTravelPlace = objMaster.GetTrvelPlace(companyCode, dcrCode, dcrFlag, userCode, dcrDate); if (dsTravelPlace.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsTravelPlace.Tables[0].Rows) { travelDistance = Convert.ToDouble(dr["Distance"].ToString().Trim()); try { objData.OpenConnection(companyCode); { fareAmount = Convert.ToDouble(objData.ExecuteScalar("exec SP_hdGetSFCAmount '" + companyCode + "','" + dr["SFC_Region_Code"].ToString().Trim() + "','" + dr["From_Place"].ToString().Trim() + "','" + dr["To_Place"].ToString().Trim() + "','" + dr["SFC_Category_Name"].ToString().Trim() + "','" + dr["Travel_Mode"].ToString().Trim() + "','" + dcrDate + "','" + userCode + "','" + regionCode + "','" + entity + "'")); } objData.CloseConnection(); } catch { fareAmount = 0.0; } totalFare += fareAmount; } } } return(totalFare); } catch (Exception ex) { throw ex; } }