public virtual Result Add()
        {
            try
            {
                Result result = null;
                EmployeesQualifications EmployeeQualification = new EmployeesQualifications();
                EmployeeQualification.QualificationDegreeID   = this.QualificationDegree.QualificationDegreeID;
                EmployeeQualification.QualificationID         = this.Qualification.QualificationID;
                EmployeeQualification.GeneralSpecializationID = this.GeneralSpecialization.GeneralSpecializationID;
                EmployeeQualification.ExactSpecializationID   = this.ExactSpecialization.ExactSpecializationID == 0 ? (int?)null : this.ExactSpecialization.ExactSpecializationID;
                EmployeeQualification.EmployeeCodeID          = this.EmployeeCode.EmployeeCodeID;
                EmployeeQualification.UniSchName     = this.UniSchName;
                EmployeeQualification.Department     = this.Department;
                EmployeeQualification.FullGPA        = this.FullGPA;
                EmployeeQualification.GPA            = this.GPA;
                EmployeeQualification.StudyPlace     = this.StudyPlace;
                EmployeeQualification.GraduationDate = this.GraduationDate;
                EmployeeQualification.GraduationYear = this.GraduationYear;
                //EmployeeQualification.Percentage = this.Percentage;
                EmployeeQualification.QualificationTypeID = this.QualificationType.QualificationTypeID == 0 ? (int?)null : this.QualificationType.QualificationTypeID;
                EmployeeQualification.CreatedDate         = DateTime.Now;
                EmployeeQualification.CreatedBy           = this.LoginIdentity.EmployeeCodeID;

                this.EmployeeQualificationID = new EmployeesQualificationsDAL().Insert(EmployeeQualification);
                result            = new Result();
                result.Entity     = this;
                result.EnumType   = typeof(EmployeesQualificationsValidationEnum);
                result.EnumMember = EmployeesQualificationsValidationEnum.Done.ToString();
                return(result);
            }
            catch
            {
                throw;
            }
        }
 internal EmployeesQualificationsBLL MapEmployeeQualification(EmployeesQualifications item)
 {
     return(item != null ?
            new EmployeesQualificationsBLL()
     {
         EmployeeQualificationID = item.EmployeeQualificationID,
         QualificationDegree = item.QualificationDegreeID.HasValue ? new QualificationsDegreesBLL().MapQualificationDegree(item.QualificationsDegrees) : null,
         Qualification = item.QualificationID.HasValue ? new QualificationsBLL().MapQualification(item.Qualifications) : null,
         GeneralSpecialization = item.GeneralSpecializationID.HasValue ? new GeneralSpecializationsBLL().MapGeneralSpecialization(item.GeneralSpecializations) : null,
         ExactSpecialization = item.ExactSpecializationID.HasValue ? new ExactSpecializationsBLL().MapExactSpecialization(item.ExactSpecializations) : null,
         EmployeeCode = item.EmployeeCodeID.HasValue ? new EmployeesCodesBLL().MapEmployeeCode(item.EmployeesCodes) : null,
         UniSchName = item.UniSchName,
         FullGPA = item.FullGPA.HasValue ? item.FullGPA.Value : (decimal?)null,
         Department = item.Department,
         GPA = item.GPA.HasValue ? item.GPA.Value : (decimal?)null,
         StudyPlace = item.StudyPlace,
         GraduationDate = item.GraduationDate,
         GraduationYear = item.GraduationYear,
         Percentage = item.Percentage.HasValue ? item.Percentage.Value : (decimal?)null,
         QualificationType = item.QualificationTypeID.HasValue ? new QualificationsTypesBLL().GetByQualificationTypeID(item.QualificationTypeID.Value) : null,
         //CreatedBy = item.CreatedBy.HasValue ? new EmployeesCodesBLL().MapEmployeeCode(item.EmployeesCodes) : null,
         CreatedBy = item.CreatedBy.HasValue ? new EmployeesCodesBLL().MapEmployeeCode(item.CreatedByNav) : null,
         CreatedDate = item.CreatedDate.Value
     }
         : null);
 }
        private void SeedData(ModelBuilder builder)
        {
            var format  = "yyyy-MM-dd";
            var culture = CultureInfo.InvariantCulture;

            var employesQuali = new EmployeesQualifications[]
            {
                new EmployeesQualifications()
                {
                    EmployeeId      = 1,
                    QualificationId = 1,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 1,
                    QualificationId = 3,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 1,
                    QualificationId = 2,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 2,
                    QualificationId = 1,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 2,
                    QualificationId = 2,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 3,
                    QualificationId = 1,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 4,
                    QualificationId = 2,
                },
                new EmployeesQualifications()
                {
                    EmployeeId      = 5,
                    QualificationId = 2,
                },
            };
            var productList = new Product[]
            {
                new Product()
                {
                    Id                = 1,
                    Name              = "Badania okresowe instalacji",
                    Description       = "Badania okresowe instalacji elektrycznej",
                    Price             = 1000,
                    QualificationType = QualificationType.Inne,
                },
                new Product()
                {
                    Id                = 2,
                    Name              = "Położenie przewodów",
                    Description       = "Położenie przewodów pod wymiane istalacji lektrycznej",
                    Price             = 500,
                    QualificationType = QualificationType.Instalacyjne,
                },
                new Product()
                {
                    Id                = 3,
                    Name              = "Instalacja gniazda trójfazowego",
                    Description       = "Instalacja gniazda trójfazowego w domu jednorodzinnym",
                    Price             = 300,
                    QualificationType = QualificationType.Elektryczne,
                },
                new Product()
                {
                    Id                = 4,
                    Name              = "Wymiana bezpieczników",
                    Description       = "Wymiana bezpieczników w skrzynce rozdzielczej",
                    Price             = 350,
                    QualificationType = QualificationType.Inne
                },
                new Product()
                {
                    Id                = 5,
                    Name              = "Wymiana lamp",
                    Description       = "Wymiana oświetlenia w budynku szkoły podstawowej w Jednorożcu",
                    Price             = 800,
                    QualificationType = QualificationType.Instalacyjne,
                }
            };

            var protocolList = new Protocol[]
            {
                new Protocol()
                {
                    Id            = 1,
                    Name          = "Protkół instalacji",
                    Description   = "Protokół odbioru instalacji lektrycznej",
                    OrderId       = 1,
                    EmployeeId    = 1,
                    DateOfIssue   = DateTime.ParseExact("2019-01-25", format, culture).Date,
                    IsSuccessfull = true,
                    Proclamation  = "Badania zakończone pozytywnie, instalacja spełnia wymogi ",
                    ProtocolType  = ProtocolType.Odbioru,
                    Weather       = "Słoneczna",
                }
            };
            var invocieList = new Invoice[]
            {
                new Invoice()
                {
                    Id                = 1,
                    InvoiceNumber     = "20190125001",
                    Description       = "Faktura za: Zlecenie badań istalacji",
                    AccountNumber     = "2210101111222215202015",
                    PaymentType       = PaymentType.Przelew,
                    DateOfIssue       = DateTime.ParseExact("2019-01-25", format, culture).Date,
                    TaxRate           = 23,
                    PaymentWithoutTax = 1000,
                    PaymentWithTax    = 1230,
                    TaxPayment        = 230,
                    OrderId           = 1,
                    ClientId          = 1,
                },
                new Invoice()
                {
                    Id                = 2,
                    InvoiceNumber     = "20190118001",
                    PaymentType       = PaymentType.Gotówka,
                    DateOfIssue       = DateTime.ParseExact("2019-01-25", format, culture).Date,
                    TaxRate           = 23,
                    PaymentWithoutTax = 500,
                    PaymentWithTax    = 615,
                    TaxPayment        = 115,
                    OrderId           = 2,
                    ClientId          = 2,
                },
            };
            var orderList = new Order[]
            {
                new Order()
                {
                    Id                = 1,
                    Title             = "Zlecenie badań istalacji",
                    Description       = "Zlecenie na badania isntalacji elektrycznej w celu odbioru budynku",
                    OrderStatus       = OrderStatus.Zakończone,
                    OrderPriority     = OrderPriority.Średni,
                    StartDate         = DateTime.ParseExact("2019-01-15", format, culture).Date,
                    PlannedFinishDate = DateTime.ParseExact("2019-01-25", format, culture).Date,
                    AcutalFinishDate  = DateTime.ParseExact("2019-01-25", format, culture).Date,
                    InvoiceId         = 1,
                    ClientId          = 1,
                    ProductId         = 1,
                    EmployeeId        = 1,
                },
                new Order()
                {
                    Id                = 2,
                    Title             = "Zlecenie wymiany przewodów",
                    Description       = "Zlecenie wymiany przewodów pod wymiane instalacji elektrycznej",
                    OrderStatus       = OrderStatus.Zakończone,
                    OrderPriority     = OrderPriority.Średni,
                    StartDate         = DateTime.ParseExact("2019-02-15", format, culture).Date,
                    PlannedFinishDate = DateTime.ParseExact("2019-01-17", format, culture).Date,
                    AcutalFinishDate  = DateTime.ParseExact("2019-01-18", format, culture).Date,
                    InvoiceId         = 2,
                    ClientId          = 2,
                    ProductId         = 2,
                    EmployeeId        = 2,
                },
                new Order()
                {
                    Id                = 3,
                    Title             = "Zlecenie na instalacje gniazda trójfazowego",
                    Description       = "Zlecenie na instalacje gniazda trojfazowego w domu jednorodzinnym",
                    OrderStatus       = OrderStatus.Zaczęte,
                    OrderPriority     = OrderPriority.Niski,
                    StartDate         = DateTime.ParseExact("2019-03-15", format, culture).Date,
                    PlannedFinishDate = DateTime.ParseExact("2019-03-17", format, culture).Date,
                    ClientId          = 3,
                    ProductId         = 3,
                    EmployeeId        = 3,
                },
                new Order()
                {
                    Id            = 4,
                    Title         = "Zlecenie na wymiane bezpieczników",
                    Description   = "Zlecenie na wymiane bezpieczników",
                    OrderStatus   = OrderStatus.Zaplanowane,
                    OrderPriority = OrderPriority.Niski,
                    StartDate     = DateTime.ParseExact("2019-04-18", format, culture).Date,
                    ClientId      = 2,
                    ProductId     = 4,
                    EmployeeId    = 4,
                },
                new Order()
                {
                    Id            = 5,
                    Title         = "Zlecenie na wymiane lamp",
                    Description   = "Zlecenie wymiany lamp w budybku szkoły podstawowej w Jednorożcu",
                    OrderStatus   = OrderStatus.Zaplanowane,
                    OrderPriority = OrderPriority.Wysoki,
                    StartDate     = DateTime.ParseExact("2019-04-20", format, culture).Date,
                    ClientId      = 4,
                    ProductId     = 5,
                    EmployeeId    = 4,
                }
            };
            var qualificationList = new Qualification[]
            {
                new Qualification()
                {
                    Id                = 1,
                    Name              = "SEP G1 D",
                    Description       = "Osoba posiadająca świadectwo D moze nadzorować i organizować prace osób posiadających świadectwo “E”.",
                    QualificationType = QualificationType.Elektryczne,
                },
                new Qualification()
                {
                    Id          = 2,
                    Name        = "SEP G1 E",
                    Description = "Osoba posiadająca świadectwo E może wykonywać prace w zakresie: obsługi, konserwacji, remontu, montażu i kontrolno-pomiarowym.",

                    QualificationType = QualificationType.Instalacyjne,
                },
                new Qualification()
                {
                    Id                = 3,
                    Name              = "UB",
                    Description       = "Uprawnienia budowlane (UB) w specjalności instalacyjnej w zakresie sieci, instalacji i urządzeń elektrycznych i elektroenegetycznych",
                    QualificationType = QualificationType.Inne,
                }
            };


            var employeesList = new Employee[]
            {
                new Employee()
                {
                    Id          = 1,
                    FirstName   = "Andrzej",
                    LastName    = "Duda",
                    City        = "Warszawa",
                    PostalCode  = "00-001",
                    Street      = "Lecha Kaczyńskiego 1",
                    Email       = "*****@*****.**",
                    PhoneNumber = "0700123456",
                    IsOccupied  = true
                },
                new Employee()
                {
                    Id          = 2,
                    FirstName   = "Michał",
                    LastName    = "Mucha",
                    City        = "Olsztyn",
                    PostalCode  = "10-402",
                    Street      = "Żołnierska 5",
                    Email       = "*****@*****.**",
                    PhoneNumber = "500501502",
                    IsOccupied  = false
                },

                new Employee()
                {
                    Id          = 3,
                    FirstName   = "Wojtek",
                    LastName    = "Konrad",
                    City        = "Przasnysz",
                    PostalCode  = "06-300",
                    Street      = "Polna 10",
                    Email       = "*****@*****.**",
                    PhoneNumber = "536457852",
                    IsOccupied  = false
                },

                new Employee()
                {
                    Id          = 4,
                    FirstName   = "Bartosz",
                    LastName    = "Baprodzki",
                    City        = "Warszawa",
                    PostalCode  = "00-002",
                    Street      = "Długa 12",
                    Email       = "*****@*****.**",
                    PhoneNumber = "604414524",
                    IsOccupied  = false
                },
                new Employee()
                {
                    Id          = 5,
                    FirstName   = "Mariusz",
                    LastName    = "Nowak",
                    City        = "Olsztyn",
                    PostalCode  = "10-402",
                    Street      = "Dworcowa 8",
                    Email       = "*****@*****.**",
                    PhoneNumber = "508258852",
                    IsOccupied  = false
                }
            };
            var clientList = new Client[]
            {
                new Client()
                {
                    Id          = 1,
                    Name        = "Henryk Kania",
                    REGON       = "",
                    NIP         = "",
                    PESEL       = "62050604875",
                    PhoneNumber = "500201212",
                    Street      = "Marcepanowa 54",
                    City        = "Przasnysz",
                },
                new Client()
                {
                    Id          = 2,
                    Name        = "Orlen",
                    REGON       = "12345678912345",
                    NIP         = "",
                    PESEL       = "",
                    PhoneNumber = "500201212",
                    Street      = "Marcepanowa 54",
                    City        = "Przasnysz",
                },
                new Client()
                {
                    Id          = 3,
                    Name        = "Marek Kowalski",
                    REGON       = "",
                    NIP         = "6523214529",
                    PESEL       = "75030501963",
                    PhoneNumber = "685245652",
                    Street      = "Leśna 4",
                    City        = "Przasnysz",
                },
                new Client()
                {
                    Id          = 4,
                    Name        = "Urząd Gminy Jednorożec",
                    NIP         = "6254145289",
                    PhoneNumber = "297514858",
                    Street      = "Odrodzenia 15",
                    City        = "Jednorożec",
                }
            };


            builder.Entity <Client>().HasData(clientList);
            builder.Entity <Employee>().HasData(employeesList);
            builder.Entity <Product>().HasData(productList);
            builder.Entity <Protocol>().HasData(protocolList);
            builder.Entity <Qualification>().HasData(qualificationList);
            builder.Entity <EmployeesQualifications>().HasData(employesQuali);
            builder.Entity <Invoice>().HasData(invocieList);
            builder.Entity <Order>().HasData(orderList);
        }
Example #4
0
        public virtual int AddHiringNewEmployee(EmployeesBLL EmployeesBLL, EmployeesCodesBLL EmployeesCodesBLL, EmployeesCareersHistoryBLL EmployeesCareersHistoryBLL, EmployeesQualificationsBLL EmployeesQualificationsBLL, ContractorsBasicSalariesBLL ContractorsBasicSalariesBLL, List <EmployeesAllowancesBLL> EmployeesAllowancesBLLLst)
        {
            try
            {
                EmployeesDAL employeeDal = new EmployeesDAL();
                Employees    employee    = new Employees()
                {
                    EmployeeIDNo              = this.EmployeeIDNo,
                    FirstNameAr               = this.FirstNameAr,
                    MiddleNameAr              = this.MiddleNameAr,
                    GrandFatherNameAr         = this.GrandFatherNameAr,
                    FifthNameAr               = this.FifthNameAr,
                    LastNameAr                = this.LastNameAr,
                    FirstNameEn               = this.FirstNameEn,
                    MiddleNameEn              = this.MiddleNameEn,
                    GrandFatherNameEn         = this.GrandFatherNameEn,
                    FifthNameEn               = this.FifthNameEn,
                    LastNameEn                = this.LastNameEn,
                    EmployeeBirthDate         = (DateTime)this.EmployeeBirthDate.Value.Date,
                    EmployeeBirthPlace        = this.EmployeeBirthPlace,
                    EmployeeMobileNo          = this.EmployeeMobileNo,
                    EmployeePassportNo        = this.EmployeePassportNo,
                    EmployeeEMail             = this.EmployeeEMail,
                    EmployeeIDIssueDate       = this.EmployeeIDIssueDate != null ? (DateTime)this.EmployeeIDIssueDate.Value.Date : (DateTime?)null,
                    EmployeePassportSource    = this.EmployeePassportSource,
                    EmployeePassportIssueDate = this.EmployeePassportIssueDate != null ? (DateTime)this.EmployeePassportIssueDate.Value.Date : (DateTime?)null,
                    EmployeePassportEndDate   = this.EmployeePassportEndDate != null ? (DateTime)this.EmployeePassportEndDate.Value.Date : (DateTime?)null,
                    EmployeeIDExpiryDate      = this.EmployeeIDExpiryDate,
                    EmployeeIDCopyNo          = this.EmployeeIDCopyNo,
                    EmployeeIDIssuePlace      = this.EmployeeIDIssuePlace,
                    DependentCount            = this.DependentCount,
                    MaritalStatusID           = this.MaritalStatus.MaritalStatusID,
                    GenderID      = this.Gender.GenderID,
                    NationalityID = this.Nationality.CountryID,
                    CreatedDate   = DateTime.Now,
                    CreatedBy     = this.LoginIdentity.EmployeeCodeID,
                };
                EmployeesCodes employeesCode = new EmployeesCodes()
                {
                    EmployeeCodeNo = EmployeesCodesBLL.EmployeeCodeNo,
                    EmployeeTypeID = EmployeesCodesBLL.EmployeeType.EmployeeTypeID,
                    IsActive       = true,
                    CreatedDate    = DateTime.Now,
                    CreatedBy      = this.LoginIdentity.EmployeeCodeID
                };

                EmployeesCareersHistory employeeCareerHistory = new EmployeesCareersHistory()
                {
                    CareerHistoryTypeID  = EmployeesCareersHistoryBLL.CareerHistoryType.CareerHistoryTypeID,
                    CareerDegreeID       = EmployeesCareersHistoryBLL.CareerDegree.CareerDegreeID,
                    OrganizationJobID    = EmployeesCareersHistoryBLL.OrganizationJob.OrganizationJobID,
                    JoinDate             = EmployeesCareersHistoryBLL.JoinDate.Date,
                    TransactionStartDate = EmployeesCareersHistoryBLL.JoinDate.Date,
                    IsActive             = true,
                    CreatedBy            = this.LoginIdentity.EmployeeCodeID,
                    CreatedDate          = DateTime.Now
                };
                EmployeesQualifications employeeQualification = new EmployeesQualifications();
                employeeQualification.QualificationDegreeID   = EmployeesQualificationsBLL.QualificationDegree.QualificationDegreeID;
                employeeQualification.QualificationID         = EmployeesQualificationsBLL.Qualification.QualificationID;
                employeeQualification.GeneralSpecializationID = EmployeesQualificationsBLL.GeneralSpecialization.GeneralSpecializationID;
                employeeQualification.ExactSpecializationID   = EmployeesQualificationsBLL.ExactSpecialization.ExactSpecializationID == 0 ? (int?)null : EmployeesQualificationsBLL.ExactSpecialization.ExactSpecializationID;
                employeeQualification.UniSchName          = EmployeesQualificationsBLL.UniSchName;
                employeeQualification.Department          = EmployeesQualificationsBLL.Department;
                employeeQualification.FullGPA             = EmployeesQualificationsBLL.FullGPA;
                employeeQualification.GPA                 = EmployeesQualificationsBLL.GPA;
                employeeQualification.StudyPlace          = EmployeesQualificationsBLL.StudyPlace;
                employeeQualification.GraduationDate      = EmployeesQualificationsBLL.GraduationDate;
                employeeQualification.GraduationYear      = EmployeesQualificationsBLL.GraduationYear;
                employeeQualification.Percentage          = EmployeesQualificationsBLL.Percentage;
                employeeQualification.QualificationTypeID = EmployeesQualificationsBLL.QualificationType.QualificationTypeID == 0 ? (int?)null : EmployeesQualificationsBLL.QualificationType.QualificationTypeID;
                employeeQualification.CreatedDate         = DateTime.Now;
                employeeQualification.CreatedBy           = this.LoginIdentity.EmployeeCodeID;

                ContractorsBasicSalaries contractorBasicSalary = new ContractorsBasicSalaries();
                contractorBasicSalary.BasicSalary        = ContractorsBasicSalariesBLL.BasicSalary;
                contractorBasicSalary.TransfareAllowance = ContractorsBasicSalariesBLL.TransfareAllowance;
                contractorBasicSalary.CreatedDate        = DateTime.Now;
                contractorBasicSalary.CreatedBy          = this.LoginIdentity.EmployeeCodeID;

                List <EmployeesAllowances> employeesAllowancesList = new List <EmployeesAllowances>();
                foreach (var EmployeeAllowanceBLL in EmployeesAllowancesBLLLst)
                {
                    employeesAllowancesList.Add(new EmployeesAllowances()
                    {
                        AllowanceID        = EmployeeAllowanceBLL.Allowance.AllowanceID,
                        AllowanceStartDate = EmployeeAllowanceBLL.AllowanceStartDate,
                        IsActive           = EmployeeAllowanceBLL.IsActive,
                        CreatedBy          = this.LoginIdentity.EmployeeCodeID,
                        CreatedDate        = DateTime.Now
                    });
                }


                employee.EmployeesCodes = new List <EmployeesCodes>();
                employee.EmployeesCodes.Add(employeesCode);
                employeesCode.EmployeesCareersHistory = new List <EmployeesCareersHistory>();
                employeesCode.EmployeesCareersHistory.Add(employeeCareerHistory);
                employeesCode.EmployeesQualifications = new List <EmployeesQualifications>();
                employeesCode.EmployeesQualifications.Add(employeeQualification);
                #region check if the new employee is contractor then add financial advantages to him
                OrganizationsJobsBLL OrganizationsJobsBLL = new OrganizationsJobsBLL().GetByOrganizationJobID(employeeCareerHistory.OrganizationJobID);
                if (OrganizationsJobsBLL.Rank.RankCategory.RankCategoryID == (int)RanksCategoriesEnum.ContractualExpats || OrganizationsJobsBLL.Rank.RankCategory.RankCategoryID == (int)RanksCategoriesEnum.ContractualSaudis)
                {
                    employeesCode.ContractorsBasicSalaries = new List <ContractorsBasicSalaries>();
                    employeesCode.ContractorsBasicSalaries.Add(contractorBasicSalary);
                    employeeCareerHistory.EmployeesAllowances = employeesAllowancesList;
                }
                #endregion
                employeeDal.Insert(employee);
                return(this.EmployeeID);
            }
            catch
            {
                throw;
            }
        }