Ejemplo n.º 1
0
        private void btnCheckIn_Click(object sender, EventArgs e)
        {
            string cardNumber = this.tbxCheckInCardNumber.Text;

            if (!this.tbxCnicNumber.MaskCompleted)
            {
                MessageBox.Show(this, "Please Enter correct CNIC NUMBER.");
                this.tbxCnicNumber.ReadOnly  = false;
                this.tbxCnicNumber.BackColor = System.Drawing.Color.White;
                return;
            }

            bool validtated = EFERTDbUtility.ValidateInputs(new List <TextBox>()
            {
                this.tbxFirstName, this.tbxCheckInCardNumber
            });

            if (validtated && this.cbxVFCategory.SelectedItem == null || string.IsNullOrEmpty(this.cbxVFCategory.SelectedItem.ToString().Trim()))
            {
                validtated = false;
            }

            if (!validtated)
            {
                MessageBox.Show(this, "Please fill mandatory fields first.");
                return;
            }

            bool isCardNotReturned = this.mCheckIns.Any(checkInInfo => checkInInfo.CheckedIn && checkInInfo.CardNumber == cardNumber);

            CCFTCentralDb.CCFTCentral ccftCentralDb = new CCFTCentralDb.CCFTCentral();
            bool cardExist = ccftCentralDb.Cardholders.Any(card => card.LastName == cardNumber);

            if (cardExist && !isCardNotReturned)
            {
                var cardAlreadyIssued = (from checkin in EFERTDbUtility.mEFERTDb.CheckedInInfos
                                         where checkin != null && checkin.CheckedIn && checkin.CardNumber == cardNumber
                                         select new
                {
                    checkin.CheckedIn,
                    checkin.CNICNumber
                }).FirstOrDefault();

                if (cardAlreadyIssued != null && cardAlreadyIssued.CheckedIn)
                {
                    MessageBox.Show(this, "This card is already issue to the person with CNIC number: " + cardAlreadyIssued.CNICNumber);
                    return;
                }
                if (this.mVisitor == null)
                {
                    VisitorCardHolder visitor = new VisitorCardHolder();

                    visitor.CNICNumber                   = this.tbxCnicNumber.Text;
                    visitor.Gender                       = this.cbxGender.SelectedItem == null ? string.Empty : this.cbxGender.SelectedItem as String;
                    visitor.FirstName                    = this.tbxFirstName.Text;
                    visitor.LastName                     = this.tbxLastName.Text;
                    visitor.Address                      = this.tbxAddress.Text;
                    visitor.PostCode                     = this.tbxPostCode.Text;
                    visitor.City                         = this.tbxCity.Text;
                    visitor.State                        = this.tbxState.Text;
                    visitor.CompanyName                  = this.tbxCompanyName.Text;
                    visitor.ContactNo                    = this.tbxPhoneNumber.Text;
                    visitor.EmergencyContantPerson       = this.tbxEmergencyContact.Text;
                    visitor.EmergencyContantPersonNumber = this.tbxEmergencyContactNumber.Text;
                    visitor.VisitorType                  = this.cbxVisitorType.SelectedItem == null ? string.Empty : this.cbxVisitorType.SelectedItem as String;
                    visitor.IsOnPlant                    = SearchForm.mIsPlant;

                    if (this.pbxSnapShot.Image != null)
                    {
                        visitor.Picture = EFERTDbUtility.ImageToByteArray(this.pbxSnapShot.Image);
                    }

                    if (this.mSchoolingStaff)
                    {
                        visitor.SchoolName = this.cbxSchoolCollege.SelectedItem == null ? string.Empty : this.cbxSchoolCollege.SelectedItem as String;
                    }

                    visitor.VisitorInfo = this.mVisitorInfo;

                    EFERTDbUtility.mEFERTDb.Visitors.Add(visitor);

                    //EFERTDbUtility.mEFERTDb.SaveChanges();

                    this.mVisitor = visitor;
                }


                CheckInAndOutInfo checkedInInfo = new CheckInAndOutInfo();

                checkedInInfo.CheckInToPlant  = SearchForm.mIsPlant;
                checkedInInfo.CheckInToPlant  = !SearchForm.mIsPlant;
                checkedInInfo.FirstName       = this.mVisitor.FirstName;
                checkedInInfo.Visitors        = this.mVisitor;
                checkedInInfo.CNICNumber      = this.mCNICNumber;
                checkedInInfo.CardNumber      = this.tbxCheckInCardNumber.Text;
                checkedInInfo.VehicleNmuber   = this.tbxCheckInVehicleNumber.Text;
                checkedInInfo.NoOfMaleGuest   = this.nuNoOfMaleGuest.Value;
                checkedInInfo.NoOfFemaleGuest = this.nuNoOfFemaleGuest.Value;
                checkedInInfo.DurationOfStay  = this.numCheckInDurationOfStay.Value;
                checkedInInfo.NoOfChildren    = this.nuCheckInNoOfChildren.Value;
                checkedInInfo.AreaOfVisit     = this.cbxAreaOfVisit.SelectedItem == null ? string.Empty : this.cbxAreaOfVisit.SelectedItem as String;
                checkedInInfo.HostName        = this.tbxCheckInHostName.Text;
                checkedInInfo.DateTimeIn      = Convert.ToDateTime(this.tbxCheckInDateTimeIn.Text);
                checkedInInfo.DateTimeOut     = DateTime.MaxValue;
                checkedInInfo.CheckedIn       = true;
                checkedInInfo.Category        = this.mVisitorInfo;

                try
                {
                    EFERTDbUtility.mEFERTDb.CheckedInInfos.Add(checkedInInfo);
                    EFERTDbUtility.mEFERTDb.SaveChanges();
                }
                catch (Exception ex)
                {
                    EFERTDbUtility.RollBack();

                    MessageBox.Show(this, "Some error occurred in issuing card.\n\n" + EFERTDbUtility.GetInnerExceptionMessage(ex));
                    return;
                }

                this.btnCheckIn.Enabled  = false;
                this.btnCheckOut.Enabled = true;

                this.Close();
            }
            else
            {
                if (!cardExist)
                {
                    MessageBox.Show(this, "Please enter valid card number.");
                }
                else if (isCardNotReturned)
                {
                    MessageBox.Show(this, "Card is already issued to some one else.");
                }
            }
        }
Ejemplo n.º 2
0
        public VisitorForm(VisitorCardHolder visitorCardHolder)
        {
            InitializeComponent();



            this.cbxAreaOfVisit.Items.AddRange(EFERTDbUtility.mVisitingLocations.FindAll(location => location.IsOnPlant == SearchForm.mIsPlant).Select(l => l.Location).ToArray());

            populateCategoryDropDown();


            if (visitorCardHolder != null)
            {
                this.mVisitor     = visitorCardHolder;
                this.mVisitorInfo = this.mVisitor.VisitorInfo;
                this.mCNICNumber  = this.mVisitor.CNICNumber;

                this.cbxVFCategory.SelectedItem = this.mVisitorInfo;

                if (!string.IsNullOrEmpty(this.cbxVFCategory.SelectedItem.ToString().Trim()))
                {
                    this.cbxVFCategory.BackColor = System.Drawing.Color.White;
                }
                else
                {
                    this.cbxVFCategory.BackColor = System.Drawing.Color.Yellow;
                }

                this.tbxCnicNumber.Text             = this.mVisitor.CNICNumber;
                this.cbxGender.SelectedItem         = this.mVisitor.Gender;
                this.tbxFirstName.Text              = this.mVisitor.FirstName;
                this.tbxLastName.Text               = this.mVisitor.LastName;
                this.tbxAddress.Text                = this.mVisitor.Address;
                this.tbxPostCode.Text               = this.mVisitor.PostCode;
                this.tbxCity.Text                   = this.mVisitor.City;
                this.tbxState.Text                  = this.mVisitor.State;
                this.tbxCompanyName.Text            = this.mVisitor.CompanyName;
                this.tbxPhoneNumber.Text            = this.mVisitor.ContactNo;
                this.tbxEmergencyContact.Text       = this.mVisitor.EmergencyContantPerson;
                this.tbxEmergencyContactNumber.Text = this.mVisitor.EmergencyContantPersonNumber;
                this.cbxVisitorType.SelectedItem    = this.mVisitor.VisitorType;

                this.lblSchoolCollege.Visible = false;
                this.cbxSchoolCollege.Visible = false;

                if (this.mVisitor.VisitorInfo == "Education")
                {
                    this.cbxSchoolCollege.SelectedItem = this.mVisitor.SchoolName;
                    this.cbxSchoolCollege.Enabled      = false;
                    this.lblSchoolCollege.Visible      = true;
                    this.cbxSchoolCollege.Visible      = true;

                    this.Text            = "Education Staff Form";
                    this.groupBox1.Text  = "Education Staff Details";
                    this.mSchoolingStaff = true;
                }
                else if (this.mVisitor.VisitorInfo == "House Servant")
                {
                    this.Text           = "House Servant Form";
                    this.groupBox1.Text = "House Servant Details";
                }

                this.mCheckIns         = this.mVisitor.CheckInInfos ?? new List <CheckInAndOutInfo>();
                this.mBlocks           = this.mVisitor.BlockingInfos ?? new List <BlockedPersonInfo>();
                this.pbxSnapShot.Image = EFERTDbUtility.ByteArrayToImage(this.mVisitor.Picture);

                this.btnWebCam.Enabled                  = false;
                this.btnBrowse.Enabled                  = false;
                this.tbxCnicNumber.ReadOnly             = true;
                this.cbxVisitorType.Enabled             = false;
                this.cbxGender.Enabled                  = false;
                this.tbxFirstName.ReadOnly              = true;
                this.tbxLastName.ReadOnly               = true;
                this.tbxAddress.ReadOnly                = true;
                this.tbxPostCode.ReadOnly               = true;
                this.tbxCity.ReadOnly                   = true;
                this.tbxState.ReadOnly                  = true;
                this.tbxCompanyName.ReadOnly            = true;
                this.tbxPhoneNumber.ReadOnly            = true;
                this.tbxEmergencyContact.ReadOnly       = true;
                this.tbxEmergencyContactNumber.ReadOnly = true;

                this.tbxCnicNumber.BackColor             = System.Drawing.SystemColors.ButtonFace;
                this.tbxFirstName.BackColor              = System.Drawing.SystemColors.ButtonFace;
                this.tbxLastName.BackColor               = System.Drawing.SystemColors.ButtonFace;
                this.tbxAddress.BackColor                = System.Drawing.SystemColors.ButtonFace;
                this.tbxPostCode.BackColor               = System.Drawing.SystemColors.ButtonFace;
                this.tbxCity.BackColor                   = System.Drawing.SystemColors.ButtonFace;
                this.tbxState.BackColor                  = System.Drawing.SystemColors.ButtonFace;
                this.tbxCompanyName.BackColor            = System.Drawing.SystemColors.ButtonFace;
                this.tbxPhoneNumber.BackColor            = System.Drawing.SystemColors.ButtonFace;
                this.tbxEmergencyContact.BackColor       = System.Drawing.SystemColors.ButtonFace;
                this.tbxEmergencyContactNumber.BackColor = System.Drawing.SystemColors.ButtonFace;

                this.btnWebCam.Enabled = false;
                this.btnBrowse.Enabled = false;
            }

            this.UpdateStatus(this.mCNICNumber, false);//false passed to check is new or existing visitor
        }
Ejemplo n.º 3
0
        private void btnBlock_Click(object sender, EventArgs e)
        {
            if (!this.tbxCnicNumber.MaskCompleted)
            {
                MessageBox.Show(this, "Please Enter correct CNIC NUMBER.");
                this.tbxCnicNumber.ReadOnly  = false;
                this.tbxCnicNumber.BackColor = System.Drawing.Color.White;
                return;
            }

            bool validtated = EFERTDbUtility.ValidateInputs(new List <TextBox>()
            {
                this.tbxFirstName, this.tbxBlockedBy, this.tbxBlockedReason
            });

            if (!validtated)
            {
                MessageBox.Show(this, "Please fill mandatory fields first.");
                return;
            }

            DialogResult result = MessageBox.Show(this, "Are you sure you want to block this person?", "Confirmation Dialog", MessageBoxButtons.YesNo);

            if (result == DialogResult.No)
            {
                return;
            }

            if (this.tbxBlockedBy.Text == EFERTDbUtility.CONST_SYSTEM_BLOCKED_BY)
            {
                MessageBox.Show(this, "Block by \"System\" can not be used.");
                return;
            }

            if (this.mVisitor == null)
            {
                VisitorCardHolder visitor = new VisitorCardHolder();

                visitor.CNICNumber                   = this.tbxCnicNumber.Text;
                visitor.Gender                       = this.cbxGender.SelectedItem == null ? string.Empty : this.cbxGender.SelectedItem as String;
                visitor.FirstName                    = this.tbxFirstName.Text;
                visitor.LastName                     = this.tbxLastName.Text;
                visitor.Address                      = this.tbxAddress.Text;
                visitor.PostCode                     = this.tbxPostCode.Text;
                visitor.City                         = this.tbxCity.Text;
                visitor.State                        = this.tbxState.Text;
                visitor.CompanyName                  = this.tbxCompanyName.Text;
                visitor.ContactNo                    = this.tbxPhoneNumber.Text;
                visitor.EmergencyContantPerson       = this.tbxEmergencyContact.Text;
                visitor.EmergencyContantPersonNumber = this.tbxEmergencyContactNumber.Text;
                visitor.VisitorType                  = this.cbxVisitorType.SelectedItem == null ? string.Empty : this.cbxVisitorType.SelectedItem as String;
                visitor.IsOnPlant                    = SearchForm.mIsPlant;

                if (this.mSchoolingStaff)
                {
                    visitor.SchoolName = this.cbxSchoolCollege.SelectedItem == null ? string.Empty : this.cbxSchoolCollege.SelectedItem as String;
                }

                visitor.VisitorInfo = this.mVisitorInfo;

                if (this.pbxSnapShot.Image != null)
                {
                    visitor.Picture = EFERTDbUtility.ImageToByteArray(this.pbxSnapShot.Image);
                }

                EFERTDbUtility.mEFERTDb.Visitors.Add(visitor);

                //EFERTDbUtility.mEFERTDb.SaveChanges();

                this.mVisitor = visitor;
            }

            BlockedPersonInfo blockedPerson = this.BlockPerson(this.tbxBlockedBy.Text, this.tbxBlockedReason.Text);

            if (blockedPerson != null)
            {
                this.UpdateLayoutForBlockedPerson(blockedPerson);
            }
        }
Ejemplo n.º 4
0
        private void SearchCardHolderCore(string searchString, bool isNicNumber, bool isTempCard = false, bool isVisitorCard = false)
        {
            EFERTDbUtility.InitializeDatabases(false);

            CCFTCentral       ccftCentral     = EFERTDbUtility.mCCFTCentral;
            Cardholder        cardHolder      = null;
            CardHolderInfo    cardHolderInfo  = null;
            VisitorCardHolder visitor         = null;
            DailyCardHolder   dailyCardHolder = null;
            bool updatedCardExist             = true;

            if (isNicNumber)
            {
                Task <Cardholder> cardHolderByNicTask = new Task <Cardholder>(() =>
                {
                    Cardholder cardHolderByNic = (from pds in ccftCentral.PersonalDataStrings
                                                  where pds != null && pds.PersonalDataFieldID == 5051 && pds.Value != null && pds.Value == searchString
                                                  select pds.Cardholder).FirstOrDefault();

                    return(cardHolderByNic);
                });

                cardHolderByNicTask.Start();

                cardHolderInfo = (from card in EFERTDbUtility.mEFERTDb.CardHolders
                                  where card != null && card.CNICNumber == searchString
                                  select card).FirstOrDefault();

                if (cardHolderInfo == null)
                {
                    cardHolder = cardHolderByNicTask.Result;

                    if (cardHolder == null)
                    {
                        dailyCardHolder = (from daily in EFERTDbUtility.mEFERTDb.DailyCardHolders
                                           where daily != null && daily.CNICNumber == searchString
                                           select daily).FirstOrDefault();


                        if (dailyCardHolder == null)
                        {
                            visitor = (from visit in EFERTDbUtility.mEFERTDb.Visitors
                                       where visit != null && visit.CNICNumber == searchString
                                       select visit).FirstOrDefault();
                        }
                    }
                }
                else
                {
                    if (cardHolderInfo.IsTemp)
                    {
                        cardHolder = cardHolderByNicTask.Result;

                        if (cardHolder == null)
                        {
                            updatedCardExist = false;
                        }
                    }
                }
            }
            else
            {
                Task <Cardholder> cardHolderByCardNumberTask = new Task <Cardholder>(() =>
                {
                    Cardholder cardHolderByCardNumber = (from c in ccftCentral.Cardholders
                                                         where c != null && c.LastName == searchString
                                                         select c).FirstOrDefault();

                    return(cardHolderByCardNumber);
                });

                cardHolderByCardNumberTask.Start();

                cardHolderInfo = (from card in EFERTDbUtility.mEFERTDb.CardHolders
                                  where card != null && card.CardNumber == searchString
                                  select card).FirstOrDefault();

                if (cardHolderInfo == null)
                {
                    CheckInAndOutInfo cardIssued = (from checkIn in EFERTDbUtility.mEFERTDb.CheckedInInfos
                                                    where checkIn != null && checkIn.CheckedIn && checkIn.CardNumber == searchString
                                                    select checkIn).FirstOrDefault();

                    if (cardIssued != null)
                    {
                        dailyCardHolder = cardIssued.DailyCardHolders;

                        if (dailyCardHolder == null)
                        {
                            visitor = cardIssued.Visitors;

                            if (visitor == null)
                            {
                                cardHolderInfo = cardIssued.CardHolderInfos;

                                if (cardHolderInfo != null && cardHolderInfo.IsTemp)
                                {
                                    cardHolder = (from pds in ccftCentral.PersonalDataStrings
                                                  where pds != null && pds.PersonalDataFieldID == 5051 && pds.Value != null && pds.Value == cardIssued.CNICNumber
                                                  select pds.Cardholder).FirstOrDefault();

                                    if (cardHolder != null)
                                    {
                                        updatedCardExist = true;
                                    }
                                    else
                                    {
                                        updatedCardExist = false;
                                    }
                                }
                            }
                        }
                    }


                    if (visitor == null && dailyCardHolder == null && cardHolderInfo == null)
                    {
                        if (!isTempCard && !isVisitorCard)
                        {
                            cardHolder = cardHolderByCardNumberTask.Result;
                        }
                    }

                    if (visitor == null && dailyCardHolder == null && cardHolder == null && cardHolderInfo == null)
                    {
                        if (Form.ActiveForm != null)
                        {
                            bool found = false;

                            if (Form.ActiveForm is VisitorForm)
                            {
                                found = true;
                                (Form.ActiveForm as VisitorForm).SetCardNumber(searchString);
                            }
                            else if (Form.ActiveForm is PermanentChForm)
                            {
                                found = true;
                                (Form.ActiveForm as PermanentChForm).SetCardNumber(searchString);
                            }
                            else if (Form.ActiveForm is ContractorChForm)
                            {
                                found = true;
                                (Form.ActiveForm as ContractorChForm).SetCardNumber(searchString);
                            }

                            if (found)
                            {
                                return;
                            }
                        }


                        if (isTempCard)
                        {
                            MessageBox.Show(this, "This temporary card is not issued to any person.");
                        }
                        else if (isVisitorCard)
                        {
                            MessageBox.Show(this, "This visitor card is not issued to any visitor.");
                        }
                        else
                        {
                            MessageBox.Show(this, "Cardholder with " + searchString + " card number is not found.");
                        }

                        return;
                    }
                }
                //else
                //{
                //    if (!cardHolderInfo.GallagherCardHolder)
                //    {
                //        cardHolder = cardHolderByNicTask.Result;

                //        if (cardHolder == null)
                //        {
                //            updatedCardExist = false;
                //        }
                //    }
                //}
                //bool isDigitOnly = this.IsDigitsOnly(searchString);

                //if (isDigitOnly)
                //{
                //cardHolder = (from c in ccftCentral.Cardholders
                //              where c != null && c.LastName == searchString
                //              select c).FirstOrDefault();
                //}
                //else
                //{
                //    cardHolder = (from c in ccftCentral.Cardholders
                //                  where c != null && c.FirstName == searchString
                //                  select c).FirstOrDefault();
                //}
            }

            if (cardHolder == null && cardHolderInfo == null && visitor == null && dailyCardHolder == null)
            {
                ContractorChForm npchf = new ContractorChForm(searchString);
                npchf.ShowDialog(this);
            }
            else
            {
                if (cardHolderInfo != null && !cardHolderInfo.IsTemp)
                {
                    string cadre = cardHolderInfo.Cadre == null ? "" : cardHolderInfo.Cadre.CadreName;

                    bool isPermanent = cadre.ToLower() == "nmpt" || cadre.ToLower() == "mpt";

                    if (isPermanent)
                    {
                        PermanentChForm permanentForm = new PermanentChForm(cardHolderInfo);
                        permanentForm.Show();
                    }
                    else
                    {
                        ContractorChForm contractorForm = new ContractorChForm(cardHolderInfo);
                        contractorForm.Show();
                    }
                }
                else if (cardHolder != null)
                {
                    Dictionary <int, string> chPds = new Dictionary <int, string>();

                    foreach (PersonalDataString pds in cardHolder.PersonalDataStrings)
                    {
                        if (pds != null)
                        {
                            chPds.Add(pds.PersonalDataFieldID, pds.Value);
                        }
                    }

                    string cadre = (from c in chPds
                                    where c.Key == 12952 && c.Value != null
                                    select c.Value).FirstOrDefault();

                    if (string.IsNullOrEmpty(cadre))
                    {
                        MessageBox.Show(this, "No Cadre found.");
                    }
                    else
                    {
                        bool isPermanent = cadre.ToLower() == "nmpt" || cadre.ToLower() == "mpt";

                        if (isPermanent)
                        {
                            int?   pNumber    = cardHolder.PersonalDataIntegers == null || cardHolder.PersonalDataIntegers.Count == 0 ? null : cardHolder.PersonalDataIntegers.ElementAt(0).Value;
                            string strPNumber = pNumber == null ? "P-Number not found." : pNumber.ToString();

                            DateTime?dateOfBirth   = cardHolder.PersonalDataDates == null || cardHolder.PersonalDataDates.Count == 0 ? null : cardHolder.PersonalDataDates.ElementAt(0).Value;
                            string   strDOB        = dateOfBirth == null ? "Date of birth not found." : dateOfBirth.ToString();
                            string   bloodGroup    = chPds.ContainsKey(5047) && chPds[5047] != null ? chPds[5047] : string.Empty;
                            string   CNICNumber    = chPds.ContainsKey(5051) && chPds[5051] != null ? chPds[5051] : string.Empty;
                            string   crew          = chPds.ContainsKey(12869) && chPds[12869] != null ? chPds[12869] : string.Empty;
                            string   department    = chPds.ContainsKey(5043) && chPds[5043] != null ? chPds[5043] : string.Empty;
                            string   designation   = chPds.ContainsKey(5042) && chPds[5042] != null ? chPds[5042] : string.Empty;
                            string   contactNumber = chPds.ContainsKey(5053) && chPds[5053] != null ? chPds[5053] : string.Empty;
                            string   section       = chPds.ContainsKey(12951) && chPds[12951] != null ? chPds[12951] : string.Empty;
                            int      cardHolderId  = cardHolder.FTItemID;
                            string   companyName   = chPds.ContainsKey(5059) && chPds[5059] != null ? chPds[5059] : string.Empty;

                            CadreInfo cadreInfo = (from c in EFERTDbUtility.mEFERTDb.Cadres
                                                   where c != null && c.CadreName == cadre
                                                   select c).FirstOrDefault() ?? new CadreInfo()
                            {
                                CadreName = cadre
                            };

                            CrewInfo crewInfo = string.IsNullOrEmpty(crew) ? null :
                                                ((from c in EFERTDbUtility.mEFERTDb.Crews
                                                  where c != null && c.CrewName == crew
                                                  select c).FirstOrDefault() ?? new CrewInfo()
                            {
                                CrewName = crew
                            });

                            DepartmentInfo departmentInfo = string.IsNullOrEmpty(department) ? null :
                                                            ((from c in EFERTDbUtility.mEFERTDb.Departments
                                                              where c != null && c.DepartmentName == department
                                                              select c).FirstOrDefault() ?? new DepartmentInfo()
                            {
                                DepartmentName = department
                            });


                            DesignationInfo designationInfo = string.IsNullOrEmpty(designation) ? null :
                                                              ((from c in EFERTDbUtility.mEFERTDb.Designations
                                                                where c != null && c.Designation == designation
                                                                select c).FirstOrDefault() ?? new DesignationInfo()
                            {
                                Designation = designation
                            });

                            SectionInfo sectionInfo = string.IsNullOrEmpty(section) ? null :
                                                      ((from c in EFERTDbUtility.mEFERTDb.Sections
                                                        where c != null && c.SectionName == section
                                                        select c).FirstOrDefault() ?? new SectionInfo()
                            {
                                SectionName = section
                            });

                            CompanyInfo companyInfo = string.IsNullOrEmpty(companyName) ? null :
                                                      ((from c in EFERTDbUtility.mEFERTDb.Companies
                                                        where c != null && c.CompanyName == companyName
                                                        select c).FirstOrDefault() ?? new CompanyInfo()
                            {
                                CompanyName = companyName
                            });

                            if (cardHolderInfo != null && cardHolderInfo.IsTemp)
                            {
                                cardHolderInfo.FTItemId               = cardHolderId;
                                cardHolderInfo.FirstName              = cardHolder.FirstName;
                                cardHolderInfo.LastName               = cardHolder.LastName;
                                cardHolderInfo.BloodGroup             = string.IsNullOrEmpty(bloodGroup) ? null : bloodGroup;
                                cardHolderInfo.CardNumber             = cardHolder.LastName;
                                cardHolderInfo.CNICNumber             = string.IsNullOrEmpty(CNICNumber) ? null : CNICNumber;
                                cardHolderInfo.EmergancyContactNumber = string.IsNullOrEmpty(contactNumber) ? null : contactNumber;
                                cardHolderInfo.PNumber     = pNumber == null ? null : pNumber.ToString();
                                cardHolderInfo.DateOfBirth = dateOfBirth == null ? null : dateOfBirth.ToString();
                                cardHolderInfo.IsTemp      = false;

                                setCarholderInfo(cardHolderInfo, departmentInfo, cadreInfo, crewInfo, designationInfo, sectionInfo, companyInfo);


                                EFERTDbUtility.mEFERTDb.Entry(cardHolderInfo).State = System.Data.Entity.EntityState.Modified;
                            }
                            else
                            {
                                cardHolderInfo = new CardHolderInfo()
                                {
                                    FTItemId               = cardHolderId,
                                    FirstName              = cardHolder.FirstName,
                                    LastName               = cardHolder.LastName,
                                    BloodGroup             = string.IsNullOrEmpty(bloodGroup) ? null : bloodGroup,
                                    CardNumber             = cardHolder.LastName,
                                    CNICNumber             = string.IsNullOrEmpty(CNICNumber) ? null : CNICNumber,
                                    EmergancyContactNumber = string.IsNullOrEmpty(contactNumber) ? null : contactNumber,
                                    PNumber     = pNumber == null ? null : pNumber.ToString(),
                                    DateOfBirth = dateOfBirth == null ? null : dateOfBirth.ToString(),
                                    IsTemp      = false
                                };

                                setCarholderInfo(cardHolderInfo, departmentInfo, cadreInfo, crewInfo, designationInfo, sectionInfo, companyInfo);

                                EFERTDbUtility.mEFERTDb.CardHolders.Add(cardHolderInfo);
                            }

                            EFERTDbUtility.mEFERTDb.SaveChanges();

                            PermanentChForm permanentForm = new PermanentChForm(cardHolderInfo);
                            permanentForm.Show();
                        }
                        else
                        {
                            string companyName            = chPds.ContainsKey(5059) && chPds[5059] != null ? chPds[5059] : string.Empty;
                            string CNICNumber             = chPds.ContainsKey(5051) && chPds[5051] != null ? chPds[5051] : string.Empty;
                            string department             = chPds.ContainsKey(5043) && chPds[5043] != null ? chPds[5043] : string.Empty;
                            string designation            = chPds.ContainsKey(5042) && chPds[5042] != null ? chPds[5042] : string.Empty;
                            string emergancyContactNumber = chPds.ContainsKey(5053) && chPds[5053] != null ? chPds[5053] : string.Empty;
                            string section      = chPds.ContainsKey(12951) && chPds[12951] != null ? chPds[12951] : string.Empty;
                            string wONumber     = chPds.ContainsKey(5344) && chPds[5344] != null ? chPds[5344] : string.Empty;
                            int    cardHolderId = cardHolder.FTItemID;

                            CadreInfo cadreInfo = (from c in EFERTDbUtility.mEFERTDb.Cadres
                                                   where c != null && c.CadreName == cadre
                                                   select c).FirstOrDefault() ?? new CadreInfo()
                            {
                                CadreName = cadre
                            };


                            CrewInfo crewInfo = null;

                            DepartmentInfo departmentInfo = string.IsNullOrEmpty(department) ? null :
                                                            ((from c in EFERTDbUtility.mEFERTDb.Departments
                                                              where c != null && c.DepartmentName == department
                                                              select c).FirstOrDefault() ?? new DepartmentInfo()
                            {
                                DepartmentName = department
                            });


                            DesignationInfo designationInfo = string.IsNullOrEmpty(designation) ? null :
                                                              ((from c in EFERTDbUtility.mEFERTDb.Designations
                                                                where c != null && c.Designation == designation
                                                                select c).FirstOrDefault() ?? new DesignationInfo()
                            {
                                Designation = designation
                            });

                            SectionInfo sectionInfo = string.IsNullOrEmpty(section) ? null :
                                                      ((from c in EFERTDbUtility.mEFERTDb.Sections
                                                        where c != null && c.SectionName == section
                                                        select c).FirstOrDefault() ?? new SectionInfo()
                            {
                                SectionName = section
                            });

                            CompanyInfo companyInfo = string.IsNullOrEmpty(companyName) ? null :
                                                      ((from c in EFERTDbUtility.mEFERTDb.Companies
                                                        where c != null && c.CompanyName == companyName
                                                        select c).FirstOrDefault() ?? new CompanyInfo()
                            {
                                CompanyName = companyName
                            });



                            if (cardHolderInfo != null && cardHolderInfo.IsTemp)
                            {
                                cardHolderInfo.FTItemId               = cardHolderId;
                                cardHolderInfo.FirstName              = cardHolder.FirstName;
                                cardHolderInfo.LastName               = cardHolder.LastName;
                                cardHolderInfo.CardNumber             = cardHolder.LastName;
                                cardHolderInfo.CNICNumber             = string.IsNullOrEmpty(CNICNumber) ? null : CNICNumber;
                                cardHolderInfo.EmergancyContactNumber = string.IsNullOrEmpty(emergancyContactNumber) ? null : emergancyContactNumber;
                                cardHolderInfo.WONumber               = string.IsNullOrEmpty(wONumber) ? null : wONumber;
                                cardHolderInfo.IsTemp = false;

                                setCarholderInfo(cardHolderInfo, departmentInfo, cadreInfo, crewInfo, designationInfo, sectionInfo, companyInfo);

                                EFERTDbUtility.mEFERTDb.Entry(cardHolderInfo).State = System.Data.Entity.EntityState.Modified;
                            }
                            else
                            {
                                cardHolderInfo = new CardHolderInfo()
                                {
                                    FTItemId               = cardHolderId,
                                    FirstName              = cardHolder.FirstName,
                                    LastName               = cardHolder.LastName,
                                    CardNumber             = cardHolder.LastName,
                                    CNICNumber             = string.IsNullOrEmpty(CNICNumber) ? null : CNICNumber,
                                    EmergancyContactNumber = string.IsNullOrEmpty(emergancyContactNumber) ? null : emergancyContactNumber,
                                    WONumber               = string.IsNullOrEmpty(wONumber) ? null : wONumber,
                                    IsTemp = false
                                };

                                setCarholderInfo(cardHolderInfo, departmentInfo, cadreInfo, crewInfo, designationInfo, sectionInfo, companyInfo);

                                EFERTDbUtility.mEFERTDb.CardHolders.Add(cardHolderInfo);
                            }

                            EFERTDbUtility.mEFERTDb.SaveChanges();


                            ContractorChForm contractorForm = new ContractorChForm(cardHolderInfo);
                            contractorForm.Show();
                        }
                    }
                }
                else if (!updatedCardExist)
                {
                    ContractorChForm contractorForm = new ContractorChForm(cardHolderInfo, true);
                    contractorForm.Show();
                }
                else if (visitor != null)
                {
                    VisitorForm vistorForm = new VisitorForm(visitor);

                    vistorForm.Show();
                }
                else if (dailyCardHolder != null)
                {
                    ContractorChForm contractorForm = new ContractorChForm(dailyCardHolder);

                    contractorForm.Show();
                }
            }
        }