private void AddPurchasingItembySoleVendor()
 {
     if (_presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendors.Id <= 0)
     {
         if (_presenter.CurrentSoleVendorRequest != null)
         {
             foreach (SoleVendorRequestDetail detail in _presenter.CurrentSoleVendorRequest.SoleVendorRequestDetails)
             {
                 PurchaseOrderSoleVendorDetail POD = new PurchaseOrderSoleVendorDetail();
                 POD.ItemAccount = _presenter.GetItemAccount(detail.ItemAccount.Id);
                 POD.Qty         = detail.Qty;
                 POD.UnitCost    = detail.UnitCost;
                 POD.TotalCost   = detail.TotalCost;
                 _presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendors.PurchaseOrderSoleVendorDetails.Add(POD);
             }
         }
     }
     BindPODetailForSole();
 }
        protected void btnCreatePO_Click(object sender, EventArgs e)
        {
            try
            {
                _presenter.OnViewLoaded();
                btnRequest.Visible = true;
                pnlInfo.Visible    = false;
                if (_presenter.CurrentSoleVendorRequest.SoleVendorRequestDetails != null)
                {
                    List <int> checkedSoleVendorDetailIds = new List <int>();
                    foreach (GridViewRow item in grvSoleVendPO.Rows)
                    {
                        int soleVendorDetailId = (int)grvSoleVendPO.DataKeys[item.RowIndex].Value;
                        if (item.RowType == DataControlRowType.DataRow)
                        {
                            CheckBox chk = (CheckBox)item.FindControl("chkSelect");
                            if (chk.Checked)
                            {
                                //Collect the Ids of the selected Sole Vendor Detail objects
                                checkedSoleVendorDetailIds.Add(soleVendorDetailId);

                                AutoNumber();
                                txtDate.Text      = DateTime.Today.ToString();
                                txtRequester.Text = _presenter.GetUser(_presenter.CurrentSoleVendorRequest.AppUser.Id).FullName;
                                //Assign the Sole Vendor Supplier value to the Purchase Order
                                _presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendor.SoleVendorSupplier = _presenter.CurrentSoleVendorRequest.GetSoleVendorRequestDetail(soleVendorDetailId).SoleVendorSupplier;
                                txtSupplierName.Text    = _presenter.CurrentSoleVendorRequest.GetSoleVendorRequestDetail(soleVendorDetailId).SoleVendorSupplier.SupplierName;
                                txtSupplierAddress.Text = _presenter.CurrentSoleVendorRequest.GetSoleVendorRequestDetail(soleVendorDetailId).SoleVendorSupplier.SupplierAddress;
                                txtSupplierContact.Text = _presenter.CurrentSoleVendorRequest.GetSoleVendorRequestDetail(soleVendorDetailId).SoleVendorSupplier.SupplierContact;
                                if (_presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendor.PurchaseOrderSoleVendorDetails.Count == 0)
                                {
                                    _presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendor.PurchaseOrderSoleVendorDetails = new List <PurchaseOrderSoleVendorDetail>();
                                    foreach (SoleVendorRequestDetail svDetail in _presenter.CurrentSoleVendorRequest.SoleVendorRequestDetails)
                                    {
                                        PurchaseOrderSoleVendorDetail POD = new PurchaseOrderSoleVendorDetail();
                                        POD.ItemAccount = _presenter.GetItemAccount(svDetail.ItemAccount.Id);
                                        POD.Item        = svDetail.ItemDescription;
                                        POD.Qty         = svDetail.Qty;
                                        POD.UnitCost    = svDetail.UnitCost;
                                        POD.TotalCost   = svDetail.TotalCost;
                                        POD.VAT         = svDetail.VAT;
                                        POD.GrandTotal  = svDetail.GrandTotal;
                                        _presenter.CurrentSoleVendorRequest.PurchaseOrderSoleVendor.PurchaseOrderSoleVendorDetails.Add(POD);
                                    }
                                    BindPODetailForSole();
                                }
                                else
                                {
                                    BindPODetailForSole();
                                }
                            }
                        }
                    }
                    Session["checkedSoleVendorDetailIds"] = checkedSoleVendorDetailIds;
                }
            }
            catch (Exception ex)
            {
                Master.ShowMessage(new AppMessage("Error: Unable to bind Purchase Order " + ex.Message, RMessageType.Error));
                ExceptionUtility.LogException(ex, ex.Source);
                ExceptionUtility.NotifySystemOps(ex, _presenter.CurrentUser().FullName);
            }
        }