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); } }
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); } }