private void simpleButton1_Click(object sender, EventArgs e)
        {
            var dt = (DataView) gridView1.DataSource;
            dt.RowFilter = "Requested >0";
            if (dt == null) return;
            var po = new PO();
            po.AddNew();
            var serverDateTime = DateTimeHelper.ServerDateTime;
            po.PODate = serverDateTime;
            po.DateOfEntry = serverDateTime;
            po.PurchaseType = POType.INTERNAL;
            po.PaymentTypeID = PaymentType.Constants.STV;
            po.TermOfPayement = TermOfPayment.List[6].ID;
            po.PurchaseOrderStatusID = 9; //PurchaseOrderStatus ==> Processed
            po.SavedbyUserID = CurrentContext.LoggedInUser.ID;
            po.Save();
            var purchaseOrderDetail = new PurchaseOrderDetail();
            foreach (DataRowView dr in dt)
            {
                var itemUnit = new ItemUnitBase();
                itemUnit.LoadByPrimaryKey(Convert.ToInt32(dr["UnitID"]));

                purchaseOrderDetail.AddNew();
                purchaseOrderDetail.ItemID = Convert.ToInt32(dr["ItemID"]);
                purchaseOrderDetail.UnitOfIssueID = itemUnit.UnitOfIssueID;
                purchaseOrderDetail.Quantity = Convert.ToInt32(dr["Requested"]);
                purchaseOrderDetail.PurchaseOrderID = po.ID;
                purchaseOrderDetail.Rowguid = Guid.NewGuid();
                purchaseOrderDetail.ApprovedQuantity = 0;

            }
            purchaseOrderDetail.Save();
            lookUpEdit1_EditValueChanged(null, null);
        }
        private void RemoveItem(DataRow dr)
        {
            var rows = dr.Table.Columns.Contains("ID") ? _dtselectedItemsTable.Select(String.Format("ItemID = {0} and UnitID = {1}", dr["ID"], dr["UnitID"])) : new[] { dr };

            foreach (var rw in rows)
            {

                if (rw != null && rw["PurchaseOrderDetailID"] != DBNull.Value)
                {
                    if (XtraMessageBox.Show(@"Are you sure you want to delete the detail from the database?",
                        @"Confirmation", MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        var purchaseorderdetail = new PurchaseOrderDetail();
                        purchaseorderdetail.LoadByPrimaryKey(Convert.ToInt32((rw["PurchaseOrderDetailID"])));
                        purchaseorderdetail.MarkAsDeleted();
                        purchaseorderdetail.Save();
                        _dtselectedItemsTable.Rows.Remove(rw);
                    }
                    continue;
                }
                _dtselectedItemsTable.Rows.Remove(rw);
            }
        }
        private void EditPurchaseOrderDetail(DataTable datasource)
        {
            var pdetail = new PurchaseOrderDetail();
            pdetail.LoadByPo(_poid);
            var iunit = new ItemUnitBase();
            if (_dtselectedItemsTable != null)
            {
                _dtselectedItemsTable.Clear();
            }

            pdetail.Rewind();
            while (!pdetail.EOF)
            {
                if (datasource != null)
                {

                    iunit.LoadUnit(pdetail.UnitOfIssueID, pdetail.ItemID);
                    DataRow[] dataRows = datasource.Select(String.Format("ItemID = {0} and UnitID = {1}", pdetail.ItemID, iunit.ID));
                    if (dataRows.Length > 0)
                    {
                        // _dtselectedItemsTable.ImportRow(dataRows[0]);
                        var selectedRow = _dtselectedItemsTable.NewRow();
                        selectedRow["FullItemName"] = dataRows[0]["FullItemName"];
                        selectedRow["StockCode"] = dataRows[0]["StockCode"];
                        selectedRow["Unit"] = dataRows[0]["Unit"];
                        selectedRow["UnitID"] = iunit.ID;
                        selectedRow["ItemID"] = pdetail.ItemID;
                        selectedRow["Quantity"] = pdetail.Quantity;
                        selectedRow["Amount"] = pdetail.Amount;
                        selectedRow["PreferredManufacturerID"] = pdetail.PreferredManufacturerID;
                        selectedRow["PurchaseOrderDetailID"] = pdetail.PurchaseOrderDetailID;
                        //Check all
                        dataRows[0]["IsSelected"] = true;

                        _dtselectedItemsTable.Rows.Add(selectedRow);
                    }
                }
                pdetail.MoveNext();
            }

            gridItemsList.DataSource = datasource.DefaultView;
            gridSelectedItems.DataSource = _dtselectedItemsTable.DefaultView;
        }
        private void BindInvoiceDetailByPO(int POID)
        {
            _dtReceiptInvoiceDetail.Rows.Clear();
            var poDetail = new PurchaseOrderDetail();
            poDetail.LoadByPo(POID);
            foreach (DataRowView rowView in poDetail.DefaultView)
            {
                var newrow = _dtReceiptInvoiceDetail.NewRow();
                newrow["FullItemName"] = rowView["FullItemName"];
                newrow["Unit"] = rowView["Unit"];
                newrow["Manufacturer"] = rowView["Manufacturer"];
                newrow["OrderedQuantity"] = rowView["Quantity"];
                newrow["OrderedAmount"] = rowView["Amount"];
                newrow["ItemID"] = Convert.ToInt32(rowView["ItemID"]);
                newrow["UnitOfIssueID"] = Convert.ToInt32(rowView["UnitOfIssueID"]);
                newrow["ManufacturerID"] = Convert.ToInt32(rowView["PreferredManufacturerID"]);
                newrow["UnitPrice"] = 0;
                newrow["Margin"] = 0;
                newrow["IsSaved"] = false;
                newrow["GUID"] = Guid.NewGuid();
                _dtReceiptInvoiceDetail.Rows.Add(newrow);
            }

            _dtReceiptInvoiceDetail.DefaultView.Sort = "FullItemName, Unit, Manufacturer, ExpiryDate DESC, BatchNumber DESC";
            gridInvoiceDetail.DataSource = _dtReceiptInvoiceDetail;
        }