private void PopulateSStatusReport() { if (curMont != 0 && curYear != 0) { var storeId = Convert.ToInt32(cboStores.EditValue); curYear = Convert.ToInt32(cboYear.EditValue); Balance blnc = new Balance(); DataTable dtbl = new DataTable(); if (storeId == 0) { dtbl = blnc.GetSOHForAllStores(curMont, Convert.ToInt32(cboYear.EditValue)); } else { dtbl = blnc.GetSOH(storeId, curMont, Convert.ToInt32(cboYear.EditValue)); } Items itm = new Items(); Balance bal = new Balance(); ReceiveDoc rec = new ReceiveDoc(); Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); DataTable dtItm = itm.GetItemsByProgram(prog.ID); int totalECLS = dtItm.Rows.Count; int stockin, stockout, overstock, nearEOP, belowEOP, freeStockOut; if (Convert.ToInt32(lkCategory.EditValue) != 0) { stockin = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Normal" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); stockout = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); overstock = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Over Stocked" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); nearEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Near EOP" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); belowEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Below EOP" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); freeStockOut = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); } else { stockin = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Normal" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); stockout = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); overstock = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Over Stocked" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); nearEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Near EOP" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); belowEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Below EOP" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); freeStockOut = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && ((!ckExclude.Checked) || Convert.ToInt32(m["EverReceived"]) == 1) select m).Count(); } object[] obj = { stockin, stockout, overstock, nearEOP, belowEOP }; int totalItm = stockin + stockout + nearEOP + overstock; decimal percen = ((totalItm != 0) ? (Convert.ToDecimal(stockin) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); percen = ((totalItm != 0) ? (Convert.ToDecimal(stockout) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); percen = ((totalItm != 0) ? (Convert.ToDecimal(overstock) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); percen = ((totalItm != 0) ? (Convert.ToDecimal(nearEOP) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); percen = ((totalItm != 0) ? (Convert.ToDecimal(belowEOP) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); int totalFree = itm.CountFreeItems(); percen = ((totalFree != 0) ? (Convert.ToDecimal(freeStockOut) / Convert.ToDecimal(totalFree)) * 100 : 0); percen = Decimal.Round(percen, 0); totalFree = itm.CountVitalItems(); GenerateStockStatusPieChart(obj); } }
/// <summary> /// Saves the item policy /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Click(object sender, EventArgs e) { var itm = new Items(); var itmSup = new ItemSupplier(); if (_itemId != 0) itm.LoadByPrimaryKey(_itemId); else { itm.AddNew(); var prodCate = new ProductsCategory(); prodCate.AddNew(); prodCate.ItemId = itm.ID; prodCate.SubCategoryID = Convert.ToInt32(_categoryId); prodCate.Save(); } //if (rdA.Checked || rdB.Checked || rdC.Checked) // itm.ABC = ((rdA.Checked) ? 1 : (rdB.Checked) ? 2 : 3); //if (rdV.Checked || rdE.Checked || rdN.Checked) // itm.VEN = ((rdV.Checked) ? 1 : (rdE.Checked) ? 2 : 3); itm.IsInHospitalList = ckExculed.Checked; //itm.NeedExpiryBatch = chkNeedExpiryBatch.Checked; string valid = ValidateFields(); if (valid == "true") { itm.NeedExpiryBatch = chkNeedExpiryBatch.Checked; itm.StockCodeDACA = txtText.Text; itm.Cost = txtQuantityPerPack.Text; itm.Save(); } else { XtraMessageBox.Show(valid, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } //TODO: To add categories //Needs some modification on edit // this will only add the suppliers //do some thing on edit itmSup.DeleteAllSupForItem(itm.ID); Supplier sup = new Supplier(); foreach (object t in lstSuppliers.CheckedItems) { sup.GetSupplierByName(t.ToString()); itmSup.AddNew(); itmSup.ItemID = itm.ID; itmSup.SupplierID = sup.ID; itmSup.Save(); } var progItm = new ProgramProduct(); progItm.DeleteAllProgramsForItem(_itemId); var prog = new Programs(); //prog.AddNew(); //prog.Name = cboPrograms.Text; //prog.Save(); foreach (object t in lstPrograms.CheckedItems) { prog.GetProgramByName(t.ToString()); progItm.AddNew(); progItm.ItemID = itm.ID; progItm.ProgramID = prog.ID; progItm.Save(); } var duItem = new DUsItemList(); var dus = new ReceivingUnits(); foreach (object t in lstDUs.CheckedItems) { dus.GetDUByName(t.ToString()); duItem.AddNew(); duItem.DUID = dus.ID; duItem.ItemID = _itemId; try { duItem.Save(); } catch { } } XtraMessageBox.Show("Item Detail is Saved Successfully!", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); }
public DataTable GetECLSItemsStockOut(int storeId, int month, int year) { Items itm = new Items(); Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); DataTable dtItem = itm.GetItemsByProgram(prog.ID); GeneralInfo pipline = new GeneralInfo(); pipline.LoadAll(); int min = pipline.Min; int max = pipline.Max; double eop = pipline.EOP; DataTable dt = new DataTable(); string[] cols = { "ID", "FullItemName", "DosageForm", "Strength", "Unit", "StockCode" }; foreach (string st in cols) { dt.Columns.Add(st); } Balance bal = new Balance(); foreach (DataRow dr in dtItem.Rows) { Int64 AMC = bal.CalculateAMC(Convert.ToInt32(dr["ID"]), storeId, month, year); Int64 MinCon = AMC * min; Int64 maxCon = AMC * max; double eopCon = AMC * (eop + 0.25); Int64 SOH = bal.GetSOH(Convert.ToInt32(dr["ID"]), storeId, month, year); decimal MOS = (AMC != 0) ? (SOH / AMC) : 0; Int64 reorder = (maxCon > SOH) ? maxCon - SOH : 0; if (SOH == 0) { object[] obb = { dr["ID"], dr["ItemName"], dr["DosageForm"], dr["Strength"], dr["Unit"], dr["StockCode"] }; dt.Rows.Add(obb); } //string status = (SOH <= eopCon && SOH > 0) ? "Near EOP" : ((SOH > maxCon) ? "Excess Stock" : ((SOH <= 0) ? "Stock Out" : "Normal")); } return dt; }
public int CountECLSItemsStockOut(int storeId, int month, int year) { Items itm = new Items(); Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); DataTable dtItem = itm.GetItemsByProgram(prog.ID); GeneralInfo pipline = new GeneralInfo(); pipline.LoadAll(); int min = pipline.Min; int max = pipline.Max; double eop = pipline.EOP; int count = 0; Balance bal = new Balance(); foreach (DataRow dr in dtItem.Rows) { Int64 AMC = bal.CalculateAMC(Convert.ToInt32(dr["ID"]), storeId, month, year); Int64 MinCon = AMC * min; Int64 maxCon = AMC * max; double eopCon = AMC * (eop + 0.25); Int64 SOH = bal.GetSOH(Convert.ToInt32(dr["ID"]), storeId, month, year); decimal MOS = (AMC != 0) ? (SOH / AMC) : 0; Int64 reorder = (maxCon > SOH) ? maxCon - SOH : 0; if (SOH == 0) count++; //string status = (SOH <= eopCon && SOH > 0) ? "Near EOP" : ((SOH > maxCon) ? "Excess Stock" : ((SOH <= 0) ? "Stock Out" : "Normal")); } return count; }
private void cboStores_SelectedValueChanged(object sender, EventArgs e) { if (cboStores.SelectedValue != null) { dtDate.Value = DateTime.Now; dtDate.CustomFormat = "MM/dd/yyyy"; DateTime dtCur = new DateTime();// Convert.ToDateTime(dtDate.Text); try { dtCur = Convert.ToDateTime(dtDate.Text); } catch { string dtValid = ""; string yer = ""; if (Convert.ToInt32(dtDate.Text.Substring(0, 2)) == 13) { dtValid = dtDate.Text; yer = dtValid.Substring(dtValid.Length - 4, 4); dtCur = Convert.ToDateTime("12/30/" + yer); } else if (Convert.ToInt32(dtDate.Text.Substring(0, 2)) == 2) { dtValid = dtDate.Text; yer = dtValid.Substring(dtValid.Length - 4, 4); dtCur = Convert.ToDateTime("2/28/" + yer); } } int month = Convert.ToInt32(cboMonth.SelectedValue); int year = (month < 11) ? dtCur.Year : dtCur.Year - 1; Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); Items itm = new Items(); DataTable dtItm = itm.GetItemsByProgram(prog.ID); PopulateItemListByMonth(dtItm, month,year); // PopulateItemListBlance(dtItm); } }
private void PopulateSStatusByCategoryAndYearForAllStore() { if (curMont != 0 && curYear != 0) { curYear = Convert.ToInt32(cboYear.EditValue); Balance blnc = new Balance(); DataTable dtbl = blnc.GetSOHForAllStores(curMont, curYear); Items itm = new Items(); Balance bal = new Balance(); ReceiveDoc rec = new ReceiveDoc(); Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); DataTable dtItm = itm.GetItemsByProgram(prog.ID); int totalECLS = dtItm.Rows.Count; lblNoECLS.Text = totalECLS.ToString(); int neverRec = rec.CountNeverReceivedItemsByCateogryAndYear(storeId, Convert.ToInt32(lkCategory.EditValue), Convert.ToInt32(cboYear.EditValue)); int stockin = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Normal" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked)? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (stockin == 0) { listInStock.Visible = false; } else { listInStock.Visible = true; } //progressBar1.PerformStep(); int stockout = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked) ? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (stockout == 0) { listStockOut.Visible = false; } else { listStockOut.Visible = true; } //((ckExclude.Checked)? (bal.CountStockOut(storeId, curMont, curYear)- neverRec) : bal.CountStockOut(storeId, curMont, curYear)); //progressBar1.PerformStep(); int overstock = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Over Stocked" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked) ? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (overstock == 0) { listOverstock.Visible = false; } else { listOverstock.Visible = true; } // progressBar1.PerformStep(); int nearEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Near EOP" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked) ? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (nearEOP == 0) { listNearEOP.Visible = false; } else { listNearEOP.Visible = true; } //progressBar1.PerformStep(); int belowEOP = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Below EOP" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked) ? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (belowEOP == 0) { listBelowEOP.Visible = false; } else { listNearEOP.Visible = true; } // progressBar1.PerformStep(); int belowMin = 0;//bal.CountBelowMin(storeId, curMont, curYear); // progressBar1.PerformStep(); int freeStockOut = (from m in dtbl.AsEnumerable() where m["Status"].ToString() == "Stock Out" && Convert.ToInt32(m["TypeID"]) == Convert.ToInt32(lkCategory.EditValue) && ((ckExclude.Checked) ? Convert.ToInt32(m["EverReceived"]) == 1 : true) select m).Count(); if (freeStockOut == 0) { lblFreeStockedout.Visible = false; } else { lblFreeStockedout.Visible = true; } // progressBar1.PerformStep(); int vitalStockOut = bal.CountVitalItemsStockOutForAllStore(curMont, curYear); //int eclsStockout = bal.CountECLSItemsStockOut(storeId, curMont, curYear); // progressBar1.PerformStep(); object[] obj = { stockin, stockout, overstock, nearEOP, belowEOP }; int totalItm = stockin + stockout + nearEOP + overstock; decimal percen = ((totalItm != 0) ? (Convert.ToDecimal(stockin) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblInStock.Text = stockin.ToString() + " (" + percen.ToString("#.0") + "%)"; percen = ((totalItm != 0) ? (Convert.ToDecimal(stockout) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblStockOut.Text = stockout.ToString() + " (" + percen.ToString("#.0") + "%)"; percen = ((totalItm != 0) ? (Convert.ToDecimal(overstock) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblOverStocked.Text = overstock.ToString() + " (" + percen.ToString("#.0") + "%)"; percen = ((totalItm != 0) ? (Convert.ToDecimal(nearEOP) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblNearEOP.Text = nearEOP.ToString() + " (" + percen.ToString("#.0") + "%)"; percen = ((totalItm != 0) ? (Convert.ToDecimal(belowEOP) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblBelowEOP.Text = belowEOP.ToString() + " (" + percen.ToString("#.0") + "%)"; percen = ((totalItm != 0) ? (Convert.ToDecimal(belowMin) / Convert.ToDecimal(totalItm)) * 100 : 0); percen = Decimal.Round(percen, 0); lblBelowMin.Text = belowMin.ToString() + " (" + percen.ToString("#.0") + "%)"; lblFreeStockedout.Text = freeStockOut.ToString(); if (freeStockOut == 0) { linkLabel6.Visible = false; } else { linkLabel6.Visible = true; } int totalFree = itm.CountFreeItems(); percen = ((totalFree != 0) ? (Convert.ToDecimal(freeStockOut) / Convert.ToDecimal(totalFree)) * 100 : 0); percen = Decimal.Round(percen, 0); lblFreeStock.Text = freeStockOut.ToString() + " (" + percen.ToString("#.0") + "%)"; lblVitalStockedout.Text = vitalStockOut.ToString(); if (vitalStockOut == 0) { linkLabel7.Visible = false; } else { linkLabel7.Visible = true; } totalFree = itm.CountVitalItems(); percen = ((totalFree != 0) ? (Convert.ToDecimal(vitalStockOut) / Convert.ToDecimal(totalFree)) * 100 : 0); percen = Decimal.Round(percen, 0); lblVitalStock.Text = vitalStockOut.ToString() + " (" + percen.ToString("#.0") + "%)"; //totalFree = itm.CountVitalItems(); //percen = ((totalECLS != 0)?(Convert.ToDecimal(eclsStockout) / Convert.ToDecimal(totalECLS)) * 100:0); //percen = Decimal.Round(percen, 0); //lblEclsStock.Text = eclsStockout.ToString() + " (" + percen.ToString("#.0") + "%)"; GenerateStockStatusPieChart(obj); } }
private void linkLabel20_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Items itm = new Items(); Programs prog = new Programs(); prog.GetProgramByName("Family Planning"); DataTable dtItm = itm.GetItemsByProgram(prog.ID); //groupList.Text = "ECLS Items "; PopulateList(dtItm, lstDetail); }