public override bool Validate(params object[] value) { try { this.Description = string.Empty; if (value.Length != Field.Length) { this.Description = Hepsa.Core.My.Resources.ValidationMessage.IncorrectDataType; return(false); } Int32? ServiceID_int = (Int32?)value[0]; string NumberPlate_nvc = Convert.ToString(value[1]); string SerialPlate_nvc = Convert.ToString(value[2]); Int64? TrafficID_bint = (Int64?)value[3]; Int64? TrafficNumber_bint = (Int64?)value[5]; string CarCardNumber_nvc = string.Empty; HPS.BLL.TrafficBLL.BLLTraffic_TFactory TrafficFactory = new HPS.BLL.TrafficBLL.BLLTraffic_TFactory(); HPS.BLL.TrafficBLL.BLLTraffic_T TrafficEntity = new HPS.BLL.TrafficBLL.BLLTraffic_T(); if (string.IsNullOrEmpty(NumberPlate_nvc) && string.IsNullOrEmpty(SerialPlate_nvc)) { HPS.BLL.TrafficBLL.BLLTraffic_TKeys TrafficKey = new HPS.BLL.TrafficBLL.BLLTraffic_TKeys(); TrafficKey.TrafficID_bint = TrafficID_bint.Value; TrafficEntity = TrafficFactory.GetBy(TrafficKey); if (TrafficEntity != null) { ServiceID_int = TrafficEntity.ServiceID_int; NumberPlate_nvc = TrafficEntity.NumberPlate_nvc; SerialPlate_nvc = TrafficEntity.SerialPlate_nvc; } } ///////////////////////////////////// #region AcceptTurn Conditions DataTable TrafficStatusDataTable = new DataTable(); TrafficFactory.GetLastStatus(NumberPlate_nvc, SerialPlate_nvc, CarCardNumber_nvc, TrafficStatusDataTable); if (ServiceID_int.HasValue && ServiceID_int.Value == 2) { if (TrafficStatusDataTable != null && TrafficStatusDataTable.Rows.Count > 0) { Int64 LastTrafficID_bint = 0; if (Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["TrafficID_bint"], TypeCode.Int64) != null) { LastTrafficID_bint = (Int64)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["TrafficID_bint"], TypeCode.Int64); } bool? HasTurn_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["HasTurn_bit"], TypeCode.Boolean); bool? TurnReturn_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["TurnReturn_bit"], TypeCode.Boolean); bool? TurnCanceled_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["TurnCanceled_bit"], TypeCode.Boolean); bool? HasLadBillCredit_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["HasLadBillCredit_bit"], TypeCode.Boolean); bool? LadBillCreditCancel_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["LadBillCreditCancel_bit"], TypeCode.Boolean); bool? LadBillCreditTurn_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["LadBillCreditTurn_bit"], TypeCode.Boolean); bool? TurnAccepted_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["TurnAccepted_bit"], TypeCode.Boolean); Int64?AcceptedTurnNumber_bint = (Int64?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusDataTable.Rows[0]["AcceptedTurnNumber_bint"], TypeCode.Int64); if (HasTurn_bit.HasValue == false || HasTurn_bit == false) { /////////TurnAcception(TrafficEntityUpdate, TrafficDate, _TurnHour, TrafficKey); } else { if (TurnAccepted_bit.HasValue && TurnAccepted_bit == true) { if (TurnCanceled_bit.HasValue && TurnCanceled_bit == true) { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } else { if (HasLadBillCredit_bit.HasValue && HasLadBillCredit_bit == true) { if (LadBillCreditCancel_bit.HasValue && LadBillCreditCancel_bit == true) { if (LadBillCreditTurn_bit.HasValue && LadBillCreditTurn_bit == true) { //محاسبه مدت مجاز سفر DateTime NowDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(TrafficFactory.ServerJalaliDate)).MyDate.ToString("yyyy/MM/dd") + " " + TrafficFactory.ServerTime); DataTable TrafficDataTable = new DataTable(); string Condition = string.Format("Traffic_T.TrafficID_bint='{0}'", TrafficID_bint); TrafficFactory.GetAllByConditionWithLadBill(Condition, ref TrafficDataTable); if (TrafficDataTable != null && TrafficDataTable.Rows.Count > 0) { // حذف چک کردن این مورد در زمانی که مجوز گرفته و ابطال با حفظ نوبت شده شده است در تاریخ 93/11/25 انجام شد که بتوان اطلاعات تردد را ویرایش نمود //Int32 _CityTravelHour = 0; //if (!string.IsNullOrEmpty(TrafficDataTable.Rows[0]["TravelTime_int"].ToString())) //{ // _CityTravelHour = Convert.ToInt32(TrafficDataTable.Rows[0]["TravelTime_int"].ToString()); //} ///////////////// //string _OutDate = TrafficDataTable.Rows[0]["Date_nvc"].ToString(); //string _OutTime = TrafficDataTable.Rows[0]["Time_nvc"].ToString(); //DateTime OutDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(_OutDate)).MyDate.ToString("yyyy/MM/dd") + " " + _OutTime); //if (TrafficDataTable.Rows[0]["Out_bit"].ToString() == "False") //{ // TimeSpan date = NowDate - OutDate; // double remaindedHour = _CityTravelHour - date.TotalHours; // if (OutDate.AddHours(_CityTravelHour).CompareTo(NowDate) > 0)//date.TotalHours > _CityTravelHour) // { // Description = (string.Format("مدت سفراین ناوگان به مجوز< {0} >تمام نشده و مدت < {1} > مانده است ", TrafficDataTable.Rows[0]["LadBillCreditID_int"], TimeSpan.FromDays(remaindedHour))); // return false; // } //} } else { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } else { //محاسبه مدت مجاز سفر DateTime NowDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(TrafficFactory.ServerJalaliDate)).MyDate.ToString("yyyy/MM/dd") + " " + TrafficFactory.ServerTime); DataTable TrafficDataTable = new DataTable(); string Condition = string.Format("Traffic_T.TrafficID_bint='{0}'", LastTrafficID_bint); TrafficFactory.GetAllByConditionWithLadBill(Condition, ref TrafficDataTable); if (TrafficDataTable != null && TrafficDataTable.Rows.Count > 0) { Int32 _CityTravelHour = 0; if (!string.IsNullOrEmpty(TrafficDataTable.Rows[0]["TravelTime_int"].ToString())) { _CityTravelHour = Convert.ToInt32(TrafficDataTable.Rows[0]["TravelTime_int"].ToString()); } /////////////// string _OutDate = TrafficDataTable.Rows[0]["Date_nvc"].ToString(); string _OutTime = TrafficDataTable.Rows[0]["Time_nvc"].ToString(); DateTime OutDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(_OutDate)).MyDate.ToString("yyyy/MM/dd") + " " + _OutTime); if (TrafficDataTable.Rows[0]["Out_bit"].ToString() == "False") { TimeSpan date = NowDate - OutDate; double remaindedHour = _CityTravelHour - date.TotalHours; if (OutDate.AddHours(_CityTravelHour).CompareTo(NowDate) > 0)//date.TotalHours > _CityTravelHour) { Description = (string.Format("مدت سفراین ناوگان به مجوز< {0} >تمام نشده و مدت < {1} > مانده است ", TrafficDataTable.Rows[0]["LadBillCreditID_int"], TimeSpan.FromDays(remaindedHour))); return(false); } } } else { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } else { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TrafficID_bint != LastTrafficID_bint) { Description = (string.Format("این ناوگان دارای شماره نوبت تأیید شده {0} می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } else if (TurnAccepted_bit.HasValue && TurnReturn_bit == true) { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } else { //محاسبه مدت مجاز سفر DataTable LadBillDataTable = new DataTable(); TrafficFactory.GetTurnStatus(NumberPlate_nvc, SerialPlate_nvc, LadBillDataTable); if (LadBillDataTable != null && LadBillDataTable.Rows.Count > 0) { bool? PreviousTurnAccepted_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(LadBillDataTable.Rows[LadBillDataTable.Rows.Count - 1]["TurnAccepted_bit"], TypeCode.Boolean); Int32?PreviousTurnCancelCommandID_bit = (Int32?)Hepsa.Core.Common.PersentationController.GetEntityValue(LadBillDataTable.Rows[LadBillDataTable.Rows.Count - 1]["TurnCancelCommantID_int"], TypeCode.Int32); bool? PreviousTurnReturn_bit = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(LadBillDataTable.Rows[LadBillDataTable.Rows.Count - 1]["Return_bit"], TypeCode.Boolean); if (PreviousTurnAccepted_bit.HasValue && PreviousTurnAccepted_bit == true) { if (PreviousTurnCancelCommandID_bit.HasValue) { if (PreviousTurnReturn_bit.HasValue && PreviousTurnReturn_bit == true) { //باطل شده و احیا شده Description = (string.Format("ناوگان دارای شماره نوبت تأییدی< {0} >می باشد", LadBillDataTable.Rows[LadBillDataTable.Rows.Count - 1]["AcceptedTurnnumber_bint"])); return(false); } } else { //تأیید شده و باطل نشده DateTime NowDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(TrafficFactory.ServerJalaliDate)).MyDate.ToString("yyyy/MM/dd") + " " + TrafficFactory.ServerTime); DataTable TrafficDataTable = new DataTable(); string Condition = string.Format("Traffic_T.NumberPlate_nvc='{0}' and SerialPlate_nvc='{1}'", NumberPlate_nvc, SerialPlate_nvc); TrafficFactory.GetAllByConditionWithLadBill(Condition, ref TrafficDataTable); if (TrafficDataTable != null && TrafficDataTable.Rows.Count > 0) { string filter = "LadeAssignmentId_bint=Max(LadeAssignmentId_bint)"; DataRow[] dr = TrafficDataTable.Select(filter); if (dr != null && dr.Length > 0) { Int32 _CityTravelHour = 0; if (!string.IsNullOrEmpty(dr[dr.Length - 1]["TravelTime_int"].ToString())) { _CityTravelHour = Convert.ToInt32(dr[dr.Length - 1]["TravelTime_int"].ToString()); } string _OutDate = dr[dr.Length - 1]["LadBillDate"].ToString(); string _OutTime = dr[dr.Length - 1]["LadBillTime"].ToString(); DateTime OutDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(_OutDate)).MyDate.ToString("yyyy/MM/dd") + " " + _OutTime); DataTable TrafficStatusForAcceptTurnDataTable = new DataTable(); TrafficFactory.GetLastStatusForAcceptTurn((Int64)Hepsa.Core.Common.PersentationController.GetEntityValue(dr[dr.Length - 1]["TrafficID_bint"], TypeCode.Int64), TrafficStatusForAcceptTurnDataTable); if (TrafficStatusForAcceptTurnDataTable != null && TrafficStatusForAcceptTurnDataTable.Rows.Count > 0 && Convert.ToBoolean(TrafficStatusForAcceptTurnDataTable.Rows[0]["HasTurn_bit"]) == true) { bool?LadBillCreditCancel = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["LadBillCreditCancel_bit"], TypeCode.Boolean); bool?LadBillCreditTurn = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["LadBillCreditTurn_bit"], TypeCode.Boolean); bool?TurnReturn = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnReturn_bit"], TypeCode.Boolean); bool?TurnCanceled = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnCanceled_bit"], TypeCode.Boolean); bool?TurnAccepted = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnAccepted_bit"], TypeCode.Boolean); if (LadBillCreditCancel.HasValue && LadBillCreditCancel == true) { if (LadBillCreditTurn.HasValue && LadBillCreditTurn == true) { Description = (string.Format("این ناوگان دارای شماره نوبت تأیید شده< {0} >می باشد", TrafficStatusForAcceptTurnDataTable.Rows[0]["AcceptedTurnNumber_bint"])); return(false); } } else { if (TurnCanceled.HasValue && TurnCanceled == true) { if (TurnReturn.HasValue && TurnReturn == true) { //احیای نوبت در ابطال مجوز پس مدت سفر داره if (dr[dr.Length - 1]["Out_bit"].ToString() == "False") { TimeSpan date = NowDate - OutDate; double remaindedHour = _CityTravelHour - date.TotalHours; string RemaindeHour = TimeSpan.FromDays(remaindedHour).ToString().Substring(0, TimeSpan.FromDays(remaindedHour).ToString().Length - 3); if (OutDate.AddHours(_CityTravelHour).CompareTo(NowDate) > 0)//date.TotalHours > _CityTravelHour) { Description = (string.Format("مدت سفراین ناوگان به مجوز< {0} >تمام نشده و مدت < {1} > مانده است ", dr[dr.Length - 1]["LadBillCreditID_int"], RemaindeHour)); return(false); } } } } else { // لحاظ نمودن مدت سفر if (dr[dr.Length - 1]["Out_bit"].ToString() == "False") { TimeSpan date = NowDate - OutDate; double remaindedHour = _CityTravelHour - date.TotalHours; string RemaindeHour = TimeSpan.FromDays(remaindedHour).ToString().Substring(0, TimeSpan.FromDays(remaindedHour).ToString().Length - 3); if (OutDate.AddHours(_CityTravelHour).CompareTo(NowDate) > 0)//date.TotalHours > _CityTravelHour) { Description = (string.Format("مدت سفراین ناوگان به مجوز< {0} >تمام نشده و مدت < {1} > مانده است ", dr[dr.Length - 1]["LadBillCreditID_int"], RemaindeHour)); return(false); } else { DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { List <HPS.BLL.TrafficBLL.BLLTraffic_T> trafficList = new List <HPS.BLL.TrafficBLL.BLLTraffic_T>(); trafficList = TrafficFactory.GetAllBy(HPS.BLL.TrafficBLL.BLLTraffic_T.Traffic_TField.TrafficNumber_bint, TrafficNumber_bint); if (trafficList != null && trafficList.Count > 0) { if (trafficList[0].In_bit == true && (trafficList[0].NumberPlate_nvc != NumberPlate_nvc || Convert.ToInt32(trafficList[0].SerialPlate_nvc) != Convert.ToInt32(SerialPlate_nvc))) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } } } } } } } else { DataTable TurnStatus = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatus); if (TurnStatus != null && TurnStatus.Rows.Count > 0) { DataTable TrafficStatusForAcceptTurnDataTable = new DataTable(); TrafficFactory.GetLastStatusForAcceptTurn((Int64)Hepsa.Core.Common.PersentationController.GetEntityValue(TurnStatus.Rows[TurnStatus.Rows.Count - 1]["TrafficID_bint"], TypeCode.Int64), TrafficStatusForAcceptTurnDataTable); if (TrafficStatusForAcceptTurnDataTable != null && TrafficStatusForAcceptTurnDataTable.Rows.Count > 0 && Convert.ToBoolean(TrafficStatusForAcceptTurnDataTable.Rows[0]["HasTurn_bit"]) == true) { bool?LadBillCreditCancel = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["LadBillCreditCancel_bit"], TypeCode.Boolean); bool?LadBillCreditTurn = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["LadBillCreditTurn_bit"], TypeCode.Boolean); bool?TurnReturn = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnReturn_bit"], TypeCode.Boolean); bool?TurnCanceled = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnCanceled_bit"], TypeCode.Boolean); bool?TurnAccepted = (bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(TrafficStatusForAcceptTurnDataTable.Rows[0]["TurnAccepted_bit"], TypeCode.Boolean); if (LadBillCreditCancel.HasValue && LadBillCreditCancel == true) { if (LadBillCreditTurn.HasValue && LadBillCreditTurn == true) { Description = (string.Format("این ناوگان دارای شماره نوبت تأیید شده< {0} >می باشد", TrafficStatusForAcceptTurnDataTable.Rows[0]["AcceptedTurnNumber_bint"])); return(false); } } else { if (TurnCanceled.HasValue && TurnCanceled == true) { if (TurnReturn.HasValue && TurnReturn == true) { //نوبت فعال DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } } } } } } } else { DateTime NowDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(TrafficFactory.ServerJalaliDate)).MyDate.ToString("yyyy/MM/dd") + " " + TrafficFactory.ServerTime); DataTable TrafficDataTable = new DataTable(); string Condition = string.Format("Traffic_T.NumberPlate_nvc='{0}' and SerialPlate_nvc='{1}'", NumberPlate_nvc, SerialPlate_nvc); TrafficFactory.GetAllByConditionWithLadBill(Condition, ref TrafficDataTable); if (TrafficDataTable != null && TrafficDataTable.Rows.Count > 0) { string filter = "LadeAssignmentId_bint=Max(LadeAssignmentId_bint)"; DataRow[] dr = TrafficDataTable.Select(filter); if (dr != null && dr.Length > 0) { if (((bool?)Hepsa.Core.Common.PersentationController.GetEntityValue(dr[dr.Length - 1]["Turn_bit"], TypeCode.Boolean) == true && (bool)Hepsa.Core.Common.PersentationController.GetEntityValue(dr[dr.Length - 1]["Canceled_bit"], TypeCode.Boolean) == true) || (bool)Hepsa.Core.Common.PersentationController.GetEntityValue(dr[dr.Length - 1]["Canceled_bit"], TypeCode.Boolean) == false) { Int32 _CityTravelHour = 0; if (!string.IsNullOrEmpty(dr[dr.Length - 1]["TravelTime_int"].ToString())) { _CityTravelHour = Convert.ToInt32(dr[dr.Length - 1]["TravelTime_int"].ToString()); } string _OutDate = dr[dr.Length - 1]["LadBillDate"].ToString(); string _OutTime = dr[dr.Length - 1]["LadBillTime"].ToString(); DateTime OutDate = DateTime.Parse((new Hepsa.Core.Common.MyDateTime(_OutDate)).MyDate.ToString("yyyy/MM/dd") + " " + _OutTime); DataTable TrafficStatusForAcceptTurnDataTable = new DataTable(); if (dr[dr.Length - 1]["Out_bit"].ToString() == "False") { TimeSpan date = NowDate - OutDate; double remaindedHour = _CityTravelHour - date.TotalHours; string RemaindeHour = TimeSpan.FromDays(remaindedHour).ToString().Substring(0, TimeSpan.FromDays(remaindedHour).ToString().Length - 3); if (OutDate.AddHours(_CityTravelHour).CompareTo(NowDate) > 0) { if (string.IsNullOrEmpty(dr[dr.Length - 1]["Canceled_bit"].ToString()) || dr[dr.Length - 1]["Canceled_bit"].ToString() == "False") { Description = (string.Format("مدت سفراین ناوگان به مجوز< {0} >تمام نشده و مدت < {1} > مانده است ", dr[dr.Length - 1]["LadBillCreditID_int"], RemaindeHour)); return(false); } } } } } } else { // نوبت داره DataTable TurnStatusDataTable = new DataTable(); TrafficFactory.GetTurnStatus((string)Hepsa.Core.Common.PersentationController.GetEntityValue(NumberPlate_nvc, TypeCode.String), (string)Hepsa.Core.Common.PersentationController.GetEntityValue(SerialPlate_nvc, TypeCode.String), TurnStatusDataTable); if (TurnStatusDataTable != null && TurnStatusDataTable.Rows.Count > 0) { Description = (string.Format("ناوگان دارای شماره نوبت تأییدی < {0} >می باشد", TurnStatusDataTable.Rows[TurnStatusDataTable.Rows.Count - 1]["AcceptedTurnNumber_bint"])); return(false); } } } } } } } #endregion //////////////////////////////////// return(true); } catch (System.Exception ex) { this.Description = ex.Message; return(false); } }