コード例 #1
0
ファイル: UIClientDocumentEdit.cs プロジェクト: DR2010/FCM2
        private void btnSave_Click(object sender, EventArgs e)
        {
            // Save details
            ClientDocument clientDocument = new ClientDocument();

            clientDocument.UID = Convert.ToInt32(txtUID.Text);
            clientDocument.FKClientDocumentSetUID = Convert.ToInt32(txtClientDocumentSetID.Text);
            clientDocument.FKDocumentUID          = Convert.ToInt32(txtDocumentID.Text);
            clientDocument.FKClientUID            = Convert.ToInt32(txtClientID.Text);
            clientDocument.SourceLocation         = txtSourceLocation.Text;
            clientDocument.SourceFileName         = txtSourceFileName.Text;
            clientDocument.Location = txtLocation.Text;
            clientDocument.FileName = txtFileName.Text;
            if (!string.IsNullOrEmpty(txtSequenceNumber.Text))
            {
                clientDocument.SequenceNumber = Convert.ToInt32(txtSequenceNumber.Text);
            }
            else
            {
                clientDocument.SequenceNumber = 0;
            }

            // clientDocument.Update();

            BUSClientDocument.ClientDocumentUpdate(clientDocument);

            MessageBox.Show("Client document updated successfully.");

            this.Close();
        }
コード例 #2
0
ファイル: ClientDocumentSet.cs プロジェクト: DR2010/FCMMySQL
        public ClientDocument ListClientDocumentsByFolder(int clientUID, int clientDocumentSetUID)
        {
            ClientDocument listofdocuments = new ClientDocument();

            listofdocuments.clientDocumentList  = new List <ClientDocument>();
            listofdocuments.clientDocSetDocLink = new List <scClientDocSetDocLink>();

            listofdocuments.FKClientUID            = clientUID;
            listofdocuments.clientDocumentSet.UID  = clientDocumentSetUID;
            listofdocuments.FKClientDocumentSetUID = clientDocumentSetUID;

            // 1 - Get list of documents

            var clientDocumentListRequest = new BUSClientDocument.ClientDocumentListRequest();

            clientDocumentListRequest.clientDocumentSetUID = clientDocumentSetUID;
            clientDocumentListRequest.clientUID            = clientUID;

            var clientDocumentListResponse = BUSClientDocument.List(clientDocumentListRequest);

            // 2 - Move into a tree to order
            TreeView tvFileList = new TreeView();

            tvFileList.Nodes.Clear();
            ListInTree(tvFileList, "CLIENT", clientDocumentListResponse.clientList);

            if (tvFileList.Nodes.Count > 0)
            {
                tvFileList.Nodes[0].Expand();
            }

            // 3 - Move to an ordered list
            foreach (TreeNode documentNode in tvFileList.Nodes)
            {
                var docnode = (scClientDocSetDocLink)documentNode.Tag;

                listofdocuments.clientDocSetDocLink.Add(docnode);

                // If there are inner nodes
                //
                if (documentNode.Nodes.Count > 0)
                {
                    ListInOrder(documentNode, listofdocuments.clientDocSetDocLink);
                }
            }

            // 4 - Return list
            return(listofdocuments);
        }
コード例 #3
0
ファイル: UIDocumentEdit.cs プロジェクト: DR2010/FCM2
        public UIDocumentEdit(Form previousForm, int clientUID)
            : this(previousForm)
        {
            cbxSourceCode.Text    = FCMConstant.SourceCode.CLIENT;
            cbxSourceCode.Enabled = false;
            txtClientUID.Text     = clientUID.ToString();
            btnClient.Enabled     = false;
            btnNewIssue.Enabled   = false;
            txtIssueNumber.Text   = "001";
            txtSeqNum.Text        = "001";
//            int nextClientDocument = ClientDocument.GetLastClientCUID( clientUID ) + 1;

            int nextClientDocument = BUSClientDocument.GetLastClientCUID(clientUID) + 1;

            // The full name can only be added when the document is assigned to the client.
            //
            // txtCUID.Text = "CLI-" + nextClientDocument.ToString( "00" ) +"-00-" + clientUID.ToString( "0000" ) + "-01";
            txtCUID.Text = "CLI-" + nextClientDocument.ToString("00");   // +"-00-" + clientUID.ToString( "0000" ) + "-01";
        }
コード例 #4
0
ファイル: UIClientDocumentLink.cs プロジェクト: DR2010/FCM2
        // ----------------------------------------------------------------------
        // List documents available for selection in list box tvListOfDocuments
        // ----------------------------------------------------------------------
        public void loadDocumentList()
        {
            // Image list
            //
            ImageList imageList = ControllerUtils.GetImageList();

            // Binding
            tvListOfDocuments.ImageList = imageList;

            // Clear nodes
            tvListOfDocuments.Nodes.Clear();

            var docoList = new ClientDocument();

            // docoList.List(Utils.ClientID, Utils.ClientSetID);

            var cdlr = new BUSClientDocument.ClientDocumentListRequest();

            cdlr.clientUID            = Utils.ClientID;
            cdlr.clientDocumentSetUID = Utils.ClientSetID;

            var response = BUSClientDocument.List(cdlr);

            // Load document in the treeview
            //
            // docoList.ListInTree(tvListOfDocuments);
            Document root = new Document();

            root.CUID       = "ROOT";
            root.RecordType = FCMConstant.RecordType.FOLDER;
            root.UID        = 0;
            // root.Read();

            // root = RepDocument.Read(false, 0, "ROOT");
            root = BUSDocument.GetRootDocument();

            // docoList.ListInTree(tvListOfDocuments, "CLIENT");

            BUSClientDocument.ListInTree(docoList, tvListOfDocuments, "CLIENT");

            tvListOfDocuments.ExpandAll();
        }
コード例 #5
0
ファイル: UIClientDocumentLink.cs プロジェクト: DR2010/FCM2
        // -------------------------------------------------------
        //  Populate combo box with list of client Documents
        // -------------------------------------------------------
        private void PopulateDocumentCombo(char ProjectPlan)
        {
            // List documents
            // -------------------------------------------------------
            var documentSetList = new ClientDocument();

            // documentSetList.List(Utils.ClientID, Utils.ClientSetID);

            var cdlr = new BUSClientDocument.ClientDocumentListRequest();

            cdlr.clientUID            = Utils.ClientID;
            cdlr.clientDocumentSetUID = Utils.ClientSetID;
            var response = BUSClientDocument.List(cdlr);

            documentSetList.clientDocSetDocLink = response.clientList;

            cbxDocument.Items.Clear();
            cbxDocument.SelectedText = "";

            int i = 0;

            foreach (var doco in documentSetList.clientDocSetDocLink)
            {
                string item = doco.document.UID + ";" + doco.document.CUID + ";" + doco.document.Name;
                cbxDocument.Items.Add(item);

                if (i == 0)
                {
                    cbxDocument.ResetText();
                    cbxDocument.SelectedText = item;
                }

                if (i == 0)
                {
                    cbxDocument.Text = item;
                }
                i++;
            }
        }
コード例 #6
0
ファイル: UIGoogleDocs.cs プロジェクト: DR2010/FCM2
        //
        // Load documents for a Client Document Set
        //
        private void loadDocumentList()
        {
            // List client document list
            //
            var documentSetList = new ClientDocument();
            //documentSetList.List( Utils.ClientID, Utils.ClientSetID );

            var request = new BUSClientDocument.ClientDocumentListRequest();

            request.clientDocumentSetUID = Utils.ClientSetID;
            request.clientUID            = Utils.ClientID;

            BUSClientDocument.List(request);

            tvFileList.Nodes.Clear();
            // documentSetList.ListInTree( tvFileList, "CLIENT" );

            BUSClientDocument.ListInTree(documentSetList, tvFileList, "CLIENT");

            if (tvFileList.Nodes.Count > 0)
            {
                tvFileList.Nodes[0].Expand();
            }
        }
        /// <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);
        }
コード例 #10
0
ファイル: UIImpactedDocuments.cs プロジェクト: DR2010/FCM2
        private void sendEmailToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var answer = MessageBox.Show("Would you like to send emails to impacted clients?",
                                         "Send email",
                                         MessageBoxButtons.YesNo);

            if (answer != DialogResult.Yes)
            {
                return;
            }

            Cursor.Current = Cursors.WaitCursor;

            List <Client> listOfClients = new List <Client>();

            // Get file name
            //
            string filePathName = Utils.getFilePathName(
                document.Location,
                document.FileName);

            if (!File.Exists(filePathName))
            {
                MessageBox.Show("File not found. " + filePathName);
                return;
            }


            // Select client to send email and show before send
            //
            var impacted = new ClientDocument();

            // impacted.ListImpacted(document);

            BUSClientDocument.ListImpacted(impacted, document);

            foreach (var doco in impacted.clientDocSetDocLink)
            {
                var response =
                    BUSClientContract.GetValidContractOnDate(doco.clientDocument.FKClientUID, System.DateTime.Today);

                if (response.ReturnCode == 0001 && response.ReasonCode == 0001)
                {
                    //Client client = new Client(HeaderInfo.Instance);
                    //client.UID = doco.clientDocument.FKClientUID;

                    ClientReadRequest crr = new ClientReadRequest();
                    crr.clientUID  = doco.clientDocument.FKClientUID;
                    crr.headerInfo = HeaderInfo.Instance;

                    var busClientResponse = BUSClient.ClientRead(crr);

                    //var busClientResponse = client.Read();

                    listOfClients.Add(busClientResponse.client);
                }
            }

            if (listOfClients.Count <= 0)
            {
                return;
            }

            string subject = "Document updated";
            string body    = "The document " + document.Name + " has been updated.";

            var resp = SendEmailToGroup(
                clientList: listOfClients,
                iSubject: subject,
                iBody: body,
                Attachment: filePathName);

            MessageBox.Show(resp.Message);

            Cursor.Current = Cursors.Arrow;
        }
コード例 #11
0
ファイル: UIImpactedDocuments.cs プロジェクト: DR2010/FCM2
        private void ListImpact(Document document, int h = 16, int w = 16)
        {
            // Clear nodes
            tvDocumentList.Nodes.Clear();

            var impacted = new ClientDocument();

            // impacted.ListImpacted(document);

            BUSClientDocument.ListImpacted(impacted, document);

            TreeNode rootNode = new TreeNode("Impacted List", FCMConstant.Image.Folder, FCMConstant.Image.Folder);

            rootNode.Name = "Impacted List";
            tvDocumentList.Nodes.Add(rootNode);

            foreach (var doco in impacted.clientDocSetDocLink)
            {
                // string clientName = Client.ReadFieldClient(DBFieldName.Client.Name, doco.clientDocument.FKClientUID);

                var clientField = new Client(HeaderInfo.Instance);

                // string clientName = clientField.ReadFieldClient(DBFieldName.Client.Name, doco.clientDocument.FKClientUID);
                var readFieldClientResponse = new BUSClient().ReadFieldClient(
                    new ReadFieldRequest()
                {
                    clientUID = doco.clientDocument.FKClientUID, field = FCMDBFieldName.Client.Name, headerInfo = HeaderInfo.Instance
                });

                string clientName = readFieldClientResponse.fieldContents;

                // 1) Add client to tree
                //
                // 1.1) Find out current contract information
                // 1.2) Display document version
                // 1.3) Check if document has been further updated
                var response =
                    BUSClientContract.GetValidContractOnDate(doco.clientDocument.FKClientUID, System.DateTime.Today);

                // Successful
                ClientContract clientContractValid = new ClientContract();
                string         validContract       = @";Contract=N/A";
                if (response.ReturnCode == 0001 && response.ReasonCode == 0001)
                {
                    clientContractValid = (ClientContract)response.Contents;
                    validContract       = ";Contract=Valid";
                }

                int imageClient = Utils.GetClientLogoImageSeqNum(doco.clientDocument.FKClientUID);

                string NameToDisplay = clientName + " ==> " +
                                       validContract +
                                       "; Version: " +
                                       doco.clientDocument.ClientIssueNumber.ToString();

                TreeNode clientNode = new TreeNode(NameToDisplay, imageClient, imageClient);
                clientNode.Name = doco.clientDocument.FKClientUID.ToString();
                clientNode.Tag  = doco;
                rootNode.Nodes.Add(clientNode);

                // Add Client Document Set to tree
                //
                TreeNode clientDocumentSetNode = new TreeNode("Set " + doco.clientDocument.FKClientDocumentSetUID.ToString(), FCMConstant.Image.Folder, FCMConstant.Image.Folder);
                clientDocumentSetNode.Name = "Set " + doco.clientDocument.FKClientDocumentSetUID.ToString("0000");
                clientDocumentSetNode.Tag  = doco;
                clientNode.Nodes.Add(clientDocumentSetNode);

                // Add document to tree
                //
                int      image        = Utils.GetFileImage(doco.clientDocument.SourceFilePresent, doco.clientDocument.DestinationFilePresent, doco.clientDocument.DocumentType);
                TreeNode documentNode = new TreeNode(txtDocumentName.Text, image, image);
                documentNode.Name = txtDocumentName.Text;
                documentNode.Tag  = doco;
                clientDocumentSetNode.Nodes.Add(documentNode);
            }

            if (tvDocumentList.Nodes.Count > 0)
            {
                tvDocumentList.Nodes[0].Expand();
            }
        }
コード例 #12
0
        private static void GenerateList(Program program, bool isRestart, string processName)
        {
            #region startList
            if (program.activeList.Count > 0)
            {
                // If there is a request, process the request
                //

                foreach (var request in program.activeList)
                {
                    request.SetStatusToStarted();

                    program.processRequest = request;

                    // Update request to completed
                    //
                    if (request.Type == ProcessRequest.TypeValue.DOCUMENTGENERATION.ToString())
                    {
                        // Find Values
                        //
                        var    clientUID         = 0;
                        int    clientSetID       = 0;
                        var    overrideDocument  = "Yes";
                        int    clientDocumentUID = 0;
                        string filename          = " Full Set Generated";

                        foreach (var argument in request.argumentList)
                        {
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTUID.ToString())
                            {
                                clientUID = Convert.ToInt32(argument.Value);
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTSETID.ToString())
                            {
                                clientSetID = Convert.ToInt32(argument.Value);
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.OVERRIDE.ToString())
                            {
                                overrideDocument = argument.Value;
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTDOCUID.ToString())
                            {
                                clientDocumentUID = Convert.ToInt32(argument.Value);
                                if (clientDocumentUID > 0)
                                {
                                    var clientDocument = BUSClientDocument.ClientDocumentReadS(clientDocumentUID);
                                    filename = " File: " + clientDocument.FileName;
                                }
                            }
                        }

                        var client = BUSClient.ClientRead(new ClientReadRequest()
                        {
                            clientUID = clientUID, headerInfo = HeaderInfo.Instance
                        });


                        // Send email to requester
                        //
                        string emailGraham = "*****@*****.**";
                        string emailDaniel = "*****@*****.**";

                        string emailSubject = "<> STARTED <> " + DateTime.Now + "<> generation requested by: " + request.RequestedByUser +
                                              " Client: " + clientUID + " " + client.client.Name +
                                              filename;

                        string emailBody = "Generation Started: " + DateTime.Now + " <> " + emailSubject + " -- ";

                        if (request.RequestedByUser.ToUpper() == "GC0001")
                        {
                            var resp1 = FCMEmail.SendEmailSimple(
                                iRecipient: emailGraham,
                                iSubject: emailSubject,
                                iBody: emailBody);
                        }

                        var resp2 = FCMEmail.SendEmailSimple(
                            iRecipient: emailDaniel,
                            iSubject: emailSubject,
                            iBody: emailBody);


                        // 30.03.2012
                        // Mudar para processamento paralelo e async
                        //

                        // Generate Document
                        //
                        BUSFCMBackendStatus.ReportStatus(HeaderInfo.Instance, processName, "Before document generation starts.");
                        if (clientDocumentUID > 0)
                        {
                            program.GenerateDocumentsForClient(clientUID, clientSetID, program, overrideDocument, clientDocumentUID, processName, request.RequestedByUser);
                        }
                        else
                        {
                            program.GenerateFullSetOfDocumentsForClient(clientUID, clientSetID, program, overrideDocument, isRestart, processName, request.RequestedByUser);
                        }
                        // Write output to database of logs and allow access online or
                        // Write to a file and allow access online...
                        // We can see the process of the request...

                        request.SetStatusToCompleted();
                        HeaderInfo.Instance.UserID          = request.RequestedByUser;
                        HeaderInfo.Instance.CurrentDateTime = DateTime.Now;



                        // Send email to requester
                        //

                        emailSubject = "<>  ENDED  <> " + DateTime.Now + "<> generation requested by: " + request.RequestedByUser +
                                       " Client: " + clientUID + " " + client.client.Name +
                                       filename;

                        emailBody = "Generation Ended: " + DateTime.Now + " <> " + emailSubject + " -- " + "File Generated.";

                        if (request.RequestedByUser.ToUpper() == "GC0001")
                        {
                            var resp3 = FCMEmail.SendEmailSimple(
                                iRecipient: emailGraham,
                                iSubject: emailSubject,
                                iBody: emailBody);
                        }

                        var resp4 = FCMEmail.SendEmailSimple(
                            iRecipient: emailDaniel,
                            iSubject: emailSubject,
                            iBody: emailBody);
                    }
                }
            }

            #endregion
        }