Exemplo n.º 1
0
    protected void GrdNote_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
            UserView userView = UserView.GetInstance();

            // if there exists note with the type not in the list of types offered on this screen, use this to add below with "foundRows"
            DataTable allNoteTypes = DBBase.GetGenericDataTable(null, "NoteType", "note_type_id", "descr");
            DataTable allBodyParts = DBBase.GetGenericDataTable(null, "BodyPart", "body_part_id", "descr");

            DataTable noteTypes = IsValidFormScreen() ? ScreenNoteTypesDB.GetDataTable_ByScreenID(GetFormScreen()) : allNoteTypes;
            DataTable sites     = SiteDB.GetDataTable();

            DataTable dt       = ViewState["noteinfo_data"] as DataTable;
            bool      tblEmpty = (dt.Rows.Count == 1 && dt.Rows[0][0] == DBNull.Value);
            if (!tblEmpty && e.Row.RowType == DataControlRowType.DataRow)
            {
                Label     lblId     = (Label)e.Row.FindControl("lblId");
                DataRow[] foundRows = dt.Select("note_id=" + lblId.Text);
                DataRow   thisRow   = foundRows[0];


                bool isDeleted = thisRow["deleted_by"] != DBNull.Value || thisRow["date_deleted"] != DBNull.Value;


                DropDownList ddlDate_Day   = (DropDownList)e.Row.FindControl("ddlDate_Day");
                DropDownList ddlDate_Month = (DropDownList)e.Row.FindControl("ddlDate_Month");
                DropDownList ddlDate_Year  = (DropDownList)e.Row.FindControl("ddlDate_Year");
                if (ddlDate_Day != null && ddlDate_Month != null && ddlDate_Year != null)
                {
                    ddlDate_Day.Items.Add(new ListItem("--", "-1"));
                    ddlDate_Month.Items.Add(new ListItem("--", "-1"));
                    ddlDate_Year.Items.Add(new ListItem("----", "-1"));

                    for (int i = 1; i <= 31; i++)
                    {
                        ddlDate_Day.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }
                    for (int i = 1; i <= 12; i++)
                    {
                        ddlDate_Month.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }
                    for (int i = DateTime.Today.Year - 1; i <= DateTime.Today.Year + 1; i++)
                    {
                        ddlDate_Year.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }

                    if (thisRow["date_added"] != DBNull.Value)
                    {
                        DateTime Date = Convert.ToDateTime(thisRow["date_added"]);

                        ddlDate_Day.SelectedValue   = Date.Day.ToString();
                        ddlDate_Month.SelectedValue = Date.Month.ToString();

                        int firstYearSelectable = Convert.ToInt32(ddlDate_Year.Items[1].Value);
                        int lastYearSelectable  = Convert.ToInt32(ddlDate_Year.Items[ddlDate_Year.Items.Count - 1].Value);
                        if (Date.Year < firstYearSelectable)
                        {
                            ddlDate_Year.Items.Insert(1, new ListItem(Date.Year.ToString(), Date.Year.ToString()));
                        }
                        if (Date.Year > lastYearSelectable)
                        {
                            ddlDate_Year.Items.Add(new ListItem(Date.Year.ToString(), Date.Year.ToString()));
                        }

                        ddlDate_Year.SelectedValue = Date.Year.ToString();
                    }
                }


                DropDownList ddlNoteType = (DropDownList)e.Row.FindControl("ddlNoteType");
                if (ddlNoteType != null)
                {
                    ddlNoteType.DataSource     = noteTypes;
                    ddlNoteType.DataTextField  = "descr";
                    ddlNoteType.DataValueField = "note_type_id";
                    ddlNoteType.DataBind();

                    // if this note type is not in the list for this screen, add it to the edit list
                    bool found = false;
                    foreach (ListItem li in ddlNoteType.Items)
                    {
                        if (li.Value == thisRow["note_type_id"].ToString())
                        {
                            found = true;
                        }
                    }
                    if (!found)
                    {
                        ddlNoteType.Items.Add(new ListItem(thisRow["note_type_descr"].ToString(), thisRow["note_type_id"].ToString()));
                    }

                    ddlNoteType.SelectedValue = thisRow["note_type_id"].ToString();
                }

                DropDownList ddlBodyPart = (DropDownList)e.Row.FindControl("ddlBodyPart");
                if (ddlBodyPart != null)
                {
                    ddlBodyPart.Items.Clear();
                    ddlBodyPart.Items.Add(new ListItem("", "-1"));
                    for (int i = 0; i < allBodyParts.Rows.Count; i++)
                    {
                        ddlBodyPart.Items.Add(new ListItem(allBodyParts.Rows[i]["body_part_id"].ToString() + ". " + allBodyParts.Rows[i]["descr"].ToString(), allBodyParts.Rows[i]["body_part_id"].ToString()));
                    }

                    ddlBodyPart.SelectedValue = thisRow["body_part_id"].ToString();
                }


                ImageButton lnkEdit = (ImageButton)e.Row.FindControl("lnkEdit");
                if (lnkEdit != null)
                {
                    lnkEdit.Visible = !isDeleted &&
                                      (userView.IsAdminView ||
                                       (thisRow["added_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["added_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])) ||
                                       (thisRow["modified_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["modified_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])));
                }

                /*
                 * DropDownList ddlSite = (DropDownList)e.Row.FindControl("ddlSite");
                 * if (ddlSite != null)
                 * {
                 *  ddlSite.Items.Add(new ListItem("--", "-1"));
                 *  foreach (DataRow row in sites.Rows)
                 *      ddlSite.Items.Add(new ListItem(row["name"].ToString(), row["site_id"].ToString()));
                 *  ddlSite.SelectedValue = thisRow["site_id"].ToString();
                 * }
                 */


                ImageButton lnkDelete = (ImageButton)e.Row.FindControl("lnkDelete");
                if (lnkDelete != null)
                {
                    lnkDelete.Visible = userView.IsAdminView ||
                                        (thisRow["added_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["added_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])) ||
                                        (thisRow["modified_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["modified_by_staff_id"]) == Convert.ToInt32(Session["StaffID"]));

                    if (isDeleted)
                    {
                        lnkDelete.CommandName = "_UnDelete";
                        lnkDelete.ImageUrl    = "~/images/tick-24.png";
                        lnkDelete.ToolTip     = "Un-Delete";
                    }
                }

                if (isDeleted)
                {
                    e.Row.AddCssClass("deleted_note");
                    e.Row.Style["display"] = "none";
                    e.Row.Style["color"]   = "gray";
                }


                Utilities.AddConfirmationBox(e);
                if ((e.Row.RowState & DataControlRowState.Edit) > 0)
                {
                    Utilities.SetEditRowBackColour(e, System.Drawing.Color.LightGoldenrodYellow);
                }
            }
            if (e.Row.RowType == DataControlRowType.Footer)
            {
                DropDownList ddlDate_Day   = (DropDownList)e.Row.FindControl("ddlNewDate_Day");
                DropDownList ddlDate_Month = (DropDownList)e.Row.FindControl("ddlNewDate_Month");
                DropDownList ddlDate_Year  = (DropDownList)e.Row.FindControl("ddlNewDate_Year");
                if (ddlDate_Day != null && ddlDate_Month != null && ddlDate_Year != null)
                {
                    ddlDate_Day.Items.Add(new ListItem("--", "-1"));
                    ddlDate_Month.Items.Add(new ListItem("--", "-1"));
                    ddlDate_Year.Items.Add(new ListItem("----", "-1"));

                    for (int i = 1; i <= 31; i++)
                    {
                        ddlDate_Day.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }
                    for (int i = 1; i <= 12; i++)
                    {
                        ddlDate_Month.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }
                    for (int i = DateTime.Today.Year - 1; i <= DateTime.Today.Year + 1; i++)
                    {
                        ddlDate_Year.Items.Add(new ListItem(i.ToString(), i.ToString()));
                    }

                    ddlDate_Day.SelectedValue   = DateTime.Today.Day.ToString();
                    ddlDate_Month.SelectedValue = DateTime.Today.Month.ToString();
                    ddlDate_Year.SelectedValue  = DateTime.Today.Year.ToString();
                }

                DropDownList ddlNoteType = (DropDownList)e.Row.FindControl("ddlNewNoteType");
                ddlNoteType.DataSource = noteTypes;
                ddlNoteType.DataBind();

                DropDownList ddlBodyPart = (DropDownList)e.Row.FindControl("ddlNewBodyPart");
                ddlBodyPart.Items.Add(new ListItem("", "-1"));
                for (int i = 0; i < allBodyParts.Rows.Count; i++)
                {
                    ddlBodyPart.Items.Add(new ListItem(allBodyParts.Rows[i]["body_part_id"].ToString() + ". " + allBodyParts.Rows[i]["descr"].ToString(), allBodyParts.Rows[i]["body_part_id"].ToString()));
                }


                // set note text in cookie in case user logged out, to keep note text for this user and this entity
                TextBox txtNewText = (TextBox)e.Row.FindControl("txtNewText");
                txtNewText.Attributes["onkeyup"] = "set_note(document.getElementById('" + txtNewText.ClientID + "'), document.getElementById('" + userID.ClientID + "').value, document.getElementById('" + entityID.ClientID + "').value);";


                /*
                 * DropDownList ddlSite = (DropDownList)e.Row.FindControl("ddlNewSite");
                 * ddlSite.Items.Add(new ListItem("--", "-1"));
                 * foreach (DataRow row in sites.Rows)
                 *  ddlSite.Items.Add(new ListItem(row["name"].ToString(), row["site_id"].ToString()));
                 * ddlSite.SelectedValue = Session["SiteID"].ToString();
                 */
            }
        }
        catch (Exception ex)
        {
            if (Utilities.IsDev())
            {
                throw;
            }
            else
            {
                HideTableAndSetErrorMessage(ex is CustomMessageException ? ex.Message : "");
            }
        }
    }
Exemplo n.º 2
0
    protected void FillNoteGrid()
    {
        if (!IsValidFormID())
        {
            if (!Utilities.IsDev() || Request.QueryString["id"] != null)
            {
                HideTableAndSetErrorMessage();
                return;
            }

            // can still view all if dev and no id set .. but no insert/edit
            GrdNote.Columns[5].Visible = false;
        }

        if (!IsValidFormScreen() && !Utilities.IsDev())
        {
            HideTableAndSetErrorMessage();
            return;
        }


        DataTable dt = IsValidFormID() ? NoteDB.GetDataTable_ByEntityID(GetFormID(), null, true, true) : NoteDB.GetDataTable(true);


        if (IsValidFormScreen())
        {
            Hashtable allowedNoteTypes = new Hashtable();
            DataTable noteTypes        = ScreenNoteTypesDB.GetDataTable_ByScreenID(GetFormScreen());
            for (int i = 0; i < noteTypes.Rows.Count; i++)
            {
                allowedNoteTypes[Convert.ToInt32(noteTypes.Rows[i]["note_type_id"])] = 1;
            }

            for (int i = dt.Rows.Count - 1; i >= 0; i--)
            {
                if (allowedNoteTypes[Convert.ToInt32(dt.Rows[i]["note_type_id"])] == null)
                {
                    dt.Rows.RemoveAt(i);
                }
            }
        }

        UserView userView         = UserView.GetInstance();
        bool     canSeeModifiedBy = userView.IsStakeholder || userView.IsMasterAdmin;

        dt.Columns.Add("last_modified_note_info_visible", typeof(Boolean));
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dt.Rows[i]["last_modified_note_info_visible"] = canSeeModifiedBy;
        }


        ViewState["noteinfo_data"] = dt;



        // add note info to hidden field to use when emailing notes

        string emailBodyText = string.Empty;

        Booking booking = BookingDB.GetByEntityID(GetFormID());

        if (booking != null)
        {
            emailBodyText += @"<br /><br />
<u>Treatment Information</u>
<br />
<table border=""0"" cellpadding=""0"" cellspacing=""0"">" +
                             (booking.Patient == null ? "" : @"<tr><td>Patient</td><td style=""width:10px;""></td><td>" + booking.Patient.Person.FullnameWithoutMiddlename + @"</td></tr>") +
                             (booking.Offering == null ? "" : @"<tr><td>Service</td><td></td><td>" + booking.Offering.Name + @"</td></tr>") + @"
    <tr><td>Date</td><td></td><td>" + booking.DateStart.ToString("dd-MM-yyyy") + @"</td></tr>
    <tr><td>Provider</td><td></td><td>" + booking.Provider.Person.FullnameWithoutMiddlename + @"</td></tr>
</table>";
        }

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            Note n = NoteDB.Load(dt.Rows[i]);
            emailBodyText += "<br /><br /><u>Note (" + n.DateAdded.ToString("dd-MM-yyyy") + ")</u><br />" + n.Text.Replace(Environment.NewLine, "<br />");
        }
        emailText.Value = emailBodyText + "<br /><br />" + SystemVariableDB.GetByDescr("LettersEmailSignature").Value;;



        if (dt.Rows.Count > 0)
        {
            if (IsPostBack && ViewState["noteinfo_sortexpression"] != null && ViewState["noteinfo_sortexpression"].ToString().Length > 0)
            {
                DataView dataView = new DataView(dt);
                dataView.Sort      = ViewState["noteinfo_sortexpression"].ToString();
                GrdNote.DataSource = dataView;
            }
            else
            {
                GrdNote.DataSource = dt;
            }


            try
            {
                GrdNote.DataBind();
            }
            catch (Exception ex)
            {
                this.lblErrorMessage.Visible = true;
                this.lblErrorMessage.Text    = ex.ToString();
            }
        }
        else
        {
            dt.Rows.Add(dt.NewRow());
            GrdNote.DataSource = dt;
            GrdNote.DataBind();

            int TotalColumns = GrdNote.Rows[0].Cells.Count;
            GrdNote.Rows[0].Cells.Clear();
            GrdNote.Rows[0].Cells.Add(new TableCell());
            GrdNote.Rows[0].Cells[0].ColumnSpan = TotalColumns;
            GrdNote.Rows[0].Cells[0].Text       = "No Record Found";
        }


        Tuple <string, string, string, string> refsEmailInfo = GetReferrersEmail();
        ImageButton btnEmail = GrdNote.HeaderRow.FindControl("btnEmail") as ImageButton;

        if (refsEmailInfo != null)
        {
            btnEmail.Visible = true;
            ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenRefEmail")).Value           = refsEmailInfo.Item1;
            ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenRefName")).Value            = refsEmailInfo.Item2;
            ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenBookingOrg")).Value         = refsEmailInfo.Item3;
            ((HiddenField)GrdNote.HeaderRow.FindControl("HiddenBookingPatientName")).Value = refsEmailInfo.Item4;
        }
        else
        {
            btnEmail.Visible = false;
        }

        DisallowAddEditIfNoPermissions(); // place this after databinding
    }