Commit a9f96fc2 authored by Vijay Akula's avatar Vijay Akula

Merge branch 'master' of https://github.com/nisum-inc/mytime

Conflicts:
	src/test/java/com/nisum/mytime/controllertest/ProjectControllerTest.java

	Took the changes from ProjectControllerTest.java(Remote) to local and
pushing the changes. 
parents bcb51637 185e1c32
...@@ -48,22 +48,22 @@ public class AttendanceController { ...@@ -48,22 +48,22 @@ public class AttendanceController {
} }
@RequestMapping(value = "generatePdfReport/{id}/{fromDate}/{toDate}", @RequestMapping(value = "generatePdfReport/{id}/{fromDate}/{toDate}",
method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE) method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> generatePdfReport(@PathVariable("id") long id, public ResponseEntity<List> generatePdfReport(@PathVariable("id") long id,
@PathVariable("fromDate") String fromDate, @PathVariable("fromDate") String fromDate,
@PathVariable("toDate") String toDate) throws MyTimeException { @PathVariable("toDate") String toDate) throws MyTimeException {
String result = userService.generatePdfReport(id, fromDate, toDate); List result = userService.generatePdfReport(id, fromDate, toDate);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@RequestMapping(value = "generatePdfReport/{id}/{fromDate}/{toDate}/{fromTime}/{toTime}", @RequestMapping(value = "generatePdfReport/{id}/{fromDate}/{toDate}/{fromTime}/{toTime}",
method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE) method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> generatePdfReport(@PathVariable("id") long id, public ResponseEntity<List> generatePdfReport(@PathVariable("id") long id,
@PathVariable("fromDate") String fromDate, @PathVariable("fromDate") String fromDate,
@PathVariable("toDate") String toDate, @PathVariable("toDate") String toDate,
@PathVariable("fromTime") String fromTime, @PathVariable("fromTime") String fromTime,
@PathVariable("toTime") String toTime) throws MyTimeException, ParseException { @PathVariable("toTime") String toTime) throws MyTimeException, ParseException {
String result = userService.generatePdfReport(id, fromDate, toDate,fromTime,toTime); List result = userService.generatePdfReport(id, fromDate, toDate,fromTime,toTime);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
......
...@@ -38,6 +38,7 @@ public class ProjectController { ...@@ -38,6 +38,7 @@ public class ProjectController {
@Autowired @Autowired
private ProjectRepo projectRepo; private ProjectRepo projectRepo;
@RequestMapping(value = "/employee", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/employee", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<EmployeeRoles> getEmployeeRole(@RequestParam("emailId") String emailId) public ResponseEntity<EmployeeRoles> getEmployeeRole(@RequestParam("emailId") String emailId)
throws MyTimeException { throws MyTimeException {
...@@ -46,22 +47,21 @@ public class ProjectController { ...@@ -46,22 +47,21 @@ public class ProjectController {
} }
@RequestMapping(value = "/addProject", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/addProject", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> addProject(@RequestBody Project projectAdded) throws MyTimeException { public ResponseEntity<?> addProject(@RequestBody Project projectAdded,
@RequestParam(value = "loginEmpId") String loginEmpId) throws MyTimeException {
// checking project duplicateName // checking project duplicateName
int projectNameCount=0; int projectNameCount=0;
if (projectAdded.getAccountId() != null) { if (projectAdded.getAccountId() != null) {
List<Project> projects = projectRepo.findByDomainId(projectAdded.getDomainId()); List<Project> projects = projectRepo.findByDomainId(projectAdded.getDomainId());
for (Project existproject : projects) { for (Project existproject : projects) {
if (projectAdded.getProjectName().equalsIgnoreCase(existproject.getProjectName())) if (projectAdded.getProjectName().equalsIgnoreCase(existproject.getProjectName()))
projectNameCount++; } projectNameCount++;
}
} }
if (projectNameCount>0) if (projectNameCount > MyTimeUtils.INT_ZERO){
{
MyTimeException myTimeException= new MyTimeException("Project name already exist !!! try with new"); MyTimeException myTimeException= new MyTimeException("Project name already exist !!! try with new");
return new ResponseEntity<>(myTimeException, HttpStatus.OK); return new ResponseEntity<>(myTimeException, HttpStatus.OK);
} }else{
else
{
String accountName=""; String accountName="";
String accountId=projectAdded.getAccountId(); String accountId=projectAdded.getAccountId();
// String accountName=projectAdded.getAccount(); // String accountName=projectAdded.getAccount();
...@@ -70,16 +70,18 @@ public class ProjectController { ...@@ -70,16 +70,18 @@ public class ProjectController {
accountName=account.getAccountName(); accountName=account.getAccountName();
int sequenceNumber= account.getAccountProjectSequence(); int sequenceNumber= account.getAccountProjectSequence();
account.setAccountProjectSequence(sequenceNumber+1); account.setAccountProjectSequence(sequenceNumber+1);
//account.setAuditFields(loginEmpId, MyTimeUtils.UPDATE);
accountRepo.save(account); accountRepo.save(account);
String projectId= accountName+String.format("%04d", sequenceNumber+1); String projectId= accountName+String.format("%04d", sequenceNumber+1);
projectAdded.setProjectId(projectId); projectAdded.setProjectId(projectId);
Project project = projectService.addProject(projectAdded); Project project = projectService.addProject(projectAdded, loginEmpId);
return new ResponseEntity<>(project, HttpStatus.OK); return new ResponseEntity<>(project, HttpStatus.OK);
} }
} }
@RequestMapping(value = "/updateProject", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/updateProject", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateEmployeeRole(@RequestBody Project project) throws MyTimeException { public ResponseEntity<?> updateProject(@RequestBody Project project,
@RequestParam(value = "loginEmpId") String loginEmpId) throws MyTimeException {
// checking project duplicateName // checking project duplicateName
int projectNameCount=0; int projectNameCount=0;
if (project.getAccountId() != null) { if (project.getAccountId() != null) {
...@@ -96,7 +98,7 @@ public class ProjectController { ...@@ -96,7 +98,7 @@ public class ProjectController {
MyTimeException myTimeException= new MyTimeException("Project name already exist !!! try with new"); MyTimeException myTimeException= new MyTimeException("Project name already exist !!! try with new");
return new ResponseEntity<>(myTimeException, HttpStatus.OK); return new ResponseEntity<>(myTimeException, HttpStatus.OK);
} }
Project updatedProject = projectService.updateProject(project); Project updatedProject = projectService.updateProject(project, loginEmpId);
return new ResponseEntity<>(updatedProject, HttpStatus.OK); return new ResponseEntity<>(updatedProject, HttpStatus.OK);
} }
......
...@@ -40,9 +40,6 @@ public class ProjectTeamController { ...@@ -40,9 +40,6 @@ public class ProjectTeamController {
@Autowired @Autowired
private EmployeeVisaRepo employeeVisaRepo; private EmployeeVisaRepo employeeVisaRepo;
@Autowired
private ProjectController projectController;
@RequestMapping(value = "/employee", method = RequestMethod.GET, @RequestMapping(value = "/employee", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<EmployeeRoles> getEmployeeRole( public ResponseEntity<EmployeeRoles> getEmployeeRole(
...@@ -55,17 +52,17 @@ public class ProjectTeamController { ...@@ -55,17 +52,17 @@ public class ProjectTeamController {
produces = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Project> addProject( public ResponseEntity<Project> addProject(
@RequestBody Project employeeRoles) throws MyTimeException { @RequestBody Project projectObj, @RequestParam(value="loginEmpId") String loginEmpId) throws MyTimeException {
Project project = projectService.addProject(employeeRoles); Project project = projectService.addProject(projectObj, loginEmpId);
return new ResponseEntity<>(project, HttpStatus.OK); return new ResponseEntity<>(project, HttpStatus.OK);
} }
@RequestMapping(value = "/updateEmployeeRole", method = RequestMethod.POST, @RequestMapping(value = "/updateEmployeeRole", method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<EmployeeRoles> updateEmployeeRole(@RequestBody EmployeeRoles employeeRoles, public ResponseEntity<EmployeeRoles> updateEmployeeRole(@RequestBody EmployeeRoles emp,
@RequestParam(value="empId") String loginEmpId) throws MyTimeException { @RequestParam(value="empId") String loginEmpId) throws MyTimeException {
EmployeeRoles employeeRole = userService.updateEmployeeRole(employeeRoles, loginEmpId); EmployeeRoles employeeRole = userService.updateEmployeeRole(emp, loginEmpId);
return new ResponseEntity<>(employeeRole, HttpStatus.OK); return new ResponseEntity<>(employeeRole, HttpStatus.OK);
} }
...@@ -124,29 +121,20 @@ public class ProjectTeamController { ...@@ -124,29 +121,20 @@ public class ProjectTeamController {
produces = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ProjectTeamMate> addEmployeeToTeam( public ResponseEntity<ProjectTeamMate> addEmployeeToTeam(
@RequestBody ProjectTeamMate teamMate) throws MyTimeException { @RequestBody ProjectTeamMate teamMate, @RequestParam(value="loginEmpId", required = false) String loginEmpId) throws MyTimeException {
teamMate.setActive(true); teamMate.setActive(true);
// teamMate.setStartDate(new Date()); teamMate.setAuditFields(loginEmpId, MyTimeUtils.CREATE);
/*if (teamMate.getRole()!= null && teamMate.getRole().equals("Lead")) { ProjectTeamMate teamMateDB = projectService.addProjectTeamMate(teamMate, loginEmpId);
Project project = new Project();
project.setProjectName(teamMate.getProjectName());
project.setManagerIds(Arrays.asList(teamMate.getEmployeeId()));
project.setAccountId(teamMate.getAccountId());
project.setDomainId(teamMate.getDomainId());
project.setStatus("Active");
projectController.addProject(project);
}*/
ProjectTeamMate teamMateDB = projectService.addProjectTeamMate(teamMate);
return new ResponseEntity<>(teamMateDB, HttpStatus.OK); return new ResponseEntity<>(teamMateDB, HttpStatus.OK);
} }
@RequestMapping(value = "/updateTeammate", method = RequestMethod.POST, @RequestMapping(value = "/updateTeammate", method = RequestMethod.POST,
produces = MediaType.TEXT_PLAIN_VALUE, produces = MediaType.TEXT_PLAIN_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> updateTeammate(@RequestBody ProjectTeamMate projectTeamMate) public ResponseEntity<String> updateTeammate(@RequestBody ProjectTeamMate projectTeamMate, @RequestParam(value = "loginEmpId") String loginEmpId)
throws MyTimeException { throws MyTimeException {
String response = projectService.updateTeammate(projectTeamMate); projectTeamMate.setAuditFields(loginEmpId, MyTimeUtils.UPDATE);
String response = projectService.updateTeammate(projectTeamMate, loginEmpId);
return new ResponseEntity<>(response, HttpStatus.OK); return new ResponseEntity<>(response, HttpStatus.OK);
} }
...@@ -154,10 +142,10 @@ public class ProjectTeamController { ...@@ -154,10 +142,10 @@ public class ProjectTeamController {
produces = MediaType.TEXT_PLAIN_VALUE, produces = MediaType.TEXT_PLAIN_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> deleteTeammate( public ResponseEntity<String> deleteTeammate(
@RequestBody ProjectTeamMate projectTeamMate) @RequestBody ProjectTeamMate projectTeamMate, @RequestParam(value = "loginEmpId") String loginEmpId)
throws MyTimeException { throws MyTimeException {
projectService.deleteTeammate(projectTeamMate.getEmployeeId(), projectService.deleteTeammate(projectTeamMate.getEmployeeId(),
projectTeamMate.getProjectId(), projectTeamMate.getId()); projectTeamMate.getProjectId(), projectTeamMate.getId(), loginEmpId);
return new ResponseEntity<>("Success", HttpStatus.OK); return new ResponseEntity<>("Success", HttpStatus.OK);
} }
...@@ -259,9 +247,9 @@ public class ProjectTeamController { ...@@ -259,9 +247,9 @@ public class ProjectTeamController {
produces = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<BillingDetails> addEmployeeBilling( public ResponseEntity<BillingDetails> addEmployeeBilling(
@RequestBody BillingDetails teamMate) throws MyTimeException { @RequestBody BillingDetails billingDetails, @RequestParam(value = "loginEmpId") String loginEmpId) throws MyTimeException {
BillingDetails billings = projectService BillingDetails billings = projectService
.addEmployeeBillingDetails(teamMate); .addEmployeeBillingDetails(billingDetails, loginEmpId);
return new ResponseEntity<>(billings, HttpStatus.OK); return new ResponseEntity<>(billings, HttpStatus.OK);
} }
...@@ -271,9 +259,9 @@ public class ProjectTeamController { ...@@ -271,9 +259,9 @@ public class ProjectTeamController {
produces = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<BillingDetails> updateEmployeeBilling( public ResponseEntity<BillingDetails> updateEmployeeBilling(
@RequestBody BillingDetails teamMate) throws MyTimeException { @RequestBody BillingDetails billingDetails, @RequestParam(value = "loginEmpId") String loginEmpId) throws MyTimeException {
BillingDetails billings = projectService BillingDetails billings = projectService
.updateEmployeeBilling(teamMate); .updateEmployeeBilling(billingDetails, loginEmpId);
return new ResponseEntity<>(billings, HttpStatus.OK); return new ResponseEntity<>(billings, HttpStatus.OK);
} }
...@@ -301,12 +289,12 @@ public class ProjectTeamController { ...@@ -301,12 +289,12 @@ public class ProjectTeamController {
method = RequestMethod.GET, method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<EmployeeRoles>> getEmployeesHavingVisa( public ResponseEntity<List<EmployeeRoles>> getEmployeesHavingVisa(
@RequestParam("visa") String visa) throws MyTimeException { @RequestParam("visa") String passport) throws MyTimeException {
if (visa != null && !"passport".equalsIgnoreCase(visa)) { List<EmployeeRoles> employees = new ArrayList<>();
if (passport != null && !"passport".equalsIgnoreCase(passport)) {
List<EmployeeVisa> employeeVisas = employeeVisaRepo List<EmployeeVisa> employeeVisas = employeeVisaRepo
.findByVisaName(visa); .findByVisaName(passport);
List<String> employeeIds = null; List<String> employeeIds = null;
List<EmployeeRoles> employeesRoles = new ArrayList<>();
if (employeeVisas != null) { if (employeeVisas != null) {
employeeIds = employeeVisas.stream() employeeIds = employeeVisas.stream()
.map(EmployeeVisa::getEmployeeId) .map(EmployeeVisa::getEmployeeId)
...@@ -314,22 +302,22 @@ public class ProjectTeamController { ...@@ -314,22 +302,22 @@ public class ProjectTeamController {
} }
if (employeeIds != null && !employeeIds.isEmpty()) { if (employeeIds != null && !employeeIds.isEmpty()) {
List<EmployeeRoles> emps = userService.getEmployeeRoles(); List<EmployeeRoles> emps = userService.getEmployeeRoles();
for (EmployeeRoles e : emps) { for (EmployeeRoles emp : emps) {
if (employeeIds.contains(e.getEmployeeId())) { if (employeeIds.contains(emp.getEmployeeId())) {
employeesRoles.add(e); employees.add(emp);
} }
} }
} }
return new ResponseEntity<>(employeesRoles, HttpStatus.OK); return new ResponseEntity<>(employees, HttpStatus.OK);
} else { } else {
List<EmployeeRoles> employeesRoles = new ArrayList<>(); //List<EmployeeRoles> employees = new ArrayList<>();
if (userService.getEmployeeRoles() != null) { if (userService.getEmployeeRoles() != null) {
employeesRoles = userService.getEmployeeRoles().stream() employees = userService.getEmployeeRoles().stream()
.sorted((o1, o2) -> o1.getEmployeeName() .sorted((o1, o2) -> o1.getEmployeeName()
.compareTo(o2.getEmployeeName())) .compareTo(o2.getEmployeeName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
return new ResponseEntity<>(employeesRoles, HttpStatus.OK); return new ResponseEntity<>(employees, HttpStatus.OK);
} }
} }
...@@ -338,10 +326,8 @@ public class ProjectTeamController { ...@@ -338,10 +326,8 @@ public class ProjectTeamController {
produces = MediaType.TEXT_PLAIN_VALUE, produces = MediaType.TEXT_PLAIN_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE) consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> addEmployeeToTeamWithCheck( public ResponseEntity<String> addEmployeeToTeamWithCheck(
@RequestBody ProjectTeamMate teamMate) throws MyTimeException { @RequestBody ProjectTeamMate teamMate, @RequestParam(value = "loginEmpId") String loginEmpId) throws MyTimeException {
String response = projectService.addProjectTeamMateWithCheck(teamMate); String response = projectService.addProjectTeamMateWithCheck(teamMate, loginEmpId);
return new ResponseEntity<>(response, HttpStatus.OK); return new ResponseEntity<>(response, HttpStatus.OK);
} }
} }
\ No newline at end of file
...@@ -286,7 +286,7 @@ public class UserController { ...@@ -286,7 +286,7 @@ public class UserController {
public ResponseEntity<String> exportDataFromFile(@RequestParam(value = "file") MultipartFile file, @RequestParam(value="empId") String loginEmpId) public ResponseEntity<String> exportDataFromFile(@RequestParam(value = "file") MultipartFile file, @RequestParam(value="empId") String loginEmpId)
throws MyTimeException { throws MyTimeException {
log.info("Uploaded file: {} with size: {}", file.getOriginalFilename(), file.getSize()); log.info("Uploaded file: {} with size: {}", file.getOriginalFilename(), file.getSize());
String result = userService.exportDataFromExcelFile(file,loginEmpId); String result = userService.importDataFromExcelFile(file,loginEmpId);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
......
package com.nisum.mytime.model;
import java.util.Date;
import com.nisum.mytime.utils.MyTimeUtils;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class AuditFields {
String createdBy;
String modifiedBy;
Date createdOn;
Date lastModifiedOn;
public void setAuditFields(String loginEmpId, String action) {
Date currentDate = new Date();
if (MyTimeUtils.CREATE.equals(action)) {
this.createdBy = loginEmpId;
this.createdOn = currentDate;
}
this.modifiedBy = loginEmpId;
this.lastModifiedOn = currentDate;
}
}
...@@ -21,7 +21,7 @@ import lombok.ToString; ...@@ -21,7 +21,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@Document(collection = "BillingDetails") @Document(collection = "BillingDetails")
public class BillingDetails implements Serializable { public class BillingDetails extends AuditFields implements Serializable {
public Date getBillingEndDate() { public Date getBillingEndDate() {
return billingEndDate; return billingEndDate;
...@@ -43,7 +43,7 @@ public class BillingDetails implements Serializable { ...@@ -43,7 +43,7 @@ public class BillingDetails implements Serializable {
private Date billingEndDate; private Date billingEndDate;
private String comments; private String comments;
private boolean active; private boolean active;
@DateTimeFormat(pattern = "dd-MM-yyyy") //@DateTimeFormat(pattern = "dd-MM-yyyy")
private Date createDate; // private Date createDate;
} }
package com.nisum.mytime.model; package com.nisum.mytime.model;
import java.util.Date;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -17,15 +15,15 @@ import lombok.ToString; ...@@ -17,15 +15,15 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@Document(collection = "EmpShiftDetails") @Document(collection = "EmpShiftDetails")
public class EmpShiftDetails { public class EmpShiftDetails extends AuditFields {
@Id @Id
private String id; private String id;
private String employeeId; private String employeeId;
private String employeeName; private String employeeName;
private String shift; private String shift;
private Date createDate; //private Date createDate;
private Date updatedDate; //private Date updatedDate;
private boolean active; private boolean active;
} }
...@@ -22,7 +22,7 @@ import lombok.ToString; ...@@ -22,7 +22,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@Document(collection = "Teams") @Document(collection = "Teams")
public class Project implements Serializable { public class Project extends AuditFields implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -30,12 +30,7 @@ public class Project implements Serializable { ...@@ -30,12 +30,7 @@ public class Project implements Serializable {
private ObjectId id; private ObjectId id;
private String projectId; private String projectId;
private String projectName; private String projectName;
/*
* After Ui Integration this below commented code will be removed
*/
//private String managerId;
// private String managerName;
// private String account;
private String domain; private String domain;
private String status; private String status;
private List<String> employeeIds; private List<String> employeeIds;
...@@ -47,5 +42,4 @@ public class Project implements Serializable { ...@@ -47,5 +42,4 @@ public class Project implements Serializable {
@DateTimeFormat(iso = ISO.DATE) @DateTimeFormat(iso = ISO.DATE)
private Date projectEndDate; private Date projectEndDate;
private List<String> deliveryLeadIds; private List<String> deliveryLeadIds;
} }
...@@ -21,7 +21,7 @@ import lombok.ToString; ...@@ -21,7 +21,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@Document(collection = "TeamDetails") @Document(collection = "TeamDetails")
public class ProjectTeamMate implements Serializable { public class ProjectTeamMate extends AuditFields implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -35,8 +35,7 @@ public class ProjectTeamMate implements Serializable { ...@@ -35,8 +35,7 @@ public class ProjectTeamMate implements Serializable {
private String projectId; private String projectId;
private String projectName; private String projectName;
private String account; private String account;
//private String managerId;
//private String managerName;
private String experience; private String experience;
private String designation; private String designation;
private String billableStatus; private String billableStatus;
...@@ -48,8 +47,7 @@ public class ProjectTeamMate implements Serializable { ...@@ -48,8 +47,7 @@ public class ProjectTeamMate implements Serializable {
@DateTimeFormat(iso = ISO.DATE) @DateTimeFormat(iso = ISO.DATE)
private Date newBillingStartDate; private Date newBillingStartDate;
private boolean active; private boolean active;
//private List<String> managerIds;
private String accountId; private String accountId;
private String domainId; private String domainId;
} }
...@@ -12,7 +12,7 @@ public interface AttendanceService { ...@@ -12,7 +12,7 @@ public interface AttendanceService {
List<AttendenceData> getAttendanciesReport(String reportDate,String shift) throws MyTimeException, SQLException; List<AttendenceData> getAttendanciesReport(String reportDate,String shift) throws MyTimeException, SQLException;
String generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime) throws MyTimeException; List generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime) throws MyTimeException;
List<EmpLoginData> employeeLoginReportBasedOnDateTime(long id, String fromDate, List<EmpLoginData> employeeLoginReportBasedOnDateTime(long id, String fromDate,
String toDate,String fromTime,String toTime) throws MyTimeException, ParseException; String toDate,String fromTime,String toTime) throws MyTimeException, ParseException;
......
...@@ -61,8 +61,8 @@ public class AttendanceServiceImpl implements AttendanceService { ...@@ -61,8 +61,8 @@ public class AttendanceServiceImpl implements AttendanceService {
} }
@Override @Override
public String generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime) public List generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime)
throws MyTimeException { throws MyTimeException {
return pdfReportGenerator.generateEmployeeReport(id, fromDate, toDate); return pdfReportGenerator.generateEmployeeReport(id, fromDate, toDate);
} }
......
...@@ -21,7 +21,7 @@ public interface ProjectService { ...@@ -21,7 +21,7 @@ public interface ProjectService {
List<HashMap<Object, Object>> getProjects() throws MyTimeException; List<HashMap<Object, Object>> getProjects() throws MyTimeException;
Project addProject(Project project) throws MyTimeException; Project addProject(Project project, String loginEmpId) throws MyTimeException;
String generatePdfReport(long id, String fromDate, String toDate) String generatePdfReport(long id, String fromDate, String toDate)
throws MyTimeException; throws MyTimeException;
...@@ -30,7 +30,7 @@ public interface ProjectService { ...@@ -30,7 +30,7 @@ public interface ProjectService {
void deleteProject(String projectId); void deleteProject(String projectId);
Project updateProject(Project project)throws MyTimeException; Project updateProject(Project project, String loginEmpId)throws MyTimeException;
EmployeeRoles getEmployeesRoleData(String empId); EmployeeRoles getEmployeesRoleData(String empId);
...@@ -39,12 +39,12 @@ public interface ProjectService { ...@@ -39,12 +39,12 @@ public interface ProjectService {
//MT-72 //MT-72
List<ProjectTeamMate> getProjectInfo(String empId); List<ProjectTeamMate> getProjectInfo(String empId);
public ProjectTeamMate addProjectTeamMate(ProjectTeamMate projectTeamMate) public ProjectTeamMate addProjectTeamMate(ProjectTeamMate projectTeamMate, String loginEmpId)
throws MyTimeException; throws MyTimeException;
String updateTeammate(ProjectTeamMate projectTeamMate) throws MyTimeException; String updateTeammate(ProjectTeamMate projectTeamMate, String loginEmpId) throws MyTimeException;
void deleteTeammate(String empId, String projectId, ObjectId id); void deleteTeammate(String empId, String projectId, ObjectId id, String loginEmpId);
List<Project> getProjects(String managerId) throws MyTimeException; List<Project> getProjects(String managerId) throws MyTimeException;
...@@ -63,9 +63,9 @@ public interface ProjectService { ...@@ -63,9 +63,9 @@ public interface ProjectService {
List<BillingDetails> getEmployeeBillingDetails(String empId, List<BillingDetails> getEmployeeBillingDetails(String empId,
String projectId); String projectId);
BillingDetails addEmployeeBillingDetails(BillingDetails teamMate); BillingDetails addEmployeeBillingDetails(BillingDetails billingDetails, String loginEmpId);
BillingDetails updateEmployeeBilling(BillingDetails teamMate); BillingDetails updateEmployeeBilling(BillingDetails billingDetails, String loginEmpId);
void deleteEmployeeBilling(BillingDetails teamMate); void deleteEmployeeBilling(BillingDetails teamMate);
...@@ -78,14 +78,14 @@ public interface ProjectService { ...@@ -78,14 +78,14 @@ public interface ProjectService {
List<BillingDetails> getEmployeeBillingDetailsAll(String empId); List<BillingDetails> getEmployeeBillingDetailsAll(String empId);
public void updateShiftDetails(ProjectTeamMate existingTeammate); public void updateShiftDetails(ProjectTeamMate existingTeammate, String loginEmpId);
public void addShiftDetails(ProjectTeamMate projectTeamMate); public void addShiftDetails(ProjectTeamMate projectTeamMate, String loginEmpId);
List<ProjectTeamMate> findByAccountAndActiveAndBillableStatus( List<ProjectTeamMate> findByAccountAndActiveAndBillableStatus(
String account, boolean status, String billableStatus); String account, boolean status, String billableStatus);
public String addProjectTeamMateWithCheck(ProjectTeamMate projectTeamMate) public String addProjectTeamMateWithCheck(ProjectTeamMate projectTeamMate, String loginEmpId)
throws MyTimeException; throws MyTimeException;
public List<HashMap<Object, Object>> projectsInfoByEmpId(String empId); public List<HashMap<Object, Object>> projectsInfoByEmpId(String empId);
......
...@@ -3,7 +3,6 @@ package com.nisum.mytime.service; ...@@ -3,7 +3,6 @@ package com.nisum.mytime.service;
import java.text.ParseException; import java.text.ParseException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -33,10 +32,10 @@ public interface UserService { ...@@ -33,10 +32,10 @@ public interface UserService {
EmployeeRoles assigingEmployeeRole(EmployeeRoles employeeRoles, String empId) EmployeeRoles assigingEmployeeRole(EmployeeRoles employeeRoles, String empId)
throws MyTimeException; throws MyTimeException;
String generatePdfReport(long id, String fromDate, String toDate) List generatePdfReport(long id, String fromDate, String toDate)
throws MyTimeException; throws MyTimeException;
String generatePdfReport(long id, String fromDate, String toDate,String fromTime,String toTime) List generatePdfReport(long id, String fromDate, String toDate,String fromTime,String toTime)
throws MyTimeException, ParseException; throws MyTimeException, ParseException;
EmployeeRoles getEmployeesRole(String emailId); EmployeeRoles getEmployeesRole(String emailId);
...@@ -86,5 +85,5 @@ public interface UserService { ...@@ -86,5 +85,5 @@ public interface UserService {
public boolean verifyRole(String empId, String roleName); public boolean verifyRole(String empId, String roleName);
String exportDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException; String importDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException;
} }
...@@ -50,17 +50,15 @@ public class DataValidations { ...@@ -50,17 +50,15 @@ public class DataValidations {
return flag; return flag;
} }
public static boolean validateEmail(String email) { public static boolean isValidEmail(String email) {
boolean flag = false; boolean flag = false;
email = email.trim(); email = email.trim();
if( !MyTimeUtils.EMPTY_STRING.equals(email)) { if( !MyTimeUtils.EMPTY_STRING.equals(email) && email.endsWith("@nisum.com")) {
if(email.trim().endsWith("@nisum.com")) { String regx = "^[\\p{L}]+$";
String regx = "^[\\p{L}]+$"; email = email.replace("@nisum.com", "");
email = email.substring(0, email.indexOf("@")-1); Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email);
Matcher matcher = pattern.matcher(email); flag = matcher.find();
flag = matcher.find();
}
} }
return flag; return flag;
} }
...@@ -122,7 +120,7 @@ public class DataValidations { ...@@ -122,7 +120,7 @@ public class DataValidations {
public static boolean isFutureDate(Date date) { public static boolean isFutureDate(Date date) {
boolean flag = false; boolean flag = false;
if(null != date) { if(null != date) {
flag = new Date().after(date) ; flag = date.after(new Date()) ;
} }
return flag; return flag;
} }
......
...@@ -148,4 +148,7 @@ public class MyTimeUtils { ...@@ -148,4 +148,7 @@ public class MyTimeUtils {
public final static String FULL_TIME ="Full Time"; public final static String FULL_TIME ="Full Time";
public final static String CAMA = ","; public final static String CAMA = ",";
public final static String CREATE ="CREATE";
public final static String UPDATE ="UPDATE";
} }
...@@ -3,6 +3,7 @@ package com.nisum.mytime.utils; ...@@ -3,6 +3,7 @@ package com.nisum.mytime.utils;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -39,23 +40,45 @@ public class PdfReportGenerator { ...@@ -39,23 +40,45 @@ public class PdfReportGenerator {
@Autowired @Autowired
private AttendanceService attendanceService; private AttendanceService attendanceService;
public String generateEmployeeReport(long employeeId, String startDate, String endDate) throws MyTimeException { public List generateEmployeeReport(long employeeId, String startDate, String endDate) throws MyTimeException {
String fileName = employeeId + "_" + startDate + "_" + endDate + ".pdf"; String fileName = employeeId + "_" + startDate + "_" + endDate + ".pdf";
List<EmpLoginData> empLoginDetails = getEmployeeData(employeeId, startDate, endDate); List<EmpLoginData> empLoginDetails = getEmployeeData(employeeId, startDate, endDate);
List filenameData=new ArrayList<>();
if (empLoginDetails.isEmpty()) { if (empLoginDetails.isEmpty()) {
return "No data available"; String message= "No data available";
} else { filenameData.add(message);
return createPDF(fileName, empLoginDetails, employeeId); return filenameData;
} } else {
String file= createPDF(fileName, empLoginDetails, employeeId);
filenameData.add(file);
filenameData.add(empLoginDetails);
return filenameData;
}
} }
public String generateEmployeeReport(long employeeId, String startDate, String endDate,String fromTime,String toTime) throws MyTimeException, ParseException { public String generateeReport(long employeeId, String startDate, String endDate) throws MyTimeException {
String fileName = employeeId + "_" + startDate + "_" + endDate + ".pdf";
List<EmpLoginData> empLoginDetails = getEmployeeData(employeeId, startDate, endDate);
if (empLoginDetails.isEmpty()) {
String message= "No data available";
return message;
} else {
return fileName;
}
}
public List generateEmployeeReport(long employeeId, String startDate, String endDate,String fromTime,String toTime) throws MyTimeException, ParseException {
String fileName = employeeId + "_" + startDate + "_" + endDate + ".pdf"; String fileName = employeeId + "_" + startDate + "_" + endDate + ".pdf";
List<EmpLoginData> empLoginDetails = getEmployeeData(employeeId, startDate, endDate,fromTime,toTime); List<EmpLoginData> empLoginDetails = getEmployeeData(employeeId, startDate, endDate,fromTime,toTime);
List filenameData=new ArrayList<>();
if (empLoginDetails.isEmpty()) { if (empLoginDetails.isEmpty()) {
return "No data available"; String message= "No data available";
filenameData.add(message);
return filenameData;
} else { } else {
return createPDF(fileName, empLoginDetails, employeeId); String file= createPDF(fileName, empLoginDetails, employeeId);
filenameData.add(file);
filenameData.add(empLoginDetails);
return filenameData;
} }
} }
......
...@@ -54,5 +54,10 @@ myApp.controller("headerController",function($scope, myFactory, $compile, $mdDia ...@@ -54,5 +54,10 @@ myApp.controller("headerController",function($scope, myFactory, $compile, $mdDia
function ProgressController($scope) { function ProgressController($scope) {
$scope.progressText = "Please wait!!! Logging out from My Team."; $scope.progressText = "Please wait!!! Logging out from My Team.";
};
// For Left Menu Toggle
$scope.menuIcon=function(){
$('#sidebar-left').toggleClass("small-menu");
} }
}); });
\ No newline at end of file
...@@ -288,8 +288,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -288,8 +288,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
function deleteTeam(record){ function deleteTeam(record){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
urlRequest = appConfig.appUri+ "/projectTeam/deleteTeammate"; urlRequest = appConfig.appUri+ "/projectTeam/deleteTeammate?loginEmpId="+loginEmpId;
var req = { var req = {
method : 'POST', method : 'POST',
url : urlRequest, url : urlRequest,
...@@ -1436,8 +1436,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -1436,8 +1436,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
function addRecord(record, action){ function addRecord(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeamWithCheck"; urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeamWithCheck?loginEmpId="+loginEmpId;
var req = { var req = {
method : 'POST', method : 'POST',
url : urlRequest, url : urlRequest,
...@@ -1494,8 +1494,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -1494,8 +1494,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
} }
function updateTeamRecord(record, action){ function updateTeamRecord(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
urlRequest = appConfig.appUri+ "/projectTeam/updateTeammate"; urlRequest = appConfig.appUri+ "/projectTeam/updateTeammate?loginEmpId="+loginEmpId;
var req = { var req = {
method : 'POST', method : 'POST',
url : urlRequest, url : urlRequest,
...@@ -1529,10 +1529,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -1529,10 +1529,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
function addOrUpdateProject(record, action) { function addOrUpdateProject(record, action) {
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
if (action == "Assign") { if (action == "Assign") {
urlRequest = appConfig.appUri + "project/addProject"; urlRequest = appConfig.appUri + "project/addProject?loginEmpId="+loginEmpId;
} else if (action == "Update") { } else if (action == "Update") {
urlRequest = appConfig.appUri + "project/updateProject"; urlRequest = appConfig.appUri + "project/updateProject?loginEmpId="+loginEmpId;
} }
var req = { var req = {
method: 'POST', method: 'POST',
......
...@@ -386,8 +386,9 @@ myApp.controller("projectMyTeamController",function($scope, myFactory, $mdDialog ...@@ -386,8 +386,9 @@ myApp.controller("projectMyTeamController",function($scope, myFactory, $mdDialog
function addOrUpdateRole(record, action){ function addOrUpdateRole(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
if(action == "Assign"){ if(action == "Assign"){
urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeam"; urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeam?loginEmpId="+loginEmpId;
}else if(action == "Update"){ }else if(action == "Update"){
urlRequest = appConfig.appUri+ "user/updateEmployeeRole"; urlRequest = appConfig.appUri+ "user/updateEmployeeRole";
} }
......
...@@ -24,6 +24,7 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog, ...@@ -24,6 +24,7 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog,
}; };
$scope.employees = []; $scope.employees = [];
$scope.projects = []; $scope.projects = [];
var getCellTemplate = '<p class="col-lg-12"><i class="fa fa-pencil-square-o fa-2x" aria-hidden="true" style="font-size:1.5em;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'Update\')"></i>'+ var getCellTemplate = '<p class="col-lg-12"><i class="fa fa-pencil-square-o fa-2x" aria-hidden="true" style="font-size:1.5em;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'Update\')"></i>'+
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-minus-circle fa-2x" aria-hidden="true" style="font-size:1.5em;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'Delete\')"></i></p>'; '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-minus-circle fa-2x" aria-hidden="true" style="font-size:1.5em;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'Delete\')"></i></p>';
var getCellTemplate1='<div ng-show="COL_FIELD!=\'Employee\' && COL_FIELD!=\'HR\' "><p class="col-lg-12">{{COL_FIELD}} <i class="fa fa-sitemap fa-2x" aria-hidden="true" style="font-size:1.5em;color:blue;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'ViewTeamDetail\')"></i></p></div><div ng-show="COL_FIELD==\'Employee\' || COL_FIELD==\'HR\'"><p class="col-lg-12">{{COL_FIELD}}</p></div>' var getCellTemplate1='<div ng-show="COL_FIELD!=\'Employee\' && COL_FIELD!=\'HR\' "><p class="col-lg-12">{{COL_FIELD}} <i class="fa fa-sitemap fa-2x" aria-hidden="true" style="font-size:1.5em;color:blue;margin-top:3px;cursor:pointer;" ng-click="grid.appScope.getRowData(row,\'ViewTeamDetail\')"></i></p></div><div ng-show="COL_FIELD==\'Employee\' || COL_FIELD==\'HR\'"><p class="col-lg-12">{{COL_FIELD}}</p></div>'
...@@ -256,7 +257,8 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog, ...@@ -256,7 +257,8 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog,
var record = {"id":id,"employeeId":empId,"projectId":projectId}; var record = {"id":id,"employeeId":empId,"projectId":projectId};
var req = { var req = {
method : 'POST', method : 'POST',
url : appConfig.appUri+ "projectTeam/deleteTeammate", var loginEmpId = myFactory.getEmpId();
url : appConfig.appUri+ "projectTeam/deleteTeammate?loginEmpId="+loginEmpId,
headers : { headers : {
"Content-type" : "application/json" "Content-type" : "application/json"
}, },
...@@ -445,10 +447,11 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog, ...@@ -445,10 +447,11 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog,
}; };
function addOrUpdateBilling(record, action){ function addOrUpdateBilling(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
if(action == "Add"){ if(action == "Add"){
urlRequest = appConfig.appUri+ "projectTeam/addEmployeeBilling"; urlRequest = appConfig.appUri+ "projectTeam/addEmployeeBilling?loginEmpId="+loginEmpId;
}else if(action == "Update"){ }else if(action == "Update"){
urlRequest = appConfig.appUri+ "projectTeam/updateEmployeeBilling"; urlRequest = appConfig.appUri+ "projectTeam/updateEmployeeBilling?loginEmpId="+loginEmpId;
} }
else if(action == "Delete"){ else if(action == "Delete"){
...@@ -829,10 +832,11 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog, ...@@ -829,10 +832,11 @@ myApp.controller("projectTeamController",function($scope, myFactory, $mdDialog,
function addOrUpdateRole(record, action){ function addOrUpdateRole(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
if(action == "Add"){ if(action == "Add"){
urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeam"; urlRequest = appConfig.appUri+ "projectTeam/addEmployeeToTeam?loginEmpId="+loginEmpId;
}else if(action == "Update"){ }else if(action == "Update"){
urlRequest = appConfig.appUri+ "projectTeam/updateTeammate"; urlRequest = appConfig.appUri+ "projectTeam/updateTeammate?loginEmpId="+loginEmpId;
} }
var req = { var req = {
method : 'POST', method : 'POST',
......
myApp.controller("reportsController", function($scope, $http, myFactory, $mdDialog, appConfig, $timeout, $compile) { myApp
.directive('excelExport',
function () {
return {
restrict: 'A',
scope: {
fileName: "@",
data: "&exportData"
},
replace: true,
template: '<button class="btn btn-primary btn-ef btn-ef-3 btn-ef-3c mb-10" ng-click="download()">Export to Excel <i class="fa fa-download"></i></button>',
link: function (scope, element) {
scope.download = function() {
function datenum(v, date1904) {
if(date1904) v+=1462;
var epoch = Date.parse(v);
return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
};
function getSheet(data, opts) {
var ws = {};
var range = {s: {c:10000000, r:10000000}, e: {c:0, r:0 }};
for(var R = 0; R != data.length; ++R) {
for(var C = 0; C != data[R].length; ++C) {
if(range.s.r > R) range.s.r = R;
if(range.s.c > C) range.s.c = C;
if(range.e.r < R) range.e.r = R;
if(range.e.c < C) range.e.c = C;
var cell = {v: data[R][C] };
if(cell.v == null) continue;
var cell_ref = XLSX.utils.encode_cell({c:C,r:R});
if(typeof cell.v === 'number') cell.t = 'n';
else if(typeof cell.v === 'boolean') cell.t = 'b';
else if(cell.v instanceof Date) {
cell.t = 'n'; cell.z = XLSX.SSF._table[14];
cell.v = datenum(cell.v);
}
else cell.t = 's';
ws[cell_ref] = cell;
}
}
if(range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
return ws;
};
function Workbook() {
if(!(this instanceof Workbook)) return new Workbook();
this.SheetNames = [];
this.Sheets = {};
}
var wb = new Workbook(), ws = getSheet(scope.data());
/* add worksheet to workbook */
wb.SheetNames.push(scope.fileName);
wb.Sheets[scope.fileName] = ws;
var wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'});
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), scope.fileName+'.xlsx');
};
}
};
}
)
.controller("reportsController", function($scope, $http, myFactory, $mdDialog, appConfig, $timeout, $compile) {
$scope.records = []; $scope.records = [];
$scope.searchId=""; $scope.searchId="";
// Date picker related code // Date picker related code
...@@ -7,6 +83,7 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial ...@@ -7,6 +83,7 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial
$scope.fromDate = today; $scope.fromDate = today;
$scope.toDate = today; $scope.toDate = today;
$scope.reportMsg ="Please generate a report for preview."; $scope.reportMsg ="Please generate a report for preview.";
$scope.isDataAvailable = false ;
$scope.validateDates = function(dateValue, from) { $scope.validateDates = function(dateValue, from) {
if(from == "FromDate"){ if(from == "FromDate"){
var toDat = $scope.toDate; var toDat = $scope.toDate;
...@@ -225,10 +302,14 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial ...@@ -225,10 +302,14 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial
method : "GET", method : "GET",
url : url url : url
}).then(function mySuccess(response) { }).then(function mySuccess(response) {
if(response.data == "No data available"){ if(response.data[0] == "No data available"){
$scope.pdfUrl = response.data; $scope.pdfUrl = response.data;
$scope.isDataAvailable = false ;
}else{ }else{
$scope.pdfUrl = "reports/"+response.data; $scope.pdfUrl = "reports/"+response.data[0];
$scope.jsonToExport = response.data[1];
excelDataFormation();
$scope.isDataAvailable = true ;
} }
}, function myError(response) { }, function myError(response) {
showAlert("Something went wrong while generating report!!!"); showAlert("Something went wrong while generating report!!!");
...@@ -236,6 +317,38 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial ...@@ -236,6 +317,38 @@ myApp.controller("reportsController", function($scope, $http, myFactory, $mdDial
}); });
} }
// function generateExcelReport(id,data) {
// debugger;
//
// var defaultURL= appConfig.appUri + "attendance/employeeLoginReportBasedOnDateTime?empId=" + id + "&fromDate=" + data.fromDate + "&toDate=" + data.toDate + "&fromTime=" + data.fromTime + "&toTime=" + data.toTime
// $http({
// method : "GET",
// url : defaultURL
// }).then(function mySuccess(response) {
// if(response.data){
// console.log(response.data);
// $scope.jsonToExport = response.data;
// excelDataFormation();
// }
// }, function myError(response) {
// showAlert("Something went wrong while generating report!!!");
// $scope.pdfUrl = "";
// });
// }
function excelDataFormation(){
// Prepare Excel data:
$scope.fileName = "report";
$scope.exportData = [];
// Headers:
$scope.exportData.push([ "ID", "Name", "Date", "Login Time", "Logout Time", "Total Hours"]);
// Data:
angular.forEach($scope.jsonToExport, function(value, key) {
$scope.exportData.push([value.employeeId, value.employeeName,value.dateOfLogin, value.firstLogin,value.lastLogout,value.totalLoginTime]);
});
}
function getFormattedDate(date){ function getFormattedDate(date){
var day = date.getDate(); var day = date.getDate();
var month = date.getMonth() + 1; var month = date.getMonth() + 1;
......
...@@ -533,10 +533,11 @@ myApp.controller("viewProjectController",function($scope, myFactory,exportUiGrid ...@@ -533,10 +533,11 @@ myApp.controller("viewProjectController",function($scope, myFactory,exportUiGrid
function addOrUpdateProject(record, action){ function addOrUpdateProject(record, action){
var urlRequest = ""; var urlRequest = "";
var loginEmpId = myFactory.getEmpId();
if(action == "Assign"){ if(action == "Assign"){
urlRequest = appConfig.appUri+ "project/addProject"; urlRequest = appConfig.appUri+ "project/addProject?loginEmpId="+loginEmpId;
}else if(action == "Update"){ }else if(action == "Update"){
urlRequest = appConfig.appUri+ "project/updateProject"; urlRequest = appConfig.appUri+ "project/updateProject?loginEmpId="+loginEmpId;
} }
var req = { var req = {
method : 'POST', method : 'POST',
......
This diff is collapsed.
...@@ -235,4 +235,7 @@ md-select { ...@@ -235,4 +235,7 @@ md-select {
} }
.my-css-class{ .my-css-class{
margin-left: 20px; margin-left: 20px;
} }
\ No newline at end of file .align-button{
margin-left: -2%;
}
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="Container" ng-controller="assignAccountsController"
id="Container" ng-controller="assignAccountsController"
ng-init="getAccountDetails()"> ng-init="getAccountDetails()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Manage Accounts
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage Accounts</p> <span class="right">
<p align="right" class="col-xs-1" <md-button class="md-raised md-primary add-btn"
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> ng-click="addAccount('Add', parentData)"> <i
<i class="fa fa-refresh" aria-hidden="true" class="fa fa-plus-circle fa-1x"></i> Add Account</md-button>
ng-click="refreshPage()"></i> <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
</p> </span>
</h1>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12">
<div class="col-lg-8">
<md-button class="md-raised md-primary"
style="width:142px;background: cadetblue; margin: 2% 0% 0% 124%;"
ng-click="addAccount('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add
Account</md-button>
</div>
</div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row col-lg-12">
<div class="row col-lg-12" style="margin-left: 0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width:99%;height:370px;margin-left:0px;"> class="myGrid">
<div class="watermark" ng-show="!gridOptions.data.length">No <div class="watermark" ng-show="!gridOptions.data.length">No
data available</div> data available</div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="attendanceReportController" ng-init="getEmployeePresent('onload')">
id="popupContainer" ng-controller="attendanceReportController" ng-init="getEmployeePresent('onload')">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Attendance Details
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Attendance Details</p> <span class="right">
<p align="right" class="col-xs-1" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top:8px;cursor:pointer;"><i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i></p> </span>
</h1>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<br /> <br />
<div class="text-center"> <div class="">
<div class="row col-lg-12"> <div class="row">
<div class="col-lg-4 col-xs-12"> <div class="col-lg-2 col-xs-6">
<p> <p>
<b>Search Date:</b> <b>Search Date:</b>
<md-datepicker ng-model="reportDate" md-placeholder="Enter date"
md-max-date="maxDate"
onkeydown="return false" ng-change="setSearchDate(reportDate)"></md-datepicker>
</p> </p>
</div> </div>
<div class="col-lg-2 col-xs-12"> <div class="col-lg-3 col-xs-6">
<p style="margin-top: 15px;"><b>Select Shift:</b></p> <p>
<md-datepicker ng-model="reportDate" md-placeholder="Enter date" md-max-date="maxDate"
onkeydown="return false" ng-change="setSearchDate(reportDate)"></md-datepicker>
</p>
</div> </div>
<div class="col-lg-4 col-xs-12"> <div class="col-lg-2 col-xs-4">
<md-select ng-model="shiftValue" md-selected-text="getSelectedShift()" id="shiftValue" style="margin:0px;"> <p><b>Select Shift:</b></p>
<md-optgroup label="shifts">
<md-option ng-value="shiftValue" ng-repeat="shiftValue in shifts">{{shiftValue}}</md-option>
</md-optgroup>
</md-select>
</div> </div>
<div class="col-lg-2 col-xs-4">
<div class="col-lg-2 col-xs-12" style="cursor: pointer;" align="right"> <md-select ng-model="shiftValue" md-selected-text="getSelectedShift()" id="shiftValue" style="margin:0px;">
<md-button class="md-raised md-primary" <md-optgroup label="shifts">
style="width:100px;background: cadetblue;" ng-click="getEmployeePresent('onclick')"> <md-option ng-value="shiftValue" ng-repeat="shiftValue in shifts">{{shiftValue}}</md-option>
<i class="fa fa-search fa-2x" </md-optgroup>
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Search</md-button> </md-select>
</div> </div>
</div> <div class="col-lg-2 col-xs-4">
<div class="row col-lg-12" style="height: 15px;"></div> <md-button class="md-raised md-primary" ng-click="getEmployeePresent('onclick')">
<div class="row col-lg-12"> <i class="fa fa-search fa-1x"></i> Search</md-button>
<div class="col-lg-8">
<div class="col-lg-2 col-xs-12">
</div> </div>
</div>
<div class=" col-lg-offset-2 col-lg-3 col-xs-12"> <div class="row">
<div class="">
<div class="col-lg-2 col-xs-4">
<p> <p>
<b>Total Present:</b> {{totalPresent}} <b>Total Present:</b> {{totalPresent}}
</p> </p>
</div> </div>
<div class="col-lg-3 col-xs-12"> <div class="col-lg-3 col-xs-4">
<p> <p>
<b>Total Absent:</b> {{totalAbsent}} <b>Total Absent:</b> {{totalAbsent}}
</p> </p>
</div> </div>
</div> </div>
<div class=" cocol-lg-4 "> <div class="col-lg-4 ">
<p><input type="radio" name="attend" ng-model="attendenceType" value="both" ng-click="getAttendanceReport(attendenceType)"> All <p><input type="radio" name="attend" ng-model="attendenceType" value="both" ng-click="getAttendanceReport(attendenceType)"> All
<input type="radio" name="attend" ng-model="attendenceType" value="present" ng-click="getAttendanceReport(attendenceType)"> Present <input type="radio" name="attend" ng-model="attendenceType" value="present" ng-click="getAttendanceReport(attendenceType)"> Present
<input type="radio" name="attend" ng-model="attendenceType" value="absent" ng-click="getAttendanceReport(attendenceType)"> Absence <input type="radio" name="attend" ng-model="attendenceType" value="absent" ng-click="getAttendanceReport(attendenceType)"> Absence
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="dashboardController"
id="popupContainer" ng-controller="dashboardController"
ng-init="getEmployeesDashBoardData()"> ng-init="getEmployeesDashBoardData()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Dashboard
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Dashboard</p> <span class="right">
<p align="right" class="col-xs-1" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </span>
<i class="fa fa-refresh" aria-hidden="true" </h1>
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<br />
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12"> <div class="row col-lg-12">
<div class="col-lg-4" style="float: left;padding-left:20px;"> <div class="col-lg-4" style="float: left;padding-left:20px;">
<!-- <md-button class="md-raised md-primary" <!-- <md-button class="md-raised md-primary"
...@@ -45,17 +38,14 @@ ...@@ -45,17 +38,14 @@
Project</md-button> --> Project</md-button> -->
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row">
<div class="col-lg-12">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-selection ui-grid-exporter
class="myGrid">
<div class="row col-lg-12" style="margin-left: 0px;"> <div class="watermark" ng-show="!gridOptions.data.length">No
data available</div>
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-selection ui-grid-exporter </div>
class="myGrid" style="width:99%;height:370px;margin-left:0px;"> </div>
<div class="watermark" ng-show="!gridOptions.data.length">No
data available</div>
</div> </div>
</div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="domainController"
id="popupContainer" ng-controller="domainController"
ng-init="getDomains();getEmployeesToTeam();"> ng-init="getDomains();getEmployeesToTeam();">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Manage Domains
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage <span class="right">
Domains</p> <md-button class="add-btn md-raised md-primary"
<p align="right" class="col-xs-1" ng-click="addDomain('Add', parentData)"> <i
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> class="fa fa-plus-circle fa-1x"></i>Add
<i class="fa fa-refresh" aria-hidden="true" Domain </md-button>
ng-click="refreshPage()"></i> <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
</p> </span>
</div> </h1>
</div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12">
<div class="col-lg-8">
<md-button class="md-raised md-primary"
style="width:142px;background: cadetblue; margin: 0% 0% 0% 124%;"
ng-click="addDomain('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add
Domain </md-button>
</div>
</div>
<div class="row col-lg-12" style="margin-left: 0px; margin-top: 10px"> <div class="row col-lg-12" style="margin-left: 0px; margin-top: 10px">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width: 99%; height: 370px; margin-left: 0px;"> class="myGrid" style="width: 99%; height: 370px; margin-left: 0px;">
......
<div class="md-padding" id="popupContainer" ng-controller="employeeController"
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;"
id="popupContainer" ng-controller="employeeController"
ng-init="getEmployeeData()"> ng-init="getEmployeeData()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">My Login Details
style="vertical-align: middle; font-weight: bold; font-size: 30px;">My <a class="right">
Login Details</p> <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i></a>
<p align="right" class="col-xs-1" </h1>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;">
<i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<br />
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group" style="padding-left:10px;"> <div class="form-group">
<div class="form-inline col-lg-12 col-sm-offset-1"> <div class="form-inline col-lg-12">
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-4">
<label class="control-label" for="empId">Employee ID: </label> <label class="control-label" for="empId">Employee ID: </label>
{{empId}} {{empId}}
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-5">
<label class="control-label" for="empName">Employee Name: </label> <label class="control-label" for="empName">Employee Name: </label>
{{empName}} {{empName}}
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-4">
<label class="control-label" for="email">Email: </label> <label class="control-label" for="email">Email: </label>
{{empEmailId}} {{empEmailId}}
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" style="padding-left:10px;"> <div class="form-group">
<div class="form-inline col-lg-12 col-sm-offset-1"> <div class="form-inline col-lg-12">
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-5">
<label class="control-label" for="fromDate">From Date: <label class="control-label" for="fromDate">From Date:
<md-datepicker ng-model="fromDate" md-placeholder="Enter date" <md-datepicker ng-model="fromDate" md-placeholder="Enter date"
md-max-date="maxDate" onkeydown="return false" md-max-date="maxDate" onkeydown="return false"
ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label> ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-5">
<label class="control-label" for="toDate">To Date: <label class="control-label" for="toDate">To Date:
<md-datepicker ng-model="toDate" md-placeholder="Enter date" <md-datepicker ng-model="toDate" md-placeholder="Enter date"
md-max-date="maxDate" onkeydown="return false" md-max-date="maxDate" onkeydown="return false"
ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label> ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 col-sm-2">
<label for="submitBtn"> <md-button <label for="submitBtn"> <md-button
class="md-raised md-primary" class="md-raised md-primary"
style="width:100px;background: cadetblue;"
ng-click="getEmployeeData()"> <i ng-click="getEmployeeData()"> <i
class="fa fa-search fa-2x" class="fa fa-search fa-2x"></i> Search</md-button></label>
style="margin-top: 5px; font-size: 1.5em;"></i> Search</md-button></label>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" style="padding-left:10px;"> <div class="form-group">
<div class="form-inline col-lg-12 col-sm-offset-1"> <div class="form-inline col-lg-12 col-sm-12">
<label class="control-label" for="avgHrs"> <label class="control-label" for="avgHrs">
Average Login hours:&nbsp;&nbsp; </label>{{avgLoginHrs}} Average Login hours:&nbsp;&nbsp; </label>{{avgLoginHrs}}
</div> </div>
...@@ -68,7 +59,7 @@ ...@@ -68,7 +59,7 @@
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12"> <div class="form-inline col-lg-12">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width:99%; height:300px;"> class="myGrid">
<div class="watermark" ng-show="!gridOptions.data.length">No <div class="watermark" ng-show="!gridOptions.data.length">No
data available</div> data available</div>
</div> </div>
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="employeesController"
id="popupContainer" ng-controller="employeesController"
ng-init="setPageDefaults();getEmployeeDetailsForAutocomplete();"> ng-init="setPageDefaults();getEmployeeDetailsForAutocomplete();">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Employees Login Details
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Employees <span class="right">
Login Details</p> <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
<p align="right" class="col-xs-1" </span>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </h1>
<i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
...@@ -19,44 +15,39 @@ ...@@ -19,44 +15,39 @@
<br /> <br />
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12" style="margin-left: 3%;"> <div class="form-inline">
<div class="form-group col-lg-2 col-md-4 col-sm-6 col-xs-12" <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
style="width: 23%;">
<input type="text" ng-model="searchId" id="searchId" <input type="text" ng-model="searchId" id="searchId"
placeholder="Employee ID/Name/Email ID" class="form-control" min-length="5" ng-keyup="autoComplete(searchId);" ng-blur="hideUlComponent()"/> placeholder="Employee ID/Name/Email ID" class="form-control" min-length="5" ng-keyup="autoComplete(searchId);" ng-blur="hideUlComponent()"/>
<ul class="list-group autoComplete-dropdown" ng-model="hidethis" ng-hide="hidethis"> <ul class="list-group autoComplete-dropdown" ng-model="hidethis" ng-hide="hidethis">
<li class="list-group-item" ng-repeat="employeeData in filterEmployees" ng-click="fillTextbox(employeeData);">{{employeeData}}</li> <li class="list-group-item" ng-repeat="employeeData in filterEmployees" ng-click="fillTextbox(employeeData);">{{employeeData}}</li>
</ul> </ul>
</div> </div>
<div class="form-group col-lg-1"></div> <div class="col-lg-3 col-md-3">
<div class="form-group col-lg-4">
<label class="" for="fromDate">From Date: <md-datepicker <label class="" for="fromDate">From Date: <md-datepicker
ng-model="fromDate" md-placeholder="Enter date" ng-model="fromDate" md-placeholder="Enter date"
md-min-date="minDate" md-max-date="maxDate" md-min-date="minDate" md-max-date="maxDate"
onkeydown="return false" onkeydown="return false"
ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label> ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-4"> <div class="col-lg-3 col-md-3">
<label class="" for="toDate">To Date: <md-datepicker <label class="" for="toDate">To Date: <md-datepicker
ng-model="toDate" md-placeholder="Enter date" ng-model="toDate" md-placeholder="Enter date"
md-min-date="minDate" md-max-date="maxDate" md-min-date="minDate" md-max-date="maxDate"
onkeydown="return false" onkeydown="return false"
ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label> ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-1"> <div class="col-lg-2">
<label class="" for="submitBtn"><md-button <label class="" for="submitBtn"><md-button
class="md-raised md-primary" class="md-raised md-primary"
style="width:100px;background: cadetblue;"
ng-click="getEmployeeData('click');"> <i ng-click="getEmployeeData('click');"> <i
class="fa fa-search fa-2x" class="fa fa-search fa-1x"></i>
style="margin-top: 5px; font-size: 1.5em; float: left"></i>
Search</md-button></label> Search</md-button></label>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12" ng-show="isVisible" <div class="form-inline col-lg-12" ng-show="isVisible">
style="margin-left: 3%;">
<label class="control-label" for="avgHrs"> Average Login <label class="control-label" for="avgHrs"> Average Login
hours:&nbsp;&nbsp; </label>{{avgLoginHrs}} hours:&nbsp;&nbsp; </label>{{avgLoginHrs}}
</div> </div>
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="exportDataController">
id="popupContainer" ng-controller="exportDataController">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Import Employee Data
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Import Employee Data</p> <span class="right">
<p align="right" class="col-xs-1" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </span>
<i class="fa fa-refresh" aria-hidden="true" </h1>
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group" style="padding-left: 10px;"> <div class="form-group">
<div class="form-inline col-lg-12" <div class="form-inline col-lg-12"
style="margin-left: 22%; margin-top: 5%;"> style="margin-left: 22%; margin-top: 5%;">
<div class="form-group col-lg-4"> <div class="form-group col-lg-4">
......
<footer> <footer>
<nav class="navbar navbar-fixed-bottom navbar-inverse" <nav class="navbar navbar-fixed-bottom navbar-inverse"
role="navigation"> role="navigation">
<div class="row col-lg-12"> <div class="footer">
<div class="col-lg-11 col-xs-8 text-center"> <div class="col-lg-1 col-xs-3 copyrights">
<p style="padding-top:15px;">&copy Nisum <p>&copy Nisum Consulting Ltd 2018</p>
Consulting Ltd 2018</p>
</div> </div>
<div class="col-lg-1 col-xs-2"> <div class="col-lg-10 col-xs-9">
<img class="img img-rounded" src="images/logo.png" style="width:180px;height:45px;margin-left:-55px;"/> <img class="img img-rounded right" alt="nisum" src="images/nisum-small.png"/>
</div> </div>
</div> </div>
</nav> </nav>
......
...@@ -8,42 +8,35 @@ ...@@ -8,42 +8,35 @@
class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span> class="icon-bar"></span>
</button> </button>
<img src="images/nisum-logo1.png" width="200" height="50" style="padding-left: 20px"/> <img src="images/myteam.png" width="200" height="50" alt="myTeam"/>
</div> </div>
<div class="collapse navbar-collapse" id="b-menu-1"> <div class="collapse navbar-collapse" id="b-menu-1">
<a href="#" class="left menu-icon" ng-click="menuIcon()"><i class="fa fa-bars" aria-hidden="true"></i></a>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Signed in as <b>{{empName}}</b></a></li> <li class="active"><a href="#">Signed in as <b>{{empName}}</b></a></li>
<li class="dropdown active"><a href="#" class="dropdown-toggle" <li class="dropdown active"><a href="#" class="dropdown-toggle"
data-toggle="dropdown"> <i class="fa fa-user-circle-o fa-2x" aria-hidden="true" data-toggle="dropdown"> <i class="fa fa-user-circle-o fa-2x" aria-hidden="true"></i><b class="caret"></b>
style="font-size: 1.5em;"></i><b class="caret" style="margin-top:-4px;"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu my-account">
<li> <li>
<div class="col-lg-12" style="padding-right: 5px;padding-left: 5px;"> <div class="col-lg-12 no-padding">
<div class="card hovercard"> <div class="card hovercard">
<div class="cardheader"></div> <div class="cardheader"></div>
<div class="avatar"> <div class="avatar left">
<img ng-alt="{{empName}}" ng-src="{{profilePicUrl}}"> <img ng-alt="{{empName}}" ng-src="{{profilePicUrl}}">
</div> </div>
<div class="info"> <div class="info right">
<div class="title">{{empName}}</div> <div class="title">{{empName}}</div>
<div style="height:5px;"></div>
<div class="desc"> <div class="desc">
<i class="fa fa-id-badge fa-2x" aria-hidden="true" <i class="fa fa-id-badge fa-2x" aria-hidden="true"></i> {{empId}}
style="font-size: 1.3em;"></i> {{empId}}
</div> </div>
<div style="height:5px;"></div>
<div class="desc"> <div class="desc">
<i class="fa fa-envelope fa-2x" aria-hidden="true" <i class="fa fa-envelope fa-2x" aria-hidden="true"></i> {{empEmailId}}
style="font-size: 1.3em;"></i> {{empEmailId}}
</div> </div>
<div style="height:5px;"></div>
<div class="desc"> <div class="desc">
<a href="#" ng-click="logout()" <a href="#" ng-click="logout()"><i
style="padding: 3px 0px; color: #fff;"><i class="fa fa-sign-out fa-2x" aria-hidden="true"></i> Logout</a>
class="fa fa-sign-out fa-2x" aria-hidden="true"
style="font-size: 1.5em;"></i> Logout</a>
</div> </div>
</div> </div>
</div> </div>
......
<html> <html>
<body> <body>
<header id="header" ng-include="'templates/header.html'" ng-controller="headerController"></header> <header id="header" ng-include="'templates/header.html'" ng-controller="headerController"></header>
<div id="sidebar-left" ng-include="'templates/leftmenu.html'" ng-controller="leftmenuController"></div> <div class="main-container">
<div id="main" ng-include="'templates/employee.html'"></div> <div id="sidebar-left" ng-include="'templates/leftmenu.html'" ng-controller="leftmenuController"></div>
<div id="main" ng-include="'templates/employee.html'"></div>
</div>
<footer id="footer" ng-include="'templates/footer.html'"></footer> <footer id="footer" ng-include="'templates/footer.html'"></footer>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -31,7 +31,8 @@ ...@@ -31,7 +31,8 @@
<script src="js/pdf/angular-pdf.min.js"></script> <script src="js/pdf/angular-pdf.min.js"></script>
<script src="js/pdf/print.min.js"></script> <script src="js/pdf/print.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css"></link> <link rel="stylesheet" href="css/bootstrap.min.css"></link>
<link rel="stylesheet" href="css/default-styles.css"></link> <!-- <link rel="stylesheet" href="css/default-styles.css"></link> -->
<link rel="stylesheet" href="css/custom-theme.css"></link>
<script src="js/bootstrap.min.js"></script> <script src="js/bootstrap.min.js"></script>
<script src="js/angular-idle.js"></script> <script src="js/angular-idle.js"></script>
<script src="http://ui-grid.info/release/ui-grid.js"></script> <script src="http://ui-grid.info/release/ui-grid.js"></script>
...@@ -46,9 +47,9 @@ ...@@ -46,9 +47,9 @@
<link rel="stylesheet" href="http://ui-grid.info/release/ui-grid.css" type="text/css"> <link rel="stylesheet" href="http://ui-grid.info/release/ui-grid.css" type="text/css">
<link rel="stylesheet" href="css/leftmenu.css"></link> <!-- <link rel="stylesheet" href="css/leftmenu.css"></link> -->
<link rel="stylesheet" href="css/pdf-viewer.css"></link> <link rel="stylesheet" href="css/pdf-viewer.css"></link>
<link rel="stylesheet" href="css/user-profile.css"></link> <!-- <link rel="stylesheet" href="css/user-profile.css"></link> -->
<script src="js/app.js"></script> <script src="js/app.js"></script>
<script src="js/date-text-filter.js"></script> <script src="js/date-text-filter.js"></script>
<script src="js/ui-grid-edit-datepicker.js"></script> <script src="js/ui-grid-edit-datepicker.js"></script>
......
...@@ -10,13 +10,13 @@ ...@@ -10,13 +10,13 @@
aria-hidden="false"> </i> <span style="margin-left: 15px;">{{manageItem.menu}}</span></a></i> aria-hidden="false"> </i> <span style="margin-left: 15px;">{{manageItem.menu}}</span></a></i>
</li> --> </li> -->
<li> <a href="#" ng-click="toggleManage()" ng-show="manageGroup.length > 0"> <i class="fa fa-users" style="font-size: 1.5em; margin-right: 15px;" aria-hidden="true"></i> Manage Group <i class="fa fa-caret-down" style="margin-left: 15px;"></i></a> <li> <a href="#" ng-click="toggleManage()" ng-show="manageGroup.length > 0"> <i class="fa fa-users" aria-hidden="true"></i> <span>Manage Group</span> <i class="fa fa-angle-down right"></i></a>
<ul ng-hide="custom" class="manageGroup"> <ul ng-hide="custom" class="manageGroup">
<li ng-repeat="manageItem in manageGroup"> <li ng-repeat="manageItem in manageGroup">
<a href="#" class="navbarMenu" ng-click="setTemplateUrl(manageItem.path)"><i <a href="#" class="navbarMenu" ng-click="setTemplateUrl(manageItem.path)"><i
class="{{manageItem.icon}}" style="font-size: 1.5em;" class="{{manageItem.icon}}"
aria-hidden="false"> </i> <span style="margin-left: 15px;">{{manageItem.menu}}</span></a></i> aria-hidden="false"> </i> <span>{{manageItem.menu}}</span></a></i>
</li> </li>
</ul> </ul>
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
<li ng-repeat="nonManageItem in nonManageGroup" ng-click="togglenonManage()" class="nonManageGroup"> <li ng-repeat="nonManageItem in nonManageGroup" ng-click="togglenonManage()" class="nonManageGroup">
<a href="#" class="navbarMenu" ng-click="setTemplateUrl(nonManageItem.path)"> <a href="#" class="navbarMenu" ng-click="setTemplateUrl(nonManageItem.path)">
<i class="{{nonManageItem.icon}}" style="font-size: 1.5em;" aria-hidden="false"></i> <i class="{{nonManageItem.icon}}" aria-hidden="false"></i>
<span style="margin-left: 15px;">{{nonManageItem.menu}}</span> <span>{{nonManageItem.menu}}</span>
</a> </a>
</li> </li>
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="assignRoleController"
id="popupContainer" ng-controller="assignRoleController"
ng-init="getOrgEmps()"> ng-init="getOrgEmps()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">My Org
style="vertical-align: middle; font-weight: bold; font-size: 30px;">My Org</p> <a class="right"><i class="fa fa-refresh" aria-hidden="true"
<p align="right" class="col-xs-1" ng-click="refreshPageOrg()"></i></a>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </h1>
<i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPageOrg()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row col-lg-12"></div>
<div class="row col-lg-12"> <div class="row">
<div class="col-lg-1" style="float: left;padding-left:20px;"> <div class="col-lg-1">
<!-- <div class="input-group" style="box-shadow: 1px 1px 1px 1px rgba(0,0,0,.26);"> <!-- <div class="input-group" style="box-shadow: 1px 1px 1px 1px rgba(0,0,0,.26);">
<input type="text" ng-model="empSearchId" id="empSearchId" <input type="text" ng-model="empSearchId" id="empSearchId"
ng-blur="validateEmpId()" class="form-control" ng-blur="validateEmpId()" class="form-control"
...@@ -31,8 +27,7 @@ ...@@ -31,8 +27,7 @@
</span> </span>
</div> --> </div> -->
</div> </div>
<div class="col-lg-1" <div class="col-lg-1">
style="cursor: pointer; float: right; right: 75px;">
<!-- <md-button class="md-raised md-primary" <!-- <md-button class="md-raised md-primary"
style="width:142px;background: cadetblue;" style="width:142px;background: cadetblue;"
ng-click="assignRole('Add', parentData)"> <i ng-click="assignRole('Add', parentData)"> <i
...@@ -41,13 +36,13 @@ ...@@ -41,13 +36,13 @@
Employee</md-button> --> Employee</md-button> -->
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row">
<div class="row col-lg-12" style="margin-left: 0px;"> <div class="col-lg-12">
<div id="gridTest" ui-grid="gridOptionsOrgView" ui-grid-pagination
<div id="gridTest" ui-grid="gridOptionsOrgView" ui-grid-pagination class="myGrid">
class="myGrid" style="width:99%;height:370px;margin-left:0px;"> <div class="watermark" ng-show="!gridOptionsOrgView.data.length">No
<div class="watermark" ng-show="!gridOptionsOrgView.data.length">No data available</div>
data available</div> </div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="myProjectAllocationsController"
id="popupContainer" ng-controller="myProjectAllocationsController"
ng-init="getMyProjectAllocations()"> ng-init="getMyProjectAllocations()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">My Project Allocations
style="vertical-align: middle; font-weight: bold; font-size: 30px;">My Project Allocations </p> <a class="right"><i class="fa fa-refresh" aria-hidden="true"
<p align="right" class="col-xs-1" ng-click="refreshPage()"></i></a>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </h1>
<i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;margin-left: 20px;"></div> <div class="row">
<div class="row col-lg-12"> <div class="col-lg-12">
<div class="col-xs-6" style="margin-left: 20px;"> <p><b>List of your current and previous project allocations: </b></p>
<p>
<b>List of your current and previous project allocations: </b>
</p>
</div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="col-lg-12">
<div class="row col-lg-12" style="margin-left: 0px;"> <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div class="watermark" ng-show="!gridOptions.data.length">No
class="myGrid" style="width:99%;height:380px;" > data available</div>
<div class="watermark" ng-show="!gridOptions.data.length">No </div>
data available</div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="projectMyTeamController"
id="popupContainer" ng-controller="projectMyTeamController"
ng-init="getMyTeamDetails()"> ng-init="getMyTeamDetails()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">My Team</h1>
style="vertical-align: middle; font-weight: bold; font-size: 30px;">My Team </p>
<p align="right" class="col-xs-1"
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;">
<!-- <i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPage()"></i> -->
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row">
<div class="row col-lg-12"> <div class="col-lg-12">
<div class="col-lg-1" style="float: left;padding-left:20px;"> <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
</div> class="myGrid">
<div class="col-lg-1" <div class="watermark" ng-show="!gridOptions.data.length">No
style="cursor: pointer; float: right; right: 75px;"> data available</div>
</div> </div>
</div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12" style="padding-top: 4%;margin-left:0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width:99%;height:370px;margin-left:0px;">
<div class="watermark" ng-show="!gridOptions.data.length">No
data available</div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="travelController"
id="popupContainer" ng-controller="travelController"
ng-init="getEmpVisas();getEmployeesToTeam();"> ng-init="getEmpVisas();getEmployeesToTeam();">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Manage Travels
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage Travels </p> <span class="right">
<p align="right" class="col-xs-1" <md-button class="add-btn md-raised md-primary" ng-click="assignRole('Add', parentData)">
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> <i class="fa fa-plus-circle fa-1x"></i> Add Travel Request</md-button>
<i class="fa fa-refresh" aria-hidden="true" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
ng-click="refreshPage()"></i> </span>
</p> </h1>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12"> <div class="row col-lg-12">
<div class="col-lg-1" style="float: left;padding-left:20px;">
</div>
<div class="col-lg-1"
style="cursor: pointer; float: right; right: 75px;">
<md-button class="md-raised md-primary"
style="width:142px;background: cadetblue;"
ng-click="assignRole('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add Travel Request</md-button>
</div>
</div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12" style="margin-left: 0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="grid" style="width:99%;height:380px;"> class="grid" style="width:99%;height:380px;">
......
...@@ -8,14 +8,12 @@ stroke:orange; ...@@ -8,14 +8,12 @@ stroke:orange;
} }
</style> </style>
</head> </head>
<md-dialog aria-label="Progress Template" style="width:420px;height:180px;background:transparent;" id="progressTemplate"> <md-dialog aria-label="Progress Template" id="progressTemplate">
<form ng-cloak name="myForm"> <form ng-cloak name="myForm">
<md-dialog-content> <md-dialog-content>
<div class="md-dialog-content"> <div class="md-dialog-content text-center">
<p <p> {{progressText}}</p>
style="color: #fff; font-size: 1.35em; vertical-align: middle; text-align:center;"> <i class="fa fa-gear fa-spin fa-5x fa-fw"></i>
{{progressText}}</p>
<i class="fa fa-spinner fa-pulse fa-3x fa-fw" style="left:42%;position:relative;color:orange;"></i>
</div> </div>
</md-dialog-content> </md-dialog-content>
</form> </form>
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="projectController"
id="popupContainer" ng-controller="projectController"
ng-init="getProjects();getManagerDetails();"> ng-init="getProjects();getManagerDetails();">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h1 class="no-padding">Manage Projects
<span class="right">
<md-button class="add-btn md-raised md-primary"
ng-click="addProject('Assign', parentData)"> <i
class="fa fa-plus-circle fa-1x"></i> Add
Project</md-button>
<i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
</span>
</h1>
</div>
<!-- <div class="col-lg-12">
<p align="center" class="col-xs-11" <p align="center" class="col-xs-11"
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage Projects</p> style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage Projects</p>
<p align="right" class="col-xs-1" <p align="right" class="col-xs-1"
...@@ -11,22 +21,11 @@ ...@@ -11,22 +21,11 @@
<i class="fa fa-refresh" aria-hidden="true" <i class="fa fa-refresh" aria-hidden="true"
ng-click="refreshPage()"></i> ng-click="refreshPage()"></i>
</p> </p>
</div> </div> -->
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12"> <div class="row col-lg-12">
<div class="col-lg-8">
<md-button class="md-raised md-primary"
style="width:142px;background: cadetblue; margin: 2% 0% 0% 124%;"
ng-click="addProject('Assign', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add
Project</md-button>
</div>
</div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12" style="margin-left: 0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width:99%;height:370px;margin-left:0px;"> class="myGrid" style="width:99%;height:370px;margin-left:0px;">
......
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="reportsController">
id="popupContainer" ng-controller="reportsController">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Login Reports
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Login Reports</p> <span class="right">
<p align="right" class="col-xs-1" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </span>
<i class="fa fa-refresh" aria-hidden="true" </h1>
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
...@@ -17,41 +14,38 @@ ...@@ -17,41 +14,38 @@
<br /> <br />
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12" style="margin-left: 3%;"> <div class="form-inline col-lg-12">
<div class="form-group col-lg-2 col-md-4 col-sm-6 col-xs-12"> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<input type="text" ng-model="searchId" id="searchId" <input type="text" ng-model="searchId" id="searchId"
placeholder="Employee ID" class="form-control" min-length="5" placeholder="Employee ID" class="form-control" min-length="5"
ng-blur="validateEmpId()" /> ng-blur="validateEmpId()" />
</div> </div>
<div class="form-group col-lg-1"></div> <div class="col-lg-3 col-md-3">
<div class="form-group col-lg-4">
<label class="" for="fromDate">From Date: <md-datepicker <label class="" for="fromDate">From Date: <md-datepicker
ng-model="fromDate" md-placeholder="Enter date" ng-model="fromDate" md-placeholder="Enter date"
md-min-date="minDate" md-max-date="maxDate" md-min-date="minDate" md-max-date="maxDate"
onkeydown="return false" onkeydown="return false"
ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label> ng-change="validateDates(fromDate, 'FromDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-4"> <div class="col-lg-3 col-md-3">
<label class="" for="toDate">To Date: <md-datepicker <label class="" for="toDate">To Date: <md-datepicker
ng-model="toDate" md-placeholder="Enter date" ng-model="toDate" md-placeholder="Enter date"
md-min-date="minDate" md-max-date="maxDate" md-min-date="minDate" md-max-date="maxDate"
onkeydown="return false" onkeydown="return false"
ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label> ng-change="validateDates(toDate, 'ToDate')"></md-datepicker></label>
</div> </div>
<div class="form-group col-lg-1"> <div class="col-lg-2">
<label class="" for="submitBtn"><md-button <label class="" for="submitBtn"><md-button
class="md-raised md-primary" class="md-raised md-primary"
style="width:120px;background: cadetblue;"
ng-click="generateReport()"> <i ng-click="generateReport()"> <i
class="fa fa-file-pdf-o fa-2x" class="fa fa-file-pdf-o fa-1x"></i>
style="margin-top: 5px; font-size: 1.5em; float: left"></i>
Generate</md-button></label> Generate</md-button></label>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12" style="margin-left: 3%;"> <div class="form-inline col-lg-12">
<div class="form-group col-lg-2 col-md-4 col-sm-6 col-xs-12"> <div class="form-group col-lg-2 col-md-4 col-sm-6 col-xs-12">
<label>Override Timings</label> <label>Override Timings</label>
...@@ -73,14 +67,26 @@ ...@@ -73,14 +67,26 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12"> <div class="form-inline col-lg-12">
<div class="wrapper col-lg-12" id="pdfReportPreview" <div class="wrapper col-lg-12" id="pdfReportPreview"
style="height: 415px; background-color: #888; overflow: scroll;"> style="height: 415px; background-color: #888; overflow: scroll;">
<p id="reportMsg" <p id="reportMsg"
style="color: #fff; font-size: 1.35em; opacity: 0.5;text-align:center;vertical-align:middle;position:relative;top:50%;"> style="color: #fff; font-size: 1.35em; opacity: 0.5;text-align:center;vertical-align:middle;position:relative;top:50%;">
{{reportMsg}}</p> {{reportMsg}}</p>
</div> </div>
</div> </div>
</div> </div>
<div class="form-horizontal">
<div class="form-group">
<div class="form-inline col-lg-12 align-button">
<div class="form-group col-lg-9">
</div>
<div class="form-group col-lg-2">
<div excel-export export-data="exportData" file-name="{{fileName}}" ng-disabled = "!isDataAvailable"></div>
</div>
<div class="form-group col-lg-1">
<button class="btn btn-primary btn-ef btn-ef-3 btn-ef-3c mb-10" ng-click="print(pdfUrl)" ng-disabled = "!isDataAvailable" > Save as PDF <i class="fa fa-download"></i></button>
</div>
</div>
</div>
</div>
</div> </div>
<style> <div class="md-padding" id="popupContainer" ng-controller="assignRoleController"
.grid-align {
text-align: left;
}
</style>
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;"
id="popupContainer" ng-controller="assignRoleController"
ng-init="getUserRoles()"> ng-init="getUserRoles()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-6">
<p align="center" class="col-xs-11" <h1 class="no-padding">Manage Employees</h1>
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage </div>
Employees</p> <div class="col-lg-6 add-emp no-padding">
<p align="right" class="col-xs-1" <span>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> <input type="radio" ng-model="status" value="Active" ng-click="getUserRoles()"> Active
<i class="fa fa-refresh" aria-hidden="true" <input type="radio" ng-model="status" value="In Active" ng-click="getUserRoles()"> Inactive
ng-click="refreshPage()"></i> <input type="radio" ng-model="status" value="both" ng-click="getUserRoles()"> Both
</p> </span>
<label class="" for="submitBtn"> </label>
<md-button
class="md-raised md-primary"
ng-click="assignRole('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"></i> Add Employee</md-button>
<i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12"> <div class="row col-lg-12">
<div class="col-lg-8">
<label class="" for="submitBtn"> </label>
<md-button
class="md-raised md-primary"
style="width:142px;background: cadetblue; margin: 2% 0% 0% 124%;"
ng-click="assignRole('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add
Employee</md-button>
<!-- </label> -->
</div>
</div>
<div class="form-group col-lg-7 col-md-7 col-sm-7 col-xs-12"></div>
<div class="row col-lg-12" style="margin-left: 0px;">
<input type="radio" ng-model="status" value="Active" ng-click="getUserRoles()"> Active
<input type="radio" ng-model="status" value="In Active" ng-click="getUserRoles()"> Inactive
<input type="radio" ng-model="status" value="both" ng-click="getUserRoles()"> Both
</div>
<div class="row col-lg-12" style="margin-left: 0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination
class="myGrid" style="width:99%;height:370px;margin-left:0px;"> class="myGrid">
<div class="watermark" ng-show="!gridOptions.data.length">No <div class="watermark" ng-show="!gridOptions.data.length">No
data available</div> data available</div>
...@@ -52,7 +32,7 @@ ...@@ -52,7 +32,7 @@
</div> </div>
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group"> <div class="form-group">
<div class="form-inline col-lg-12" style="margin-left: 10px;"> <div class="form-inline col-lg-12">
<!-- <div class="form-group col-lg-3 col-md-4 col-sm-6 col-xs-12"> <!-- <div class="form-group col-lg-3 col-md-4 col-sm-6 col-xs-12">
<div class="input-group" <div class="input-group"
style=""> style="">
...@@ -85,5 +65,4 @@ ...@@ -85,5 +65,4 @@
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="shiftDetailsController"
id="popupContainer" ng-controller="shiftDetailsController"
ng-init="getShiftDetails()"> ng-init="getShiftDetails()">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Shift Details
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Shift Details </p> <span class="right">
<p align="right" class="col-xs-1" <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> </span>
<i class="fa fa-refresh" aria-hidden="true" </h1>
ng-click="refreshPage()"></i>
</p>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="text-center">
<div class="row col-lg-12"> <div class="">
<div class="col-lg-2"></div>
<div class="col-lg-2 col-xs-12" style="vertical-align: middle;"> <div class="row">
<div class="col-lg-2 col-xs-12">
<p> <p>
<b>Select Shift:</b> <b>Select Shift:</b>
</p> </p>
</div> </div>
<div class="col-lg-4 col-xs-12"> <div class="col-lg-3 col-xs-12">
<p> <p>
<md-select ng-model="shiftValue" md-selected-text="getSelectedShift()" id="shiftValue" style="margin:0px;"> <md-select ng-model="shiftValue" md-selected-text="getSelectedShift()" id="shiftValue" style="margin:0px;">
...@@ -33,11 +29,9 @@ ...@@ -33,11 +29,9 @@
ng-repeat="shiftValue in shifts">{{shiftValue}}</md-option> </md-optgroup> </md-select> ng-repeat="shiftValue in shifts">{{shiftValue}}</md-option> </md-optgroup> </md-select>
</p> </p>
</div> </div>
<div class="col-lg-2 col-xs-12" style="cursor: pointer;" align="right"> <div class="col-lg-2 col-xs-12">
<md-button class="md-raised md-primary" <md-button class="md-raised md-primary" ng-click="getShiftDetails()">
style="width:100px;background: cadetblue;" ng-click="getShiftDetails()"> <i class="fa fa-search fa-1x"></i> Search</md-button>
<i class="fa fa-search fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Search</md-button>
</div> </div>
<div class="col-lg-2"></div> <div class="col-lg-2"></div>
</div> </div>
...@@ -52,13 +46,13 @@ ...@@ -52,13 +46,13 @@
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div> <div class="row">
<div class="row col-lg-12" style="margin-left: 0px;"> <div class="col-lg-12">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-selection ui-grid-exporter
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-selection ui-grid-exporter class="myGrid">
class="myGrid" style="width:99%;height:350px;margin-left:0px;"> <div class="watermark" ng-show="!gridOptions.data.length">No
<div class="watermark" ng-show="!gridOptions.data.length">No data available</div>
data available</div> </div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
<div class="md-padding" style="width: 100%; padding: 3px 0px 0px 0px;" <div class="md-padding" id="popupContainer" ng-controller="visaController"
id="popupContainer" ng-controller="visaController"
ng-init="getEmpVisas();getEmployeesToTeam();"> ng-init="getEmpVisas();getEmployeesToTeam();">
<div class="container-fluid mainDivHeaderClass"> <div class="container-fluid mainDivHeaderClass">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<p align="center" class="col-xs-11" <h1 class="no-padding">Manage Visa
style="vertical-align: middle; font-weight: bold; font-size: 30px;">Manage Visa </p> <span class="right">
<p align="right" class="col-xs-1" <md-button class="add-btn md-raised md-primary"
style="vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"> ng-click="assignRole('Add', parentData)"> <i
<i class="fa fa-refresh" aria-hidden="true" class="fa fa-plus-circle fa-1x"></i> Add Visa Details</md-button>
ng-click="refreshPage()"></i> <i class="fa fa-refresh" aria-hidden="true" ng-click="refreshPage()"></i>
</p> </span>
</h1>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12"> <div class="row col-lg-12">
<div class="col-lg-1" style="float: left;padding-left:20px;">
</div>
<div class="col-lg-1"
style="cursor: pointer; float: right; right: 75px;">
<md-button class="md-raised md-primary"
style="width:142px;background: cadetblue;"
ng-click="assignRole('Add', parentData)"> <i
class="fa fa-plus-circle fa-2x"
style="margin-top: 5px; font-size: 1.5em; float: left"></i> Add Visa Details</md-button>
</div>
</div>
<div class="row col-lg-12" style="height: 15px;"></div>
<div class="row col-lg-12" style="margin-left: 0px;">
<div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-cell-contents <div id="gridTest" ui-grid="gridOptions" ui-grid-pagination ui-grid-cell-contents
class="grid" style="width:99%;height:380px;"> class="grid" style="width:99%;height:380px;">
......
...@@ -55,7 +55,8 @@ public class AttendanceControllerTest { ...@@ -55,7 +55,8 @@ public class AttendanceControllerTest {
@Test @Test
public void testgeneratePdfReport() throws Exception { public void testgeneratePdfReport() throws Exception {
when(userService.generatePdfReport(12345,"2017-11-18","2017-12-18")).thenReturn("empLoginDetails"); List list = new ArrayList();
when(userService.generatePdfReport(12345,"2017-11-18","2017-12-18")).thenReturn(list);
mockMvc.perform(get("/attendance/generatePdfReport/12345/2017-11-18/2017-12-18")).andExpect(MockMvcResultMatchers.status().isOk()); mockMvc.perform(get("/attendance/generatePdfReport/12345/2017-11-18/2017-12-18")).andExpect(MockMvcResultMatchers.status().isOk());
verify(userService).generatePdfReport(12345,"2017-11-18" , "2017-12-18"); verify(userService).generatePdfReport(12345,"2017-11-18" , "2017-12-18");
} }
...@@ -64,7 +65,7 @@ public class AttendanceControllerTest { ...@@ -64,7 +65,7 @@ public class AttendanceControllerTest {
public void testattendanciesReport() throws Exception{ public void testattendanciesReport() throws Exception{
List<AttendenceData> lisOfAttendenceData = createAttendenceData(); List<AttendenceData> lisOfAttendenceData = createAttendenceData();
when(attendanceService.getAttendanciesReport("2017-12-29","All")).thenReturn(lisOfAttendenceData); when(attendanceService.getAttendanciesReport("2017-12-29","All")).thenReturn(lisOfAttendenceData);
mockMvc.perform(get("/attendance/attendanciesReport/2017-12-29").param("All")).andExpect(MockMvcResultMatchers.status().isOk()); mockMvc.perform(get("/attendance/attendanciesReport/2017-12-29").param("shift","All")).andExpect(MockMvcResultMatchers.status().isOk());
verify(attendanceService).getAttendanciesReport("2017-12-29","All"); verify(attendanceService).getAttendanciesReport("2017-12-29","All");
} }
......
...@@ -134,4 +134,4 @@ public class EmployeeBillingControllerTest { ...@@ -134,4 +134,4 @@ public class EmployeeBillingControllerTest {
return data; return data;
} }
} }
\ No newline at end of file
...@@ -74,14 +74,23 @@ public class ProjectControllerTest { ...@@ -74,14 +74,23 @@ public class ProjectControllerTest {
public void testaddProject() throws Exception { public void testaddProject() throws Exception {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
list.add("16620"); list.add("16620");
<<<<<<< HEAD
list.add("16632"); list.add("16632");
=======
list.add("16632");
>>>>>>> branch 'master' of https://github.com/nisum-inc/mytime
Project employeeRole1 = new Project( Project employeeRole1 = new Project(
new ObjectId("9976ef15874c902c98b8a05d"), "102","Macys", "NisumIndia","Active",list, new ObjectId("9976ef15874c902c98b8a05d"), "102","Macys", "NisumIndia","Active",list,
list, "Acc001", "DOM001",new Date(2018 - 06 - 29), list, "Acc001", "DOM001",new Date(2018 - 06 - 29),
new Date(2018 - 12 - 20), list); new Date(2018 - 12 - 20), list);
<<<<<<< HEAD
Account account = new Account( "Acc001", "Macys", 3, "Y","Macys","Retail",list); Account account = new Account( "Acc001", "Macys", 3, "Y","Macys","Retail",list);
=======
Account account = new Account(new ObjectId("5b62cca250e71a6eecc8c682"),
"Acc001", "Macys", 3, "Y","Macys","Retail",list);
>>>>>>> branch 'master' of https://github.com/nisum-inc/mytime
when(projectService.addProject(employeeRole1)) when(projectService.addProject(employeeRole1))
.thenReturn(employeeRole1); .thenReturn(employeeRole1);
when(accountRepo.findByAccountId("Acc001")).thenReturn(account); when(accountRepo.findByAccountId("Acc001")).thenReturn(account);
...@@ -117,14 +126,7 @@ public class ProjectControllerTest { ...@@ -117,14 +126,7 @@ public class ProjectControllerTest {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(project); String jsonString = mapper.writeValueAsString(project);
when(projectService.updateProject(any())).thenReturn(project); when(projectService.updateProject(any())).thenReturn(project);
// when(projectService.updateProject(project)).thenReturn(project); }
/* mockMvc.perform(post("/project/updateProject")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(jsonString))
.andExpect(MockMvcResultMatchers.status().isOk());*/
//verify(projectService).updateProject(any());
verify(projectService).updateProject(project);
}
@Test @Test
public void testdeleteProject() throws Exception { public void testdeleteProject() throws Exception {
...@@ -141,7 +143,6 @@ public class ProjectControllerTest { ...@@ -141,7 +143,6 @@ public class ProjectControllerTest {
mockMvc.perform(get("/project/getProjects") mockMvc.perform(get("/project/getProjects")
.contentType(MediaType.APPLICATION_JSON_VALUE)) .contentType(MediaType.APPLICATION_JSON_VALUE))
.andExpect(MockMvcResultMatchers.status().isOk()); .andExpect(MockMvcResultMatchers.status().isOk());
verify(projectService).getProjects();
} }
@Test @Test
......
...@@ -25,6 +25,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; ...@@ -25,6 +25,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.nisum.mytime.controller.ProjectTeamController; import com.nisum.mytime.controller.ProjectTeamController;
import com.nisum.mytime.model.BillingDetails; import com.nisum.mytime.model.BillingDetails;
import com.nisum.mytime.model.EmployeeDashboardVO;
import com.nisum.mytime.model.EmployeeRoles; import com.nisum.mytime.model.EmployeeRoles;
import com.nisum.mytime.model.Project; import com.nisum.mytime.model.Project;
import com.nisum.mytime.model.ProjectTeamMate; import com.nisum.mytime.model.ProjectTeamMate;
...@@ -271,9 +272,51 @@ public class ProjectTeamControllerTest { ...@@ -271,9 +272,51 @@ public class ProjectTeamControllerTest {
mockMvc.perform(get("/projectTeam/getMyProjectAllocations") mockMvc.perform(get("/projectTeam/getMyProjectAllocations")
.param("employeeId", "16127")) .param("employeeId", "16127"))
.andExpect(MockMvcResultMatchers.status().isOk()); .andExpect(MockMvcResultMatchers.status().isOk());
verify(projectService).getMyProjectAllocations("16127"); // verify(projectService).getMyProjectAllocations("16127");
} }
@Test
public void testaddEmployeeBilling() throws Exception {
BillingDetails billingDetails = new BillingDetails(
new ObjectId("9976ef15874c902c98b8a05d"), "16389","Mahesh Mudrakola", "Acc001","Pro001","Macys",
"Y", new Date(2017 - 11 - 29),
new Date(2017 - 12 - 20),"Comments",true,new Date(2017 - 11 - 29));
String jsonvalue = (new ObjectMapper())
.writeValueAsString(billingDetails).toString();
when(projectService.addEmployeeBillingDetails(billingDetails))
.thenReturn(billingDetails);
mockMvc.perform(post("/projectTeam/addEmployeeBilling")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(jsonvalue))
.andExpect(MockMvcResultMatchers.status().isOk());
}
@Test
public void testupdateEmployeeBilling() throws Exception {
BillingDetails billingDetails = new BillingDetails(
new ObjectId("9976ef15874c902c98b8a05d"), "16389","Mahesh Mudrakola", "Acc001","Pro001","Macys",
"Y", new Date(2017 - 11 - 29),
new Date(2017 - 12 - 20),"Comments",true,new Date(2017 - 11 - 29));
String jsonvalue = (new ObjectMapper())
.writeValueAsString(billingDetails).toString();
when(projectService.updateEmployeeBilling(billingDetails))
.thenReturn(billingDetails);
mockMvc.perform(post("/projectTeam/updateEmployeeBilling")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(jsonvalue))
.andExpect(MockMvcResultMatchers.status().isOk());
}
@Test
public void testgetEmployeesDashBoard() throws Exception {
List<EmployeeDashboardVO> dashboard = null;
when(projectService.getEmployeesDashBoard()).thenReturn(dashboard);
mockMvc.perform(get("/projectTeam/getEmployeesDashBoard"))
.andExpect(MockMvcResultMatchers.status().isOk());
verify(projectService).getEmployeesDashBoard();
}
@Test @Test
public void testgetEmployeeBillingDetails() throws Exception { public void testgetEmployeeBillingDetails() throws Exception {
List<BillingDetails> billings = CreateTeamMateBilling(); List<BillingDetails> billings = CreateTeamMateBilling();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment