Пример #1
0
        /// <summary>
        /// Load client object
        /// </summary>
        /// <param name="reader"></param>
        private static void LoadClientObject(MySqlDataReader reader, ClientExtraInformation clientExtraInfo)
        {
            clientExtraInfo.UID = Convert.ToInt32(reader[FCMDBFieldName.ClientExtraInformation.UID]);
            try { clientExtraInfo.ActionPlanDate = Convert.ToDateTime(reader[FCMDBFieldName.ClientExtraInformation.ActionPlanDate].ToString()); }
            catch { clientExtraInfo.ActionPlanDate = Utils.MinDate; }
            try { clientExtraInfo.CertificationTargetDate = Convert.ToDateTime(reader[FCMDBFieldName.ClientExtraInformation.CertificationTargetDate].ToString()); }
            catch { clientExtraInfo.CertificationTargetDate = Utils.MinDate; }
            try { clientExtraInfo.DateToEnterOnPolicies = Convert.ToDateTime(reader[FCMDBFieldName.ClientExtraInformation.DateToEnterOnPolicies].ToString()); }
            catch { clientExtraInfo.DateToEnterOnPolicies = Utils.MinDate; }
            clientExtraInfo.FKClientUID = Convert.ToInt32(reader[FCMDBFieldName.ClientExtraInformation.FKClientUID]);
            clientExtraInfo.OperationalMeetingsFrequency = (reader[FCMDBFieldName.ClientExtraInformation.OperationalMeetingsFrequency].ToString());
            clientExtraInfo.ProjectMeetingsFrequency     = (reader[FCMDBFieldName.ClientExtraInformation.ProjectMeetingsFrequency].ToString());

            clientExtraInfo.RegionsOfOperation = (reader[FCMDBFieldName.ClientExtraInformation.RegionsOfOperation].ToString());
            clientExtraInfo.ScopeOfServices    = (reader[FCMDBFieldName.ClientExtraInformation.ScopeOfServices].ToString());
            clientExtraInfo.TimeTrading        = (reader[FCMDBFieldName.ClientExtraInformation.TimeTrading].ToString());

            // Audit Info
            //
            try { clientExtraInfo.UpdateDateTime = Convert.ToDateTime(reader[FCMDBFieldName.ClientExtraInformation.UpdateDateTime].ToString()); }
            catch { clientExtraInfo.UpdateDateTime = DateTime.Now; }
            try { clientExtraInfo.CreationDateTime = Convert.ToDateTime(reader[FCMDBFieldName.ClientExtraInformation.CreationDateTime].ToString()); }
            catch { clientExtraInfo.CreationDateTime = DateTime.Now; }
            try { clientExtraInfo.IsVoid = reader[FCMDBFieldName.ClientExtraInformation.IsVoid].ToString(); }
            catch { clientExtraInfo.IsVoid = "N"; }
            try { clientExtraInfo.UserIdCreatedBy = reader[FCMDBFieldName.ClientExtraInformation.UserIdCreatedBy].ToString(); }
            catch { clientExtraInfo.UserIdCreatedBy = "N"; }
            try { clientExtraInfo.UserIdUpdatedBy = reader[FCMDBFieldName.ClientExtraInformation.UserIdCreatedBy].ToString(); }
            catch { clientExtraInfo.UserIdCreatedBy = "N"; }
            clientExtraInfo.RecordVersion = Convert.ToInt32(reader[FCMDBFieldName.ClientExtraInformation.RecordVersion]);
        }
Пример #2
0
        /// <summary>
        /// Get Client Extra Information
        /// </summary>
        public static ResponseStatus Read(ClientExtraInformation clientExtraInfo)
        {
            //
            // EA SQL database
            //

            using (var connection = new MySqlConnection(ConnString.ConnectionString))
            {
                var commandString =
                    " SELECT " +
                    ClientFieldString() +
                    "  FROM ClientExtraInformation" +
                    " WHERE FKClientUID = @UID";

                using (var command = new MySqlCommand(
                           commandString, connection))
                {
                    command.Parameters.Add("@UID", MySqlDbType.Int32).Value = clientExtraInfo.FKClientUID;

                    connection.Open();
                    MySqlDataReader reader = command.ExecuteReader();

                    if (reader.Read())
                    {
                        try
                        {
                            LoadClientObject(reader, clientExtraInfo);
                        }
                        catch (Exception)
                        {
                            clientExtraInfo.UID = 0;
                        }
                    }
                    else
                    {
                        return(new ResponseStatus()
                        {
                            ReturnCode = 1, ReasonCode = 2, Message = "Not found", XMessageType = MessageType.Warning
                        });
                    }
                }
            }

            return(new ResponseStatus());
        }
Пример #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="callingForm"></param>
        public UIClientDetails(Form callingForm)
        {
            _callingForm = callingForm;

            InitializeComponent();
            original = new Client(HeaderInfo.Instance);
            setCurrentRowPosition(0);

            clientContractList = new List <ClientContract>();
            clientContract     = new ClientContract();

            clientList = new List <Client>();

            // bindingSourceClient.DataSource = clientList;
            bsClient.DataSource = clientList;

            client = new Client(HeaderInfo.Instance);
            clientExtraInformation = new ClientExtraInformation();

            // Load User ID
            //
            var ua = UserAccess.List();

            foreach (var user in ua)
            {
                comboUserID.Items.Add(user.UserID);
            }

            // Load Contractor Size
            //
            DocumentSetList dsl = new DocumentSetList();

            dsl.List();
            foreach (var documentSet in dsl.documentSetList)
            {
                comboContractorSize.Items.Add(documentSet.UIDNameDisplay);
            }


            // ucClientOtherInfo1.PopulateData(Utils.ClientID);
        }
Пример #4
0
        /// <summary>
        /// Add SQL Parameters
        /// </summary>
        /// <param name="_uid"></param>
        /// <param name="command"></param>
        /// <param name="action"></param>
        private static void AddSQLParameters(MySqlCommand command, string action, ClientExtraInformation clientExtraInfo)
        {
            command.Parameters.Add("@UID", MySqlDbType.Int32).Value                            = clientExtraInfo.UID;
            command.Parameters.Add("@FKClientUID", MySqlDbType.VarChar).Value                  = clientExtraInfo.FKClientUID;
            command.Parameters.Add("@ActionPlanDate", MySqlDbType.Date).Value                  = clientExtraInfo.ActionPlanDate;
            command.Parameters.Add("@CertificationTargetDate", MySqlDbType.Date).Value         = clientExtraInfo.CertificationTargetDate;
            command.Parameters.Add("@DateToEnterOnPolicies", MySqlDbType.Date).Value           = clientExtraInfo.DateToEnterOnPolicies;
            command.Parameters.Add("@OperationalMeetingsFrequency", MySqlDbType.VarChar).Value = clientExtraInfo.OperationalMeetingsFrequency;
            command.Parameters.Add("@ProjectMeetingsFrequency", MySqlDbType.VarChar).Value     = clientExtraInfo.ProjectMeetingsFrequency;
            command.Parameters.Add("@RegionsOfOperation", MySqlDbType.VarChar).Value           = clientExtraInfo.RegionsOfOperation;
            command.Parameters.Add("@ScopeOfServices", MySqlDbType.VarChar).Value              = clientExtraInfo.ScopeOfServices;
            command.Parameters.Add("@TimeTrading", MySqlDbType.VarChar).Value                  = clientExtraInfo.TimeTrading;

            command.Parameters.Add("@UpdateDateTime", MySqlDbType.DateTime).Value = clientExtraInfo.UpdateDateTime;
            command.Parameters.Add("@UserIdUpdatedBy", MySqlDbType.VarChar).Value = clientExtraInfo.UserIdUpdatedBy;
            command.Parameters.Add("@IsVoid", MySqlDbType.VarChar).Value          = clientExtraInfo.IsVoid;
            command.Parameters.Add("@RecordVersion", MySqlDbType.Int32).Value     = clientExtraInfo.RecordVersion;

            if (action == MakConstant.SQLAction.CREATE)
            {
                command.Parameters.Add("@CreationDateTime", MySqlDbType.DateTime, 8).Value = clientExtraInfo.CreationDateTime;
                command.Parameters.Add("@UserIdCreatedBy", MySqlDbType.VarChar).Value      = clientExtraInfo.UserIdCreatedBy;
            }
        }
Пример #5
0
        // -----------------------------------------------------
        //    Add new Client
        // -----------------------------------------------------
        public static ResponseStatus Insert(
            HeaderInfo headerInfo,
            ClientExtraInformation clientExtraInfo,
            MySqlConnection connection)
        {
            ResponseStatus response = new ResponseStatus();

            response.ReturnCode = 1;
            response.ReasonCode = 1;
            response.Message    = "Client Added Successfully";

            int _uid = 0;

            int nextUID = GetLastUID() + 1; // 2010100000

            clientExtraInfo.UID = nextUID;
            DateTime _now = DateTime.Today;

            clientExtraInfo.RecordVersion    = 1;
            clientExtraInfo.IsVoid           = "N";
            clientExtraInfo.CreationDateTime = headerInfo.CurrentDateTime;
            clientExtraInfo.UpdateDateTime   = headerInfo.CurrentDateTime;
            clientExtraInfo.UserIdCreatedBy  = headerInfo.UserID;
            clientExtraInfo.UserIdUpdatedBy  = headerInfo.UserID;

            var commandString =
                (
                    "INSERT INTO ClientExtraInformation " +
                    "(" +
                    ClientFieldString() +
                    ")" +
                    " VALUES " +
                    "( @UID     " +
                    ", @FKClientUID    " +
                    ", @DateToEnterOnPolicies    " +
                    ", @ScopeOfServices " +
                    ", @ActionPlanDate " +
                    ", @CertificationTargetDate " +
                    ", @TimeTrading " +
                    ", @RegionsOfOperation " +
                    ", @OperationalMeetingsFrequency " +
                    ", @ProjectMeetingsFrequency " +
                    ", @IsVoid " +
                    ", @RecordVersion " +
                    ", @UpdateDateTime " +
                    ", @UserIdUpdatedBy " +
                    ", @CreationDateTime  " +
                    ", @UserIdCreatedBy ) "
                );



            using (var command = new MySqlCommand(commandString, connection))
            {
                clientExtraInfo.RecordVersion = 1;
                clientExtraInfo.IsVoid        = "N";
                AddSQLParameters(command, MakConstant.SQLAction.CREATE, clientExtraInfo);

                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }

                command.ExecuteNonQuery();
            }

            response.Contents = _uid;

            return(response);
        }
Пример #6
0
        /// <summary>
        /// Update client details
        /// </summary>
        /// <returns></returns>
        public static ResponseStatus Update(
            HeaderInfo headerInfo,
            ClientExtraInformation clientExtraInfo,
            MySqlConnection connection)
        {
            var response = new ResponseStatus {
                ReturnCode = 1, ReasonCode = 1, Message = "Client Updated Successfully."
            };

            // using (var connection = new MySqlConnection(ConnString.ConnectionString))

            using (connection)
            {
                var commandString = (
                    "UPDATE ClientExtraInformation " +
                    " SET  " +
                    FCMDBFieldName.ClientExtraInformation.ActionPlanDate + " = @" + FCMDBFieldName.ClientExtraInformation.ActionPlanDate + ", " +
                    FCMDBFieldName.ClientExtraInformation.CertificationTargetDate + " = @" + FCMDBFieldName.ClientExtraInformation.CertificationTargetDate + ", " +
                    FCMDBFieldName.ClientExtraInformation.DateToEnterOnPolicies + " = @" + FCMDBFieldName.ClientExtraInformation.DateToEnterOnPolicies + ", " +
                    FCMDBFieldName.ClientExtraInformation.OperationalMeetingsFrequency + " = @" + FCMDBFieldName.ClientExtraInformation.OperationalMeetingsFrequency + ", " +
                    FCMDBFieldName.ClientExtraInformation.ProjectMeetingsFrequency + " = @" + FCMDBFieldName.ClientExtraInformation.ProjectMeetingsFrequency + ", " +
                    FCMDBFieldName.ClientExtraInformation.RecordVersion + " = @" + FCMDBFieldName.ClientExtraInformation.RecordVersion + ", " +
                    FCMDBFieldName.ClientExtraInformation.RegionsOfOperation + " = @" + FCMDBFieldName.ClientExtraInformation.RegionsOfOperation + ", " +
                    FCMDBFieldName.ClientExtraInformation.ScopeOfServices + " = @" + FCMDBFieldName.ClientExtraInformation.ScopeOfServices + ", " +
                    FCMDBFieldName.ClientExtraInformation.TimeTrading + " = @" + FCMDBFieldName.ClientExtraInformation.TimeTrading + ", " +
                    FCMDBFieldName.ClientExtraInformation.IsVoid + " = @" + FCMDBFieldName.ClientExtraInformation.IsVoid + ", " +
                    FCMDBFieldName.ClientExtraInformation.UpdateDateTime + " = @" + FCMDBFieldName.ClientExtraInformation.UpdateDateTime + ", " +
                    FCMDBFieldName.ClientExtraInformation.UserIdUpdatedBy + " = @" + FCMDBFieldName.ClientExtraInformation.UserIdUpdatedBy +
                    "    WHERE FKClientUID = @FKClientUID "
                    );


                clientExtraInfo.RecordVersion++;
                clientExtraInfo.UpdateDateTime  = DateTime.Now;
                clientExtraInfo.UserIdUpdatedBy = headerInfo.UserID;
                clientExtraInfo.IsVoid          = "N";

                using (var command = new MySqlCommand(
                           cmdText: commandString,
                           connection: connection))
                {
                    AddSQLParameters(command, MakConstant.SQLAction.UPDATE, clientExtraInfo);

                    try
                    {
                        if (connection.State != ConnectionState.Open)
                        {
                            connection.Open();
                        }

                        command.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        LogFile.WriteToTodaysLogFile(ex.ToString(), headerInfo.UserID);

                        response.ReturnCode = -0020;
                        response.ReasonCode = 0001;
                        response.Message    = "Error saving Client Extra Information. " + ex.ToString();
                        return(response);
                    }
                }
            }
            return(response);
        }
Пример #7
0
        /// <summary>
        /// Add client
        /// </summary>
        /// <param name="headerInfo"> </param>
        /// <param name="eventClient"></param>
        /// <param name="linkInitialSet"> </param>
        /// <returns></returns>
        public static ResponseStatus ClientAdd(HeaderInfo headerInfo,
                                               Client.Client eventClient,
                                               string linkInitialSet)
        {
            ResponseStatus response = new ResponseStatus();

            //
            // This is a new client.
            //
            if (string.IsNullOrEmpty(eventClient.Name))
            {
                response.ReturnCode = -0010;
                response.ReasonCode = 0001;
                response.Message    = "Client Name is mandatory.";
                response.Contents   = 0;
                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(eventClient.FKUserID))
            {
                var checkLinkedUser = new Client.Client {
                    FKUserID = eventClient.FKUserID
                };
                var responseLinked = checkLinkedUser.ReadLinkedUser();

                if (!responseLinked.Successful)
                {
                    return(responseLinked);
                }

                if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001)
                {
                    response.ReturnCode = -0010;
                    response.ReasonCode = 0002;
                    response.Message    = "User ID is already linked to another client.";
                    response.Contents   = 0;

                    return(response);
                }
            }
            #endregion

            var newClientUid = 0;

            using (var connection = new SqlConnection(ConnString.ConnectionString))
            {
                using (var tr = new TransactionScope(TransactionScopeOption.Required))
                {
                    connection.Open();

                    // -------------------------------
                    // Call method to add new client
                    // -------------------------------
                    var newClient = eventClient.Insert(headerInfo, connection);
                    //       var newClientX = eventClient.MySQLInsert(headerInfo);

                    newClientUid = Convert.ToInt32(newClient.Contents);

                    // -------------------------------------------
                    // Call method to add client extra information
                    // -------------------------------------------
                    eventClient.clientExtraInformation.FKClientUID = eventClient.UID;
                    var cei = ClientExtraInformation.Insert(
                        HeaderInfo.Instance,
                        eventClient.clientExtraInformation,
                        connection);

                    if (cei.ReturnCode != 1)
                    {
                        // Rollback transaction
                        //
                        tr.Dispose();
                        return(cei);
                    }

                    // --------------------------------------------
                    // 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(CultureInfo.InvariantCulture).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(headerInfo, connection);

                    // --------------------------------------------
                    // Apply initial document set
                    // --------------------------------------------
                    if (linkInitialSet == "Y")
                    {
                        BUSClientDocument.AssociateDocumentsToClient(
                            clientDocumentSet: cds,
                            documentSetUID: eventClient.FKDocumentSetUID,
                            headerInfo: headerInfo);

                        // Fix Destination Folder Location
                        //
                        BUSClientDocumentGeneration.UpdateLocation(cds.FKClientUID, cds.ClientSetID);
                    }

                    // Commit transaction
                    //
                    tr.Complete();
                }
            }

            ClientList(headerInfo);

            // Return new client id
            response.Contents = newClientUid;
            return(response);
        }
Пример #8
0
        /// <summary>
        /// Update client details
        /// </summary>
        /// <param name="headerInfo"> </param>
        /// <param name="eventClient"> </param>
        public static ResponseStatus ClientUpdate(HeaderInfo headerInfo, Client.Client eventClient)
        {
            var response = new ResponseStatus();

            // --------------------------------------------------------------
            // Check if user ID is already connected to a client
            // --------------------------------------------------------------
            var checkLinkedUser = new Client.Client
            {
                FKUserID = eventClient.FKUserID,
                UID      = eventClient.UID
            };

            if (!string.IsNullOrEmpty(eventClient.FKUserID))
            {
                var responseLinked = checkLinkedUser.ReadLinkedUser();

                if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001)
                {
                    response.ReturnCode = 0001;
                    response.ReasonCode = 0002;
                    response.Message    = "User ID is already linked to another client.";
                    response.Contents   = 0;

                    return(response);
                }

                if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0003)
                {
                    // All good. User ID is connected to Client Supplied.
                }


                if (responseLinked.ReturnCode == 0001 && responseLinked.ReasonCode == 0001)
                {
                    response.ReturnCode = -0010;
                    response.ReasonCode = 0002;
                    response.Message    = "User ID is already linked to another client.";
                    response.Contents   = 0;

                    return(response);
                }
            }


            using (var connection = new SqlConnection(ConnString.ConnectionString))
            {
                using (var tr = new TransactionScope(TransactionScopeOption.Required))
                {
                    connection.Open();

                    var responseClientUpdate = eventClient.Update(headerInfo);
                    if (!responseClientUpdate.Successful)
                    {
                        // Rollback
                        tr.Dispose();
                        return(responseClientUpdate);
                    }
                    // -------------------------------------------
                    // Call method to add client extra information
                    // -------------------------------------------

                    var ceiResponse = ClientExtraInformation.Read(headerInfo, eventClient.UID);
                    if (ceiResponse.ReturnCode != 1)
                    {
                        // Rollback
                        tr.Dispose();
                        return(ceiResponse);
                    }
                    var ceiRead = (ClientExtraInformation)ceiResponse.Contents;

                    eventClient.clientExtraInformation.RecordVersion = ceiRead.RecordVersion;

                    var cei = ClientExtraInformation.Update(
                        headerInfo,
                        eventClient.clientExtraInformation);
                    if (!cei.Successful)
                    {
                        return(cei);
                    }

                    tr.Complete();
                }
            }

            return(response);
        }