Ejemplo n.º 1
0
        // -------------------------------------------------------------------
        //                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);
        }
Ejemplo n.º 2
0
 /// <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);
 }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
 public static ResponseStatus SetToVoid(int clientUID, int clientDocumentSetUID, int documentUID)
 {
     RepClientDocument.SetToVoid(clientUID, clientDocumentSetUID, documentUID);
     return(new ResponseStatus());
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Delete file
 /// </summary>
 /// <param name="clientDocumentUID"></param>
 /// <returns></returns>
 public static ResponseStatus DeleteFile(int clientDocumentUID)
 {
     RepClientDocument.DeleteFile(clientDocumentUID);
     return(new ResponseStatus());
 }
Ejemplo n.º 7
0
 public static int GetLastClientCUID(int clientUID)
 {
     return(RepClientDocument.GetLastClientCUID(clientUID));
 }
Ejemplo n.º 8
0
 public static string NewVersionWeb(ClientDocument clientDocument)
 {
     return(RepClientDocument.NewVersionWeb(clientDocument));
 }
Ejemplo n.º 9
0
 public static void AddRootFolder(ClientDocument clientDocument, int clientUID, int DocSetUID, string DestinationFolder)
 {
     RepClientDocument.AddRootFolder(clientDocument, clientUID, DocSetUID, DestinationFolder);
 }
Ejemplo n.º 10
0
 public static string GetComboIssueNumber(string documentCUID, int documentVersionNumber, int clientUID)
 {
     return(RepClientDocument.GetComboIssueNumber(documentCUID,
                                                  documentVersionNumber,
                                                  clientUID));
 }
Ejemplo n.º 11
0
 public static void ListImpacted(ClientDocument clientDocument, Model.ModelDocument.Document document)
 {
     RepClientDocument.ListImpacted(clientDocument, document);
 }
Ejemplo n.º 12
0
 public static void ListInTree(ClientDocument clientDocument, TreeView fileList, string listType)
 {
     RepClientDocument.ListInTree(clientDocument, fileList, listType);
 }
Ejemplo n.º 13
0
 public static void ListProjectPlanInTree(ClientDocument clientDocument, int clientID, int clientDocumentSetUID, TreeView fileList)
 {
     RepClientDocument.ListProjectPlanInTree(clientDocument, clientID, clientDocumentSetUID, fileList);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Client document read
 /// </summary>
 /// <returns></returns>
 public static ClientDocument ClientDocumentReadS(int clientDocumentUID)
 {
     return(RepClientDocument.Read(clientDocumentUID));
 }
Ejemplo n.º 15
0
 public static int LinkDocumentToClientSet(scClientDocSetDocLink doco)
 {
     return(RepClientDocument.LinkDocumentToClientSet(doco));
 }
Ejemplo n.º 16
0
        /// <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());
        }
Ejemplo n.º 17
0
        // ---------------------------------------------------------
        //      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());


            //            }
            //        }
            //    }
            //}
        }