protected void uiLinkButtonOK_Click(object sender, EventArgs e)
        {
            IStock.BLL.ClientReturns clientreturn = new IStock.BLL.ClientReturns();
            if (CurrentReturn == null)
                clientreturn.AddNew();
            else
                clientreturn = CurrentReturn;

            clientreturn.ReturnNo = uiTextBoxCode.Text;
            clientreturn.ClientID = Convert.ToInt32(uiDropDownListClients.SelectedValue);
            clientreturn.ReturnDate = DateTime.ParseExact(uiTextBoxDate.Text, "dd/MM/yyyy", null);
            clientreturn.EmployeeID = Convert.ToInt32(uiDropDownListEmployee.SelectedValue);
            if (!string.IsNullOrEmpty(uiTextBoxDiscount.Text))
                clientreturn.Discount = decimal.Parse(uiTextBoxDiscount.Text);
            else
                clientreturn.Discount = 0;
            clientreturn.Save();
            //ClearFields();
            CurrentReturn = clientreturn;
            uiPanelEditReturn.Visible = true;
            uiPanelAllReturns.Visible = false;
            uiPanelItems.Visible = true;
            BindItems();
        }
        protected void uiLinkButtonOK_Click(object sender, EventArgs e)
        {
            IStock.BLL.DeliveryOrder order = new IStock.BLL.DeliveryOrder();
            if (CurrentDeliveryOrder == null)
                order.AddNew();
            else
                order = CurrentDeliveryOrder;

            order.DeliveryOrderNo = uiTextBoxCode.Text;
            order.ClientID = Convert.ToInt32(uiDropDownListClients.SelectedValue);
            order.DeliveryOrderDate = DateTime.ParseExact(uiTextBoxDate.Text, "dd/MM/yyyy", null);
            order.EmployeeID = Convert.ToInt32(uiDropDownListEmployee.SelectedValue);
            if (!string.IsNullOrEmpty(uiTextBoxDiscount.Text))
                order.Discount = decimal.Parse(uiTextBoxDiscount.Text);
            else
                order.Discount = 0;
            order.Save();

            IStock.BLL.ClientReturns clientReturn = new IStock.BLL.ClientReturns();
            clientReturn.GetLastClientReturnForDeliveryOrder(order.ClientID);
            if (clientReturn.RowCount > 0)
            {
                clientReturn.DeliveryOrderID = order.DeliveryOrderID;
                clientReturn.Save();
            }

            //ClearFields();
            CurrentDeliveryOrder = order;
            uiPanelEditDeliveryOrder.Visible = true;
            uiPanelAllOrders.Visible = false;
            uiPanelItems.Visible = true;
            //EnableDisableActions();
            BindItems();
        }
        protected void uiGridViewReturns_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "EditReturn")
            {
                IStock.BLL.ClientReturns objData = new IStock.BLL.ClientReturns();
                objData.LoadByPrimaryKey(Convert.ToInt32(e.CommandArgument.ToString()));

                uiTextBoxCode.Text = objData.ReturnNo;
                uiTextBoxDate.Text = objData.ReturnDate.ToString("dd/MM/yyy");
                uiDropDownListClients.SelectedValue = objData.ClientID.ToString();
                uiDropDownListEmployee.SelectedValue = objData.EmployeeID.ToString();
                if (!objData.IsColumnNull("Discount"))
                    uiTextBoxDiscount.Text = objData.Discount.ToString();
                uiPanelAllReturns.Visible = false;
                uiPanelEditReturn.Visible = true;
                uiPanelItems.Visible = true;
                CurrentReturn = objData;
                BindItems();
            }
            else if (e.CommandName == "DeleteReturn")
            {
                try
                {
                    IStock.BLL.ClientReturns objData = new IStock.BLL.ClientReturns();
                    objData.LoadByPrimaryKey(Convert.ToInt32(e.CommandArgument.ToString()));

                    IStock.BLL.ClientReturnDetails details = new IStock.BLL.ClientReturnDetails();
                    details.GetClientReturnDetails(objData.ClientReturnID);

                    details.MarkAsDeleted();
                    details.Save();
                    /*
                    IStock.BLL.Clients client = new IStock.BLL.Clients();
                    client.LoadByPrimaryKey(objData.ClientID);
                    client.StartCredit -= total;
                    client.Save();
                    */
                    objData.MarkAsDeleted();
                    objData.Save();
                    CurrentReturn = null;
                    BindReturns();
                }
                catch (Exception ex)
                {
                    uipanelError.Visible = true;
                }
            }
        }
        protected void uiGridViewOrders_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "EditOrder")
            {
                IStock.BLL.DeliveryOrder objData = new IStock.BLL.DeliveryOrder();
                objData.LoadByPrimaryKey(Convert.ToInt32(e.CommandArgument.ToString()));

                uiTextBoxCode.Text = objData.DeliveryOrderNo;
                uiTextBoxDate.Text = objData.DeliveryOrderDate.ToString("dd/MM/yyy");
                uiDropDownListClients.SelectedValue = objData.ClientID.ToString();
                uiDropDownListEmployee.SelectedValue = objData.EmployeeID.ToString();
                if(!objData.IsColumnNull("Discount"))
                    uiTextBoxDiscount.Text = objData.Discount.ToString();
                uiPanelAllOrders.Visible = false;
                uiPanelEditDeliveryOrder.Visible = true;
                uiPanelItems.Visible = true;
                CurrentDeliveryOrder = objData;
                //EnableDisableActions();
                BindItems();
            }
            else if (e.CommandName == "DeleteOrder")
            {
                try
                {
                    IStock.BLL.DeliveryOrder objData = new IStock.BLL.DeliveryOrder();
                    objData.LoadByPrimaryKey(Convert.ToInt32(e.CommandArgument.ToString()));

                    IStock.BLL.DeliveryOrderDetails details = new IStock.BLL.DeliveryOrderDetails();
                    details.GetDeliveryOrderDetails(objData.DeliveryOrderID);

                    decimal total = objData.GetDeliveryOrderTotals(objData.DeliveryOrderID);

                    /* restore items to stock */
                    for (int i = 0; i < details.RowCount; i++)
                    {
                        IStock.BLL.Items item = new IStock.BLL.Items();
                        item.LoadByPrimaryKey(details.ItemID);
                        item.Quantity += details.Quantity;
                        details.MoveNext();
                        item.Save();
                    }
                    /* restore items to stock */

                    details.MarkAsDeleted();
                    details.Save();

                    /* update client credit */
                    IStock.BLL.Clients client = new IStock.BLL.Clients();
                    client.LoadByPrimaryKey(objData.ClientID);
                    client.StartCredit -= total;
                    client.Save();
                    /* update client credit */

                    IStock.BLL.ClientReturns cr = new IStock.BLL.ClientReturns ();
                    cr.GetClientReturnByDeliveryOrderID(objData.DeliveryOrderID);
                    if (cr.RowCount > 0)
                    {
                        cr.SetColumnNull("DeliveryOrderID");
                        cr.Save();
                    }

                    objData.MarkAsDeleted();
                    objData.Save();

                    CurrentDeliveryOrder = null;
                    BindOrders();
                }
                catch (Exception ex)
                {
                    uipanelError.Visible = true;
                }
            }
        }