public List<MatchDetail> CheckIsSaleMatch(string SaleHeadId) { List<MatchDetail> md = new List<MatchDetail>(); string sql = "SELECT * FROM SALE_ORDER_MATCH WHERE SaleHeadId = '" + SaleHeadId + "' "; DataTable dt = Class.DBConnString.clsDB.QueryDataTable(sql); foreach (DataRow row in dt.Rows) { MatchDetail m = new MatchDetail(); m.MatchId = row["MatchId"].ToInt(); m.OrderId = row["OrderId"].ToString(); m.ProductId = row["ProductId"].ToString(); m.SaleHeadId = row["SaleHeadId"].ToString(); m.QuantityCut = row["MatchQuantity"].ToDouble(); md.Add(m); } return md; }
void ScanOrder(int index, string ProductId, string SaleHeadId, double SaleDetailQuantity) { double balanceOrder = 0; if (index < DetailOrder.Rows.Count) { DataRow r = DetailOrder.Rows[index]; balanceOrder = Convert.ToDouble(r["Balance"]); if (ProductId == r["ProductId"].ToString()) { if (SaleDetailQuantity > balanceOrder) { MatchDetail a = new MatchDetail(); a.OrderId = r["OrderId"].ToString(); a.SaleHeadId = SaleHeadId; a.ProductId = r["ProductId"].ToString(); SaleDetailQuantity -= balanceOrder; a.QuantityCut = balanceOrder; md.Add(a); ScanOrder(++index, ProductId, SaleHeadId, SaleDetailQuantity); } else { MatchDetail a = new MatchDetail(); a.OrderId = r["OrderId"].ToString(); a.SaleHeadId = SaleHeadId; a.ProductId = r["ProductId"].ToString(); a.QuantityCut = SaleDetailQuantity; md.Add(a); return; } } else { ScanOrder(++index, ProductId, SaleHeadId, SaleDetailQuantity); } } }