示例#1
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (!ValidateApprover())
        {
            return;
        }

        string strRequCode     = "";
        string strApproverName = "";
        string strApproverMail = "";

        clsRequisition.RequisitionMailType rmtApprover = clsRequisition.RequisitionMailType.SentToApproverGH;

        //using (clsUsers users = new clsUsers())
        //{
        //    users.Username = ddlDivision.SelectedValue.ToString();
        //    users.Fill();
        //    hdnDiviHeadMail.Value = users.Email;
        //}
        hdnDiviHeadMail.Value = clsUsers.GetEmail(ddlDivision.SelectedValue.ToString()).ToString();

        if (dgItems.Items.Count == 0)
        {
            divError.Visible = true;
            lblErrMsg.Text   = "Unable to send your request.<br>" +
                               "<table>" +
                               "<tr>" +
                               "<td style='vertical-align:top;'><b>Reason:</b></td>" +
                               "<td>You need to include at least one item to request. Make sure to click <b>Add New Item</b> button to include your requested item.</td>" +
                               "</tr>" +
                               "</table>";
        }
        else
        {
            if (HasEnoughBudget())
            {
                SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["Speedo"].ToString());
                cn.Open();
                SqlTransaction tran = cn.BeginTransaction();
                SqlCommand     cmd  = new SqlCommand("spREQUInsert", cn);
                cmd.Transaction = tran;
                try
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@username", SqlDbType.VarChar, 30);
                    cmd.Parameters.Add("@datereq", SqlDbType.DateTime);
                    cmd.Parameters.Add("@userrem", SqlDbType.VarChar, 255);
                    cmd.Parameters.Add("@rccode", SqlDbType.Char, 3);
                    cmd.Parameters.Add("@sprvcode", SqlDbType.VarChar, 30);
                    cmd.Parameters.Add("@sprvstat", SqlDbType.Char, 1);
                    cmd.Parameters.Add("@headcode", SqlDbType.VarChar, 30);
                    cmd.Parameters.Add("@headstat", SqlDbType.Char, 1);
                    cmd.Parameters.Add("@suppcode", SqlDbType.VarChar, 30);
                    cmd.Parameters.Add("@suppstat", SqlDbType.Char, 1);
                    cmd.Parameters.Add("@totcost", SqlDbType.Float);
                    cmd.Parameters.Add("@status", SqlDbType.Char);
                    cmd.Parameters.Add("@requcode", SqlDbType.Char, 9);

                    cmd.Parameters["@username"].Value = Request.Cookies["Speedo"]["UserName"];
                    cmd.Parameters["@datereq"].Value  = DateTime.Now;
                    cmd.Parameters["@userrem"].Value  = txtRemarks.Text;
                    cmd.Parameters["@rccode"].Value   = ddlChargeTo.SelectedValue;
                    cmd.Parameters["@headcode"].Value = ddlDivision.SelectedValue.ToString();
                    cmd.Parameters["@suppcode"].Value = ConfigurationManager.AppSettings["SuppliesCustodian"];
                    cmd.Parameters["@suppstat"].Value = "F";
                    cmd.Parameters["@totcost"].Value  = Math.Round(Convert.ToDouble(lblTotalCost.Text), 2);

                    // the requestor is the division head
                    if (Request.Cookies["Speedo"]["UserName"].ToString() == ddlDivision.SelectedValue.ToString())
                    {
                        strApproverName = txtSuppName.Text;
                        strApproverMail = hdnSuppMail.Value;
                        rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverSC;

                        cmd.Parameters["@sprvcode"].Value = "";
                        cmd.Parameters["@sprvstat"].Value = "X";
                        cmd.Parameters["@headstat"].Value = "A";
                        cmd.Parameters["@status"].Value   = "A";
                        clsRequisition.DeductBudget(ddlChargeTo.SelectedValue, Convert.ToDouble(lblTotalCost.Text));
                    }

                    // the requestor is the group head
                    else if (Request.Cookies["Speedo"]["UserName"].ToString() == ddlGrpHead.SelectedValue)
                    {
                        //if (clsRequisition.IsHeadApprovalRequired(ddlChargeTo.SelectedValue, ddlDivision.SelectedValue.ToString()))
                        if (clsModuleApprover.IsDivisionHeadApprovalRequired(clsModule.RequisitionModule, ddlChargeTo.SelectedValue.ToString(), ddlDivision.SelectedValue.ToString()))
                        {
                            strApproverName = ddlDivision.SelectedItem.Text;
                            strApproverMail = hdnDiviHeadMail.Value;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverDH;

                            cmd.Parameters["@sprvcode"].Value = ddlGrpHead.SelectedValue;
                            cmd.Parameters["@sprvstat"].Value = "A";
                            cmd.Parameters["@headstat"].Value = "F";
                            cmd.Parameters["@status"].Value   = "F";
                        }
                        else
                        {
                            strApproverName = txtSuppName.Text;
                            strApproverMail = hdnSuppMail.Value;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverSC;

                            cmd.Parameters["@sprvcode"].Value = ddlGrpHead.SelectedValue;
                            cmd.Parameters["@sprvstat"].Value = "A";
                            cmd.Parameters["@headstat"].Value = "N";
                            cmd.Parameters["@status"].Value   = "A";
                            clsRequisition.DeductBudget(ddlChargeTo.SelectedValue, Convert.ToDouble(lblTotalCost.Text));
                        }
                    }
                    //Update by Charlie Bachiller 2-20-2013
                    //Normal User
                    else
                    {
                        // the division head is the default approver
                        if (ddlGrpHead.SelectedValue == "none")
                        {
                            strApproverName = ddlDivision.SelectedItem.Text;
                            strApproverMail = hdnDiviHeadMail.Value;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverDH;

                            cmd.Parameters["@sprvcode"].Value = "";
                            cmd.Parameters["@sprvstat"].Value = "X";
                            cmd.Parameters["@headstat"].Value = "F";
                            cmd.Parameters["@status"].Value   = "F";
                        }
                        //The division head and group head is the same
                        else if (ddlGrpHead.SelectedValue.ToString() == ddlDivision.SelectedValue.ToString())
                        {
                            strApproverName = ddlDivision.SelectedItem.Text;
                            strApproverMail = hdnDiviHeadMail.Value;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverDH;

                            cmd.Parameters["@sprvcode"].Value = "";
                            cmd.Parameters["@sprvstat"].Value = "X";
                            cmd.Parameters["@headstat"].Value = "F";
                            cmd.Parameters["@status"].Value   = "F";
                        }
                        else
                        {
                            strApproverName = ddlGrpHead.SelectedItem.Text;
                            strApproverMail = clsUsers.GetEmail(ddlGrpHead.SelectedValue);;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverGH;

                            cmd.Parameters["@sprvcode"].Value = ddlGrpHead.SelectedValue;
                            cmd.Parameters["@sprvstat"].Value = "F";
                            cmd.Parameters["@headstat"].Value = "F";
                            cmd.Parameters["@status"].Value   = "F";
                        }
                    }

                    cmd.Parameters["@requcode"].Direction = ParameterDirection.Output;
                    cmd.ExecuteNonQuery();
                    strRequCode = cmd.Parameters["@requcode"].Value.ToString();
                    cmd.Parameters.Clear();

                    cmd.CommandType = CommandType.Text;
                    foreach (DataGridItem itm in dgItems.Items)
                    {
                        HiddenField hdnItemCode = (HiddenField)itm.FindControl("hdnItemCode");
                        Label       lblItemDesc = (Label)itm.FindControl("lblItemDesc");
                        Label       lblQty      = (Label)itm.FindControl("lblQty");
                        Label       lblUnit     = (Label)itm.FindControl("lblUnit");
                        Label       lblPrice    = (Label)itm.FindControl("lblPrice");
                        Label       lblTPrice   = (Label)itm.FindControl("lblTPrice");
                        Label       lblReason   = (Label)itm.FindControl("lblReason");

                        cmd.CommandText = "INSERT INTO CIS.RequisitionDetails VALUES('" + strRequCode + "',@itemcode,@itemdesc,'" + lblQty.Text + "','0',@unit,'" + lblPrice.Text + "','" + lblTPrice.Text + "',@reason,'','1')";
                        cmd.Parameters.Add("@itemcode", SqlDbType.VarChar, 32);
                        cmd.Parameters.Add("@itemdesc", SqlDbType.VarChar, 52);
                        cmd.Parameters.Add("@unit", SqlDbType.VarChar, 12);
                        cmd.Parameters.Add("@reason", SqlDbType.VarChar, 100);
                        cmd.Parameters["@itemcode"].Value = hdnItemCode.Value;
                        cmd.Parameters["@itemdesc"].Value = lblItemDesc.Text;
                        cmd.Parameters["@unit"].Value     = lblUnit.Text;
                        cmd.Parameters["@reason"].Value   = lblReason.Text;
                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                    }
                    tran.Commit();
                }
                catch
                {
                    tran.Rollback();
                }
                finally
                {
                    cn.Close();
                }

                clsRequisition.SendNotification(rmtApprover, txtRequestorName.Text, strApproverName, strApproverMail, strRequCode);
                clsRequisition.SendNotification(clsRequisition.RequisitionMailType.SentToRequestor, txtRequestorName.Text, strApproverName, clsUsers.GetEmail(Request.Cookies["Speedo"]["UserName"].ToString()), strRequCode);

                Response.Redirect("RequMenu.aspx");
            }
        }
    }
示例#2
0
    protected void btnSend_Click(object sender, EventArgs e)
    {
        DataTable tblCart = ViewState["Cart"] as DataTable;

        if (HasEnoughBudget())
        {
            if (tblCart.Rows.Count > 0)
            {
                bool   blnHasBudget    = true;
                string strApproverName = "";
                string strApproverMail = "";
                clsRequisition.RequisitionMailType rmtApprover = clsRequisition.RequisitionMailType.SentToApproverGH;
                tblCart = ViewState["Cart"] as DataTable;

                SqlConnection cn = new SqlConnection(clsSpeedo.SpeedoConnectionString);
                cn.Open();
                SqlTransaction tran = cn.BeginTransaction();
                SqlCommand     cmd  = cn.CreateCommand();
                cmd.Transaction = tran;

                try
                {
                    cmd.CommandText = "DELETE FROM CIS.RequisitionDetails WHERE requcode='" + Request.QueryString["requcode"] + "'";
                    cmd.ExecuteNonQuery();

                    foreach (DataRow dr in tblCart.Rows)
                    {
                        //HiddenField phdnItemCode = ;
                        //TextBox ptxtQty = (TextBox)itm.FindControl("txtQty");
                        //Label plblPrice = (Label)itm.FindControl("lblPrice");
                        //double dblTPrice = (Convert.ToDouble(ptxtQty.Text) * Convert.ToDouble(plblPrice.Text));
                        //if (clsRequisition.HasBudget(Request.QueryString["requcode"], double.Parse(dr["tqty"].ToString()), hdnChargeTo.Value, dr["itemcode"].ToString()))
                        //{

                        cmd.CommandText = "INSERT INTO CIS.RequisitionDetails (requcode, itemcode, itemdesc, qty, soqty, unit, price, tprice, reason, supprem, status) VALUES(@requcode, @itemcode, @itemdesc, @qty, '0', @unit, @price, @tprice, '', '', '1')";
                        cmd.Parameters.Add(new SqlParameter("@itemCode", dr["itemcode"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@qty", dr["qty"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@unit", dr["unit"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@price", dr["price"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@tprice", dr["tprice"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@itemdesc", dr["itemdesc"].ToString()));
                        cmd.Parameters.Add(new SqlParameter("@requcode", Request.QueryString["requcode"]));

                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();

                        //divError.Visible = false;
                        //}
                        //else
                        //{
                        //    //ptxtQty.BackColor = System.Drawing.Color.MistyRose;
                        //    lblErrMsg.Text = "&nbsp;! Not Enought Budget.<br>";
                        //    divError.Visible = true;
                        //    blnHasBudget = false;
                        //}
                    }

                    clsRequisition requisition = new clsRequisition(txtRequCode.Text);
                    //requisition.UpdateTotalCost();
                    cmd.CommandText = "UPDATE CIS.Requisition SET totcost=@totcost WHERE requcode='" + Request.QueryString["requcode"] + "'";
                    cmd.Parameters.Add(new SqlParameter("@totcost", GetTotalCost()));
                    cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();

                    if (blnHasBudget)
                    {
                        // the requestor is the group head
                        if (Request.Cookies["Speedo"]["UserName"].ToString() == hdnGrpHeadCode.Value)
                        {
                            strApproverName = txtDiviHeadName.Text;
                            strApproverMail = hdnDiviHeadMail.Value;
                            rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverDH;
                            cmd.CommandText = "UPDATE CIS.Requisition SET status='F',sprvstat='A',headstat='F',suppstat='F',userrem=@userrem WHERE requcode='" + txtRequCode.Text + "'";
                        }
                        else
                        {
                            // the default approver is the division head
                            if (hdnGrpHeadCode.Value == "")
                            {
                                strApproverName = txtDiviHeadName.Text;
                                strApproverMail = hdnDiviHeadMail.Value;
                                rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverDH;
                                cmd.CommandText = "UPDATE CIS.Requisition SET status='F',sprvstat='X',headstat='F',suppstat='F',userrem=@userrem WHERE requcode='" + txtRequCode.Text + "'";
                            }
                            else
                            {
                                strApproverName = txtGrpHeadName.Text;
                                strApproverMail = hdnGrpHeadMail.Value;
                                rmtApprover     = clsRequisition.RequisitionMailType.SentToApproverGH;
                                cmd.CommandText = "UPDATE CIS.Requisition SET status='F',sprvstat='F',headstat='F',suppstat='F',userrem=@userrem WHERE requcode='" + txtRequCode.Text + "'";
                            }
                        }

                        cmd.Parameters.Add("@userrem", SqlDbType.VarChar, 200);
                        cmd.Parameters["@userrem"].Value = txtIntended.Text;
                        cmd.ExecuteNonQuery();
                        tran.Commit();
                        clsRequisition.SendNotification(rmtApprover, txtRequestorName.Text, strApproverName, strApproverMail, txtRequCode.Text);
                        clsRequisition.SendNotification(clsRequisition.RequisitionMailType.SentToRequestor, txtRequestorName.Text, strApproverName, clsUsers.GetEmail(Request.Cookies["Speedo"]["UserName"].ToString()), txtRequCode.Text);
                    }
                }
                catch
                {
                    lblErrMsg.Text   = "Error on saving. Please try again.<br>";
                    divError.Visible = true;
                }

                finally
                {
                    cn.Close();
                    Response.Redirect("RequMenu.aspx");
                }
            }
            else
            {
                lblErrMsg.Text   = "No item has been added. Cannot continue.<br>";
                divError.Visible = true;
            }
        }

        //HasEnoughBudget();
        //if (!HasItemPrice())
        //{
        //    return;
        //}

        //if (Convert.ToDouble(lblRemBudget.Text) > (Convert.ToDouble(txtQty1.Text) * Convert.ToDouble(lblPriceNew.Text)))
        //{
        //    try
        //    {
        //        DataTable tblCart = ViewState["Cart"] as DataTable;
        //        if (!IsItemRequested(clsRequisitionOracle.GetItemNumber(ddlItem1.SelectedValue.ToString())))
        //        {
        //            DataRow drowCart = tblCart.NewRow();
        //            drowCart["itemcode"] = clsRequisitionOracle.GetItemNumber(ddlItem1.SelectedValue.ToString());
        //            drowCart["itemdesc"] = ddlItem1.SelectedItem.Text;
        //            drowCart["qty"] = txtQty1.Text;
        //            drowCart["unit"] = lblUnitNew.Text;
        //            drowCart["price"] = lblPriceNew.Text;
        //            drowCart["tprice"] = Convert.ToDecimal(txtQty1.Text) * Convert.ToDecimal(lblPriceNew.Text);
        //            drowCart["reason"] = txtReason1.Text;
        //            tblCart.Rows.Add(drowCart);
        //        }
        //        txtQty1.Text = "";
        //        txtReason1.Text = "";
        //        ViewState["Cart"] = tblCart;
        //        dgItems.DataSource = tblCart;
        //        dgItems.DataBind();
        //        HasEnoughBudget();
        //    }
        //    catch
        //    {
        //        Response.Redirect("RequNew.aspx");
        //    }
        //}
        //else
        //{
        //    imgMessage.ImageUrl = "~/Support/close64.png";
        //    lblMessage.ForeColor = System.Drawing.Color.Red;
        //    lblMessage.Text = "Not enough budget.";
        //}
    }