Subversion Repositories SmartDukaan

Rev

Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
import com.spice.profitmandi.common.model.ProfitMandiConstants;
import com.spice.profitmandi.dao.entity.auth.AuthUser;
import com.spice.profitmandi.dao.hrms.*;
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
import com.spice.profitmandi.dao.repository.hrms.AddressDetailsFormRepository;
import com.spice.profitmandi.dao.repository.hrms.ContactDetailFormRepository;
import com.spice.profitmandi.dao.repository.hrms.DocumentsDetailsFormRepository;
import com.spice.profitmandi.dao.repository.hrms.InsuranceDetailFormRepository;
import com.spice.profitmandi.dao.repository.hrms.StatutoryDocsAndDateRepository;
import com.spice.profitmandi.dao.repository.hrms.WorkExperienceFormRepository;
import com.spice.profitmandi.dao.repository.hrms.PersonalDetailsformRepository;
import com.spice.profitmandi.dao.repository.hrms.FamilyMemberDetailsFormRepository;
import com.spice.profitmandi.dao.repository.hrms.EmployFormRepository;
import com.spice.profitmandi.dao.repository.hrms.BankDetailsFormRepository;
import com.spice.profitmandi.dao.repository.hrms.BasicDetailsRepository;
import com.spice.profitmandi.dao.repository.hrms.CompensationDetailsFormRepository;
import com.spice.profitmandi.dao.repository.hrms.FamilyMemberDetailsFormRepository;
import com.spice.profitmandi.web.model.LoginDetails;
import com.spice.profitmandi.web.util.CookiesProcessor;
import com.spice.profitmandi.web.util.MVCResponseSender;

@Controller
@Transactional(rollbackFor = Throwable.class)
public class HrmsController {

        private static final Logger LOGGER = LogManager.getLogger(PostOfficeController.class);

        @Autowired
        private StatutoryDocsAndDateRepository statutoryDocsAndDateRepository;

        @Autowired
        private MVCResponseSender mvcResponseSender;

        @Autowired
        private WorkExperienceFormRepository workExperienceFormRepository;
        @Autowired
        private PersonalDetailsformRepository personalDetailsformRepository;
        @Autowired
        private InsuranceDetailFormRepository insuranceDetailFormRepository;

        @Autowired
        private BasicDetailsRepository basicDetailsRepository;
        @Autowired
        private CompensationDetailsFormRepository compensationDetailsFormRepository;

        @Autowired
        private DocumentsDetailsFormRepository documentsDetailsFormRepository;
        @Autowired
        private FamilyMemberDetailsFormRepository familyMemberDetailsFormRepository;
        @Autowired
        private EmployFormRepository employFormRepository;
        @Autowired
        private ContactDetailFormRepository contactDetailFormRepository;
        @Autowired
        private BankDetailsFormRepository bankDetailsFormRepository;

        @Autowired
        private CookiesProcessor cookiesProcessor;

        @Autowired
        private AuthRepository authRepository;

        @Autowired
        private AddressDetailsFormRepository addressDetailsFormRepository;

        @RequestMapping(value = "/getEmployeeDetailsForm", method = RequestMethod.POST)
        public String getHrmsEmployeeDetails(HttpServletRequest request, Model model) throws Exception {

                return "employee-form";

        }

        @RequestMapping(value = "/getHrEmployeeDetailsForm", method = RequestMethod.POST)
        public String getHrmsHrEmployeeDetails(HttpServletRequest request, Model model) throws Exception {
                List<AuthUser> authUsers = authRepository.selectAllActiveUser();
                model.addAttribute("authUsers", authUsers);

                LOGGER.info("authUsers" + authUsers);

                return "hrms.employ_form";

        }

        @RequestMapping(value = "/getEmployeeDetailsAuth", method = RequestMethod.GET)
        public String getEmployeeDetailsForm(HttpServletRequest request, @RequestParam int authId, Model model)
                        throws Exception {

                EmployForm employForm = employFormRepository.selectByAuthId(authId);
                if (employForm != null) {

                        List<AuthUser> authUsers = authRepository.selectAllActiveUser();
                        model.addAttribute("authUsers", authUsers);
                }

                else {
                        throw new ProfitMandiBusinessException(ProfitMandiConstants.ID, authId, "Auth User not Exist");
                }

                return "hr_employee_form";

        }

        @RequestMapping(value = "/getEmployeeDetailSubmit", method = RequestMethod.POST)
        public String getHrEmployeeDetailsFormSubmit(HttpServletRequest request,
                        @RequestBody CreateEmployeeDetailFormHRMS createEmployeeDetailFormHRMS, Model model) throws Exception {

                EmployForm employForm = employFormRepository.selectByAuthId(createEmployeeDetailFormHRMS.getAuthId());

                if (employForm != null) {

                        employForm.setArea(createEmployeeDetailFormHRMS.getArea());
                        employForm.setAuthId(createEmployeeDetailFormHRMS.getAuthId());

                        employForm.setCity(createEmployeeDetailFormHRMS.getCity());
                        employForm.setCreatedTimestamp(createEmployeeDetailFormHRMS.getCreatedTimestamp());
                        employForm.setDateJoining(createEmployeeDetailFormHRMS.getDateJoining());
                        employForm.setDateOfleaving(createEmployeeDetailFormHRMS.getDateOfleaving());
                        employForm.setDayWorked(createEmployeeDetailFormHRMS.getDayWorked());
                        employForm.setDesignation(createEmployeeDetailFormHRMS.getDesignation());

                        employForm.setHowOldSystem(createEmployeeDetailFormHRMS.getHowOldSystem());
                        employForm.setProject(createEmployeeDetailFormHRMS.getProject());
                        employForm.setState(createEmployeeDetailFormHRMS.getState());
                        employForm.setUpdatedTimestamp(createEmployeeDetailFormHRMS.getUpdatedTimestamp());
                        employFormRepository.persist(employForm);

                        BasicDetails basicDetails = basicDetailsRepository.selectByAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        if (basicDetails != null) {
                                basicDetails = new BasicDetails();
                        }

                        basicDetails.setAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        basicDetails.setActiveInactive(createEmployeeDetailFormHRMS.getActiveInactive());
                        basicDetails.setDept(createEmployeeDetailFormHRMS.getDept());
                        basicDetails.setEmploymentStatus(createEmployeeDetailFormHRMS.getEmploymentStatus());
                        basicDetails.setOfficialEmail(createEmployeeDetailFormHRMS.getOfficialEmail());
                        basicDetails.setReportingTo(createEmployeeDetailFormHRMS.getReportingTo());
                        basicDetails.setSdEmpId(createEmployeeDetailFormHRMS.getSdEmpId());
                        basicDetailsRepository.persist(basicDetails);

                        InsuranceDetailForm insuranceDetailForm = insuranceDetailFormRepository
                                        .selectByAuthId(createEmployeeDetailFormHRMS.getAuthId());

                        insuranceDetailForm.setAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        insuranceDetailForm.setMediclaim(createEmployeeDetailFormHRMS.getMediclaim());
                        insuranceDetailForm.setPersoanalAccident(createEmployeeDetailFormHRMS.getPersoanalAccident());
                        insuranceDetailFormRepository.persist(insuranceDetailForm);

                        DocumentsDetailsForm documentsDetailsForm = documentsDetailsFormRepository
                                        .selectByAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        if (documentsDetailsForm != null) {
                                documentsDetailsForm = new DocumentsDetailsForm();
                        }

                        documentsDetailsForm.setAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        documentsDetailsForm.setAadhaar(createEmployeeDetailFormHRMS.getAadhaar());
                        documentsDetailsForm.setApptLetterIssued(createEmployeeDetailFormHRMS.getApptLetterIssued());

                        documentsDetailsForm.setBioData(createEmployeeDetailFormHRMS.getBioData());
                        documentsDetailsForm.setCheckBankDetails(createEmployeeDetailFormHRMS.getCheckBankDetails());
                        documentsDetailsForm.setEduCart(createEmployeeDetailFormHRMS.getEduCart());
                        documentsDetailsForm.setOfferGiven(createEmployeeDetailFormHRMS.getOfferGiven());
                        documentsDetailsForm.setPanCard(createEmployeeDetailFormHRMS.getPanCard());
                        documentsDetailsForm.setSixPhotos(createEmployeeDetailFormHRMS.getSixPhotos());
                        documentsDetailsFormRepository.persist(documentsDetailsForm);

                        CompensationDetailsForm compensationDetailsForm = compensationDetailsFormRepository
                                        .selectByAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        if (compensationDetailsForm != null) {
                                compensationDetailsForm = new CompensationDetailsForm();

                        }

                        compensationDetailsForm.setAuthId(createEmployeeDetailFormHRMS.getAuthId());
                        compensationDetailsForm.setBand(createEmployeeDetailFormHRMS.getBand());
                        compensationDetailsForm.setBasic(createEmployeeDetailFormHRMS.getBasic());
                        compensationDetailsForm.setCarLease(createEmployeeDetailFormHRMS.getCarLease());
                        compensationDetailsForm.setConv(createEmployeeDetailFormHRMS.getConv());
                        compensationDetailsForm.setDriverSalary(createEmployeeDetailFormHRMS.getDriverSalary());
                        compensationDetailsForm.setEsic(createEmployeeDetailFormHRMS.getEsic());
                        compensationDetailsForm.setFctcMonthly(createEmployeeDetailFormHRMS.getFctcMonthly());
                        compensationDetailsForm.setFuelMaintance(createEmployeeDetailFormHRMS.getFuelMaintance());
                        compensationDetailsForm.setGross(createEmployeeDetailFormHRMS.getGross());
                        compensationDetailsForm.setHRA(createEmployeeDetailFormHRMS.getHRA());
                        compensationDetailsForm.setInhand(createEmployeeDetailFormHRMS.getInhand());
                        compensationDetailsForm.setLta(createEmployeeDetailFormHRMS.getLta());
                        compensationDetailsForm.setMedicalRem(createEmployeeDetailFormHRMS.getMedicalRem());
                        compensationDetailsForm.setMediPolicy(createEmployeeDetailFormHRMS.getMediPolicy());
                        compensationDetailsForm.setPf(createEmployeeDetailFormHRMS.getPf());
                        compensationDetailsForm.setSplAll(createEmployeeDetailFormHRMS.getSplAll());
                        compensationDetailsForm.setStatuaryBonus(createEmployeeDetailFormHRMS.getStatuaryBonus());
                        compensationDetailsForm.setTotalCostAnnual(createEmployeeDetailFormHRMS.getTotalCostAnnual());
                        compensationDetailsForm.setVariableCostAnnual(createEmployeeDetailFormHRMS.getVariableCostAnnual());
                        compensationDetailsForm.setVctcMonthly(createEmployeeDetailFormHRMS.getVctcMonthly());
                        compensationDetailsForm.setCarLease(createEmployeeDetailFormHRMS.getCarLease());
                        compensationDetailsFormRepository.persist(compensationDetailsForm);

                        model.addAttribute("response", mvcResponseSender.createResponseString(true));
                } else {
                        throw new ProfitMandiBusinessException(ProfitMandiConstants.ID, createEmployeeDetailFormHRMS.getAuthId(),
                                        "Auth User not Exist");
                }

                return "response";

        }

        @RequestMapping(value = "/getEmployeeDetailsSubmit", method = RequestMethod.POST)
        public String getEmployeeDetailsSubmit(HttpServletRequest request,
                        @RequestBody CreateEmployeeDetailFormHRMS createEmployeeDetailFormHRMS, Model model) throws Exception {

                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
                int id = authUser.getId();

                if (authUser != null) {
                        EmployForm employForm = employFormRepository.selectByAuthId(authUser.getId());
                        if (employForm != null) {
                                employForm = new EmployForm();
                        }
                        employForm.setEmployeeName(createEmployeeDetailFormHRMS.getEmployeeName());
                        employForm.setGender(createEmployeeDetailFormHRMS.getGender());
                        employForm.setAuthId(authUser.getId());
                        employFormRepository.persist(employForm);

                        PersonalDetailsform personalDetailsform = personalDetailsformRepository.selectByAuthId(authUser.getId());
                        if (personalDetailsform != null) {
                                personalDetailsform = new PersonalDetailsform();
                        }

                        personalDetailsform.setAge(createEmployeeDetailFormHRMS.getAge());
                        personalDetailsform.setAniversaryDate(createEmployeeDetailFormHRMS.getAniversaryDate());
                        personalDetailsform.setBloodGroup(createEmployeeDetailFormHRMS.getBloodGroup());
                        personalDetailsform.setDOB(createEmployeeDetailFormHRMS.getDOB());
                        personalDetailsform.setMaritalStatus(createEmployeeDetailFormHRMS.getMaritalStatus());
                        personalDetailsform.setAuthId(authUser.getId());
                        personalDetailsformRepository.persist(personalDetailsform);

                        AddressDetailsForm addressDetailsForm = addressDetailsFormRepository.selectByAuthId(authUser.getId());
                        if (addressDetailsForm != null) {
                                addressDetailsForm = new AddressDetailsForm();
                        }
                        addressDetailsForm.setLocalAddress(createEmployeeDetailFormHRMS.getLocalAddress());
                        addressDetailsForm.setPermanentAdress(createEmployeeDetailFormHRMS.getPermanentAdress());
                        addressDetailsForm.setAuthId(authUser.getId());
                        addressDetailsFormRepository.persist(addressDetailsForm);

                        FamilyMemberDetailsForm familyMemberDetailsForm = familyMemberDetailsFormRepository
                                        .selectByAuthId(authUser.getId());
                        if (familyMemberDetailsForm != null) {
                                familyMemberDetailsForm = new FamilyMemberDetailsForm();
                        }
                        familyMemberDetailsForm.setAuthId(authUser.getId());
                        familyMemberDetailsForm.setBrotherFirst(createEmployeeDetailFormHRMS.getBrotherFirst());
                        familyMemberDetailsForm.setBrotherSecond(createEmployeeDetailFormHRMS.getBrotherSecond());
                        familyMemberDetailsForm.setDateOfBirthGuider(createEmployeeDetailFormHRMS.getDateOfBirthGuider());
                        familyMemberDetailsForm.setDateOfBirthHusband(createEmployeeDetailFormHRMS.getDateOfBirthHusband());
                        familyMemberDetailsForm.setDateofBirthWife(createEmployeeDetailFormHRMS.getDateofBirthWife());
                        familyMemberDetailsForm.setDaughterDOB(createEmployeeDetailFormHRMS.getDoughterDOB());

                        familyMemberDetailsForm.setDaughterName(createEmployeeDetailFormHRMS.getDaughterName());
                        familyMemberDetailsForm.setFatherName(createEmployeeDetailFormHRMS.getFatherName());
                        familyMemberDetailsForm.setHusbandName(createEmployeeDetailFormHRMS.getHusbandName());
                        familyMemberDetailsForm.setMotherName(createEmployeeDetailFormHRMS.getMotherName());
                        familyMemberDetailsForm.setSonDate(createEmployeeDetailFormHRMS.getSonDate());
                        familyMemberDetailsForm.setSonName(createEmployeeDetailFormHRMS.getSonName());
                        familyMemberDetailsForm.setWifeName(createEmployeeDetailFormHRMS.getWifeName());
                        familyMemberDetailsFormRepository.persist(familyMemberDetailsForm);

                        ContactDetailForm contactDetailForm = contactDetailFormRepository.selectByAuthId(authUser.getId());
                        if (contactDetailForm != null) {
                                contactDetailForm = new ContactDetailForm();
                        }
                        contactDetailForm.setAuthId(authUser.getId());
                        contactDetailForm.setEmergencyContactNumber(createEmployeeDetailFormHRMS.getEmergencyContactNumber());
                        contactDetailForm.setLandLineNumberLocal(createEmployeeDetailFormHRMS.getLandLineNumberLocal());
                        contactDetailForm.setLandLineNumberPermanent(createEmployeeDetailFormHRMS.getLandLineNumberPermanent());
                        contactDetailForm.setMobileNumber(createEmployeeDetailFormHRMS.getMobileNumber());
                        contactDetailForm.setMobileNumberFamily(createEmployeeDetailFormHRMS.getMobileNumberFamily());
                        contactDetailForm.setPersonalEmail(createEmployeeDetailFormHRMS.getPersonalEmail());
                        contactDetailFormRepository.persist(contactDetailForm);

                        WorkExperienceForm workExperienceForm = workExperienceFormRepository.selectByAuthId(authUser.getId());

                        if (workExperienceForm != null) {
                                workExperienceForm = new WorkExperienceForm();
                        }
                        workExperienceForm.setAuthId(authUser.getId());
                        workExperienceForm.setEducationQualification(createEmployeeDetailFormHRMS.getEducationQualification());
                        workExperienceForm.setExpFresher(createEmployeeDetailFormHRMS.getExpFresher());
                        workExperienceForm.setExpMonth(createEmployeeDetailFormHRMS.getExpMonth());
                        workExperienceForm.setExpYear(createEmployeeDetailFormHRMS.getExpYear());
                        workExperienceForm.setLastDesignation(createEmployeeDetailFormHRMS.getLastDesignation());
                        workExperienceForm.setOrganisationName(createEmployeeDetailFormHRMS.getOrganisationName());
                        workExperienceForm.setReasonForLeaving(createEmployeeDetailFormHRMS.getReasonForLeaving());
                        workExperienceForm.setTotalExpMonth(createEmployeeDetailFormHRMS.getExpMonth());
                        workExperienceForm.setTotalExpYear(createEmployeeDetailFormHRMS.getExpYear());

                        workExperienceFormRepository.persist(workExperienceForm);

                        InsuranceDetailForm insuranceDetailForm = insuranceDetailFormRepository.selectByAuthId(authUser.getId());
                        if (insuranceDetailForm != null) {
                                insuranceDetailForm = new InsuranceDetailForm();

                        }

                        insuranceDetailForm.setAuthId(authUser.getId());
                        insuranceDetailForm.setNomineeName(createEmployeeDetailFormHRMS.getNomineeName());
                        insuranceDetailForm.setRelation(createEmployeeDetailFormHRMS.getRelation());
                        insuranceDetailFormRepository.persist(insuranceDetailForm);

                        BankDetailsForm bankDetailsForm = bankDetailsFormRepository.selectByAuthId(authUser.getId());
                        if (bankDetailsForm != null) {
                                bankDetailsForm = new BankDetailsForm();
                        }
                        bankDetailsForm.setAuthId(authUser.getId());
                        bankDetailsForm.setBankAcNumber(createEmployeeDetailFormHRMS.getBankAcNumber());
                        bankDetailsForm.setBankName(createEmployeeDetailFormHRMS.getBankName());
                        bankDetailsForm.setEmployeeBankName(createEmployeeDetailFormHRMS.getEmployeeBankName());
                        bankDetailsForm.setEsiNumber(createEmployeeDetailFormHRMS.getEsiNumber());
                        bankDetailsForm.setIfscCode(createEmployeeDetailFormHRMS.getIfscCode());
                        bankDetailsForm.setPersonalCompany(createEmployeeDetailFormHRMS.getPersonalCompany());
                        bankDetailsForm.setPfNumber(createEmployeeDetailFormHRMS.getPfNumber());
                        bankDetailsFormRepository.persist(bankDetailsForm);

                        StatutoryDocsAndDate statutoryDocsAndDate = statutoryDocsAndDateRepository.selectByAuthId(authUser.getId());
                        if (statutoryDocsAndDate != null) {
                                statutoryDocsAndDate = new StatutoryDocsAndDate();
                        }
                        statutoryDocsAndDate.setAadharNumber(createEmployeeDetailFormHRMS.getAadharNumber());
                        statutoryDocsAndDate.setAuthId(authUser.getId());
                        statutoryDocsAndDate.setNoticePeriod(createEmployeeDetailFormHRMS.getNoticePeriod());
                        statutoryDocsAndDate.setPanNumber(createEmployeeDetailFormHRMS.getPanNumber());
                        statutoryDocsAndDate.setUanNumber(createEmployeeDetailFormHRMS.getUanNumber());
                        statutoryDocsAndDateRepository.persist(statutoryDocsAndDate);

                } else {
                        throw new ProfitMandiBusinessException(ProfitMandiConstants.ID, createEmployeeDetailFormHRMS.getAuthId(),
                                        "Auth User not Exist");
                }

                LOGGER.info("createEmployeeDetailFormHRMS" + createEmployeeDetailFormHRMS);

                return "employee-form";

        }

}