// ---------------------------------------------------------- // Save client documents // ---------------------------------------------------------- private static void Save( ClientDocumentSet clientDocumentSet, int documentSetUID, TreeView tvFileList ) { ClientDocument cdsl = new ClientDocument(); ClientDocumentSet docSet = new ClientDocumentSet(); var lodsl = new ListOfscClientDocSetDocLink(); lodsl.list = new List <scClientDocSetDocLink>(); // Move data into views.. int selUID = documentSetUID; docSet.Get(clientDocumentSet.FKClientUID, selUID); docSet.ClientSetID = selUID; docSet.Folder = clientDocumentSet.Folder; docSet.SourceFolder = clientDocumentSet.SourceFolder; docSet.Description = clientDocumentSet.Description; docSet.Update(); // Save complete tree... SaveTreeViewToClient(tvFileList, 0, clientDocumentSet); }
private void UIClientMetadata_Load(object sender, EventArgs e) { // Get client list from background and load into the list // foreach (Client c in Utils.ClientList) { cbxClient.Items.Add(c.UID + "; " + c.Name); } // Get selected client from the background // cbxClient.SelectedIndex = Utils.ClientIndex; cbxDocumentSet.Text = Utils.ClientSetText; cbxDocumentSet.Enabled = false; cbxClient.Enabled = false; // // Retrieve document set for a client // ClientDocumentSet clientDocSet = new ClientDocumentSet(); clientDocSet.Get(Utils.ClientID, Utils.ClientSetID); cbxDocumentSet.SelectedItem = 0; txtSourceFolder.Text = clientDocSet.SourceFolder; txtDestinationFolder.Text = clientDocSet.Folder; loadList(); }
public UIClientDocumentLink(string clientTxt, string clientSetTxt) { InitializeComponent(); parentDocument = new Document(); cbxClient.Text = clientTxt; cbxDocumentSet.Text = clientSetTxt; // Get Client UID selectedClient = new Client(HeaderInfo.Instance); selectedClient.UID = Utils.ClientID; var repclient = RepClient.Read(selectedClient.UID); var response = repclient.responseStatus; // var response = selectedClient.Read(); // Get Client Document Set UID var docSetUID = cbxDocumentSet.Text; string[] docoSet = docSetUID.Split(';'); documentSetUID = Convert.ToInt32(docoSet[1]); selectedClientDocumentSet = new ClientDocumentSet(); selectedClientDocumentSet.UID = documentSetUID; selectedClientDocumentSet.FKClientUID = selectedClient.UID; cbxLinkType.Items.Add(FCMConstant.DocumentLinkType.PROJECTPLAN); cbxLinkType.Items.Add(FCMConstant.DocumentLinkType.APPENDIX); cbxLinkType.Text = FCMConstant.DocumentLinkType.PROJECTPLAN; }
/// <summary> /// List document sets for a client /// </summary> /// <param name="eventClient"></param> /// <returns></returns> public static List <ClientDocumentSet> ClientDocumentSetList(int iClientUID, string sortOrder) { List <ClientDocumentSet> response = new List <ClientDocumentSet>(); response = ClientDocumentSet.List(iClientUID, sortOrder); return(response); }
// ------------------------------------------------------------------- // Saves TreeView of a client tree // ------------------------------------------------------------------- private static void SaveTreeViewToClient(TreeView treeView, int parentID, ClientDocumentSet clientDocumentSet) { foreach (TreeNode node in treeView.Nodes) { var documentLink = (scClientDocSetDocLink)node.Tag; SaveTreeNodeToClient(node, documentLink.clientDocument.UID, clientDocumentSet); } }
public BUSClientDocumentSet(int iClientUID, int iClientDocumentSetUID) { // Calculate number of documents in set ResponseStatus response = new ResponseStatus(); var clientDocSet = new ClientDocumentSet(iClientUID, iClientDocumentSetUID); _DocumentCount = clientDocSet.GetNumberOfDocuments(); }
/// <summary> /// List of documents /// </summary> public static ClientDocument ListClientDocumentsByFolder(int clientUID, int documentSetUID) { ClientDocumentSet documentSet = new ClientDocumentSet(); documentSet.UID = documentSetUID; var clientdocument = documentSet.ListClientDocumentsByFolder(clientUID, documentSetUID); return(clientdocument); }
/// <summary> /// List of documents /// </summary> public static List <Document> ListDocumentsNotInSet(HeaderInfo headerInfo, int clientUID, int documentSetUID) { ClientDocumentSet documentSet = new ClientDocumentSet(); documentSet.UID = documentSetUID; var documentsNotInSet = documentSet.ListDocumentsNotInSet(headerInfo, clientUID, documentSetUID); return(documentsNotInSet); }
/// <summary> /// Add client document set /// </summary> /// <param name="eventClient"></param> /// <returns></returns> public static ResponseStatus ClientDocumentSetAdd(HeaderInfo headerInfo) { ResponseStatus response = new ResponseStatus(); ClientDocumentSet cds = new ClientDocumentSet(Utils.ClientID); cds.FKClientUID = Utils.ClientID; //cds.FolderOnly = "CLIENT" + Utils.ClientID.ToString().Trim().PadLeft(4, '0'); //cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + @"\" + cds.FolderOnly; cds.SourceFolder = FCMConstant.SYSFOLDER.TEMPLATEFOLDER; cds.Add(headerInfo); return(response); }
private void UIClientDocumentSet_Load(object sender, EventArgs e) { foreach (Client c in Utils.ClientList.clientList) { cbxClient.Items.Add(c.UID + "; " + c.Name); } // Retrieve current client from background // cbxClient.SelectedIndex = Utils.ClientIndex; // List document sets for a client // ClientDocumentSetList cdsl = new ClientDocumentSetList(); cdsl.List(Utils.ClientID); foreach (ClientDocumentSet cds in cdsl.documentSetList) { cbxDocumentSet.Items.Add(cds.UID + "; " + cds.Description); } // Retrieve document set for a client // ClientDocumentSet clientDocSet = new ClientDocumentSet(); documentSetID = 1; clientDocSet.Get(Utils.ClientID, documentSetID); cbxDocumentSet.SelectedIndex = 0; // If this is the first time the client is selected, this program // will copy all documents to a client before displaying the list. // The list will always come from the client // The intention is to use the client type to get the correct // Document set before copying the documents to the client // loadDocumentList(); }
// // List companies // private void loadDocumentList() { elementSourceDataTable.Clear(); // Check if the client has a list of documents for the template // ClientDocumentSet cds = new ClientDocumentSet(); if (cds.Get(Utils.ClientID, documentSetID)) { // Just proceed to list } else { // Copy the recors to the client first } var docoList = new DocumentList(); docoList.List(); foreach (Document doco in docoList.documentList) { DataRow elementRow = elementSourceDataTable.NewRow(); elementRow["CUID"] = doco.CUID; elementRow["Name"] = doco.Name; elementRow["Directory"] = doco.Directory; elementRow["Subdirectory"] = doco.Subdirectory; elementRow["SequenceNumber"] = doco.SequenceNumber; elementRow["LatestIssueNumber"] = doco.LatestIssueNumber; elementRow["LatestIssueLocation"] = doco.LatestIssueLocation; elementSourceDataTable.Rows.Add(elementRow); } }
/// <summary> /// Update client details /// </summary> /// <param name="headerInfo"> </param> /// <param name="eventClient"> </param> public ClientUpdateResponse ClientUpdateFull(ClientUpdateRequest clientUpdateRequest) { var clientUpdateResponse = new ClientUpdateResponse(); bool contractorSizeFirstTime = false; // Check if contractor size has been set before // var clientRead = RepClient.Read(clientUpdateRequest.eventClient.UID); if (clientRead.client.FKDocumentSetUID == 0) { contractorSizeFirstTime = true; } clientUpdateResponse.response = new ResponseStatus(); // -------------------------------------------------------------- // Check if user ID is already connected to a client // -------------------------------------------------------------- //var checkLinkedUser = new Client(clientUpdateRequest.headerInfo) //{ FKUserID = clientUpdateRequest.eventClient.FKUserID }; var checkLinkedUser = new Model.ModelClient.Client(clientUpdateRequest.headerInfo) { FKUserID = clientUpdateRequest.eventClient.FKUserID, UID = clientUpdateRequest.eventClient.UID }; if (!string.IsNullOrEmpty(checkLinkedUser.FKUserID)) { var responseLinked = RepClient.ReadLinkedUser(checkLinkedUser); // var responseLinked = checkLinkedUser.ReadLinkedUser(); if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001) { clientUpdateResponse.response = new ResponseStatus() { ReturnCode = -0010, ReasonCode = 0001, Message = "User ID is already linked to another client." }; return(clientUpdateResponse); } if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0003) { // All good. User ID is connected to Client Supplied. // } } using (var connection = new MySqlConnection(ConnString.ConnectionString)) { using (var tr = new TransactionScope(TransactionScopeOption.Required)) { connection.Open(); var newClient = RepClient.Update(clientUpdateRequest.headerInfo, clientUpdateRequest.eventClient, connection); //var responseClientUpdate = clientUpdateRequest.eventClient.Update(); var responseClientUpdate = newClient; if (!responseClientUpdate.Successful) { // Rollback tr.Dispose(); clientUpdateResponse.response = new ResponseStatus(MessageType.Error); clientUpdateResponse.response.Message = responseClientUpdate.Message; clientUpdateResponse.response.ReturnCode = responseClientUpdate.ReturnCode; clientUpdateResponse.response.ReasonCode = responseClientUpdate.ReasonCode; return(clientUpdateResponse); } // ------------------------------------------- // Call method to add client extra information // ------------------------------------------- var ceiRead = new RepClientExtraInformation(clientUpdateRequest.headerInfo); ceiRead.FKClientUID = clientUpdateRequest.eventClient.UID; // var ceiResponse = ceiRead.Read(); var ceiResponse = RepClientExtraInformation.Read(ceiRead); if (ceiResponse.ReturnCode != 1) { // Rollback tr.Dispose(); clientUpdateResponse.response = new ResponseStatus(MessageType.Error); return(clientUpdateResponse); } // Return Code = 1, Reason Code = 2 means "Record not found" // if (ceiResponse.ReturnCode == 1 && ceiResponse.ReasonCode == 1) { clientUpdateRequest.eventClient.clientExtraInformation.RecordVersion = ceiRead.RecordVersion; var cei = RepClientExtraInformation.Update(clientUpdateRequest.headerInfo, clientUpdateRequest.eventClient. clientExtraInformation, connection); // var cei = clientUpdateRequest.eventClient.clientExtraInformation.Update(); if (!cei.Successful) { clientUpdateResponse.response = new ResponseStatus(); clientUpdateResponse.response = cei; return(clientUpdateResponse); } } // Return Code = 1, Reason Code = 2 means "Record not found" // if (ceiResponse.ReturnCode == 1 && ceiResponse.ReasonCode == 2) { // Create new record // ------------------------------------------- // Call method to add client extra information // ------------------------------------------- clientUpdateRequest.eventClient.clientExtraInformation.FKClientUID = clientUpdateRequest.eventClient.UID; var cei = RepClientExtraInformation.Insert( HeaderInfo.Instance, clientUpdateRequest.eventClient.clientExtraInformation, connection); if (cei.ReturnCode != 1) { // Rollback transaction // tr.Dispose(); clientUpdateResponse.response = new ResponseStatus(); clientUpdateResponse.response = cei; return(clientUpdateResponse); } } //tr.Complete(); // If this is the first time the users sets the contractor size, add documents. // if (contractorSizeFirstTime) { // -------------------------------------------- // Add first document set // -------------------------------------------- var cds = new ClientDocumentSet(); cds.FKClientUID = clientUpdateRequest.eventClient.UID; // cds.FolderOnly = "CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.FolderOnly = "CLIENT" + clientUpdateRequest.eventClient.UID.ToString().Trim().PadLeft(4, '0'); // cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + "\\CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + @"\" + cds.FolderOnly; cds.SourceFolder = FCMConstant.SYSFOLDER.TEMPLATEFOLDER; // cds.Add( clientUpdateRequest.headerInfo, connection ); cds.Add(clientUpdateRequest.headerInfo); // -------------------------------------------- // Apply initial document set // -------------------------------------------- BUSClientDocument.AssociateDocumentsToClient( clientDocumentSet: cds, documentSetUID: clientUpdateRequest.eventClient.FKDocumentSetUID, headerInfo: clientUpdateRequest.headerInfo); // Fix Destination Folder Location // BUSClientDocumentGeneration.UpdateLocation(cds.FKClientUID, cds.ClientSetID); } SaveEmployees(clientUpdateRequest.eventClient.UID, clientUpdateRequest.eventClient.clientEmployee, clientUpdateRequest.headerInfo.UserID); } } return(clientUpdateResponse); }
/// <summary> /// Add client /// </summary> /// <param name="headerInfo"> </param> /// <param name="eventClient"></param> /// <param name="linkInitialSet"> </param> /// <returns></returns> public ClientAddResponse ClientAddFull(ClientAddRequest clientAddRequest) { var response = new ClientAddResponse(); // This is a new client. // if (string.IsNullOrEmpty(clientAddRequest.eventClient.Name)) { response.responseStatus = new ResponseStatus() { ReturnCode = -0010, ReasonCode = 0001, Message = "Client Name is mandatory." }; return(response); } // -------------------------------------------------------------- // Check if user ID is already connected to a client // -------------------------------------------------------------- #region Check if user is already connected to a client if (!string.IsNullOrEmpty(clientAddRequest.eventClient.FKUserID)) { var checkLinkedUser = new Client(clientAddRequest.headerInfo) { FKUserID = clientAddRequest.eventClient.FKUserID }; //var responseLinked = checkLinkedUser.ReadLinkedUser(); var responseLinked = RepClient.ReadLinkedUser(checkLinkedUser); if (!responseLinked.Successful) { response.responseStatus = new ResponseStatus(); response.responseStatus = responseLinked; return(response); } if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001) { response.responseStatus = new ResponseStatus() { ReturnCode = -0010, ReasonCode = 0002, Message = "User ID is already linked to another client." }; return(response); } } #endregion var newClientUid = 0; using (var connection = new MySqlConnection(ConnString.ConnectionString)) { using (var tr = new TransactionScope(TransactionScopeOption.Required)) { connection.Open(); // ------------------------------- // Call method to add new client // ------------------------------- //var newClient = clientAddRequest.eventClient.Insert(clientAddRequest.headerInfo, connection); var newClient = RepClient.Insert(clientAddRequest.headerInfo, clientAddRequest.eventClient, connection); // var newClientX = eventClient.MySQLInsert(headerInfo); newClientUid = Convert.ToInt32(newClient.Contents); // ------------------------------------------- // Call method to add client extra information // ------------------------------------------- clientAddRequest.eventClient.clientExtraInformation.FKClientUID = clientAddRequest.eventClient.UID; var cei = RepClientExtraInformation.Insert( HeaderInfo.Instance, clientAddRequest.eventClient.clientExtraInformation, connection); if (cei.ReturnCode != 1) { // Rollback transaction // tr.Dispose(); response.responseStatus = new ResponseStatus(); response.responseStatus = cei; return(response); } // Add user role // SecurityUserRole securityUserRole = new SecurityUserRole(); securityUserRole.FK_Role = FCMConstant.UserRoleType.CLIENT; securityUserRole.FK_UserID = clientAddRequest.headerInfo.UserID; securityUserRole.IsActive = "Y"; securityUserRole.IsVoid = "N"; securityUserRole.StartDate = System.DateTime.Today; securityUserRole.EndDate = Convert.ToDateTime("9999-12-31"); securityUserRole.Add(); // -------------------------------------------- // Add List of Employees // -------------------------------------------- SaveEmployees(clientAddRequest.eventClient.UID, clientAddRequest.eventClient.clientEmployee, clientAddRequest.headerInfo.UserID); // 14/04/2013 // Not adding sets when client is created because the client is created just after the user ID is registered! // // 17/04/2013 // If the ADMINistrator creates the client the document set has to be created and documents added. // if (clientAddRequest.linkInitialSet == "Y") { // -------------------------------------------- // Add first document set // -------------------------------------------- var cds = new ClientDocumentSet(); cds.FKClientUID = newClientUid; // cds.FolderOnly = "CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.FolderOnly = "CLIENT" + newClientUid.ToString().Trim().PadLeft(4, '0'); // cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + "\\CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + @"\" + cds.FolderOnly; cds.SourceFolder = FCMConstant.SYSFOLDER.TEMPLATEFOLDER; cds.Add(clientAddRequest.headerInfo, connection); // -------------------------------------------- // Apply initial document set // -------------------------------------------- BUSClientDocument.AssociateDocumentsToClient( clientDocumentSet: cds, documentSetUID: clientAddRequest.eventClient.FKDocumentSetUID, headerInfo: clientAddRequest.headerInfo); // Fix Destination Folder Location // BUSClientDocumentGeneration.UpdateLocation(cds.FKClientUID, cds.ClientSetID); } // Commit transaction tr.Complete(); } } ClientList(clientAddRequest.headerInfo); // List(); // Return new client id response.clientUID = newClientUid; response.responseStatus = new ResponseStatus(); return(response); }
/// <summary> /// Add client /// </summary> /// <param name="headerInfo"> </param> /// <param name="eventClient"></param> /// <param name="linkInitialSet"> </param> /// <returns></returns> public ClientAddResponse ClientAdd(ClientAddRequest clientAddRequest) { var response = new ClientAddResponse(); // This is a new client. // if (string.IsNullOrEmpty(clientAddRequest.eventClient.Name)) { response.responseStatus = new ResponseStatus() { ReturnCode = -0010, ReasonCode = 0001, Message = "Client Name is mandatory." }; return(response); } // -------------------------------------------------------------- // Check if user ID is already connected to a client // -------------------------------------------------------------- #region Check if user is already connected to a client if (!string.IsNullOrEmpty(clientAddRequest.eventClient.FKUserID)) { var checkLinkedUser = new Client(clientAddRequest.headerInfo) { FKUserID = clientAddRequest.eventClient.FKUserID }; //var responseLinked = checkLinkedUser.ReadLinkedUser(); var responseLinked = RepClient.ReadLinkedUser(checkLinkedUser); if (!responseLinked.Successful) { response.responseStatus = new ResponseStatus(); response.responseStatus = responseLinked; return(response); } if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001) { response.responseStatus = new ResponseStatus() { ReturnCode = -0010, ReasonCode = 0002, Message = "User ID is already linked to another client." }; return(response); } } #endregion var newClientUid = 0; using (var connection = new MySqlConnection(ConnString.ConnectionString)) { using (var tr = new TransactionScope(TransactionScopeOption.Required)) { connection.Open(); // ------------------------------- // Call method to add new client // ------------------------------- //var newClient = clientAddRequest.eventClient.Insert(clientAddRequest.headerInfo, connection); var newClient = RepClient.Insert(clientAddRequest.headerInfo, clientAddRequest.eventClient, connection); // var newClientX = eventClient.MySQLInsert(headerInfo); newClientUid = Convert.ToInt32(newClient.Contents); // ------------------------------------------- // Call method to add client extra information // ------------------------------------------- clientAddRequest.eventClient.clientExtraInformation.FKClientUID = clientAddRequest.eventClient.UID; var cei = RepClientExtraInformation.Insert( HeaderInfo.Instance, clientAddRequest.eventClient.clientExtraInformation, connection); if (cei.ReturnCode != 1) { // Rollback transaction // tr.Dispose(); response.responseStatus = new ResponseStatus(); response.responseStatus = cei; return(response); } // -------------------------------------------- // Add first document set // -------------------------------------------- var cds = new ClientDocumentSet(); cds.FKClientUID = newClientUid; // cds.FolderOnly = "CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.FolderOnly = "CLIENT" + newClientUid.ToString().Trim().PadLeft(4, '0'); // cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + "\\CLIENT" + newClientUID.ToString().Trim().PadLeft(4, '0'); cds.Folder = FCMConstant.SYSFOLDER.CLIENTFOLDER + @"\" + cds.FolderOnly; cds.SourceFolder = FCMConstant.SYSFOLDER.TEMPLATEFOLDER; cds.Add(clientAddRequest.headerInfo, connection); // -------------------------------------------- // Apply initial document set // -------------------------------------------- if (clientAddRequest.linkInitialSet == "Y") { BUSClientDocument.AssociateDocumentsToClient( clientDocumentSet: cds, documentSetUID: clientAddRequest.eventClient.FKDocumentSetUID, headerInfo: clientAddRequest.headerInfo); // Fix Destination Folder Location // BUSClientDocumentGeneration.UpdateLocation(cds.FKClientUID, cds.ClientSetID); } // Commit transaction // tr.Complete(); } } ClientList(clientAddRequest.headerInfo); // List(); // Return new client id response.clientUID = newClientUid; response.responseStatus = new ResponseStatus(); return(response); }
// ------------------------------------------------------------------- // 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 Document.Document(); documentLink.document = (Document.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 = ClientDocument.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); foreach (TreeNode children in treeNode.Nodes) { SaveTreeNodeToClient(children, documentLink.clientDocument.UID, clientDocumentSet); } return(ret); }
/// <summary> /// Associate documents from selected document set to selected client /// </summary> /// <param name="clientUID"></param> /// <param name="clientDocumentSetUID"></param> /// <param name="documentSetUID"></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); // List client document list !!!!!!! Important because the ROOT folder is loaded ;-) var documentSetList = new ClientDocument(); documentSetList.List(clientDocumentSet.FKClientUID, clientDocumentSet.ClientSetID); tvFileList.Nodes.Clear(); documentSetList.ListInTree(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 // Document.Document root = new Document.Document(); root.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 WordReport(int ClientID, int ClientDocSetID, IOutputMessage UIoutput = null, string OverrideDocuments = null) { row = 1; // Set private attributes clientID = ClientID; clientDocSetID = ClientDocSetID; uioutput = UIoutput; // Instantiate Word // vkFalse = false; vkWordApp = new Word.Application(); // Make it not visible vkWordApp.Visible = false; vkExcelApp = new Excel.Application(); // Make it not visible vkExcelApp.Visible = false; // Make it not visible oApplication = new Application(); oApplication.Visible = false; // Get Metadata for client clientMetadata = new ReportMetadataList(); clientMetadata.ListMetadataForClient(clientID); ts = new List <WordDocumentTasks.TagStructure>(); // Load variables/ metadata into memory // #region ClientMetadata foreach (ReportMetadata metadata in clientMetadata.reportMetadataList) { // Retrieve value for the field selected // string value = metadata.GetValue(); // If the field is not enabled, the program has to replace the value with spaces. // var valueOfTag = metadata.Enabled == 'Y' ? value : string.Empty; // When the field is an image and it is not enable, do not include the "No image" icon in the list // if (metadata.InformationType == MackkadoITFramework.Helper.Utils.InformationType.IMAGE && metadata.Enabled == 'N') { continue; } ts.Add(new WordDocumentTasks.TagStructure() { TagType = metadata.InformationType, Tag = metadata.FieldCode, TagValue = valueOfTag }); } #endregion ClientMetadata // Get Client Document Set Details // To get the source and destination folders cds = new ClientDocumentSet(); cds.Get(clientID, clientDocSetID); valueForProgressBar = 0; startTime = System.DateTime.Now.ToString(); client = new Client(); ClientReadRequest crr = new ClientReadRequest(); crr.clientUID = clientID; var response = BUSClient.ClientRead(crr); client = response.client; }
/// <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()); }