Commit cdff04b0 authored by ='s avatar =

hieu v1

parent 70c05cbb
...@@ -45,16 +45,16 @@ public class ReportProjectBussiness { ...@@ -45,16 +45,16 @@ public class ReportProjectBussiness {
} }
//====================================================================================================================== //======================================================================================================================
public List<TimeSheet> findAllTimesheetStatusTrue(ReportDTO reportDTO){ public List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate){
List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimesheetStatusTrue(reportDTO.getProjectId(), reportDTO.getCurrentDate()); List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimeSheetStatusTrue(projectId, currentDate);
return timeSheetList; return timeSheetList;
} }
public String updateTimesheetStatus(ReportDTO reportDTO){ public String updateTimeSheetStatus(int projectId, String currentDate){
String mess; String mess;
try { try {
List<Eproject> eprojectList = eProjectRepository.listEprojectLack(reportDTO.getProjectId(), reportDTO.getCurrentDate()); List<Eproject> eprojectList = eProjectRepository.listEprojectLack(projectId, currentDate);
List<Integer> list = new ArrayList<>(); List<Integer> list = new ArrayList<>();
for (Eproject eproject: eprojectList) { for (Eproject eproject: eprojectList) {
list.add(eproject.getId()); list.add(eproject.getId());
...@@ -69,11 +69,15 @@ public class ReportProjectBussiness { ...@@ -69,11 +69,15 @@ public class ReportProjectBussiness {
return mess; return mess;
} }
public List<Employee> listLackOfReport(int projectId, String currentDate){
List<Employee> employeeList = employeeRepository.listLackOfReport(projectId, currentDate);
return employeeList;
}
public String updateTimesheetChecked(TimesheetRequestDTO timesheetRequestDTO){ public String updateTimeSheetChecked(int timeSheetId, String check){
String mess; String mess;
try { try {
timeSheetRepository.updateTimesheetChecked(timesheetRequestDTO.getChecked(),timesheetRequestDTO.getId()); timeSheetRepository.updateTimeSheetChecked(check, timeSheetId);
mess = "OK !"; mess = "OK !";
}catch (Exception e){ }catch (Exception e){
mess = e.getMessage(); mess = e.getMessage();
...@@ -85,24 +89,18 @@ public class ReportProjectBussiness { ...@@ -85,24 +89,18 @@ public class ReportProjectBussiness {
public List<ProjectReport> allProjectReport(ReportDTO reportDTO){ public List<ProjectReport> allProjectReport(int projectId){
List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(reportDTO.getProjectId()); List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(projectId);
if (projectReportList.isEmpty()){
return null;
}else
return projectReportList; return projectReportList;
} }
public ProjectReport latestReport(ReportDTO reportDTO){ public ProjectReport latestReport(int projectId){
return projectReportRepository.latestReport(reportDTO.getProjectId()); return projectReportRepository.latestReport(projectId);
} }
public List<Employee> listLackOfReport(ReportDTO reportDTO){
List<Employee> employeeList = employeeRepository.listLackOfReport(reportDTO.getProjectId(), reportDTO.getCurrentDate());
return employeeList;
}
public String insertProjectReport(ReportDTO reportDTO){ public String insertProjectReport(ReportDTO reportDTO){
String mess; String mess;
...@@ -131,18 +129,18 @@ public class ReportProjectBussiness { ...@@ -131,18 +129,18 @@ public class ReportProjectBussiness {
//====================================================================================================================== //======================================================================================================================
public List<Employee> listEmployeeLack(ReportDTO reportDTO) { public List<Employee> listEmployeeLack(String firstDate, String finalDate, int projectId) {
List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId()); List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(firstDate, finalDate, projectId);
return employeeList; return employeeList;
} }
public int numberLack(ReportDTO reportDTO){ public int numberLack(String firstDate, String finalDate, int projectId, int employeeId){
return employeeRepository.numberLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId()); return employeeRepository.numberLack(firstDate, finalDate, projectId, employeeId);
} }
public List<TimeSheet> listDateOfLack(ReportDTO reportDTO) { public List<TimeSheet> listDateOfLack(String firstDate, String finalDate, int projectId, int employeeId) {
List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId()); List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(firstDate,finalDate,projectId, employeeId);
return timeSheetList; return timeSheetList;
} }
......
...@@ -9,6 +9,7 @@ import com.itsol.quantrivanphong.model.Project; ...@@ -9,6 +9,7 @@ import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.model.ProjectReport; import com.itsol.quantrivanphong.model.ProjectReport;
import com.itsol.quantrivanphong.model.TimeSheet; import com.itsol.quantrivanphong.model.TimeSheet;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -20,47 +21,56 @@ public class ReportProjectController { ...@@ -20,47 +21,56 @@ public class ReportProjectController {
@Autowired @Autowired
private ReportProjectBussiness reportProjectBussiness; private ReportProjectBussiness reportProjectBussiness;
//====================================================================================================================== //======================================================================================================================
//Danh sách các dự án đang trong thời gian triển khai //Danh sách các dự án đang trong thời gian triển khai
@GetMapping(path = "/project/all") @GetMapping(path = "/project")
public ResponseEntity<List<Project>> listProjectWorking(){ public ResponseEntity<List<Project>> listProjectWorking(){
List<Project> projectList = reportProjectBussiness.listProjectWorking(); List<Project> projectList = reportProjectBussiness.listProjectWorking();
if (projectList==null){
return (ResponseEntity<List<Project>>) ResponseEntity.status(HttpStatus.NOT_FOUND);
}
return ResponseEntity.ok(projectList); return ResponseEntity.ok(projectList);
} }
//====================================================================================================================== //======================================================================================================================
//Hiển thị danh sách timesheet của các thành viên đã viết báo cáo trong ngày hôm đó //Hiển thị danh sách timesheet của các thành viên đã viết báo cáo trong ngày hôm đó
@GetMapping(path = "/project/timesheet",consumes = "application/json", produces = "application/json") @GetMapping(path = "/project/{projectId}/timeSheet/{currentDate}")
public ResponseEntity<List<TimeSheet>> findAllTimesheetStatusTrue(@RequestBody ReportDTO reportDTO){ public ResponseEntity<List<TimeSheet>> findAllTimeSheetStatusTrue(@PathVariable("projectId") int projectId, @PathVariable("currentDate") String currentDate){
List<TimeSheet> timeSheetList = reportProjectBussiness.findAllTimesheetStatusTrue(reportDTO); List<TimeSheet> timeSheetList = reportProjectBussiness.findAllTimeSheetStatusTrue(projectId, currentDate);
if(timeSheetList == null){
return (ResponseEntity<List<TimeSheet>>) ResponseEntity.status(HttpStatus.NOT_FOUND);
}
return ResponseEntity.ok(timeSheetList); return ResponseEntity.ok(timeSheetList);
} }
//Nút "kiểm tra" : Lọc các thành viên chưa viết báo cáo và tự khởi tạo timesheet với trạng thái thái = false //Nút "kiểm tra" : Lọc các thành viên chưa viết báo cáo và tự khởi tạo timesheet với trạng thái thái = false
@GetMapping(path = "/project/updateLack", consumes = "application/json", produces = "application/json") @PostMapping(path = "/project/{projectId}/update/{currentDate}")
public ResponseEntity<String> updateTimesheetStatus(@RequestBody ReportDTO reportDTO){ public ResponseEntity<String> updateTimeSheetStatus(@PathVariable("projectId") int projectId, @PathVariable("currentDate") String currentDate){
String mess = reportProjectBussiness.updateTimesheetStatus(reportDTO); String mess = reportProjectBussiness.updateTimeSheetStatus(projectId, currentDate);
return ResponseEntity.ok(mess); return ResponseEntity.ok(mess);
} }
//Quản trị viên duyệt và đánh dấu (đã duyệt, từ chối) mặc định là chưa duyệt (update bảng timesheet theo id) //Quản trị viên duyệt và đánh dấu (đã duyệt, từ chối) mặc định là chưa duyệt (update bảng timesheet theo id)
@PostMapping(path = "/project/check", consumes = "application/json", produces = "application/json") @PostMapping(path = "/project/timeSheet/update/{timeSheetId}")
public ResponseEntity<String> updateTimesheetChecked(@RequestBody TimesheetRequestDTO timesheetRequestDTO){ public ResponseEntity<String> updateTimeSheetChecked(@RequestBody String check, @PathVariable("timeSheetId") int timeSheetId){
String mess = reportProjectBussiness.updateTimesheetChecked(timesheetRequestDTO); String mess = reportProjectBussiness.updateTimeSheetChecked(timeSheetId, check);
return ResponseEntity.ok(mess); return ResponseEntity.ok(mess);
} }
//Danh sách thành viên trong Dự án thiếu báo cáo ngày hôm đó //Danh sách thành viên trong Dự án thiếu báo cáo ngày hôm đó
@GetMapping(path = "/project/alllack",consumes = "application/json", produces = "application/json") @GetMapping(path = "/project/{projectId}/allLack/{currentDate}")
public ResponseEntity<List<Employee>> listLackOfReport(@RequestBody ReportDTO reportDTO){ public ResponseEntity<List<Employee>> listLackOfReport(@PathVariable("projectId") int projectId, @PathVariable("currentDate") String currentDate){
List<Employee> employeeList = reportProjectBussiness.listLackOfReport(reportDTO); List<Employee> employeeList = reportProjectBussiness.listLackOfReport(projectId, currentDate);
if(employeeList==null){
return (ResponseEntity<List<Employee>>) ResponseEntity.status(HttpStatus.NOT_FOUND);
}
return ResponseEntity.ok(employeeList); return ResponseEntity.ok(employeeList);
} }
...@@ -69,7 +79,7 @@ public class ReportProjectController { ...@@ -69,7 +79,7 @@ public class ReportProjectController {
//Tạo một báo cáo mới //Tạo một báo cáo mới
@PostMapping(path = "/project/newReport", consumes = "application/json", produces = "application/json") @PostMapping(path = "/project/newReport")
public ResponseEntity<String> insertProjectReport(@RequestBody ReportDTO reportDTO ){ public ResponseEntity<String> insertProjectReport(@RequestBody ReportDTO reportDTO ){
String mess = reportProjectBussiness.insertProjectReport(reportDTO); String mess = reportProjectBussiness.insertProjectReport(reportDTO);
return ResponseEntity.ok(mess); return ResponseEntity.ok(mess);
...@@ -77,16 +87,19 @@ public class ReportProjectController { ...@@ -77,16 +87,19 @@ public class ReportProjectController {
//Báo cáo gần nhất của dự án //Báo cáo gần nhất của dự án
@GetMapping(path = "/project/latest",consumes = "application/json", produces = "application/json") @GetMapping(path = "/project/{projectId}/latest")
public ResponseEntity<ProjectReport> latestReport(@RequestBody ReportDTO reportDTO){ public ResponseEntity<ProjectReport> latestReport(@PathVariable("projectId") int projectId){
ProjectReport projectReport = reportProjectBussiness.latestReport(reportDTO); ProjectReport projectReport = reportProjectBussiness.latestReport(projectId);
return ResponseEntity.ok(projectReport); return ResponseEntity.ok(projectReport);
} }
// Tất cả các báo cáo của dự án // Tất cả các báo cáo của dự án
@GetMapping(path = "/project/allReport",consumes = "application/json", produces = "application/json") @GetMapping(path = "/project/{projectId}/allReport")
public ResponseEntity<List<ProjectReport>> allProjectReport(@RequestBody ReportDTO reportDTO){ public ResponseEntity<List<ProjectReport>> allProjectReport(@PathVariable("projectId") int projectId){
List<ProjectReport> projectReportList = reportProjectBussiness.allProjectReport(reportDTO); List<ProjectReport> projectReportList = reportProjectBussiness.allProjectReport(projectId);
if (projectReportList==null){
return (ResponseEntity<List<ProjectReport>>) ResponseEntity.status(HttpStatus.NOT_FOUND);
}
return ResponseEntity.ok(projectReportList); return ResponseEntity.ok(projectReportList);
} }
...@@ -95,18 +108,22 @@ public class ReportProjectController { ...@@ -95,18 +108,22 @@ public class ReportProjectController {
// Danh sách thành viên không viết timesheet // Danh sách thành viên không viết timesheet
@GetMapping(path = "/project/allEmployee",consumes = "application/json", produces = "application/json")
public ResponseEntity<List<Employee>> listEmployeeLack(@RequestBody ReportDTO reportDTO){ @GetMapping(path = "/project/{projectId}/employee/{firstDate}/{finalDate}")
List<Employee> employeeList = reportProjectBussiness.listEmployeeLack(reportDTO); public ResponseEntity<List<Employee>> listEmployeeLack(@PathVariable("projectId") int projectId, @PathVariable("firstDate") String firstDate, @PathVariable("finalDate") String finalDate){
List<Employee> employeeList = reportProjectBussiness.listEmployeeLack(firstDate, finalDate, projectId);
if (employeeList==null){
return (ResponseEntity<List<Employee>>) ResponseEntity.status(HttpStatus.NOT_FOUND);
}
return ResponseEntity.ok(employeeList); return ResponseEntity.ok(employeeList);
} }
// Chi tiết tiếu timesheet của mỗi thành viên // Chi tiết thiếu timesheet của mỗi thành viên
@GetMapping(path = "/project/allEmployee/id",consumes = "application/json", produces = "application/json") @GetMapping(path = "/project/{projectId}/employee/{employeeId}/{firstDate}/{finalDate}")
public ResponseEntity<ReportResponseDTO> listEmployeeLackDetail(@RequestBody ReportDTO reportDTO){ public ResponseEntity<ReportResponseDTO> listEmployeeLackDetail(@PathVariable("projectId") int projectId,@PathVariable("employeeId") int employeeId, @PathVariable("firstDate") String firstDate, @PathVariable("finalDate") String finalDate){
ReportResponseDTO reportResponseDTO = new ReportResponseDTO(); ReportResponseDTO reportResponseDTO = new ReportResponseDTO();
reportResponseDTO.setTimeSheetList(reportProjectBussiness.listDateOfLack(reportDTO)); reportResponseDTO.setTimeSheetList(reportProjectBussiness.listDateOfLack(firstDate, finalDate, projectId, employeeId));
reportResponseDTO.setNumberOflack(reportProjectBussiness.numberLack(reportDTO)); reportResponseDTO.setNumberOflack(reportProjectBussiness.numberLack(firstDate, finalDate, projectId, employeeId));
return ResponseEntity.ok(reportResponseDTO); return ResponseEntity.ok(reportResponseDTO);
} }
......
...@@ -14,6 +14,7 @@ public interface ProjectReportRepository extends JpaRepository<ProjectReport, In ...@@ -14,6 +14,7 @@ public interface ProjectReportRepository extends JpaRepository<ProjectReport, In
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC limit 1", nativeQuery = true) @Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC limit 1", nativeQuery = true)
ProjectReport latestReport(int projectId); ProjectReport latestReport(int projectId);
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC", nativeQuery = true) @Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC", nativeQuery = true)
List<ProjectReport> allProjectReport(int projectId); List<ProjectReport> allProjectReport(int projectId);
......
...@@ -33,7 +33,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -33,7 +33,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
//Timesheet Of Hieunv //Timesheet Of Hieunv
@Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ep.project_id = ?1 AND ts.status = true and ts.created_at like ?2%", nativeQuery = true) @Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ep.project_id = ?1 AND ts.status = true and ts.created_at like ?2%", nativeQuery = true)
List<TimeSheet> findAllTimesheetStatusTrue(int projectId, String currentDate); List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate);
@Transactional @Transactional
...@@ -44,7 +44,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -44,7 +44,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@Transactional @Transactional
@Modifying @Modifying
@Query(value = "update TimeSheet ts set ts.checked = ?1 where ts.id = ?2", nativeQuery = true) @Query(value = "update TimeSheet ts set ts.checked = ?1 where ts.id = ?2", nativeQuery = true)
void updateTimesheetChecked(String checked, int id); void updateTimeSheetChecked(String checked, int id);
@Query(value = "SELECT Count(DISTINCT ts.eproject_id) FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ts.status = false AND ep.project_id = ?1 AND created_at >= ?2 AND created_at <= ?3",nativeQuery = true) @Query(value = "SELECT Count(DISTINCT ts.eproject_id) FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ts.status = false AND ep.project_id = ?1 AND created_at >= ?2 AND created_at <= ?3",nativeQuery = true)
int numberEmployeeLack(int ProjectId, String firstDate, String finalDate); int numberEmployeeLack(int ProjectId, String firstDate, String finalDate);
......
server.port=8080 server.port=8081
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/qtvp_01 spring.datasource.url=jdbc:mysql://localhost:3306/quantrivanphong
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=12345678 spring.datasource.password=
spring.jpa.show-sql=true spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update
...@@ -18,7 +18,7 @@ spring.mail.host=smtp.gmail.com ...@@ -18,7 +18,7 @@ spring.mail.host=smtp.gmail.com
spring.mail.port=587 spring.mail.port=587
spring.mail.username=hieunv2496@gmail.com spring.mail.username=hieunv2496@gmail.com
spring.mail.password=anhieu1996 spring.mail.password=anhieu1996
>>>>>>> master
spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.auth=true
......
...@@ -20,20 +20,20 @@ ...@@ -20,20 +20,20 @@
<script src="js/angular.js"></script> <script src="js/angular.js"></script>
<script src="js/angular-ui-router.min.js"></script> <script src="js/angular-ui-router.min.js"></script>
<script src="js/app.js"></script>
<script src="pages/employee/employeeController.js"></script>
<script src="pages/project/projectController.js"></script>
<script src="pages/report/reportController.js"></script>
<script src="pages/testlayout/testlayoutController.js"></script>
</head> </head>
<body ng-app="myApp"> <body ng-app="myApp">
<div ui-view="layout"> <div ui-view="layout"></div>
</div>
<script src="js/app.js"></script>
<script src="pages/employee/employeeController.js"></script>
<script src="pages/project/projectController.js"></script>
<script src="pages/report/reportController.js"></script>
<script src="pages/report/timeSheetReportController.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -57,7 +57,7 @@ angular.module("myApp", ["ui.router"]).config(function ($stateProvider, $urlRout ...@@ -57,7 +57,7 @@ angular.module("myApp", ["ui.router"]).config(function ($stateProvider, $urlRout
} }
}) })
.state("report", { .state("report", {
parent: 'layout1', parent: 'layout3',
url: "/report", url: "/report",
views: { views: {
"content": { "content": {
...@@ -67,15 +67,16 @@ angular.module("myApp", ["ui.router"]).config(function ($stateProvider, $urlRout ...@@ -67,15 +67,16 @@ angular.module("myApp", ["ui.router"]).config(function ($stateProvider, $urlRout
} }
}) })
.state("testlayout2", { .state("timeSheet", {
parent: 'layout2', parent: 'layout3',
url: "/testttt", url: "/timeSheet",
views: { views: {
"content": { "content": {
templateUrl: "pages/testlayout/testlayout.html", templateUrl: "pages/report/detailReport.html",
controller: "testlayoutController" controller: "timeSheetReportController"
} }
} }
}) })
}); });
<!-- header -->
<nav class="navbar navbar-expand navbar-dark bg-dark static-top"> <body>
<a class="navbar-brand mr-1" href="index.html">Trang Quản Trị</a> <div>
<!-- Navbar Search --> <div ui-view="content"></div>
<form class="d-none d-md-inline-block form-inline ml-auto mr-0 mr-md-3 my-2 my-md-0">
</form>
<!-- Navbar -->
<ul class="navbar-nav ml-auto ml-md-0">
<li class="nav-item dropdown no-arrow">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fas fa-user-circle fa-fw"></i>Admin
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="userDropdown">
<a class="dropdown-item" href="#">Profile</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">Logout</a>
</div>
</li>
</ul>
</nav>
<!--end header -->
<div id="wrapper">
<!-- menu -->
<!-- Sidebar -->
<ul class="sidebar navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="pagesDropdown" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fas fa-fw fa-folder"></i>
<span>Quản Trị Văn Phòng</span>
</a>
<div class="dropdown-menu" aria-labelledby="pagesDropdown">
<h6 class="dropdown-header">Quản Trị</h6>
<a class="dropdown-item" ui-sref="project">Dự Án</a>
<a class="dropdown-item" ui-sref="employees">Nhân Viên</a>
<a class="dropdown-item" href="#">Báo Cáo</a>
<a class="dropdown-item" href="#">Tin Tức</a>
<div class="dropdown-divider"></div>
<h6 class="dropdown-header">Báo Cáo</h6>
<a class="dropdown-item" href="#">Xin Phép</a>
<a class="dropdown-item" href="#">Time Sheet</a>
<a class="dropdown-item" href="#">Quản lý Issuses</a>
</div> </div>
</li> </body>
</ul>
<!-- end menu -->
<div class="container-fluid">
<!-- Content -->
<div ui-view="content">
</div>
<!-- footer -->
</div>
</div>
<!-- Footer -->
<footer class="py-5 bg-dark">
<div class="container">
<p class="m-0 text-center text-white">ps: Mock 1</p>
</div>
<!-- /.container -->
</footer>
<!--end footer -->
\ No newline at end of file
<div ng-repeat="a in timeSheets">
{{a.id}}
</div>
\ No newline at end of file
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-10">
<div> <div>
<legend>Report List</legend> <legend>Báo Cáo</legend>
</div> </div>
<div>
<table class="table">
<thead>
<tr>
<tr>
<td colspan="12">Danh Sách Dự án (Đang được triển khai)</td>
</tr>
<th>ID</th>
<th>Tên dự án</th>
<th>Mô tả</th>
<th>Thời gian bắt đầu</th>
<th>Thời gian kết thúc</th>
<th>Trạng thái</th>
<th colspan="2">Menu</th>
</tr>
</thead>
<tbody>
<tr class="vide" data-ng-repeat="pro in projects">
<td>{{$index + 1}}</td>
<td>{{pro.name}}</td>
<td>{{pro.descriptions}}</td>
<td>{{pro.startDate}}</td>
<td>{{pro.endDate}}</td>
<td>{{pro.status}}</td>
<td><a ui-sref="timeSheet" ng-click="timeSheetList(pro);">Detail</a>
</td>
</tr>
</tbody>
</table>
</div>
</div> </div>
</div> </div>
......
angular.module('myApp').controller('reportController' , function ($scope , $http) { angular.module('myApp').controller('reportController' , function ($scope , $http) {
$scope.request = {
"currentDate": ""
};
$http({ $http({
method: 'GET', method: 'GET',
url:"http://localhost:8081/admin/report/project/all" url:"http://localhost:8081/admin/report/project"
}).then(function successCallback(response) { }).then(function successCallback(response) {
console.log(response); console.log(response);
$scope.projects = response.data;
}, function errorCallback(response) {
console.log(response)
});
$scope.timeSheetList = function(pro) {
var date = new Date();
$scope.request.currentDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+pro.id+"/timeSheet/"+$scope.request.currentDate
$scope.employess=response.data; }).then(function successCallback(response) {
console.log(response);
$scope.sheets= response.data;
console.log($scope.sheets);
}, function errorCallback(response) { }, function errorCallback(response) {
console.log(response) console.log(response)
}); });
}
}); });
\ No newline at end of file
angular.module('myApp').controller('timeSheetReportController' , function ($scope , $http) {
$scope.request = {
"currentDate": ""
};
$scope.timeSheetList = function(pro) {
var date = new Date();
$scope.request.currentDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+pro.id+"/timeSheet/"+$scope.request.currentDate
}).then(function successCallback(response) {
console.log(response);
$scope.timeSheets= response.data;
console.log($scope.timeSheets);
}, function errorCallback(response) {
console.log(response)
});
}
});
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