private void BindPOAddEdit(string mrp_number, string type)
        {
            DataTable dtRecord = MRPClass.POAddEdit_Table(mrp_number, type);

            POAddEditGrid.DataSource   = dtRecord;
            POAddEditGrid.KeyFieldName = "PK";
            POAddEditGrid.DataBind();

            //for row updating
            DataSet ds = new DataSet();

            ds.Tables.Add(dtRecord);
            Session["DataSet"] = ds;
        }
        protected void POAddEditGrid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            ASPxTextBox qty   = POAddEditGrid.FindEditRowCellTemplateControl((GridViewDataColumn)POAddEditGrid.Columns["POQty"], "POQty") as ASPxTextBox;
            ASPxTextBox cost  = POAddEditGrid.FindEditRowCellTemplateControl((GridViewDataColumn)POAddEditGrid.Columns["POCost"], "POCost") as ASPxTextBox;
            ASPxTextBox total = POAddEditGrid.FindEditRowCellTemplateControl((GridViewDataColumn)POAddEditGrid.Columns["POTotalCost"], "POTotalCost") as ASPxTextBox;
            //ASPxGridView grid = sender as ASPxGridView;
            //MRPClass.PrintString(e.NewValues["POQty"].ToString());
            //e.Cancel = true;
            //grid.CancelEdit();

            DataSet      ds        = (DataSet)Session["DataSet"];
            ASPxGridView gridView  = (ASPxGridView)sender;
            DataTable    dataTable = ds.Tables[0];

            dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["PK"] };
            DataRow row = dataTable.Rows.Find(e.Keys["PK"]);

            row["POQty"]       = qty.Value.ToString();
            row["POCost"]      = cost.Value.ToString();
            row["POTotalCost"] = total.Value.ToString();


            IDictionaryEnumerator enumerator = e.NewValues.GetEnumerator();

            enumerator.Reset();

            while (enumerator.MoveNext())
            {
                //MRPClass.PrintString(enumerator.Key.ToString());
                row[enumerator.Key.ToString()] = enumerator.Value.ToString();
            }
            gridView.CancelEdit();
            e.Cancel = true;


            POAddEditGrid.DataSource   = dataTable;
            POAddEditGrid.KeyFieldName = "PK";
            POAddEditGrid.DataBind();
        }
        protected void Create_Click(object sender, EventArgs e)
        {
            CheckCreatorKey();
            SqlConnection conn = new SqlConnection(GlobalClass.SQLConnString());

            conn.Open();

            if (DocNumber.Value != null)
            {
                ExpDelivery.ClientEnabled = true;
                Vendor.ClientEnabled      = true;
                Currency.ClientEnabled    = true;
                Site.ClientEnabled        = true;
                Terms.ClientEnabled       = true;
                WareHouse.ClientEnabled   = true;
                Location.ClientEnabled    = true;
                ProCategory.ClientEnabled = true;
            }

            List <object> selectedValues = POAddEditGrid.GetSelectedFieldValues(new string[] { "PK", "TableIdentifier", "MRPCategory", "Item", "Qty", "UOM", "Cost", "TotalCost", "POQty", "POCost", "POTotalCost", "TaxGroup", "TaxItemGroup" }) as List <object>;

            if (selectedValues.Count == 0)
            {
                ItemsEmpty.HeaderText     = "Alert";
                ItemsEmptyLabel.Text      = "No Selected Items";
                ItemsEmpty.ShowOnPageLoad = true;
            }

            foreach (object[] obj in selectedValues)
            {
                string pk         = obj[0].ToString();
                string identifier = obj[1].ToString();
                string category   = obj[2].ToString();
                string item       = obj[3].ToString();
                int    slashIndex = item.IndexOf("/");
                string item_code  = item.Substring(0, slashIndex);
                string qty        = obj[4].ToString();
                string uom        = obj[5].ToString();
                string cost       = obj[6].ToString();
                string total      = obj[7].ToString();
                string po_qty     = obj[8].ToString();
                string po_cost    = obj[9].ToString();
                string po_total   = obj[10].ToString();
                string taxgroup   = obj[11].ToString();
                string taxitem    = obj[12].ToString();

                if (!string.IsNullOrEmpty(pk) && !string.IsNullOrEmpty(identifier) && !string.IsNullOrEmpty(category) && !string.IsNullOrEmpty(item) && !string.IsNullOrEmpty(qty) && !string.IsNullOrEmpty(uom) && !string.IsNullOrEmpty(cost) && !string.IsNullOrEmpty(total) && !string.IsNullOrEmpty(po_qty) && !string.IsNullOrEmpty(po_cost) && !string.IsNullOrEmpty(po_total) && !string.IsNullOrEmpty(taxgroup) && !string.IsNullOrEmpty(taxitem))
                {
                    //CREATE PO NUMBER

                    //Declare Variables
                    string DocPref = "", strDocNum = "";
                    int    DocNum = 0;

                    //QUERY PO NUMBER TO START TO...
                    string query = "SELECT [DocumentPrefix],[DocumentNum] FROM " + MRPClass.DocNumberTableName() + " where DocumentPrefix = 'PO'";

                    SqlCommand    cmd    = new SqlCommand(query, conn);
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        //GET DATA...
                        DocPref = reader[0].ToString();
                        DocNum  = Convert.ToInt32(reader[1].ToString());
                    }
                    reader.Close();

                    //INCREASE IN DOCNUMBER INTEGER (SEE SQL DATABASE FOR CLARIFICATION)
                    DocNum   += 1;
                    strDocNum = DocNum.ToString("00000000#");
                    //CREATED PO NUMBER
                    string PONumber  = DocPref + "-" + Session["EntityCode"].ToString() + "-" + strDocNum;
                    string MRPnumber = DocNumber.Value.ToString();

                    //UPDATE PO NUMBER IS INCREASE (SEE SQL DATABASE FOR CLARIFICATION)
                    string update = "UPDATE " + MRPClass.DocNumberTableName() + " SET [DocumentNum] = '" + DocNum + "' WHERE [DocumentPrefix] = 'PO'";
                    cmd = new SqlCommand(update, conn);
                    int result = cmd.ExecuteNonQuery();

                    if (result == 0)
                    {
                        return;
                    }

                    string terms = "";
                    if (Terms.Value != null)//IF TERMS COMBOBOX NULL/EMPTY VALUE
                    {
                        terms = Terms.Value.ToString();
                    }

                    //INSERT INFO IN PO CREATION TABLE
                    string insert = "INSERT INTO " + MRPClass.POTableName() + " ([MRPNumber],[PONumber],[CreatorKey], [ExpectedDate] ,[VendorCode], [PaymentTerms], [CurrencyCode], [InventSite], [InventSiteWarehouse], [InventSiteWarehouseLocation]) VALUES (@MRPNumber, @PONumber, @CreatorKey, @expdate, @vendor, @terms, @currency, @site, @warehouse, @location)";
                    cmd = new SqlCommand(insert, conn);
                    cmd.Parameters.AddWithValue("MRPNumber", MRPnumber);
                    cmd.Parameters.AddWithValue("PONumber", PONumber);
                    cmd.Parameters.AddWithValue("CreatorKey", Session["CreatorKey"].ToString());
                    cmd.Parameters.AddWithValue("@expdate", ExpDelivery.Value.ToString());
                    cmd.Parameters.AddWithValue("@vendor", Vendor.Value.ToString());
                    cmd.Parameters.AddWithValue("@terms", terms);
                    cmd.Parameters.AddWithValue("@currency", Currency.Value.ToString());
                    cmd.Parameters.AddWithValue("@site", Site.Value.ToString());
                    cmd.Parameters.AddWithValue("@warehouse", WareHouse.Value.ToString());
                    cmd.Parameters.AddWithValue("@location", Location.Value.ToString());
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();

                    switch (identifier)
                    {
                    case "1":    //Direct Materials
                        string     update_materials = "UPDATE " + MRPClass.DirectMatTable() + " SET [QtyPO] = '" + po_qty + "' WHERE [PK] = '" + pk + "'";
                        SqlCommand cmd_mat          = new SqlCommand(update_materials, conn);
                        cmd_mat.ExecuteNonQuery();

                        string insert_mat_po = "INSERT " + MRPClass.POCreationTableName() + " ([PONumber],[ItemCode],[TaxGroup],[TaxItemGroup],[Qty],[Cost],[TotalCost], [ItemPK], [Identifier]) VALUES (@ponumber, @code, @taxgroup, @taxitem, @poqty, @pocost, @pototal, @itempk, @identifier)";

                        SqlCommand cmd_mat_po = new SqlCommand(insert_mat_po, conn);
                        cmd_mat_po.Parameters.AddWithValue("@ponumber", PONumber);
                        cmd_mat_po.Parameters.AddWithValue("@code", item_code);
                        cmd_mat_po.Parameters.AddWithValue("@taxgroup", taxgroup);
                        cmd_mat_po.Parameters.AddWithValue("@taxitem", taxitem);
                        cmd_mat_po.Parameters.AddWithValue("@poqty", Convert.ToDouble(po_qty));
                        cmd_mat_po.Parameters.AddWithValue("@pocost", Convert.ToDouble(po_cost));
                        cmd_mat_po.Parameters.AddWithValue("@pototal", Convert.ToDouble(po_total));
                        cmd_mat_po.Parameters.AddWithValue("@itempk", pk);
                        cmd_mat_po.Parameters.AddWithValue("@identifier", identifier);
                        cmd_mat_po.CommandType = CommandType.Text;
                        cmd_mat_po.ExecuteNonQuery();
                        break;

                    case "2":    //Opex
                        string     update_opex = "UPDATE " + MRPClass.OpexTable() + " SET [QtyPO] = '" + po_qty + "' WHERE [PK] = '" + pk + "'";
                        SqlCommand cmd_opex    = new SqlCommand(update_opex, conn);
                        cmd_opex.ExecuteNonQuery();

                        string insert_opex_po = "INSERT " + MRPClass.POCreationTableName() + " ([PONumber],[ItemCode],[TaxGroup],[TaxItemGroup],[Qty],[Cost],[TotalCost], [ItemPK], [Identifier]) VALUES (@ponumber, @code, @taxgroup, @taxitem, @poqty, @pocost, @pototal, @itempk, @identifier)";

                        SqlCommand cmd_opex_po = new SqlCommand(insert_opex_po, conn);
                        cmd_opex_po.Parameters.AddWithValue("@ponumber", PONumber);
                        cmd_opex_po.Parameters.AddWithValue("@code", item_code);
                        cmd_opex_po.Parameters.AddWithValue("@taxgroup", taxgroup);
                        cmd_opex_po.Parameters.AddWithValue("@taxitem", taxitem);
                        cmd_opex_po.Parameters.AddWithValue("@poqty", Convert.ToDouble(po_qty));
                        cmd_opex_po.Parameters.AddWithValue("@pocost", Convert.ToDouble(po_cost));
                        cmd_opex_po.Parameters.AddWithValue("@pototal", Convert.ToDouble(po_total));
                        cmd_opex_po.Parameters.AddWithValue("@itempk", pk);
                        cmd_opex_po.Parameters.AddWithValue("@identifier", identifier);
                        cmd_opex_po.CommandType = CommandType.Text;
                        cmd_opex_po.ExecuteNonQuery();
                        break;
                    }

                    conn.Close();
                    Server.Transfer("mrp_pocreation.aspx");
                }
                else
                {
                    ItemsEmpty.HeaderText     = "Alert";
                    ItemsEmptyLabel.Text      = "Some selected items are empty";
                    ItemsEmpty.ShowOnPageLoad = true;
                }
            }

            conn.Close();
        }
Exemple #4
0
 private void BindGrid()
 {
     POAddEditGrid.DataSource   = POClass.PO_AddEdit_Table(ponumber);
     POAddEditGrid.KeyFieldName = "PK";
     POAddEditGrid.DataBind();
 }