示例#1
0
        private void btnCheckIn_Click(object sender, EventArgs e)
        {
            string cardNumber = this.tbxCheckInCardNumber.Text;

            if (string.IsNullOrEmpty(cardNumber))
            {
                MessageBox.Show(this, "Card number can not be empty.");
                return;
            }

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

            bool cardExist = false;

            CCFTCentralDb.CCFTCentral ccftCentralDb = new CCFTCentralDb.CCFTCentral();
            cardExist = ccftCentralDb.Cardholders.Any(card => card.LastName == cardNumber);
            CardHolderInfo cardHolderInfo = this.mCardHolderInfo;

            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 (cardHolderInfo == null)
                {
                    MessageBox.Show(this, "Unable to Issue Card. Some error occured in getting cardholder information.");
                    return;
                }

                CheckInAndOutInfo checkedInInfo = new CheckInAndOutInfo();

                checkedInInfo.CheckInToPlant  = SearchForm.mIsPlant;
                checkedInInfo.CheckInToColony = !SearchForm.mIsPlant;
                checkedInInfo.FirstName       = cardHolderInfo.FirstName;
                checkedInInfo.CardHolderInfos = cardHolderInfo;
                checkedInInfo.CNICNumber      = this.mCNICNumber;
                checkedInInfo.CardNumber      = cardNumber;
                checkedInInfo.VehicleNmuber   = this.tbxCheckInVehicleNumber.Text;
                checkedInInfo.DateTimeIn      = Convert.ToDateTime(this.tbxCheckInDateTimeIn.Text);
                checkedInInfo.DateTimeOut     = DateTime.MaxValue;
                checkedInInfo.CheckedIn       = true;

                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.");
                }
            }
        }
示例#2
0
        private void setCarholderInfo(CardHolderInfo cardHolderInfo, DepartmentInfo departmentInfo, CadreInfo cadreInfo, CrewInfo crewInfo, DesignationInfo designationInfo, SectionInfo sectionInfo, CompanyInfo companyInfo)
        {
            if (departmentInfo == null)
            {
                cardHolderInfo.DepartmentId = null;
            }
            else if (departmentInfo.DepartmentId > 0)
            {
                cardHolderInfo.DepartmentId = departmentInfo.DepartmentId;
            }
            else
            {
                cardHolderInfo.Department = departmentInfo;
            }


            if (cadreInfo == null)
            {
                cardHolderInfo.CadreId = null;
            }
            else if (cadreInfo.CadreId > 0)
            {
                cardHolderInfo.CadreId = cadreInfo.CadreId;
            }
            else
            {
                cardHolderInfo.Cadre = cadreInfo;
            }


            if (crewInfo == null)
            {
                cardHolderInfo.CrewId = null;
            }
            else if (crewInfo.CrewId > 0)
            {
                cardHolderInfo.CrewId = crewInfo.CrewId;
            }
            else
            {
                cardHolderInfo.Crew = crewInfo;
            }


            if (designationInfo == null)
            {
                cardHolderInfo.DesignationId = null;
            }
            else if (designationInfo.DesignationId > 0)
            {
                cardHolderInfo.DesignationId = designationInfo.DesignationId;
            }
            else
            {
                cardHolderInfo.Designation = designationInfo;
            }


            if (sectionInfo == null)
            {
                cardHolderInfo.SectionId = null;
            }
            else if (sectionInfo.SectionId > 0)
            {
                cardHolderInfo.SectionId = sectionInfo.SectionId;
            }
            else
            {
                cardHolderInfo.Section = sectionInfo;
            }

            if (companyInfo == null)
            {
                cardHolderInfo.CompanyId = null;
            }
            else if (companyInfo.CompanyId > 0)
            {
                cardHolderInfo.CompanyId = companyInfo.CompanyId;
            }
            else
            {
                cardHolderInfo.Company = companyInfo;
            }
        }
示例#3
0
        public PermanentChForm(CardHolderInfo cardHolderInfo)
        {
            PermamentCardHolder permanentCh = null;

            if (cardHolderInfo != null)
            {
                this.mCardHolderInfo = cardHolderInfo;
                string strPNumber = string.IsNullOrEmpty(cardHolderInfo.PNumber) ? "P-Number not found." : cardHolderInfo.PNumber;

                string strDOB        = string.IsNullOrEmpty(cardHolderInfo.DateOfBirth) ? "Date of birth not found." : cardHolderInfo.DateOfBirth;
                string bloodGroup    = cardHolderInfo.BloodGroup;
                string CNICNumber    = cardHolderInfo.CNICNumber;
                string crew          = cardHolderInfo.Crew == null ? "" : cardHolderInfo.Crew.CrewName;
                string cadre         = cardHolderInfo.Cadre == null ? "" : cardHolderInfo.Cadre.CadreName;
                string department    = cardHolderInfo.Department == null ? "" : cardHolderInfo.Department.DepartmentName;
                string designation   = cardHolderInfo.Designation == null ? "" : cardHolderInfo.Designation.Designation;
                string contactNumber = cardHolderInfo.EmergancyContactNumber;
                string section       = cardHolderInfo.Section == null ? "" : cardHolderInfo.Section.SectionName;

                permanentCh = new PermamentCardHolder()
                {
                    FirstName              = cardHolderInfo.FirstName,
                    LastName               = cardHolderInfo.LastName,
                    BloodGroup             = string.IsNullOrEmpty(bloodGroup) ? "Blood Group Not Found." : bloodGroup,
                    Cadre                  = cadre,
                    CardNumber             = cardHolderInfo.LastName,
                    CNICNumber             = string.IsNullOrEmpty(CNICNumber) ? "CINC Not Found." : CNICNumber,
                    Crew                   = string.IsNullOrEmpty(crew) ? "Crew Not Found." : crew,
                    Department             = string.IsNullOrEmpty(department) ? "Department Not Found." : department,
                    Designation            = string.IsNullOrEmpty(designation) ? "Designation Not Found." : designation,
                    EmergancyContactNumber = string.IsNullOrEmpty(contactNumber) ? "Contact Number Not Found." : contactNumber,
                    Section                = string.IsNullOrEmpty(section) ? "Section Not Found." : section,
                    PNumber                = strPNumber,
                    DateOfBirth            = strDOB,
                    CheckInInfos           = cardHolderInfo.CheckInInfos ?? new List <CheckInAndOutInfo>(),
                    BlockedInfos           = cardHolderInfo.BlockingInfos ?? new List <BlockedPersonInfo>()
                };
            }

            InitializeComponent();

            if (permanentCh != null)
            {
                PersonalDataImageID pdii = (from pdi in EFERTDbUtility.mCCFTCentral.PersonalDataImageIDs
                                            where pdi != null && pdi.CardholderID == cardHolderInfo.FTItemId
                                            select pdi).FirstOrDefault();



                this.tbxCardNumber.Text    = permanentCh.CardNumber;
                this.tbxFirstName.Text     = permanentCh.FirstName;
                this.tbxBloodGroup.Text    = permanentCh.BloodGroup;
                this.tbxCadre.Text         = permanentCh.Cadre;
                this.tbxCrew.Text          = permanentCh.Crew;
                this.tbxDob.Text           = permanentCh.DateOfBirth;
                this.tbxDepartment.Text    = permanentCh.Department;
                this.tbxDesignation.Text   = permanentCh.Designation;
                this.tbxContactNumber.Text = permanentCh.EmergancyContactNumber;
                this.tbxCNICNumber.Text    = permanentCh.CNICNumber;
                this.tbxPNumber.Text       = permanentCh.PNumber;
                this.tbxSection.Text       = permanentCh.Section;
                this.tbxLastName.Text      = permanentCh.LastName;
                //this.tbxCardNumber.Text = permanentCh.CardNumber;
                this.mCheckIns   = permanentCh.CheckInInfos;
                this.mBlocks     = permanentCh.BlockedInfos;
                this.mCNICNumber = permanentCh.CNICNumber;
            }

            this.UpdateStatus(this.mCNICNumber);
        }
示例#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();
                }
            }
        }