private static BLL.OrderDetail GetOrderDetail(int?orderID, IEnumerable <ApprovedOrderDetail> plitsApprovedOrderDetails) { var hcmisOrderDetail = new BLL.OrderDetail(); //var plitsApprovedOrderDetails = plitsApprovedOrderDetail as List<ApprovedOrderDetail> ?? plitsApprovedOrderDetail.ToList(); foreach (var plitsOrderDetail in plitsApprovedOrderDetails) { hcmisOrderDetail.AddNew(); hcmisOrderDetail.ItemID = plitsOrderDetail.PharmaceuticalId; hcmisOrderDetail.HACTOrderDetailID = plitsOrderDetail.Id; hcmisOrderDetail.Pack = Convert.ToDecimal(plitsOrderDetail.ApprovedQty); BLL.ItemUnit iu = new ItemUnit(); iu.LoadAllForItem(plitsOrderDetail.PharmaceuticalId); //Just load it by item id. This loads a collection but we just pick and use the first one. :) if (iu.RowCount == 0) { hcmisOrderDetail.QtyPerPack = iu.QtyPerUnit; hcmisOrderDetail.Quantity = hcmisOrderDetail.Pack * iu.QtyPerUnit; hcmisOrderDetail.UnitID = iu.ID; throw new Exception(string.Format("IU Not Configured correctly for item: {0}", plitsOrderDetail.PharmaceuticalId)); } hcmisOrderDetail.QtyPerPack = iu.QtyPerUnit; hcmisOrderDetail.Quantity = hcmisOrderDetail.Pack * iu.QtyPerUnit; hcmisOrderDetail.UnitID = iu.ID; } return(hcmisOrderDetail); }
private void OnItemCheckedChanged(object sender, EventArgs e) { DataRow dr = gridItemChoiceView.GetFocusedDataRow(); if (dr == null) return; // Determine if the selection is to select or deselect the specific raw of item bool b = (dr["IsSelected"] != DBNull.Value) ? Convert.ToBoolean(dr["IsSelected"]) : false; if (b) { if (lkForFacility.EditValue != null && dxValidation1stTab.Validate(lkForFacility)) { //Check if the item is restricted for the chosen Receiving Unit int itemID = int.Parse(dr["ID"].ToString()); int ruID = int.Parse(lkForFacility.EditValue.ToString()); Item itm = new Item(); int allowStatus = itm.GetItemAllowStatus(itemID, ruID); if (allowStatus == -1) { XtraMessageBox.Show(string.Format("{0} is restricted to {1}", dr["FullItemName"], lkForFacility.Text), "Item Restricted", MessageBoxButtons.OK, MessageBoxIcon.Warning); dr["IsSelected"] = false; return; } // copy the selected item to the selected items data table. _dtSelectedTable.ImportRow(dr); if (_dvOrderTable == null) { BindMainOrderGrid(); } _dvOrderTable.Table.ImportRow(dr); _dvOrderTable.Table.Rows[_dvOrderTable.Table.Rows.Count - 1]["ID"] = DBNull.Value; _dvOrderTable.Table.Rows[_dvOrderTable.Table.Rows.Count - 1]["ItemID"] = dr["ID"]; if (BLL.Settings.IsRdfMode) { _dvOrderTable.Table.Rows[_dvOrderTable.Table.Rows.Count - 1]["QtyPerPack"] = dr["QtyPerUnit"]; } else { _dvOrderTable.Table.Rows[_dvOrderTable.Table.Rows.Count - 1]["QtyPerPack"] = BLL.ItemManufacturer.GetDefaultBuInSKU(Convert.ToInt32(dr["ID"])); } } else { dr["isSelected"] = false; XtraMessageBox.Show("Please choose facility first!", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { // This section is to remove from the selected table the item that is being deselected // TODO: what are these all try catches? // TOFIX: this needs to seriously consider cleaning up. try { _dtSelectedTable.PrimaryKey = new DataColumn[] { _dtSelectedTable.Columns["ID"], _dtSelectedTable.Columns["UnitID"] }; int id = Convert.ToInt32(dr["ID"]); int unitId = Convert.ToInt32(dr["UnitID"]); DataRow rw = _dtSelectedTable.Rows.Find(new Object[] { id, unitId }); if (rw != null) { _dtSelectedTable.Rows.Remove(rw); //if (Type != RequisitionType.History) // { try { DataRow[] dataRows = _dvOrderTable.Table.Select(String.Format("ItemID = {0} and UnitID = {1}", dr["ID"], dr["UnitID"])); // dtRecGrid.Rows.Remove(dtRecGrid.Rows.Find(dr["ID"])); foreach (DataRow r in dataRows) { if (r["ID"] != DBNull.Value && Type != RequisitionType.History) { BLL.OrderDetail od = new BLL.OrderDetail(); od.LoadByPrimaryKey(Convert.ToInt32(r["ID"])); od.MarkAsDeleted(); od.Save(); } r.Delete(); r.EndEdit(); } } catch { } } } catch (Exception ex) { throw (ex); } } EnableDisableButtons(); }
private void BindMainOrderGrid() { // Given some items are already selected on the first step of the order process (CDR Request) // Bind the second grid with the selected items for the quantity to be filled by the HCMIS Operator if (_dtSelectedTable != null && OrderID == null) { BLL.OrderDetail or = new BLL.OrderDetail(); or.LoadByPrimaryKey(-1); _dvOrderTable = or.DefaultView; _dvOrderTable.Table.Columns.Add("FullItemName"); _dvOrderTable.Table.Columns.Add("StockCode"); _dvOrderTable.Table.Columns.Add("Unit"); // RRf Columns _dvOrderTable.Table.Columns.Add("BeginningBalance"); _dvOrderTable.Table.Columns.Add("Adjustment"); _dvOrderTable.Table.Columns.Add("Loss"); _dvOrderTable.Table.Columns.Add("DOS"); _dvOrderTable.Table.Columns.Add("Consumption"); _dvOrderTable.Table.Columns.Add("MaxStockQuantity"); _dvOrderTable.Table.Columns.Add("QuantityNeedMax"); _dvOrderTable.Table.Columns.Add("QuantityReceived"); } orderGrid.DataSource = _dvOrderTable; }
public void EditRequisition(int orderID) { OrderID = orderID; Order ord = new Order(); ord.LoadByPrimaryKey(orderID); txtRefNo.Text = ord.RefNo; txtLetterNumber.Text = ord.LetterNo; labelControl4.Text = ord.RefNo; Institution ru = new Institution(); ru.LoadByPrimaryKey(ord.RequestedBy); if (!ru.IsColumnNull("Zone")) { // Just because the region Property on the Receiving Unit is not working as desired. Zone zone = new Zone(); zone.LoadByPrimaryKey(ru.Zone); lkRegion.EditValue = zone.RegionId; lkZone.EditValue = ru.Zone; } lkForFacility.EditValue = ru.ID; lkModes.EditValue = ord.FromStore; lkModes_EditValueChanged(null, null); lkPaymentType.EditValue = ord.PaymentTypeID; txtContactPerson.EditValue = ord.ContactPerson; BLL.OrderDetail or = new BLL.OrderDetail(); or.LoadAllByOrderID(orderID); DataView selectables = (DataView)gridItemChoiceView.DataSource; if (_dtSelectedTable != null) { _dtSelectedTable.Clear(); } else { PopulateItemsList(); } while (!or.EOF) { // select the items and put it in the dtselected table. if (selectables != null) { DataRow[] dataRows = selectables.Table.Select(String.Format("ID = {0} and UnitID = {1}", or.ItemID, or.UnitID)); if (dataRows.Length > 0) { _dtSelectedTable.ImportRow(dataRows[0]); dataRows[0]["IsSelected"] = true; } } or.MoveNext(); } _dvOrderTable = or.DefaultView; orderGrid.DataSource = _dvOrderTable; EnableDisableButtons(); }
private static BLL.OrderDetail GetOrderDetail(int? orderID, IEnumerable<ApprovedOrderDetail> plitsApprovedOrderDetails) { var hcmisOrderDetail = new BLL.OrderDetail(); //var plitsApprovedOrderDetails = plitsApprovedOrderDetail as List<ApprovedOrderDetail> ?? plitsApprovedOrderDetail.ToList(); foreach (var plitsOrderDetail in plitsApprovedOrderDetails) { hcmisOrderDetail.AddNew(); hcmisOrderDetail.ItemID = plitsOrderDetail.PharmaceuticalId; hcmisOrderDetail.HACTOrderDetailID = plitsOrderDetail.Id; hcmisOrderDetail.Pack = Convert.ToDecimal(plitsOrderDetail.ApprovedQty); BLL.ItemUnit iu = new ItemUnit(); iu.LoadAllForItem(plitsOrderDetail.PharmaceuticalId); //Just load it by item id. This loads a collection but we just pick and use the first one. :) if (iu.RowCount == 0) { hcmisOrderDetail.QtyPerPack = iu.QtyPerUnit; hcmisOrderDetail.Quantity = hcmisOrderDetail.Pack * iu.QtyPerUnit; hcmisOrderDetail.UnitID = iu.ID; throw new Exception(string.Format("IU Not Configured correctly for item: {0}", plitsOrderDetail.PharmaceuticalId)); } hcmisOrderDetail.QtyPerPack = iu.QtyPerUnit; hcmisOrderDetail.Quantity = hcmisOrderDetail.Pack * iu.QtyPerUnit; hcmisOrderDetail.UnitID = iu.ID; } return hcmisOrderDetail; }