Пример #1
0
        public void GenerateItemsForReorderByRID(Int32 TerminalID, long POID, long RID, DateTime IDC_StartDate, DateTime IDC_EndDate)
        {
            try
            {
                GetConnection();

                Terminal clsTerminal = new Terminal(base.Connection, base.Transaction);
                TerminalDetails clsTerminalDetails = clsTerminal.Details(TerminalID);

                PODetails clsPODetails = Details(POID);

                Products clsProduct = new Products(base.Connection, base.Transaction);
                // Aug 26, 2011  :Lemu
                // Insert UpdateProductReorderOverStockPerSupplier to update the MinThreshold & MaxThreshold using RID before getting the for stocking
                clsProduct.UpdateProductReorderOverStockPerSupplier(clsPODetails.SupplierID, RID, IDC_StartDate, IDC_EndDate);
                // end

                POItem clsPOItem = new POItem(base.Connection, base.Transaction);

                ProductInventories clsProductInventories = new ProductInventories(base.Connection, base.Transaction);
                System.Data.DataTable dt = clsProductInventories.ListAsDataTable(BranchID: Constants.BRANCH_ID_MAIN, SupplierID: clsPODetails.SupplierID, ForReorder: 1);

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    if (decimal.Round(Convert.ToDecimal(dr["RIDReorderQty"].ToString())) > 0)
                    {
                        POItemDetails clsDetails = new POItemDetails();

                        clsDetails.POID = POID;
                        clsDetails.ProductID = Convert.ToInt64(dr["ProductID"].ToString());
                        clsDetails.ProductCode = dr["ProductCode"].ToString();
                        clsDetails.BarCode = dr["BarCode"].ToString();
                        clsDetails.Description = dr["ProductDesc"].ToString();
                        clsDetails.ProductGroup = dr["ProductGroupCode"].ToString();
                        clsDetails.ProductSubGroup = dr["ProductSubGroupCode"].ToString();
                        clsDetails.ProductUnitID = Convert.ToInt32(dr["UnitID"]);
                        clsDetails.ProductUnitCode = dr["UnitName"].ToString();
                        clsDetails.RID = Convert.ToInt64(dr["RID"]);
                        clsDetails.Quantity = decimal.Round(Convert.ToDecimal(dr["RIDReorderQty"]));
                        clsDetails.UnitCost = Convert.ToDecimal(dr["PurchasePrice"]);
                        clsDetails.Discount = 0;
                        clsDetails.DiscountApplied = 0;
                        clsDetails.DiscountType = DiscountTypes.Percentage;
                        clsDetails.Remarks = "added using auto generation";

                        decimal amount = clsDetails.Quantity * clsDetails.UnitCost;


                        // Added Sep 27, 2010 4:20PM : for selling information
                        clsDetails.SellingPrice = decimal.Parse(dr["Price"].ToString());
                        clsDetails.SellingVAT = clsTerminalDetails.VAT;
                        clsDetails.SellingEVAT = clsTerminalDetails.EVAT;
                        clsDetails.SellingLocalTax = clsTerminalDetails.LocalTax;
                        clsDetails.OldSellingPrice = clsDetails.SellingPrice;

                        if (Convert.ToDecimal(dr["VAT"]) > 0)
                        {
                            clsDetails.VatableAmount = amount;
                            clsDetails.EVatableAmount = amount;
                            clsDetails.LocalTax = amount;

                            clsDetails.VatableAmount = (clsDetails.VatableAmount) / (1 + (clsTerminalDetails.VAT / 100));
                            clsDetails.EVatableAmount = (clsDetails.EVatableAmount) / (1 + (clsTerminalDetails.VAT / 100));
                            clsDetails.LocalTax = (clsDetails.LocalTax) / (1 + (clsTerminalDetails.LocalTax / 100));
                            clsDetails.IsVatable = true;
                        }
                        else
                        {
                            clsDetails.VAT = 0;
                            clsDetails.VatableAmount = 0;
                            clsDetails.EVAT = 0;
                            clsDetails.EVatableAmount = 0;
                            clsDetails.LocalTax = 0;
                            clsDetails.IsVatable = false;
                        }
                        clsDetails.Amount = amount;

                        clsDetails.VariationMatrixID = Convert.ToInt64(dr["MatrixID"]);
                        clsDetails.MatrixDescription = dr["MatrixDescription"].ToString();
                        clsPOItem.Insert(clsDetails);
                    }
                }
            }

            catch (Exception ex)
            {
                throw base.ThrowException(ex);
            }
        }
Пример #2
0
		private void SetDataSource(ReportDocument Report)
		{
            ReportDataset rptds = new ReportDataset();

            string ProductGroupName = string.Empty;
            if (cboGroup.SelectedItem.Value != Constants.ZERO_STRING) ProductGroupName = cboGroup.SelectedItem.Text;
            string SubGroupName = string.Empty;
            if (cboSubGroup.SelectedItem.Value != Constants.ZERO_STRING) SubGroupName = cboSubGroup.SelectedItem.Text;

            DateTime dteIDCStartDate = DateTime.Now.AddDays(-14);
            DateTime dteIDCEndDate = DateTime.Now;
            
            try { dteIDCStartDate = Convert.ToDateTime(txtStartTransactionDate.Text + " " + txtStartTime.Text);}catch{}
            try { dteIDCEndDate = Convert.ToDateTime(txtEndTransactionDate.Text + " " + txtEndTime.Text);}catch{}

			Products clsProduct = new Products();
            
            if (cboSupplier.SelectedItem.Text == Constants.ALL)
            { 
                if (cboSubGroup.SelectedItem.Text == Constants.ALL)
                { clsProduct.UpdateProductReorderOverStockPerSubGroup(long.Parse(cboSubGroup.SelectedItem.Value), dteIDCStartDate, dteIDCEndDate); }
                else if (cboSubGroup.SelectedItem.Text == Constants.ALL)
                { clsProduct.UpdateProductReorderOverStockPerGroup(long.Parse(cboGroup.SelectedItem.Value), dteIDCStartDate, dteIDCEndDate); }
                else
                { clsProduct.UpdateProductReorderOverStock(dteIDCStartDate, dteIDCEndDate); }
            }
            else
            {
                if (cboSubGroup.SelectedItem.Text == Constants.ALL)
                { clsProduct.UpdateProductReorderOverStockPerSupplierPerSubGroup(long.Parse(cboSupplier.SelectedValue), long.Parse(cboSubGroup.SelectedItem.Value), dteIDCStartDate, dteIDCEndDate); }
                else if (cboSubGroup.SelectedItem.Text == Constants.ALL)
                { clsProduct.UpdateProductReorderOverStockPerSupplierPerGroup(long.Parse(cboSupplier.SelectedValue), long.Parse(cboGroup.SelectedItem.Value), dteIDCStartDate, dteIDCEndDate); }
                else
                { clsProduct.UpdateProductReorderOverStockPerSupplier(long.Parse(cboSupplier.SelectedValue), dteIDCStartDate, dteIDCEndDate); }
            }
            clsProduct.CommitAndDispose();

            clsProduct = new Products();
            System.Data.DataTable dt = (clsProduct.SearchDataTable(ProductListFilterType.ShowActiveOnly, string.Empty, long.Parse(cboSupplier.SelectedValue),
                                            long.Parse(cboGroup.SelectedItem.Value), string.Empty, long.Parse(cboSubGroup.SelectedItem.Value), string.Empty, 0, false, false, string.Empty, SortOption.Ascending));
            clsProduct.CommitAndDispose();

            foreach(System.Data.DataRow dr in dt.Rows)
            {
                DataRow drProducts = rptds.Products.NewRow();

                foreach (DataColumn dc in rptds.Products.Columns)
                    drProducts[dc] = dr[dc.ColumnName];

                rptds.Products.Rows.Add(drProducts);
            }

            //ProductVariationsMatrix clsMatrix = new ProductVariationsMatrix(clsProduct.Connection, clsProduct.Transaction);
            //rptds.Tables.Add(clsMatrix.BaseListAsDataTable(0, "a.ProductID", SortOption.Ascending));
            // ds.Tables.Add(clsMatrix.ForReorder("a.Quantity", SortOption.Ascending));

            Report.SetDataSource(rptds);

			SetParameters(Report);
		}