// ------------------------------------------------------------------- // Saves TreeNode of a client tree // ------------------------------------------------------------------- private static TreeNode SaveTreeNodeToClient(TreeNode treeNode, int parentID, ClientDocumentSet clientDocumentSet) { TreeNode ret = new TreeNode(); ClientDocument cdsl = new ClientDocument(); var t = treeNode.Tag.GetType(); // If the type is not document, it is an existing document // // var documentLink = new FCMStructures.scClientDocSetDocLink(); var documentLink = new scClientDocSetDocLink(); if (t.Name == "scClientDocSetDocLink") { documentLink = (scClientDocSetDocLink)treeNode.Tag; documentLink.clientDocument.SequenceNumber = treeNode.Index; } // // If the type is Document, it means a new document added to the client // list // if (t.Name == "Document") #region Document { documentLink.document = new Model.ModelDocument.Document(); documentLink.document = (Model.ModelDocument.Document)treeNode.Tag; documentLink.clientDocument = new ClientDocument(); documentLink.clientDocumentSet = new ClientDocumentSet(); // Fill in the extra details... // documentLink.clientDocument.EndDate = System.DateTime.MaxValue; documentLink.clientDocument.FKClientDocumentSetUID = clientDocumentSet.ClientSetID; // Utils.ClientSetID; documentLink.clientDocument.FKClientUID = clientDocumentSet.FKClientUID; //Utils.ClientID; if (clientDocumentSet.FKClientUID <= 0) { MessageBox.Show("Client ID not supplied."); return(null); } documentLink.clientDocument.FKDocumentUID = documentLink.document.UID; documentLink.clientDocument.Generated = 'N'; documentLink.clientDocument.SourceIssueNumber = documentLink.document.IssueNumber; documentLink.clientDocument.ClientIssueNumber = 00; // When the source is client, the name will have already all the numbers // //if (documentLink.document.SourceCode == Utils.SourceCode.CLIENT) //{ // documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; //} //else //{ //} if (documentLink.document.RecordType == Utils.RecordType.FOLDER) { documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; documentLink.clientDocument.FileName = documentLink.document.SimpleFileName; } else { documentLink.clientDocument.ComboIssueNumber = RepClientDocument.GetComboIssueNumber(documentLink.document.CUID, documentLink.document.IssueNumber, clientDocumentSet.FKClientUID); documentLink.clientDocument.FileName = documentLink.clientDocument.ComboIssueNumber + " " + documentLink.document.SimpleFileName; } documentLink.clientDocument.IsProjectPlan = documentLink.document.IsProjectPlan; documentLink.clientDocument.DocumentCUID = documentLink.document.CUID; documentLink.clientDocument.DocumentType = documentLink.document.DocumentType; // The client document location includes the client path (%CLIENTFOLDER%) plus the client document set id // %CLIENTFOLDER%\CLIENTSET201000001R0001\ // How to identify the parent folder // // documentLink.clientDocument.ParentUID = destFolder.clientDocument.UID; documentLink.clientDocument.ParentUID = parentID; // documentLink.clientDocument.Location = txtDestinationFolder.Text + // Utils.GetClientPathInside(documentLink.document.Location); documentLink.clientDocument.Location = GetClientDocumentLocation(parentID); documentLink.clientDocument.RecordType = documentLink.document.RecordType; documentLink.clientDocument.SequenceNumber = treeNode.Index; documentLink.clientDocument.SourceFileName = documentLink.document.FileName; documentLink.clientDocument.SourceLocation = documentLink.document.Location; documentLink.clientDocument.StartDate = System.DateTime.Today; documentLink.clientDocument.UID = 0; documentLink.clientDocumentSet.UID = clientDocumentSet.ClientSetID; // clientDocumentSet.UID; // Utils.ClientSetID; documentLink.clientDocumentSet.SourceFolder = clientDocumentSet.SourceFolder; documentLink.clientDocumentSet.ClientSetID = clientDocumentSet.ClientSetID; // Utils.ClientSetID; documentLink.clientDocumentSet.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocumentSet.Folder = clientDocumentSet.Folder; } #endregion Document // Save link to database // // documentLink.clientDocument.UID = cdsl.LinkDocumentToClientSet(documentLink); documentLink.clientDocument.UID = RepClientDocument.LinkDocumentToClientSet(documentLink); foreach (TreeNode children in treeNode.Nodes) { SaveTreeNodeToClient(children, documentLink.clientDocument.UID, clientDocumentSet); } return(ret); }
/// <summary> /// Client document list /// </summary> /// <param name="clientDocument"> </param> /// <param name="clientID"> </param> /// <param name="clientDocumentSetUID"> </param> /// <returns></returns> public static void ListCD(ClientDocument clientDocument, int clientID, int clientDocumentSetUID) { RepClientDocument.List(clientDocument, clientID, clientDocumentSetUID); }
/// <summary> /// Get Client Document Path /// </summary> /// <param name="clientDocument"></param> /// <returns></returns> public static ResponseStatus GetClientDocumentPath(ClientDocument clientDocument) { var response = RepClientDocument.GetDocumentPath(clientDocument); return(response); }
/// <summary> /// Associate documents from selected document set to selected client /// </summary> /// <param name="clientDocumentSet"> </param> /// <param name="documentSetUID"></param> /// <param name="headerInfo"> </param> public static void AssociateDocumentsToClient( ClientDocumentSet clientDocumentSet, int documentSetUID, HeaderInfo headerInfo) { // It is a new client document set // It maybe a new client, the client document set MUST be new or empty // 1) Instantiate a TREE for the Client Document Set document // 2) Instantiate a second tree for the documents related to that document set // 3) Now the old copy all starts, all the nodes from the second tree are moved to the new tree // following current process // 4) Save happens as per usual // TreeView tvFileList = new TreeView(); // This is the list of documents for a client, it should be EMPTY TreeView tvDocumentsAvailable = new TreeView(); // This is the list of documents for a client, it should be EMPTY string folderOnly = clientDocumentSet.FolderOnly; // Contains the folder location of the file // Add root folder // ClientDocument clientDocument = new ClientDocument(); // clientDocument.AddRootFolder( clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID, clientDocumentSet.FolderOnly ); RepClientDocument.AddRootFolder(clientDocument, clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID, clientDocumentSet.FolderOnly); // List client document list !!!!!!! Important because the ROOT folder is loaded ;-) var documentSetList = new ClientDocument(); // documentSetList.List( clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID ); RepClientDocument.List(documentSetList, clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID); tvFileList.Nodes.Clear(); // documentSetList.ListInTree(tvFileList, "CLIENT"); RepClientDocument.ListInTree(documentSetList, tvFileList, "CLIENT"); if (tvFileList.Nodes.Count > 0) { tvFileList.Nodes[0].Expand(); } // Load available documents // tvDocumentsAvailable.Nodes.Clear(); // Get document list for a given document set // DocumentSet documentSet = new DocumentSet(); documentSet.UID = documentSetUID; documentSet.Read(IncludeDocuments: 'Y'); // Load document in the treeview // Model.ModelDocument.Document root = new Model.ModelDocument.Document(); // root.GetRoot(headerInfo); root = RepDocument.GetRoot(headerInfo); DocumentList.ListInTree(tvDocumentsAvailable, documentSet.documentList, root); while (tvDocumentsAvailable.Nodes[0].Nodes.Count > 0) { TreeNode tn = tvDocumentsAvailable.Nodes[0].Nodes[0]; tn.Remove(); tvFileList.Nodes[0].Nodes.Add(tn); } tvFileList.SelectedNode = tvFileList.Nodes[0]; // ------------------------------------------------------------------- // The documents have been moved from the available to client's tree // Now it is time to save the documents // ------------------------------------------------------------------- Save(clientDocumentSet, documentSetUID, tvFileList); ClientDocumentLink cloneLinks = new ClientDocumentLink(); cloneLinks.ReplicateDocSetDocLinkToClient(clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID, documentSetUID); }
public static ResponseStatus SetToVoid(int clientUID, int clientDocumentSetUID, int documentUID) { RepClientDocument.SetToVoid(clientUID, clientDocumentSetUID, documentUID); return(new ResponseStatus()); }
/// <summary> /// Delete file /// </summary> /// <param name="clientDocumentUID"></param> /// <returns></returns> public static ResponseStatus DeleteFile(int clientDocumentUID) { RepClientDocument.DeleteFile(clientDocumentUID); return(new ResponseStatus()); }
public static int GetLastClientCUID(int clientUID) { return(RepClientDocument.GetLastClientCUID(clientUID)); }
public static string NewVersionWeb(ClientDocument clientDocument) { return(RepClientDocument.NewVersionWeb(clientDocument)); }
public static void AddRootFolder(ClientDocument clientDocument, int clientUID, int DocSetUID, string DestinationFolder) { RepClientDocument.AddRootFolder(clientDocument, clientUID, DocSetUID, DestinationFolder); }
public static string GetComboIssueNumber(string documentCUID, int documentVersionNumber, int clientUID) { return(RepClientDocument.GetComboIssueNumber(documentCUID, documentVersionNumber, clientUID)); }
public static void ListImpacted(ClientDocument clientDocument, Model.ModelDocument.Document document) { RepClientDocument.ListImpacted(clientDocument, document); }
public static void ListInTree(ClientDocument clientDocument, TreeView fileList, string listType) { RepClientDocument.ListInTree(clientDocument, fileList, listType); }
public static void ListProjectPlanInTree(ClientDocument clientDocument, int clientID, int clientDocumentSetUID, TreeView fileList) { RepClientDocument.ListProjectPlanInTree(clientDocument, clientID, clientDocumentSetUID, fileList); }
/// <summary> /// Client document read /// </summary> /// <returns></returns> public static ClientDocument ClientDocumentReadS(int clientDocumentUID) { return(RepClientDocument.Read(clientDocumentUID)); }
public static int LinkDocumentToClientSet(scClientDocSetDocLink doco) { return(RepClientDocument.LinkDocumentToClientSet(doco)); }
/// <summary> /// Add FCM document to Client Set /// </summary> /// <param name="headerInfo"></param> /// <param name="clientUID"></param> /// <param name="clientDocumentSetUID"></param> /// <param name="documentUID"></param> /// <returns></returns> public static ResponseStatus AddDocumentToSet(HeaderInfo headerInfo, int clientUID, int clientDocumentSetUID, int documentUID) { string sourceFolder = ""; string destinationFolder = ""; if (clientUID <= 0) { return new ResponseStatus { Message = "Client UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0001 } } ; if (clientDocumentSetUID <= 0) { return new ResponseStatus { Message = "Client Document Set UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0002 } } ; if (documentUID <= 0) { return new ResponseStatus { Message = "Document UID was not supplied.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0003 } } ; // Find Document // DocumentReadRequest documentReadRequest = new DocumentReadRequest(); documentReadRequest.headerInfo = headerInfo; documentReadRequest.retrieveVoidedDocuments = false; documentReadRequest.UID = documentUID; var documentReadResponse = BUSDocument.DocumentRead(documentReadRequest); var documentSelected = new Document(); documentSelected = documentReadResponse.document; // Find parent of the document // var folderReadRequestParent = new DocumentReadRequest(); folderReadRequestParent.headerInfo = headerInfo; folderReadRequestParent.retrieveVoidedDocuments = false; folderReadRequestParent.UID = documentSelected.ParentUID; // Reading parent var folderParentResponse = BUSDocument.DocumentRead(folderReadRequestParent); var folderParent = new Document(); folderParent = folderParentResponse.document; // Find the equivalent parent in ClientDocumentSetDocument // var foundParent = RepClientDocument.Find(folderParent.UID, clientDocumentSetUID, 'N', clientUID); if (foundParent.UID <= 0) { return new ResponseStatus { Message = "Parent folder not found.", XMessageType = MessageType.Error, ReturnCode = -0020, ReasonCode = 0006 } } ; // Find ClientDocumentSet // var clientDocumentSet = new ClientDocumentSet(); clientDocumentSet.UID = clientDocumentSetUID; clientDocumentSet.FKClientUID = clientUID; clientDocumentSet.Read(); if (clientDocumentSet.UID <= 0) { return new ResponseStatus { Message = "Client Document Set not found.", XMessageType = MessageType.Error, ReturnCode = -0030, ReasonCode = 0004 } } ; // Create link // var documentLink = new scClientDocSetDocLink(); if (documentSelected.RecordType == "DOCUMENT") #region Document { documentLink.document = new Document(); documentLink.document = documentSelected; documentLink.clientDocument = new ClientDocument(); documentLink.clientDocumentSet = new ClientDocumentSet(); // Fill in the extra details... // documentLink.clientDocument.EndDate = System.DateTime.MaxValue; documentLink.clientDocument.FKClientDocumentSetUID = clientDocumentSet.UID; documentLink.clientDocument.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocument.FKDocumentUID = documentLink.document.UID; documentLink.clientDocument.Generated = 'N'; documentLink.clientDocument.SourceIssueNumber = documentLink.document.IssueNumber; documentLink.clientDocument.ClientIssueNumber = 00; if (documentLink.document.RecordType == FCMConstant.RecordType.FOLDER) { documentLink.clientDocument.ComboIssueNumber = documentLink.document.CUID; documentLink.clientDocument.FileName = documentLink.document.SimpleFileName; } else { documentLink.clientDocument.ComboIssueNumber = BUSClientDocument.GetComboIssueNumber(documentLink.document.CUID, documentLink.document.IssueNumber, clientDocumentSet.FKClientUID); documentLink.clientDocument.FileName = documentLink.clientDocument.ComboIssueNumber + " " + documentLink.document.SimpleFileName; } documentLink.clientDocument.IsProjectPlan = documentLink.document.IsProjectPlan; documentLink.clientDocument.DocumentCUID = documentLink.document.CUID; documentLink.clientDocument.DocumentType = documentLink.document.DocumentType; // The client document location includes the client path (%CLIENTFOLDER%) plus the client document set id // %CLIENTFOLDER%\CLIENTSET201000001R0001\ // How to identify the parent folder // documentLink.clientDocument.ParentUID = foundParent.UID; // Daniel // 01-Jul-2013 // Retrieving the clientdocument parent using the UID for the parent clientdocument // // documentLink.clientDocument.Location = BUSClientDocument.GetClientDocumentLocation(folderReadRequestParent.UID); documentLink.clientDocument.Location = BUSClientDocument.GetClientDocumentLocation(foundParent.UID); documentLink.clientDocument.RecordType = documentLink.document.RecordType; documentLink.clientDocument.SequenceNumber = 1; documentLink.clientDocument.SourceFileName = documentLink.document.FileName; documentLink.clientDocument.SourceLocation = documentLink.document.Location; documentLink.clientDocument.StartDate = System.DateTime.Today; documentLink.clientDocument.UID = 0; documentLink.clientDocumentSet.UID = clientDocumentSetUID; documentLink.clientDocumentSet.SourceFolder = sourceFolder; documentLink.clientDocumentSet.ClientSetID = clientDocumentSet.UID; documentLink.clientDocumentSet.FKClientUID = clientDocumentSet.FKClientUID; documentLink.clientDocumentSet.Folder = destinationFolder; } #endregion Document // Save link to database // // documentLink.clientDocument.UID = cdsl.LinkDocumentToClientSet(documentLink); documentLink.clientDocument.UID = LinkDocumentToClientSet(documentLink); return(new ResponseStatus()); }
// --------------------------------------------------------- // Copy document links to client document links // --------------------------------------------------------- public void ReplicateDocLinkToClientDeprecated(int ClientUID, int ClientSetUID) { // 1... GetClientDocument // List documents for a Client Set Document // var clientDocumentList = new ClientDocument(); // clientDocumentList.List(ClientUID, ClientSetUID); RepClientDocument.List(clientDocumentList, ClientUID, ClientSetUID); // 2... foreach( clientDocument ) // For each client document, retrieve the linked documents // foreach (var clientDocument in clientDocumentList.clientDocSetDocLink) { // 3...... GetDocumentChildren( currentClientDocument) // This part retrieves Document Links and not ClientDocument Links // that's why we need to get the equivalent ClientDocumentUID... var children = DocumentLinkList.ListRelatedDocuments(clientDocument.document.UID); // 4...... foreach (GetDocumentChildren) foreach (var child in children.documentLinkList) { // 5..... CreateClientDocumentLink(Client,ClientSet,DocumentParent,DocumentChild, Type) ClientDocumentLink newLink = new ClientDocumentLink(); // This is the client document UID newLink.FKParentDocumentUID = clientDocument.clientDocument.UID; // Get clientUID for child document ClientDocument childDocument = new ClientDocument(); //childDocument.FKDocumentUID = child.UID; childDocument.FKDocumentUID = child.documentTo.UID; // childDocument.Find(child.documentTo.UID, clientDocument.clientDocumentSet.UID, 'N', ClientUID); childDocument = RepClientDocument.Find(child.documentTo.UID, clientDocument.clientDocumentSet.UID, 'N', ClientUID); if (childDocument.UID > 0) { newLink.FKChildDocumentUID = childDocument.UID; newLink.LinkType = child.LinkType; // Replace by link type newLink.Add(); } } } //using (var connection = new MySqlConnection(ConnString.ConnectionString)) //{ // var commandString = string.Format( // " SELECT " + // " UID " + // " FROM ClientDocument " + // " WHERE " + // " FKClientUID = {0} " + // " AND FKClientDocumentSetUID = {1} ", // ClientUID, // ClientSetUID // ); // using (var command = new MySqlCommand( // commandString, connection)) // { // connection.Open(); // using (MySqlDataReader reader = command.ExecuteReader()) // { // while (reader.Read()) // { // int ClientDocumentUID; // ClientDocumentUID = Convert.ToInt32(reader["UID"].ToString()); // } // } // } //} }