/// <summary> /// Populates the grid based on the selection. /// </summary> private void PopulateGridList() { if (issueGrid.DataSource != null) { var dt = new DataTable(); issueGrid.DataSource = dt; _dtRecGrid.Rows.Clear(); _dtRecGrid.Columns.Clear(); } var itm = new Items(); var itmB = new Items(); var bal = new Balance(); _tabPage = 1; tabControl1.SelectedTabPageIndex = 1; if (_dtRecGrid.Columns.Count == 0) { string[] str = { "ID", "Stock Code", "Item Name", "Unit", "Store SOH", "Dispatchable", "MR Issue Qty", "DU Remaining SOH", "DU AMC", "Recommended Qty", "Pack Qty", "Qty Per Pack", "Requested Qty", "MR DU SOH","UnitID"}; foreach (string col in str) { _dtRecGrid.Columns.Add(col); } } int count = 1; Int64 quantity = 0; dtIssueDate.Value = DateTime.Now; dtIssueDate.CustomFormat = "MM/dd/yyyy"; var dtCurrent = ConvertDate.DateConverter(dtIssueDate.Text); if (_dtSelectedTable != null) foreach (DataRow lst in _dtSelectedTable.Rows)//(ListViewItem lst in lstItem.Items) { var itmID = Convert.ToInt32(lst["ID"]); var dtExp = itm.GetExpiredItemsByID(Convert.ToInt32(cboStores.EditValue), itmID); var dtItm = itm.GetItemById(itmID); Int64 expAmount = 0; foreach (DataRow dr in dtExp.Rows) { expAmount = itmB.GetExpiredQtyItemsByID(Convert.ToInt32(dr["ID"]), Convert.ToInt32(cboStores.EditValue)); quantity = Convert.ToInt64(dr["Quantity"]) - expAmount;//+ adjQuant - issuedQuant - lostQuant } Int64 soh = 0; Int64 dispatchable = Convert.ToInt64(lst["Dispatchable"]); object[] obj; string itemName = lst["FullItemName"].ToString(); switch (VisibilitySetting.HandleUnits) { case 1: soh = bal.GetSOH(itmID, Convert.ToInt32(cboStores.EditValue), dtCurrent.Month, dtCurrent.Year); obj = new object[] {itmID.ToString(), dtItm.Rows[0]["StockCode"].ToString(), itemName, dtItm.Rows[0]["Unit"].ToString(), soh, dispatchable, 0, 0, 0, 0, 0, 0, 0, 0, 0}; break; case 2: soh = bal.GetSOHByUnit(itmID, Convert.ToInt32(cboStores.EditValue), dtCurrent.Month, dtCurrent.Year, Convert.ToInt32(lst["UnitID"])); obj = new object[]{ itmID.ToString(), dtItm.Rows[0]["StockCode"].ToString(), itemName, dtItm.Rows[0]["Unit"].ToString(), soh, dispatchable, 0, 0, 0, 0, 0, 0, 0, 0, Convert.ToInt32(lst["UnitID"])}; break; default: soh = bal.GetSOHByUnit(itmID, Convert.ToInt32(cboStores.EditValue), dtCurrent.Month, dtCurrent.Year, Convert.ToInt32(lst["UnitID"])); obj = new object[]{ itmID.ToString(), dtItm.Rows[0]["StockCode"].ToString(), itemName, dtItm.Rows[0]["Unit"].ToString(), soh, dispatchable, 0, 0, 0, 0, 0, 0, 0, 0, Convert.ToInt32(lst["UnitID"])}; break; } //if (expAmount < soh && quantity < soh || dispatchable > 0) //{ // _dtRecGrid.Rows.Add(obj); // count++; //} if (expAmount < soh && dispatchable > 0) { _dtRecGrid.Rows.Add(obj); count++; } else if(soh >0 && dispatchable==0) { XtraMessageBox.Show(String.Format("{0} Is Expired!", itemName), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Stop); ResetValues(); tabControl1.TabIndex = 0; break; } else if (soh == 0) { XtraMessageBox.Show(String.Format("{0} is stocked out!", itemName), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Stop); break; } else if (expAmount == soh && expAmount != 0) { XtraMessageBox.Show(String.Format("{0} Is Expired!",itemName), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Stop); ResetValues(); tabControl1.TabIndex = 0; break; } else if( dispatchable>0 ) { _dtRecGrid.Rows.Add(obj); count++; } else { ResetValues(); XtraMessageBox.Show("You are trying to issue an Expired item!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Stop); tabControl1.TabIndex = 0; break; } } issueGrid.DataSource = _dtRecGrid; cboStoreConf.EditValue = cboStores.EditValue; dtIssueDate.CustomFormat = "MMM dd,yyyy"; var recUnit = new ReceivingUnits(); recUnit.GetActiveDispensaries(); cboReceivingUnits.Properties.DataSource = recUnit.DefaultView; cboReceivingUnits.Properties.DisplayMember = "Name"; cboReceivingUnits.Properties.ValueMember = "ID"; }