Ejemplo n.º 1
0
 private void GetIssueHeadsandItemsForDropDowns()
 {
     dst = IssueNewLogic.RetrieveAllItems();
     //second table contains the items names
     dtItems = dst.Tables["Items"];
     //   dtIssueHead = dst.Tables["itemRatesSecondery"];
     //  dtRate = dst.Tables["IT2"];
 }
        private void GetIssueHeadsandItemsForDropDowns()
        {
            // dst = ReceivedItemsLogic.RetrieveReceivedItemsAndReceivedItemsDetails();
            //second table contains the items names
            // dtItems = dst.Tables[0];

            dst = IssueNewLogic.RetrieveAllItems();
            //second table contains the items names
            dtItems     = dst.Tables["Items"];
            dtIssueHead = dst.Tables["itemRatesSecondery"];
            dtRate      = dst.Tables["IT2"];
        }
        private void _Save()
        {
            NewProperties issued    = new NewProperties();
            IssueNewLogic enterSave = new IssueNewLogic();

            try
            {
                issued.challanNO = Convert.ToDouble(_tbChalanNo.Text);

                issued.indentNo = _tbIndentValue.Text;

                if (_tbChallanDate.Text.Contains("/"))
                {
                    issued.challanDate = DateTime.ParseExact(_tbChallanDate.Text, @"d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
                }
                else
                {
                    issued.challanDate = DateTime.ParseExact(_tbChallanDate.Text, @"d-M-yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
                }

                if (_tbIntendDate.Text.Contains("/"))
                {
                    issued.indentDate = DateTime.ParseExact(_tbIntendDate.Text, @"d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
                }
                else
                {
                    issued.indentDate = DateTime.ParseExact(_tbIntendDate.Text, @"d-M-yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
                }

                issued.TotalAmount = Convert.ToDouble(_tbtotalAmount.Text);



                if (_ddIntendDivisions.SelectedItem.ToString() != "--Select Division Name--")
                {
                    issued.intendingDivision = _ddIntendDivisions.SelectedItem.ToString();
                }
                else
                {
                    issued.intendingDivision = lblDivisionOld.Text;
                }


                if (_ddCHead.SelectedItem.ToString() != "--Select Chargeable Head--")
                {
                    issued.ChargeableHeadName = _ddCHead.SelectedItem.ToString();
                }
                else
                {
                    issued.ChargeableHeadName = lblChHeadOld.Text;
                }


                issued.IsDeliveredTemporary = istemporary.Checked ? "Yes" : "No";
                issued.ModifiedBy           = Convert.ToInt16(Session["USERID"]);
                issued.ReceiverDesignation  = tbReceiverDesignation.Text;
                issued.VehicleNumber        = tbVehicleNumberCaps.Text.ToUpper();
                issued.Remarks = tbremarks.Text;

                StringBuilder sb = new StringBuilder();
                string        insertStatement         = "INSERT INTO DeliveryItemsDetails(DeliveryItemsChallanID,itemid,ItemName, IssueHeadName,QUANTITY,UNIT,RATE) values('@DeliveryItemsChallanID','@ItemID','@ItemName', '@IssueHeadName', '@QUANTITY', '@UNIT', '@RATE')";
                string        updateItemRateSecondary = "update ItemsRateSecondary set quantity=quantity-'@QUANTITY' where itemname='@itemname' and issueHeadName=  '@IssueHeadName' and OrderNO='@OrderNO'";


                for (int i = 0; i < gvItems.Rows.Count; i++)
                {
                    DropDownList _ddItems = gvItems.Rows[i].FindControl("_ddItems") as DropDownList;
                    TextBox      itemUnit = gvItems.Rows[i].FindControl("_tbUnit") as TextBox;

                    TextBox tbQty = gvItems.Rows[i].FindControl("tbQty") as TextBox;

                    TextBox      _tbOrderQuantity = gvItems.Rows[i].FindControl("_tbOrderQuantity") as TextBox;
                    DropDownList ddlIhead         = gvItems.Rows[i].FindControl("ddlIhead") as DropDownList;
                    TextBox      tbRate           = gvItems.Rows[i].FindControl("tbRate") as TextBox;
                    TextBox      _tbAmt           = gvItems.Rows[i].FindControl("_tbAmt") as TextBox;
                    HiddenField  _hdnFieldItemID  = gvItems.Rows[i].FindControl("_hdnFieldItemID") as HiddenField;
                    TextBox      tbOrderNO        = gvItems.Rows[i].FindControl("tbOrderNO") as TextBox;



                    if (_ddItems.SelectedValue.ToString() != "")
                    {
                        //Checking the quantity is null in quantity
                        if (_tbOrderQuantity.Text == "")
                        {
                            panelError.Visible   = true;
                            lblError.Text        = "Error! Quantity Cannot be Blank.";
                            panelSuccess.Visible = false;
                            return;
                        }

                        if (tbRate.Text != "")
                        {
                            totalAmount += Convert.ToDouble(_tbOrderQuantity.Text) * Convert.ToDouble(tbRate.Text);

                            if (Convert.ToDouble(_tbOrderQuantity.Text) > Convert.ToDouble(tbQty.Text))
                            {
                                DataTable dt    = dst.Tables["IT2"].Clone();
                                DataRow[] rates = dst.Tables["IT2"].Select("itemname= '" + _ddItems.SelectedItem.ToString() + "' and IssueHeadName='" + ddlIhead.SelectedValue.ToString() + "'");

                                Double OrderedQty         = Convert.ToDouble(_tbOrderQuantity.Text);
                                double QtyAvailableinRows = Convert.ToDouble(tbQty.Text);

                                foreach (DataRow dr in rates)
                                {
                                    dt.ImportRow(dr);
                                }
                                DataView  view    = new DataView(dt);
                                DataTable myRates = view.ToTable(true, "Rate", "Quantity", "OrderNo", "AMT");

                                int    counter = 0;
                                Double tempQty;
                                Double tempOrderNo;
                                Double tempRate;


                                while (OrderedQty > 0)
                                {
                                    tempQty     = Convert.ToDouble(myRates.Rows[counter]["Quantity"]);
                                    tempOrderNo = Convert.ToDouble(myRates.Rows[counter]["OrderNo"]);
                                    tempRate    = Convert.ToDouble(myRates.Rows[counter]["Rate"]);

                                    if (OrderedQty < tempQty)
                                    {
                                        tempQty = OrderedQty;
                                    }

                                    sb.Append(updateItemRateSecondary.Replace("@itemname", _ddItems.SelectedItem.ToString()).Replace("@QUANTITY", tempQty.ToString()).Replace("@IssueHeadName", ddlIhead.SelectedValue).Replace("@OrderNO", tempOrderNo.ToString()));

                                    sb.Append(insertStatement.Replace("@DeliveryItemsChallanID", _tbChalanNo.Text).Replace("@ItemID", _hdnFieldItemID.Value).Replace("@ItemName", Utilities.ValidSql(_ddItems.SelectedItem.ToString())).Replace("@IssueHeadName", ddlIhead.SelectedValue).Replace("@QUANTITY", tempQty.ToString()).Replace("@UNIT", itemUnit.Text).Replace("@RATE", tempRate.ToString()));

                                    OrderedQty = OrderedQty - tempQty;
                                    counter++;
                                }
                            }
                            else
                            {
                                sb.Append(updateItemRateSecondary.Replace("@itemname", _ddItems.SelectedItem.ToString()).Replace("@QUANTITY", _tbOrderQuantity.Text).Replace("@IssueHeadName", ddlIhead.SelectedValue).Replace("@OrderNO", tbOrderNO.Text));
                                sb.Append(insertStatement.Replace("@DeliveryItemsChallanID", _tbChalanNo.Text).Replace("@ItemID", _hdnFieldItemID.Value).Replace("@ItemName", Utilities.ValidSql(_ddItems.SelectedItem.ToString())).Replace("@IssueHeadName", ddlIhead.SelectedValue).Replace("@QUANTITY", _tbOrderQuantity.Text).Replace("@UNIT", itemUnit.Text).Replace("@RATE", tbRate.Text));
                            }
                        }
                        else
                        {
                            panelError.Visible   = true;
                            lblError.Text        = "Error! One of item's Issue Head and Rate is not selected.";
                            panelSuccess.Visible = false;
                            return;
                        }
                    }
                }
                issued.TotalAmount += totalAmount;

                //call the method to save both in primary deliverychallan table and delivery details table

                enterSave.UpdateNewIssuedItems(issued, sb.ToString());


                lblSuccess.Text = "Challan number " + _tbChalanNo.Text + " details Updated successfully!";

                GetIssueHeadsandItemsForDropDowns();


                // _tbChalanNo.Text = (Convert.ToDouble(_tbChalanNo.Text) + 1).ToString();

                // panelError.Visible = false;
                //  panelSuccess.Visible = true;
                Response.Redirect("/Admin/IssueEntriesList.aspx");
            }

            catch (System.Threading.ThreadAbortException)
            {
            }
            catch (SqlException ex)
            {
                if (ex.Message.Contains("duplicate key"))
                {
                    panelError.Visible   = true;
                    lblError.Text        = "Error! The challan ID already exists. Please use another ID";
                    panelSuccess.Visible = false;
                }
                else
                {
                    Session["ERRORMSG"] = ex.ToString();
                    Response.Redirect("Error.aspx");
                }
            }
            catch (Exception ex)
            {
                Session["ERRORMSG"] = ex.ToString();
                Response.Redirect("Error.aspx", true);
            }
        }