private void SaveChanges()
{
BillDataGrid.SelectionChanged -= BillDataGrid_SelectionChanged;
groupBox1.Enabled = false;
try
{
string opMessage;
string opMsgType;
List<bool> Modded = new List<bool>();
List<bool> Added = new List<bool>();
foreach (DataRow DR in EngWBDS.Tables["ECOMtl"].Rows)
{
if (DR.RowState == DataRowState.Modified || DR.RowState == DataRowState.Added)
{
#region Validate all data
if (DR.RowState == DataRowState.Modified)
{
Modded.Add(true);
Added.Add(false);
}
else
{
Added.Add(true);
Modded.Add(false);
}
string partnumber = DR["MtlPartNum"].ToString();
string ops = DR["RelatedOperation"].ToString();
string mtlseq = DR["MtlSeq"].ToString();
EngWB.CheckECOMtlMtlPartNum(partnumber, out opMessage, out opMsgType, EngWBDS);
EngWB.CheckECOMtlMtlSeqRelatedOperation(int.Parse(mtlseq), int.Parse(ops), "", out opMessage, out opMsgType, EngWBDS);
EngWB.ChangeECOMtlQtyPer(EngWBDS);
EngWB.ChangeECOMtlRelatedOperation(int.Parse(ops), EngWBDS);
//Set changes to accepted to run ECOMtlRelated or it will change all modified rows to equal the last modified rows related operations
DR.AcceptChanges();
//EngWB.ChangeECOMtlMtlPartNum(EngWBDS);
#endregion
}
else
{
Modded.Add(false);
Added.Add(false);
}
}
for (int i = 0; i < EngWBDS.Tables["ECOMtl"].Rows.Count; i++)
{
if (EngWBDS.Tables["ECOMtl"].Rows[i].RowState == DataRowState.Unchanged)
{
if (Modded[i])
{
EngWBDS.Tables["ECOMtl"].Rows[i].SetModified();
}
if (Added[i])
EngWBDS.Tables["ECOMtl"].Rows[i].SetAdded();
}
}
try
{
EngWB.Update(EngWBDS);
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
BillDataGrid.DataSource = EngWBDS.Tables["ECOMtl"];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
groupBox1.Enabled = true;
BillDataGrid.SelectionChanged += BillDataGrid_SelectionChanged;
}