Folder/DocVersion Specific Info dialog support and multi-user checks

This commit is contained in:
2015-05-14 14:36:41 +00:00
parent 46ff7a513d
commit b97b6b41d1
4 changed files with 457 additions and 2 deletions

View File

@@ -240,6 +240,7 @@ namespace VEPROMS
VETreeNode tn = VETreeNode.GetFolder(1);
tv.Nodes.Add(tn);
tv.NodePSI += new vlnTreeViewPSIEvent(tv_NodePSI);
tv.NodeSI += new vlnTreeViewSIEvent(tv_NodeSI);
tv.NodeOpenProperty += new vlnTreeViewPropertyEvent(tv_NodeOpenProperty);
tv.NodeSelect += new Volian.Controls.Library.vlnTreeViewEvent(tv_NodeSelect);
tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew);
@@ -347,7 +348,7 @@ namespace VEPROMS
if (fi != null)
{
string msg = string.Empty;
bool ok = MySessionInfo.CanCheckOutItem(fi.FolderID, CheckOutType.Folder, ref msg);
bool ok = MySessionInfo.CanCheckOutItem(fi.FolderID, CheckOutType.Session, ref msg);
if (!ok)
{
if (args.Index == 0)
@@ -357,7 +358,7 @@ namespace VEPROMS
}
else
{
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Folder);
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi);
dlg.ShowDialog(this);
MySessionInfo.CheckInItem(ownerid);
@@ -701,6 +702,35 @@ namespace VEPROMS
MySessionInfo.CheckInItem(ownerID);
return dr;
}
DialogResult tv_NodeSI(object sender, vlnTreeEventArgs args)
{
VETreeNode vNode = (VETreeNode)args.Node;
IVEDrillDownReadOnly veObj = vNode.VEObject;
// see if working draft or folder & get associated 'SI' info from its config.
// For now, do folder.
bool doFolder = true;
FolderInfo myFolder = veObj as FolderInfo;
DocVersionInfo myDV = veObj as DocVersionInfo; ;
if (myFolder == null) doFolder = false;
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(doFolder?myFolder.FolderID:myDV.VersionID, doFolder?CheckOutType.Folder:CheckOutType.DocVersion, ref message))
{
MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return DialogResult.None;
}
string strConfig = doFolder ? myFolder.Config : myDV.Config;
FormatInfo fi = doFolder ? myFolder.ActiveFormat : myDV.ActiveFormat;
if (fi == null)
{
MessageBox.Show("You must define a format at this level before access of Specific Information");
return DialogResult.Cancel;
}
int ownerID = MySessionInfo.CheckOutItem(doFolder ? myFolder.FolderID : myDV.VersionID, doFolder ? CheckOutType.Folder : CheckOutType.DocVersion);
frmSI fsi = new frmSI(fi.PlantFormat.FormatData.SI, strConfig, doFolder, myFolder, myDV);
DialogResult dr = fsi.ShowDialog(this);
MySessionInfo.CheckInItem(ownerID);
return dr;
}
/// <summary>
/// Activate tmrTreeView so that the newly created Step recieves focus
/// </summary>
@@ -1818,16 +1848,34 @@ namespace VEPROMS
{
if (args.FolderConfig != null)
{
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(args.FolderConfig.MyFolder.FolderID, CheckOutType.Folder, ref message))
{
MessageBox.Show(this, message, "Folder Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.Cursor = Cursors.Default;
return DialogResult.None;
}
int ownerID = MySessionInfo.CheckOutItem(args.FolderConfig.MyFolder.FolderID, CheckOutType.Folder);
frmFolderProperties frmfld = new frmFolderProperties(args.FolderConfig);
dr = frmfld.ShowDialog();
if (dr == DialogResult.OK)
epProcedures.TitleText = getProcedurePanelHeading();// get the panel heading
MySessionInfo.CheckInItem(ownerID);
}
else if (args.DocVersionConfig != null)
{
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(args.DocVersionConfig.MyDocVersion.VersionID, CheckOutType.DocVersion, ref message))
{
MessageBox.Show(this, message, "Document Version Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.Cursor = Cursors.Default;
return DialogResult.None;
}
int ownerID = MySessionInfo.CheckOutItem(args.DocVersionConfig.MyDocVersion.VersionID, CheckOutType.DocVersion);
frmVersionsProperties frmver = new frmVersionsProperties(args.DocVersionConfig);
frmver.ProgressBar = bottomProgBar;
dr = frmver.ShowDialog();
MySessionInfo.CheckInItem(ownerID);
}
else if (args.ProcedureConfig != null)
{