public static bool ItemStatusReport(int ItemID, string DateFrom, string DateTo, bool TableBorder = false, bool Preview = true, bool PrintToThermal = false, bool ExportToPdf = false, bool ExportToExcel = false, string ExportPath = "", bool colored = false) { if (!ItemsMgmt.IsItemExistByID(ItemID)) { return(false); } string EmptyNoborderRow = ReportsHelper.MANUAL_TD_OPTION_START + ReportsHelper.NOBORDER + ReportsHelper.MANUAL_TD_OPTION_END + ReportsHelper.MANUAL_TD_END; List <DataTable> aDTlist = new List <DataTable>(); DataTable aTable1 = new DataTable(); if (TableBorder) { aTable1.Columns.Add("[Border=true1]" + "Barcode"); } else { aTable1.Columns.Add("Barcode"); } aTable1.Columns.Add("Description"); aTable1.Columns.Add("Type"); aTable1.Columns.Add("Qty"); DataRow aItemRow = ItemsMgmt.SelectItemRowByID(ItemID); bool AddEmpty = false; double NetTotal = 0.00; DataRow __PoorRow; double OnHandQty = double.Parse(aItemRow["OnHandQty"].ToString()); double TotalBeforeBills = BillDetailedMgmt.SelectAllSoldQty(ItemID, DateFrom, DateTo, 0, true); double TotalBeforeAdjust = AdjustInventoryDetailedMgmt.SelectAllAdjustQty(ItemID, DateFrom, DateTo, -1, true); double TotalBeforeDispose = DisposalDetailedMgmt.SelectAllDisposedQty(ItemID, DateFrom, DateTo, 0, true); double TotalBeforePurchase = PurchaseVoucherDetailedMgmt.SelectAllPurchaseQty(ItemID, DateFrom, DateTo, 0, true); double TotalBeforeCusRet = ReturnItemsCustDetailedMGMT.SelectAllReturnedQty(ItemID, DateFrom, DateTo, 0, true); double TotalBeforeVenReturns = ReturnItemsVendorDetailedMgmt.SelectAllReturnedQty(ItemID, DateFrom, DateTo, 0, true); double BegginingQty = OnHandQty - TotalBeforeBills + TotalBeforeAdjust - TotalBeforeDispose + TotalBeforePurchase + TotalBeforeCusRet - TotalBeforeVenReturns; if (BegginingQty != 0) { NetTotal += BegginingQty; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Beginning Qty"; __PoorRow[3] = Math.Round(BegginingQty, 3); AddEmpty = true; } double TotalBills = BillDetailedMgmt.SelectAllSoldQty(ItemID, DateFrom, DateTo, -1); double TotalReversedBills = BillDetailedMgmt.SelectAllSoldQty(ItemID, DateFrom, DateTo, 1); if (TotalBills != 0) { NetTotal -= TotalBills; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Sales"; __PoorRow[3] = Math.Round(0.00 - TotalBills, 3); AddEmpty = true; } if (TotalReversedBills != 0) { NetTotal += TotalReversedBills; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Reversed Sales"; __PoorRow[3] = Math.Round((TotalReversedBills), 3); AddEmpty = true; } double TotalAdjust = AdjustInventoryDetailedMgmt.SelectAllAdjustQty(ItemID, DateFrom, DateTo, -1); if (TotalAdjust != 0) { NetTotal += TotalAdjust; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Inventory Adjust"; __PoorRow[3] = Math.Round(TotalAdjust, 3); AddEmpty = true; } double TotalDisposed = DisposalDetailedMgmt.SelectAllDisposedQty(ItemID, DateFrom, DateTo, -1); double TotalReversedDisposed = DisposalDetailedMgmt.SelectAllDisposedQty(ItemID, DateFrom, DateTo, 1); if (TotalDisposed != 0) { NetTotal -= TotalDisposed; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Disposed"; __PoorRow[3] = Math.Round(0.00 - TotalDisposed, 3); AddEmpty = true; } if (TotalReversedDisposed != 0) { NetTotal += TotalReversedDisposed; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Reversed Disposals"; __PoorRow[3] = Math.Round((0.00 - TotalReversedDisposed), 3); AddEmpty = true; } double TotalPurchase = PurchaseVoucherDetailedMgmt.SelectAllPurchaseQty(ItemID, DateFrom, DateTo, -1); double TotalReversedPurchase = PurchaseVoucherDetailedMgmt.SelectAllPurchaseQty(ItemID, DateFrom, DateTo, 1); if (TotalPurchase != 0) { NetTotal += TotalPurchase; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Purchase"; __PoorRow[3] = Math.Round((TotalPurchase), 3); AddEmpty = true; } if (TotalReversedPurchase != 0) { NetTotal -= TotalReversedPurchase; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Reversed Purchase"; __PoorRow[3] = Math.Round((0.00 - TotalReversedPurchase), 3); AddEmpty = true; } double TotalCustomerReturns = ReturnItemsCustDetailedMGMT.SelectAllReturnedQty(ItemID, DateFrom, DateTo, -1); double TotalReversedCustomerReturns = ReturnItemsCustDetailedMGMT.SelectAllReturnedQty(ItemID, DateFrom, DateTo, 1); if (TotalCustomerReturns != 0) { NetTotal += TotalCustomerReturns; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Customer Returns"; __PoorRow[3] = Math.Round((TotalCustomerReturns), 3); AddEmpty = true; } if (TotalReversedCustomerReturns != 0) { NetTotal -= TotalReversedCustomerReturns; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Reversed Customer Returns"; __PoorRow[3] = Math.Round((0.00 - TotalReversedCustomerReturns), 3); AddEmpty = true; } double TotalVendorReturns = ReturnItemsVendorDetailedMgmt.SelectAllReturnedQty(ItemID, DateFrom, DateTo, -1); double TotalReversedVendorReturns = ReturnItemsVendorDetailedMgmt.SelectAllReturnedQty(ItemID, DateFrom, DateTo, 1); if (TotalVendorReturns != 0) { NetTotal -= TotalVendorReturns; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Vendors Returns"; __PoorRow[3] = Math.Round((0.00 - TotalVendorReturns), 3); AddEmpty = true; } if (TotalReversedVendorReturns != 0) { NetTotal += TotalReversedVendorReturns; __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = "Total Reversed Vendors Returns"; __PoorRow[3] = Math.Round((TotalReversedVendorReturns), 3); AddEmpty = true; } if (NetTotal != 0) { __PoorRow = aTable1.Rows.Add(); __PoorRow[0] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Barcode"].ToString(); __PoorRow[1] = (AddEmpty) ? EmptyNoborderRow : aItemRow["Description"].ToString(); __PoorRow[2] = ReportsHelper.MANUAL_TD_OPTION_START + ReportsHelper.UNDERLINE + ReportsHelper.MANUAL_TD_OPTION_END + "TOTAL" + ReportsHelper.MANUAL_TD_END; __PoorRow[3] = ReportsHelper.MANUAL_TD_OPTION_START + ReportsHelper.UNDERLINE + ReportsHelper.MANUAL_TD_OPTION_END + Math.Round((NetTotal), 3) + ReportsHelper.MANUAL_TD_END; AddEmpty = true; } aDTlist.Add(aTable1); List <string> aHeaderList = ReportsHelper.ImportReportHeader(0, 1); List <string> aFooterList = ReportsHelper.ImportReportHeader(1, 1); aHeaderList.Add("<td>" + SharedVariables.Line_Solid_10px_Black); aHeaderList.Add("<b><font size=4>" + Text.ReportsNames.ItemSymmaryStatusRepName + " </font>"); aHeaderList.Add("<b><font size=4>" + Text.ReportsText.DateRepTxt + ": " + DateTime.Now.ToShortDateString() + " </font>"); aHeaderList.Add("<b><font size=4>" + Text.ReportsText.FromRepTxt + ": " + DateFrom + " " + Text.ReportsText.ToRepTxt + ": " + DateTo + " </font>"); aHeaderList.Add("<td>" + SharedVariables.Line_Solid_10px_Black); if (Preview) { PrintingManager.Instance.PrintTables(aDTlist, aHeaderList, aFooterList, ReportsHelper.TempOutputPath, ReportsHelper.TempOutputPath, PrintToThermal, false, false, "", false, "", colored); return(true); } else if (ExportToPdf) { PrintingManager.Instance.PrintTables(aDTlist, aHeaderList, aFooterList, ReportsHelper.TempOutputPath, ReportsHelper.TempOutputPath, PrintToThermal, false, true, ExportPath, false, "", colored); return(true); } else if (ExportToExcel) { PrintingManager.Instance.PrintTables(aDTlist, aHeaderList, aFooterList, ReportsHelper.TempOutputPath, ReportsHelper.TempOutputPath, PrintToThermal, false, false, "", true, ExportPath, colored); return(true); } else if (PrintToThermal) { PrintingManager.Instance.PrintTables(aDTlist, aHeaderList, aFooterList, ReportsHelper.TempOutputPath, ReportsHelper.TempOutputPath, true, true, false, "", false, "", colored); return(true); } else { return(false); } }