private void SaveTransfer(ApprovalStatus approvalStatus)
        {
            if (EntryApproved != ApprovalStatus.Pending)
            {
                MessageBox.Show("This entry has already been Approved/Rejected");
                return;
            }

            if (id == 0 && approvalStatus != ApprovalStatus.Pending)
            {
                MessageBox.Show("This entry needs to be saved first before approval process.");
                return;
            }
            bool result;

            var info1 = new clsTransferHistory();

            info1.intID                  = this.id;
            info1.strRegistrationNo      = txtRegistration.Text.Trim();
            info1.strTransferFromID      = txtClientID.Text;
            info1.strTransferToID        = txtTransferID.Text;
            info1.dtTransferDate         = dtptransferDate.Value.Date;
            info1.strName                = txtTransferName.Text;
            info1.strFatherOrHusbandType = cmbTransferFatherHusband.Text;
            info1.strFatherOrHusband     = txtTransferFatherHusband.Text;
            info1.strNIDOrCNIC           = txtNIDCNIC.Text;
            info1.strNationality         = cmbTransferNationality.Text;
            info1.dtDOB                  = dTPTransferDOB.Value;
            info1.strCurrentAddress1     = txtTransferCurrentAddress1.Text.Trim();
            info1.strCurrentAddress2     = txtTransferCurrentAddress2.Text.Trim();
            info1.strCurrentAddress3     = txtTransferCurrentAddress3.Text.Trim();
            info1.strCountry             = cmbTransferCountry.Text;
            info1.strCity                = txtTransferCity.Text;
            info1.strPhOff               = txtTransferPh.Text;
            info1.strRes                 = txtTransferRes.Text;
            info1.strMob                 = txtTransferMob.Text;
            info1.strFax                 = "";
            info1.strEmailAddress        = txtTransferEmailAddress.Text;


            /////////////


            if (id == 0)
            {
                info1.CreatedBy          = Dynamics.Globals.UserId.Value;
                info1.CreationDate       = DateTime.Now;
                info1.ApprovalStatusCode = (int)ApprovalStatus.Pending;
                info1.LastUpdateDate     = new DateTime(1900, 1, 1);
                info1.LastUpdateUser     = "";
                info1.ApprovalActionUser = "";
                info1.ApprovalActionDate = new DateTime(1900, 1, 1);

                info1.intPreviousStatusCode = infoMember.intStatusCode;
            }
            else if (id != 0)
            {
                info1.CreatedBy    = Dynamics.Globals.UserId.Value;
                info1.CreationDate = DateTime.Now;

                info1.LastUpdateDate = DateTime.Now;
                info1.LastUpdateUser = Dynamics.Globals.UserId.Value;

                info1.ApprovalStatusCode = (int)approvalStatus;

                if (approvalStatus != ApprovalStatus.Pending)
                {
                    info1.ApprovalActionUser = Dynamics.Globals.UserId.Value;
                    info1.ApprovalActionDate = DateTime.Now;
                }
                else
                {
                    info1.ApprovalActionUser = "";
                    info1.ApprovalActionDate = new DateTime(1900, 1, 1);
                }
            }



            int intTransID = 0;

            result = da.AddTransferHistory(info1, ref intTransID);

            if (result == false)
            {
                MessageBox.Show("An Error Occoured");
                return;
            }

            infoMember.RegistrationNo = txtRegistration.Text;
            infoMember.ClientID       = txtClientID.Text;


            infoMember.ClientID = txtTransferID.Text;

            infoMember.RegistrationNo = txtRegistration.Text.Trim();
            infoMember.ClientID       = txtTransferID.Text;

            infoMember.Name = txtTransferName.Text;
            infoMember.FatherOrHusbandType = cmbTransferFatherHusband.Text;
            infoMember.FatherOrHusband     = txtTransferFatherHusband.Text;
            infoMember.NIDOrCNIC           = txtNIDCNIC.Text;
            infoMember.Nationality         = cmbTransferNationality.Text;
            infoMember.DOB             = dTPTransferDOB.Value;
            infoMember.CurrentAddress1 = txtTransferCurrentAddress1.Text.Trim();
            infoMember.CurrentAddress2 = txtTransferCurrentAddress2.Text.Trim();
            infoMember.CurrentAddress3 = txtTransferCurrentAddress3.Text.Trim();
            infoMember.Country         = cmbTransferCountry.Text;
            infoMember.City            = txtTransferCity.Text;
            infoMember.PhOff           = txtTransferPh.Text;
            infoMember.Res             = txtTransferRes.Text;
            infoMember.Mob             = txtTransferMob.Text;
            infoMember.Fax             = "";
            infoMember.EmailAddress    = txtTransferEmailAddress.Text;


            if (approvalStatus == ApprovalStatus.Approved)
            {
                infoMember.intStatusCode = (int)memberLookupCodes.Transferred;
            }
            else if (approvalStatus == ApprovalStatus.Pending)
            {
                infoMember.intStatusCode = (int)memberLookupCodes.MarkedForTransfer;
            }
            result = da.UpdateRegistrationonTransfer(infoMember, txtClientID.Text);
            if (result == false)
            {
                MessageBox.Show("An Error Occured");
                return;
            }

            if ((approvalStatus == ApprovalStatus.Pending))
            {
                if (pbTransferToImage.Image != null)
                {
                    clsTransferImage memberImage = new clsTransferImage()
                    {
                        TransferID     = intTransID,
                        ClientID       = txtTransferID.Text,
                        ImageId        = txtPictureName.Text,
                        RegistrationNo = txtRegistration.Text
                    };
                    memberImage.Image = imageToByteArray(this.pbTransferToImage.Image);

                    da.AddTransferImage(memberImage);
                }

                if (pbTransferToCNIC.Image != null)
                {
                    clsTransferCNIC memberCNIC = new clsTransferCNIC()
                    {
                        TransferID     = intTransID,
                        ClientID       = txtTransferID.Text,
                        ImageId        = txtCNICName.Text,
                        RegistrationNo = txtRegistration.Text
                    };
                    memberCNIC.Image = imageToByteArray(this.pbTransferToCNIC.Image);

                    da.AddTransferCNIC(memberCNIC);
                }
            }
            else if ((approvalStatus == ApprovalStatus.Approved))
            {
                da.AddMemberImageonTransfer(intTransID);
                da.AddMemberCNIConTransfer(intTransID);
            }

            if (result == true)
            {
                MessageBox.Show("Transfer Saved Successfully.");
            }

            Clear();
        }
        private void frmTransfer_Load(object sender, EventArgs e)
        {
            SetUserSecurity();
            clsTransferHistory clsTrn = new clsTransferHistory();

            cmbApprovalStatus.Text = "Not Saved";
            if (id != 0)
            {
                bEdit  = true;
                clsTrn = da.GetTransferHistoryById(id);

                //Transfer From
                var v = da.GetMemberRegistrationInfoByMembershipAndCNIC(clsTrn.strRegistrationNo, clsTrn.strTransferFromID);
                /////Disabling
                btnSelect.Enabled       = false;
                txtClientID.Text        = v.ClientID;
                txtName.Text            = v.Name;
                cBFatherHusband.Text    = v.FatherOrHusbandType;
                txtFatherHusband.Text   = v.FatherOrHusband;
                txtNIDCNIC.Text         = v.NIDOrCNIC;
                cmbNationality.Text     = v.Nationality;
                dTPDOB.Value            = v.DOB;
                txtCurrentAddress1.Text = v.CurrentAddress1;
                txtCurrentAddress2.Text = v.CurrentAddress2;
                txtCurrentAddress3.Text = v.CurrentAddress3;
                cmbCountry.Text         = v.Country.ToString().ToUpper();
                txtCity.Text            = v.City.ToString().ToUpper();
                txtPh.Text           = v.PhOff;
                txtRes.Text          = v.Res;
                txtMob.Text          = v.Mob;
                txtFax.Text          = v.Fax;
                txtEmailAddress.Text = v.EmailAddress;


                // Transfer TO
                txtTransferID.Text              = clsTrn.strTransferToID;
                txtTransferName.Text            = clsTrn.strName;
                cmbTransferFatherHusband.Text   = clsTrn.strFatherOrHusbandType;
                txtTransferFatherHusband.Text   = clsTrn.strFatherOrHusband;
                cmbTransferNationality.Text     = clsTrn.strNationality;
                dTPTransferDOB.Value            = clsTrn.dtDOB;
                txtTransferCurrentAddress1.Text = clsTrn.strCurrentAddress1;
                txtTransferCurrentAddress2.Text = clsTrn.strCurrentAddress2;
                txtTransferCurrentAddress3.Text = clsTrn.strCurrentAddress3;
                cmbTransferCountry.Text         = clsTrn.strCountry.ToString().ToUpper();
                txtTransferCity.Text            = clsTrn.strCity.ToString().ToUpper();
                txtTransferPh.Text              = clsTrn.strPhOff;
                txtTransferRes.Text             = clsTrn.strRes;
                txtTransferMob.Text             = clsTrn.strMob;
                txtTransferEmailAddress.Text    = clsTrn.strEmailAddress;
                txtRegistration.Text            = clsTrn.strRegistrationNo;

                EntryApproved = (ApprovalStatus)clsTrn.ApprovalStatusCode;
                if ((ApprovalStatus)clsTrn.ApprovalStatusCode == ApprovalStatus.Pending)
                {
                    cmbApprovalStatus.Text = "Pending";
                }
                else if ((ApprovalStatus)clsTrn.ApprovalStatusCode == ApprovalStatus.Approved)
                {
                    cmbApprovalStatus.Text = "Approved";
                }
                else if ((ApprovalStatus)clsTrn.ApprovalStatusCode == ApprovalStatus.Rejected)
                {
                    cmbApprovalStatus.Text = "Rejected";
                }

                txtBlock.Text   = v.Block;
                txtPlot.Text    = v.Plot;
                txtProject.Text = v.strProjectid;
                txtUnitID.Text  = v.Plot;



                LoadTransferImage();
                LoadMemberImage();
            }
        }