protected override bool SaveData() { view.CloseEditor(); bsDetail.EndEdit(); DS_ProductDistribution.SP_GetProductDistributionDetailDataTable table = DataSetHelper.PackAlternationTypedDataTable <DS_ProductDistribution.SP_GetProductDistributionDetailDataTable>(ds_Production.SP_GetProductDistributionDetail); DataSetHelper.RemoveColumns(table, true, table.ProductDistributionDetailIDColumn, table.ProductLocationIDColumn, table.DistributeQtyColumn, table.UnitPriceColumn, table.OrdinalNumberColumn, table.ActionColumn); var ds = new DataSet("root"); ds.Tables.Add(table); var id = ProductionManager.AddOrEditProductDistribution(ProductDistributionID, FromBranchID, ToBranchID, StartDate, EndDate, SubTotal, TaxAmt, Freight, TotalDue, CurrencyCode, CurrencyRateID, Comment, RevisionNumber, Status, BaseGlobalVariable.UserID, BaseGlobalVariable.ServerDateTime, ApproverUserID, Action, DataSetHelper.InnerBytesData(ds)); if (id > 0) { if (Action == DatabaseAction.Add) { ds_Production.SP_GetProductDistributionHeader[0].ProductDistributionID = id; foreach (var row in ds_Production.SP_GetProductDistributionDetail) { if (row.RowState == DataRowState.Deleted) { continue; } row.ProductDistributionID = id; } ProductDistributionID = id; } } ds_Production.AcceptChanges(); return(id > 0); }
public bool IsValidGrid() { view.CloseEditor(); bsDetail.EndEdit(); var ok = true; foreach (var row in ds_Production.SP_GetProductDistributionDetail) { if (row.RowState == DataRowState.Deleted) { continue; } if (!IsValidRow(row)) { ok = false; } } if (!ok) { return(ok); } DS_ProductDistribution.SP_GetProductDistributionDetailDataTable table = DataSetHelper.PackAlternationTypedDataTable <DS_ProductDistribution.SP_GetProductDistributionDetailDataTable>(ds_Production.SP_GetProductDistributionDetail, DataRowState.Added | DataRowState.Modified); table.PrimaryKey = null; DataSetHelper.RemoveColumns(table, true, table.ProductLocationIDColumn, table.ProductDistributionDetailIDColumn, table.ActionColumn); var ds = new DataSet("root"); ds.Tables.Add(table); var productLocationQuantity = ProductLocationManager.GetProductLocationQuantity(0, ObjectNames.ProductDistributionDetail, true, DataSetHelper.InnerBytesData(ds)); foreach (var row2 in ds_Production.SP_GetProductDistributionDetail) { if (row2.RowState == DataRowState.Deleted) { continue; } foreach (var tmp in productLocationQuantity) { if (tmp.RowState == DataRowState.Deleted) { continue; } if (row2.ProductLocationID == tmp.ProductLocationID) { row2.Quantity = tmp.Quantity; InitResidualQty(row2); } } if (!IsValidRowQuantity(row2)) { ok = false; } } return(ok); }