private PartDataSet UpdateDataSet(PartDataSet Pdata, DataViewRowState RowState) { Part Part = new Part(DataList.EpicConn); DataList.AddDatum(Pdata, "Part", 0, "PartDescription", Description_txt.Text,RowState); if (RowState == DataViewRowState.Unchanged) RowState = DataViewRowState.ModifiedCurrent; //SearchWord has 8 character limit if (Description_txt.Text.Length > 8) DataList.AddDatum(Pdata, "Part", 0, "SearchWord", Description_txt.Text.Substring(0, 8), RowState); else DataList.AddDatum(Pdata, "Part", 0, "SearchWord", Description_txt.Text, RowState); DataList.AddDatum(Pdata, "Part", 0, "NetWeight", NetWeight.Text, RowState); DataList.AddDatum(Pdata, "Part", 0, "NetWeightUOM", uomweight_cbo.SelectedValue.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "IUM", uom_cbo.SelectedValue.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "ClassID", class_cbo.SelectedValue.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "QtyBearing", qtybearing.Checked.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "UsePartRev", userevision.Checked.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "PhantomBOM", phantom_chk.Checked.ToString(), RowState); string Type_Code = type_cbo.SelectedItem.ToString(); Part.ChangePartTypeCode(Type_Code, Pdata); Part.ChangePartProdCode(group_cbo.SelectedValue.ToString(), Pdata); //add trackserial number if necessary if (trackserial.Checked && (SerialPrefix != "" || SerialPrefix != null)) { if (SerialPrefix == "" || SerialPrefix == null) MessageBox.Show("Cannot use null serial prefix. Set the prefix or uncheck 'Track Serial Number'", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); else { DataList.AddDatum(Pdata, "Part", 0, "EnableSerialNum", trackserial.Checked.ToString(), RowState); DataList.AddDatum(Pdata, "Part", 0, "TrackSerialNum", trackserial.Checked.ToString(), RowState); Part.ChangePartSNBaseDataType("MASK", Pdata); Part.ChangeSNMask(SerialMask, Pdata); Part.ChangePartSNMaskPrefixSuffix(SerialPrefix, "", Pdata); } } return Pdata; }
private void savebtn_Click(object sender, EventArgs e) { if (trackserial.Checked && (SerialPrefix == "" || SerialPrefix == null)) MessageBox.Show("Cannot use null serial prefix. Set the prefix or uncheck 'Track Serial Number'", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); else { try { //Commit Part Changes Part Part = new Part(DataList.EpicConn); PartDataSet Pdata = new PartDataSet(); //Pdata = (PartDataSet)DL.PartSearchDataSet(""); string serialWarning; string questionString; bool multipleMatch; string PartNumber = Partnumber_txt.Text; DataViewRowState DRState; if (!DataList.PartExists(PartNumber)) { Part.GetPartXRefInfo(ref PartNumber, "", "", out serialWarning, out questionString, out multipleMatch); Part.GetNewPart(Pdata); Part.ChangePartNum(PartNumber, Pdata); DRState = DataViewRowState.Added; } else { Pdata = Part.GetByID(PartNumber); DRState = DataViewRowState.Unchanged; #region Clear Bflush/SN Settings try { DataList.UpdateDatum(Pdata, "Part", 0, "TrackSerialNum", false.ToString()); DataList.UpdateDatum(Pdata, "Part", 0, "UseMaskSeq", false.ToString()); DataList.UpdateDatum(Pdata, "PartPlant", 0, "PartTrackSerialNum", false.ToString()); DataList.UpdateDatum(Pdata, "PartPlant", 0, "BackFlush", false.ToString()); Part.Update(Pdata); Pdata = Part.GetByID(PartNumber); } catch (Exception ex) { System.Diagnostics.Debug.Print(ex.Message); } #endregion } Pdata = UpdateDataSet(Pdata, DRState); //Add data to allow BO to create plant tables try { Part.Update(Pdata); if (bflush_chk.Checked) { //try to eliminate backflush if necessary DataList.UpdateDatum(Pdata, "PartPlant", 0, "BackFlush", bflush_chk.Checked.ToString()); } Part.Update(Pdata); } catch (Exception ex) { System.Diagnostics.Debug.Print(ex.Message); } if (trackserial.Checked) { Pdata = Part.GetByID(PartNumber); try { Part.ChangePartTrackSerialNum(trackserial.Checked, Pdata); } catch { //If the neat process fails, do it the hard way. DataList.UpdateDatum(Pdata, "Part", 0, "TrackSerialNum", true.ToString()); DataList.UpdateDatum(Pdata, "Part", 0, "UseMaskSeq", true.ToString()); DataList.UpdateDatum(Pdata, "Part", 0, "SNLastUsedSeq", ""); Part.Update(Pdata); Pdata = Part.GetByID(PartNumber); DataList.UpdateDatum(Pdata, "PartPlant", 0, "EnableSerialNum", true.ToString()); DataList.UpdateDatum(Pdata, "PartPlant", 0, "PartTrackSerialNum", true.ToString()); try { DataList.UpdateDatum(Pdata, "PartPlant", 0, "PhantomBOM", false.ToString()); } catch { } Part.Update(Pdata); Pdata = Part.GetByID(PartNumber); } DataList.UpdateDatum(Pdata, "Part", 0, "UseMaskSeq", true.ToString()); } //retrieve the new copy of the data Pdata = Part.GetByID(PartNumber); if (whse_cbo.Items.Count > 0) { Part.Update(Pdata); for (int i = 0; i < whse_cbo.Items.Count; i++) { whse_cbo.SelectedIndex = i; DataList.UpdateDatum(Pdata, "PartPlant", 0, "PrimWhse", whse_cbo.SelectedValue.ToString()); DataList.UpdateDatum(Pdata, "PartPlant", 0, "PrimWhseDescription", whse_cbo.Text); DataList.UpdateDatum(Pdata, "PartPlant", 0, "DBRowIdent", null); //if (trackserial.Checked) DataList.UpdateDatum(Pdata, "PartPlant", 0, "PartTrackSerialNum", trackserial.Checked.ToString()); } if (trackserial.Checked) { Part.ChangePartSNBaseDataType("MASK", Pdata); Part.ChangeSNMask(SerialMask, Pdata); } Part.Update(Pdata); DataList.UpdateDatum(Pdata, "PartPlant", 0, "BackFlush", bflush_chk.Checked.ToString()); if (planner_cbo.Enabled) { DataList.UpdateDatum(Pdata, "PartPlant", 0, "PersonID", planner_cbo.Text); DataList.UpdateDatum(Pdata, "PartPlant", 0, "PersonName", planner_cbo.Text); } //Update with warehouse information Part.Update(Pdata); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } finally { DataList.EpicClose(); this.Close(); } } }