هل يمكنك شرح هذا الجزء من الكلاس  Class67 بالعربي و بالتفصيل  
  public static List<view_daily_restrictions> smethod_111(int int_0)
  {
    mrsalesdbEntities mrsalesdbEntities = ConnectionTools.OpenConn();
    List<view_daily_restrictions> dailyRestrictionsList = new List<view_daily_restrictions>();
    dailyRestrictionsList.AddRange((IEnumerable<view_daily_restrictions>) mrsalesdbEntities.view_daily_restrictions.Where<view_daily_restrictions>((Expression<System.Func<view_daily_restrictions, bool>>) (u => u.accm_ID == (int?) int_0)).ToList<view_daily_restrictions>());
    return dailyRestrictionsList;
  }

  public static XtraReport smethod_112(
    object object_0,
    int int_0,
    object object_1,
    int int_1,
    DateTime? nullable_0 = null,
    Decimal OperationAmount = 0M)
  {
    List<Parameter> source = new List<Parameter>();
    source.AddRange((IEnumerable<Parameter>) ((XtraReport) object_0).Parameters);
    mrsalesdbEntities mrsalesdbEntities = ConnectionTools.OpenConn();
    Decimal decimal_0 = Class67.smethod_14(int_0).balance.Value;
    string pepoleName = mrsalesdbEntities.people_data.Find(new object[1]
    {
      (object) int_0
    }).pepole_Name;
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "People_Name")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "People_Name",
          Type = typeof (string),
          Visible = false,
          Value = (object) pepoleName
        };
        ((XtraReport) object_0).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_0).Parameters["People_Name"].Value = (object) pepoleName;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "custBalance")))
      {
        Parameter parameter1 = new Parameter();
        parameter1.Name = "custBalance";
        parameter1.Type = typeof (string);
        parameter1.Visible = false;
        Parameter parameter2 = parameter1;
        string str;
        if (!(decimal_0 > 0M))
          str = Class67.smethod_41(-1M * decimal_0, false).ToString() + " [ " + strings.DEBIT + " ] ";
        else
          str = Class67.smethod_41(decimal_0, false).ToString() + " [ " + strings.CREDIT + " ] ";
        parameter2.Value = (object) str;
        Parameter parameter3 = parameter1;
        ((XtraReport) object_0).Parameters.Add(parameter3);
      }
      else
      {
        Parameter parameter = ((XtraReport) object_0).Parameters["custBalance"];
        string str;
        if (!(decimal_0 > 0M))
          str = Class67.smethod_41(-1M * decimal_0, false).ToString() + " [ " + strings.DEBIT + " ] ";
        else
          str = Class67.smethod_41(decimal_0, false).ToString() + " [ " + strings.CREDIT + " ] ";
        parameter.Value = (object) str;
      }
    }
    catch
    {
    }
    try
    {
      string str = Class67.smethod_16(int_0);
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "MultiCurrenciesCustomerBalance")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "MultiCurrenciesCustomerBalance",
          Type = typeof (string),
          Visible = false,
          Value = (object) str
        };
        ((XtraReport) object_0).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_0).Parameters["MultiCurrenciesCustomerBalance"].Value = (object) str;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "CustomerBalance")))
      {
        Parameter parameter4 = new Parameter();
        parameter4.Name = "CustomerBalance";
        parameter4.Type = typeof (string);
        parameter4.Visible = false;
        Parameter parameter5 = parameter4;
        string str;
        if (!(decimal_0 > 0M))
          str = Class67.smethod_41(-1M * decimal_0, false).ToString() + " [ " + strings.DEBIT + " ] ";
        else
          str = Class67.smethod_41(decimal_0, false).ToString() + " [ " + strings.CREDIT + " ] ";
        parameter5.Value = (object) str;
        Parameter parameter6 = parameter4;
        ((XtraReport) object_0).Parameters.Add(parameter6);
      }
      else
      {
        Parameter parameter = ((XtraReport) object_0).Parameters["CustomerBalance"];
        string str;
        if (!(decimal_0 > 0M))
          str = Class67.smethod_41(-1M * decimal_0, false).ToString() + " [ " + strings.DEBIT + " ] ";
        else
          str = Class67.smethod_41(decimal_0, false).ToString() + " [ " + strings.CREDIT + " ] ";
        parameter.Value = (object) str;
      }
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "moneySprinkling")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "moneySprinkling",
          Type = typeof (string),
          Visible = false,
          Value = decimal_0 > 0M ? (object) CurrencyInfo.moneySprinkling(decimal_0.ToString()) : (object) CurrencyInfo.moneySprinkling((-1M * decimal_0).ToString())
        };
        ((XtraReport) object_0).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_0).Parameters["moneySprinkling"].Value = decimal_0 > 0M ? (object) CurrencyInfo.moneySprinkling(decimal_0.ToString()) : (object) CurrencyInfo.moneySprinkling((-1M * decimal_0).ToString());
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "OperationAmountSprinkling")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "OperationAmountSprinkling",
          Type = typeof (string),
          Visible = false,
          Value = OperationAmount > 0M ? (object) CurrencyInfo.moneySprinkling(OperationAmount.ToString()) : (object) CurrencyInfo.moneySprinkling((-1M * OperationAmount).ToString())
        };
        ((XtraReport) object_0).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_0).Parameters["OperationAmountSprinkling"].Value = OperationAmount > 0M ? (object) CurrencyInfo.moneySprinkling(OperationAmount.ToString()) : (object) CurrencyInfo.moneySprinkling((-1M * OperationAmount).ToString());
    }
    catch
    {
    }
    try
    {
      ((XRControl) object_0).FindControl("moneySprinkling", true).Text = decimal_0 > 0M ? CurrencyInfo.moneySprinkling(decimal_0.ToString()) : CurrencyInfo.moneySprinkling((-1M * decimal_0).ToString());
    }
    catch
    {
    }
    try
    {
      ((XRControl) object_0).FindControl("Pname", true).Text = pepoleName;
      XRControl control = ((XRControl) object_0).FindControl("custBalance", true);
      string str;
      if (!(decimal_0 > 0M))
        str = Class67.smethod_41(-1M * decimal_0, false).ToString() + " [ " + strings.DEBIT + " ] ";
      else
        str = Class67.smethod_41(decimal_0, false).ToString() + " [ " + strings.CREDIT + " ] ";
      control.Text = str;
    }
    catch
    {
    }
    try
    {
      if (nullable_0.HasValue)
      {
        Decimal num = Class67.smethod_13(object_1, int_1, int_0, nullable_0.Value);
        if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "prevBalance")))
        {
          Parameter parameter = new Parameter()
          {
            Name = "prevBalance",
            Type = typeof (string),
            Visible = false,
            Value = num > 0M ? (object) (num.ToString() + " " + strings.CREDIT) : (object) ((-1M * num).ToString() + " " + strings.DEBIT)
          };
          ((XtraReport) object_0).Parameters.Add(parameter);
        }
        else
          ((XtraReport) object_0).Parameters["prevBalance"].Value = num > 0M ? (object) (num.ToString() + " " + strings.CREDIT) : (object) ((-1M * num).ToString() + " " + strings.DEBIT);
      }
    }
    catch
    {
    }
    try
    {
      Decimal num = (Decimal) Loyality.Blanace(int_0);
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "loyalityPointBalance")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "loyalityPointBalance",
          Type = typeof (string),
          Visible = false,
          Value = (object) num
        };
        ((XtraReport) object_0).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_0).Parameters["loyalityPointBalance"].Value = (object) num;
    }
    catch
    {
    }
    return (XtraReport) object_0;
  }

  public static void smethod_113(
    Form form_0,
    string string_0,
    object object_0,
    string string_1,
    string string_2,
    bool bool_0 = false,
    string string_3 = "",
    string string_4 = "",
    string string_5 = "",
    string string_6 = "",
    string string_7 = "",
    int int_0 = 0,
    int int_1 = 0,
    string string_8 = "",
    string string_9 = "",
    DateTime? nullable_0 = null,
    string string_10 = "",
    string string_11 = "",
    string string_12 = "",
    Decimal OperationAmount = 0M,
    string string_13 = "")
  {
    object dataSource = ((XtraReportBase) object_0).DataSource;
    string str = Class67.smethod_99(object_0);
    if (System.IO.File.Exists(str))
      ((XtraReport) object_0).LoadLayout(str);
    ((XtraReportBase) object_0).DataSource = dataSource;
    object_0 = (object) Class67.smethod_114((object) form_0, (object) string_0, object_0, (object) string_1, string_2, bool_0, string_3, string_4, string_5, string_6, string_7, int_0, int_1, string_8, string_9, nullable_0, string_10, string_11, string_12, OperationAmount, string_13);
    string s = string_0;
    // ISSUE: reference to a compiler-generated method
    switch (\u003CPrivateImplementationDetails\u003E.ComputeStringHash(s))
    {
      case 215327700:
        if (!(s == "save_img"))
          break;
        Class67.SaveReport((XtraReport) object_0, string_1, string_2, ExportFormat.Image);
        break;
      case 372738696:
        if (!(s == "print"))
          break;
        Class67.smethod_116(object_0, string_1);
        break;
      case 373454533:
        if (!(s == "save_pdf"))
          break;
        Class67.SaveReport((XtraReport) object_0, string_1, string_2, ExportFormat.Pdf);
        break;
      case 564225976:
        if (!(s == "sendmail"))
          break;
        Class67.smethod_118(object_0, string_1, string_2);
        break;
      case 576156385:
        if (!(s == "review"))
          break;
        Form form = Class67.smethod_96(object_0, string_1, bool_0: bool_0);
        form.MdiParent = form_0;
        form.Show();
        break;
      case 875787685:
        if (!(s == "save_doc"))
          break;
        Class67.SaveReport((XtraReport) object_0, string_1, string_2, ExportFormat.Docx);
        break;
      case 1171448288:
        if (!(s == "save_html"))
          break;
        Class67.SaveReport((XtraReport) object_0, string_1, string_2, ExportFormat.Htm);
        break;
      case 2280453814:
        if (!(s == "save_xls"))
          break;
        Class67.SaveReport((XtraReport) object_0, string_1, string_2, ExportFormat.Xls);
        break;
    }
  }

  public static XtraReport smethod_114(
    object object_0,
    object object_1,
    object object_2,
    object object_3,
    string string_0,
    bool bool_0 = false,
    string string_1 = "",
    string string_2 = "",
    string string_3 = "",
    string string_4 = "",
    string string_5 = "",
    int int_0 = 0,
    int int_1 = 0,
    string string_6 = "",
    string string_7 = "",
    DateTime? nullable_0 = null,
    string string_8 = "",
    string string_9 = "",
    string string_10 = "",
    Decimal OperationAmount = 0M,
    string string_11 = "")
  {
    List<Parameter> source = new List<Parameter>();
    source.AddRange((IEnumerable<Parameter>) ((XtraReport) object_2).Parameters);
    string_4 = string_0 == "" ? "" : string_0 + " : ";
    string str1 = string_4;
    string str2;
    if (!(string_1 != "") && !(string_2 != ""))
      str2 = "";
    else
      str2 = strings.FROM + ":" + string_1 + " " + strings.TO + ":" + string_2;
    string_4 = str1 + str2;
    string_4 += string_7 != "" ? strings.Page_Postiton + ":" + string_7 : "";
    string_4 += string_11 != "" ? strings.emp_SalessRep + ":" + string_11 : "";
    object_2 = (object) Class67.loadReportsCommonProprties(object_2);
    try
    {
      ((XtraReport) object_2).Parameters["mobile1"].Value = (object) BasicVars.BrMobile1;
      ((XtraReport) object_2).Parameters["mobile2"].Value = (object) BasicVars.BrMobile2;
      ((XtraReport) object_2).Parameters["mobile3"].Value = (object) BasicVars.BrMobile3;
      ((XtraReport) object_2).Parameters["country"].Value = (object) BasicVars.BrCountry;
      ((XtraReport) object_2).Parameters["city"].Value = (object) BasicVars.BrCity;
      ((XtraReport) object_2).Parameters["address"].Value = (object) BasicVars.BrAdrress;
      ((XtraReport) object_2).Parameters["email"].Value = (object) BasicVars.Email;
      ((XtraReport) object_2).Parameters["website"].Value = (object) BasicVars.Website;
      ((XtraReport) object_2).Parameters["CompanyName"].Value = (object) BasicVars.CompanyName;
      (((XRControl) object_2).FindControl("xrPictureBox2", true) as XRPictureBox).Image = BasicVars.CompanyLogo.byteArrayToImage();
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "Invoicenotes")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "Invoicenotes",
          Type = typeof (string),
          Value = (object) string_8
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["Invoicenotes"].Value = (object) string_8;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "QRCode_Byte")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "QRCode_Byte",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_9
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["QRCode_Byte"].Value = (object) string_9;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "QRCode_Text")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "QRCode_Text",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_10
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["QRCode_Text"].Value = (object) string_10;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "From")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "From",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_1
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["From"].Value = (object) string_1;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "To")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "To",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_2
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["To"].Value = (object) string_2;
    }
    catch
    {
    }
    try
    {
      ((XRControl) object_2).FindControl("FromDate", true).Text = string_1;
      ((XRControl) object_2).FindControl("ToDate", true).Text = string_2;
    }
    catch
    {
    }
    try
    {
      ((XRControl) object_2).FindControl("From", true).Text = string_1;
      ((XRControl) object_2).FindControl("ToD", true).Text = string_2;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "PageRange")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "PageRange",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_3
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["PageRange"].Value = (object) string_3;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "Filters")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "Filters",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_4
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["Filters"].Value = (object) string_4;
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "currency")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "currency",
          Type = typeof (string),
          Visible = false,
          Value = (object) (" " + CurrencyInfo.currencyShortcut())
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["currency"].Value = (object) CurrencyInfo.currencyShortcut();
    }
    catch
    {
    }
    try
    {
      if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == "cFundBalance")))
      {
        Parameter parameter = new Parameter()
        {
          Name = "cFundBalance",
          Type = typeof (string),
          Visible = false,
          Value = (object) string_6
        };
        ((XtraReport) object_2).Parameters.Add(parameter);
      }
      else
        ((XtraReport) object_2).Parameters["cFundBalance"].Value = (object) string_6;
    }
    catch
    {
    }
    try
    {
      DbSet<ad_additional_currencies> additionalCurrencies1 = ConnectionTools.OpenConn().ad_additional_currencies;
      if (additionalCurrencies1.Count<ad_additional_currencies>() > 0)
      {
        foreach (ad_additional_currencies additionalCurrencies2 in additionalCurrencies1.ToList<ad_additional_currencies>())
        {
          string string_0_1 = "Curr_" + Regex.Replace(CurrencyInfo.SelectCurrencyByID(additionalCurrencies2.CurrencyID.Value).EnglishCurrencyName, "[^0-9A-Za-z_-]", "");
          Decimal num = additionalCurrencies2.value.Value;
          if (!source.Any<Parameter>((System.Func<Parameter, bool>) (u => u.Name == string_0_1)))
          {
            Parameter parameter = new Parameter()
            {
              Name = string_0_1,
              Type = typeof (Decimal),
              Visible = false,
              Value = (object) num
            };
            ((XtraReport) object_2).Parameters.Add(parameter);
          }
          else
            ((XtraReport) object_2).Parameters[string_0_1].Value = (object) num;
        }
      }
    }
    catch
    {
    }
    if (int_1 != 0)
      object_2 = (object) Class67.smethod_112(object_2, int_1, (object) string_5, int_0, nullable_0, OperationAmount);
    try
    {
      (((XRControl) object_2).FindControl("xrPictureBox2", true) as XRPictureBox).Image = BasicVars.CompanyLogo.byteArrayToImage();
    }
    catch
    {
    }
    return (XtraReport) object_2;
  }

  public static void SaveReport(
    XtraReport report,
    string AccessRule,
    string label,
    ExportFormat extention,
    int AccessLevel = 4)
  {
    report = Class67.smethod_97(report, AccessRule);
    report = Class67.loadReportsCommonProprties((object) report);
    if (report == null)
    {
      SplashScreenManager.CloseForm(false);
      Class88.Show(strings.ACCESS_DENIED, strings.YOU_DO_NOT_HAVE_PERMISSIONS_TO_EXECUTE_THIS_OPERATION, 0);
    }
    else
    {
      label = label.Replace(" ", "_");
      label = label.Replace("/", "_");
      label = label.Replace("\\", "_");
      label = Class67.smethod_65(label);
      System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
      saveFileDialog.Title = label;
      saveFileDialog.DefaultExt = label;
      saveFileDialog.RestoreDirectory = true;
      saveFileDialog.Filter = "All files (*.*)|*.*";
      string str = "";
      switch (extention)
      {
        case ExportFormat.Pdf:
          str = "pdf";
          break;
        case ExportFormat.Htm:
          str = "html";
          break;
        case ExportFormat.Docx:
          str = "docx";
          break;
        case ExportFormat.Xls:
          str = "xls";
          break;
        case ExportFormat.Image:
          str = "png";
          break;
      }
      saveFileDialog.FileName = label + "." + str;
      if (saveFileDialog.ShowDialog() != DialogResult.OK)
        return;
      label = saveFileDialog.FileName;
      switch (extention)
      {
        case ExportFormat.Pdf:
          PdfExportOptions options1 = new PdfExportOptions();
          options1.PdfACompatibility = PdfACompatibility.PdfA1b;
          IList<string> values = options1.Validate();
          if (values.Count > 0)
          {
            Class88.Show(strings.ERROR, string.Join(Environment.NewLine, (IEnumerable<string>) values), 0);
            break;
          }
          report.ExportToPdf(label, options1);
          break;
        case ExportFormat.Htm:
          HtmlExportOptions options2 = new HtmlExportOptions();
          options2.CharacterSet = "utf8";
          report.ExportToHtml(label, options2);
          break;
        case ExportFormat.Docx:
          DocxExportOptions options3 = new DocxExportOptions();
          report.ExportToDocx(label, options3);
          break;
        case ExportFormat.Xls:
          XlsExportOptions options4 = new XlsExportOptions();
          options4.RightToLeftDocument = BasicVars.RTL ? DefaultBoolean.True : DefaultBoolean.False;
          options4.SheetName = label;
          report.ExportToXls(label, options4);
          break;
        case ExportFormat.Image:
          report.ExportToImage(label, new ImageExportOptions()
          {
            Format = ImageFormat.Png,
            ExportMode = ImageExportMode.SingleFile
          });
          break;
      }
    }
  }