diff --git a/app-constants.js b/app-constants.js index 2c232275..a09f57aa 100644 --- a/app-constants.js +++ b/app-constants.js @@ -84,6 +84,15 @@ const ChallengeStatus = { COMPLETED: 'Completed' } +const PaymentStatus = { + PENDING: 'pending', + IN_PROGRESS: 'in-progress', + PARTIALLY_COMPLETED: 'partially-completed', + COMPLETED: 'completed', + FAILED: 'failed', + NO_DAYS: 'no-days' +} + const WorkPeriodPaymentStatus = { COMPLETED: 'completed', SCHEDULED: 'scheduled', @@ -92,6 +101,11 @@ const WorkPeriodPaymentStatus = { CANCELLED: 'cancelled' } +const WorkPeriodPaymentUpdateStatus = { + SCHEDULED: 'scheduled', + CANCELLED: 'cancelled' +} + const PaymentProcessingSwitch = { ON: 'ON', OFF: 'OFF' @@ -112,7 +126,9 @@ module.exports = { Scopes, Interviews, ChallengeStatus, + PaymentStatus, WorkPeriodPaymentStatus, + WorkPeriodPaymentUpdateStatus, PaymentSchedulerStatus, PaymentProcessingSwitch } diff --git a/data/demo-data.json b/data/demo-data.json index 19f5f8ef..ce9f2456 100644 --- a/data/demo-data.json +++ b/data/demo-data.json @@ -149,6 +149,13 @@ ], "status": "closed", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "fe38eed1-af73-41fd-85a2-ac4da1ff09a3", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-03-19T08:11:26.966Z", @@ -171,6 +178,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "71c5e6a8-51d9-4fb5-91ce-d974642531af", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-05-27T06:28:58.039Z", @@ -191,6 +205,13 @@ "skills": [], "status": "assigned", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2020-12-14T12:41:14.323Z", @@ -214,6 +235,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-05-13T08:51:26.517Z", @@ -236,6 +264,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "077fd578-7463-457f-b6ef-22c02178d7f5", "updatedBy": null, "createdAt": "2021-02-21T09:26:04.620Z", @@ -261,6 +296,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": "077fd578-7463-457f-b6ef-22c02178d7f5", "createdAt": "2021-02-04T10:25:20.358Z", @@ -281,6 +323,13 @@ "skills": [], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "0bcb0d86-09bb-410a-b2b1-fba90d1a7699", "updatedBy": "0bcb0d86-09bb-410a-b2b1-fba90d1a7699", "createdAt": "2021-01-31T20:29:34.581Z", @@ -306,6 +355,13 @@ ], "status": "in-review", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": "077fd578-7463-457f-b6ef-22c02178d7f5", "createdAt": "2021-01-11T08:29:29.153Z", @@ -328,6 +384,13 @@ ], "status": "in-review", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "3f64739e-10bf-42ca-8314-8aea0245cd0f", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-04-30T07:56:22.940Z", @@ -353,6 +416,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": null, "createdAt": "2021-01-07T19:42:10.255Z", @@ -388,6 +458,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": null, "createdAt": "2020-12-08T15:56:18.707Z", @@ -415,6 +492,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": null, "createdAt": "2021-01-12T08:57:01.987Z", @@ -437,6 +521,13 @@ ], "status": "in-review", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "fe38eed1-af73-41fd-85a2-ac4da1ff09a3", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-05-25T11:03:00.164Z", @@ -459,6 +550,13 @@ ], "status": "in-review", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "3f64739e-10bf-42ca-8314-8aea0245cd0f", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2021-05-01T09:43:13.357Z", @@ -497,6 +595,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": null, "createdAt": "2020-12-07T09:30:37.470Z", @@ -522,6 +627,13 @@ ], "status": "cancelled", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", "createdAt": "2020-12-24T06:48:56.943Z", @@ -544,6 +656,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": null, "createdAt": "2020-11-20T05:30:03.014Z", @@ -569,6 +688,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "updatedBy": null, "createdAt": "2020-12-08T13:50:26.805Z", @@ -594,6 +720,13 @@ ], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "71c5e6a8-51d9-4fb5-91ce-d974642531af", "updatedBy": null, "createdAt": "2021-02-18T09:43:11.985Z", @@ -614,6 +747,13 @@ "skills": [], "status": "sourcing", "isApplicationPageActive": false, + "minSalary": null, + "maxSalary": null, + "hoursPerWeek": null, + "jobLocation": null, + "jobTimezone": null, + "currency": null, + "roleIds": null, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": "077fd578-7463-457f-b6ef-22c02178d7f5", "createdAt": "2021-01-25T10:07:56.847Z", @@ -1217,1448 +1357,1291 @@ ], "ResourceBooking": [ { - "id": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "id": "d6103727-6615-4168-8169-0485577bfb3f", "projectId": 111, - "userId": "05e988b7-7d54-4c10-ada1-1a04870a88a8", + "userId": "bef43122-426b-4b2b-acdd-9b5b3bd1c0bf", "jobId": "a8adb1f8-a6ee-48b1-8661-33bd851b726e", "status": "placed", - "startDate": "2020-09-27", - "endDate": "2020-10-27", + "startDate": "2021-03-27", + "endDate": "2021-04-27", "memberRate": 13.23, "customerRate": 13, "rateType": "hourly", "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:25:46.728Z", - "updatedAt": "2021-05-09T21:25:46.728Z", + "createdAt": "2021-05-09T21:27:11.914Z", + "updatedAt": "2021-05-09T21:27:11.914Z", "workPeriods": [ { - "id": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", - "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", - "userHandle": "sachin-wipro", + "id": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", "projectId": 111, - "startDate": "2020-09-27", - "endDate": "2020-10-03", - "daysWorked": 4, - "memberRate": 27.06, - "customerRate": 13.13, - "paymentStatus": "partially-completed", + "startDate": "2021-04-18", + "endDate": "2021-04-24", + "daysWorked": 2, + "daysPaid": 2, + "paymentTotal": 9.13, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:47.813Z", - "updatedAt": "2021-05-09T21:45:32.659Z", + "createdAt": "2021-05-09T21:27:12.746Z", + "updatedAt": "2021-05-09T21:47:44.291Z", "payments": [ { - "id": "1c682ea9-ba63-4fcc-b00c-049d2458d3ac", - "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 57.79, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:35.726Z", - "updatedAt": "2021-05-09T21:31:35.726Z" - }, - { - "id": "14b266c6-e76a-4042-b439-74fe3e42c90f", - "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", + "id": "dfc9bed6-78f2-407e-a7e4-abea9a3d3b46", + "workPeriodId": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 417.42, + "memberRate": 22.82, + "customerRate": 4.07, + "days": 2, + "amount": 9.13, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:31:38.183Z", - "updatedAt": "2021-05-09T21:31:38.183Z" + "createdAt": "2021-05-09T21:32:27.398Z", + "updatedAt": "2021-05-09T21:32:27.398Z" }, { - "id": "03a0163c-472e-4ea6-b8ad-3dc86d418ecf", - "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", + "id": "be4d5099-8b8e-45e2-b6cd-ab1997f57e26", + "workPeriodId": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 210.19, - "status": "cancelled", + "memberRate": 22.82, + "customerRate": 4.07, + "days": 2, + "amount": 9.13, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:31:36.932Z", - "updatedAt": "2021-05-09T21:31:36.932Z" + "createdAt": "2021-05-09T21:32:26.174Z", + "updatedAt": "2021-05-09T21:32:26.174Z" } ] }, { - "id": "e8346d7b-4ada-428d-a768-c2989306f63a", - "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", - "userHandle": "sachin-wipro", + "id": "d111a56f-593d-452e-9787-551bea504c92", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", "projectId": 111, - "startDate": "2020-10-18", - "endDate": "2020-10-24", + "startDate": "2021-04-04", + "endDate": "2021-04-10", "daysWorked": 4, - "memberRate": 4.08, - "customerRate": 3.89, - "paymentStatus": "cancelled", + "daysPaid": 3, + "paymentTotal": 13.92, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:47.834Z", - "updatedAt": "2021-05-09T21:45:37.647Z", + "createdAt": "2021-05-09T21:27:12.731Z", + "updatedAt": "2021-05-09T21:48:08.381Z", "payments": [ { - "id": "cc235aee-0911-4869-bb49-911507bb31e7", - "workPeriodId": "e8346d7b-4ada-428d-a768-c2989306f63a", + "id": "abb79afc-a370-4625-a067-a3b57c9b4700", + "workPeriodId": "d111a56f-593d-452e-9787-551bea504c92", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, - "status": "cancelled", + "memberRate": 23.2, + "customerRate": 30.71, + "days": 2, + "amount": 9.28, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:26.807Z", - "updatedAt": "2021-05-09T21:34:26.807Z" + "createdAt": "2021-05-09T21:34:10.371Z", + "updatedAt": "2021-05-09T21:34:10.371Z" }, { - "id": "e8f3d379-f5a0-47f6-b37b-cae24f5909e9", - "workPeriodId": "e8346d7b-4ada-428d-a768-c2989306f63a", + "id": "fa9bd31c-6c83-4ee4-9d45-a833cfe821f5", + "workPeriodId": "d111a56f-593d-452e-9787-551bea504c92", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, + "memberRate": 23.2, + "customerRate": 30.71, + "days": 1, + "amount": 4.64, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:22.403Z", - "updatedAt": "2021-05-09T21:34:22.403Z" + "createdAt": "2021-05-09T21:34:11.662Z", + "updatedAt": "2021-05-09T21:34:11.662Z" } ] }, { - "id": "a3bbd01d-535d-4f02-8524-0d61395b84e9", - "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", - "userHandle": "sachin-wipro", + "id": "061f31fb-4f8c-462f-92c2-e5d275c45fde", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", "projectId": 111, - "startDate": "2020-10-25", - "endDate": "2020-10-31", - "daysWorked": 3, - "memberRate": 15.61, - "customerRate": 9.76, - "paymentStatus": "pending", + "startDate": "2021-03-28", + "endDate": "2021-04-03", + "daysWorked": 2, + "daysPaid": 2, + "paymentTotal": 3.24, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:47.824Z", - "updatedAt": "2021-05-09T21:45:48.727Z", + "createdAt": "2021-05-09T21:27:12.733Z", + "updatedAt": "2021-05-09T21:47:38.022Z", "payments": [ { - "id": "7c27346e-a23f-46f3-b4d5-88a323fd437d", - "workPeriodId": "a3bbd01d-535d-4f02-8524-0d61395b84e9", + "id": "3770680c-8045-43d4-8baf-cb7b3b714d39", + "workPeriodId": "061f31fb-4f8c-462f-92c2-e5d275c45fde", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 8.09, + "customerRate": 22.15, + "days": 2, + "amount": 3.24, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:30:42.711Z", + "updatedAt": "2021-05-09T21:30:42.711Z" + }, + { + "id": "c658d66e-86e1-49c7-8051-2b9a017935ad", + "workPeriodId": "061f31fb-4f8c-462f-92c2-e5d275c45fde", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 210.19, + "memberRate": 8.09, + "customerRate": 22.15, + "days": 2, + "amount": 3.24, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:46.507Z", - "updatedAt": "2021-05-09T21:33:46.507Z" + "createdAt": "2021-05-09T21:30:41.304Z", + "updatedAt": "2021-05-09T21:30:41.304Z" } ] }, { - "id": "fa030947-2f2f-4976-82ea-0a22ee96635a", - "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", - "userHandle": "sachin-wipro", + "id": "6adbf80c-43aa-41ad-b7db-544dc76f9b1c", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", "projectId": 111, - "startDate": "2020-10-11", - "endDate": "2020-10-17", + "startDate": "2021-04-25", + "endDate": "2021-05-01", + "daysWorked": 0, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "no-days", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:27:12.794Z", + "updatedAt": "2021-05-09T21:47:51.348Z", + "payments": [] + }, + { + "id": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", + "projectId": 111, + "startDate": "2021-03-21", + "endDate": "2021-03-27", "daysWorked": 4, - "memberRate": 10.82, - "customerRate": 30.71, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:47.815Z", - "updatedAt": "2021-05-09T21:45:41.810Z", + "createdAt": "2021-05-09T21:27:12.737Z", + "updatedAt": "2021-05-09T21:47:58.216Z", "payments": [ { - "id": "2a4d1488-d27b-4bc8-af68-1a2b893774de", - "workPeriodId": "fa030947-2f2f-4976-82ea-0a22ee96635a", + "id": "ea3bdc7a-7c14-4ac1-955d-2540589fcfa6", + "workPeriodId": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 477.97, - "status": "completed", + "memberRate": 22.85, + "customerRate": 29.89, + "days": 2, + "amount": 9.14, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:31.474Z", - "updatedAt": "2021-05-09T21:34:31.474Z" + "createdAt": "2021-05-09T21:33:00.899Z", + "updatedAt": "2021-05-09T21:33:00.899Z" + }, + { + "id": "3bf29da2-581c-4f9c-8b0f-ff3c876848a0", + "workPeriodId": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 22.85, + "customerRate": 29.89, + "days": 1, + "amount": 4.57, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:32:59.500Z", + "updatedAt": "2021-05-09T21:32:59.500Z" } ] }, { - "id": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", - "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", - "userHandle": "sachin-wipro", + "id": "0c825dec-6e7b-4dde-943a-f3f8354219cc", + "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", + "userHandle": "testcat", "projectId": 111, - "startDate": "2020-10-04", - "endDate": "2020-10-10", + "startDate": "2021-04-11", + "endDate": "2021-04-17", "daysWorked": 4, - "memberRate": 16.71, - "customerRate": 24.11, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:47.841Z", - "updatedAt": "2021-05-09T21:45:27.504Z", + "createdAt": "2021-05-09T21:27:12.783Z", + "updatedAt": "2021-05-09T21:48:03.740Z", "payments": [ { - "id": "40e862a0-8772-4587-88b4-23acff8eb2e0", - "workPeriodId": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", + "id": "78641310-ad51-40a3-a0fd-fdd8d15455b9", + "workPeriodId": "0c825dec-6e7b-4dde-943a-f3f8354219cc", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 417.42, + "memberRate": 5.59, + "customerRate": 30.54, + "days": 3, + "amount": 3.35, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:40.091Z", - "updatedAt": "2021-05-09T21:32:40.091Z" + "createdAt": "2021-05-09T21:30:50.460Z", + "updatedAt": "2021-05-09T21:30:50.460Z" }, { - "id": "fcd10a26-3548-4f9b-9e2b-20397d057800", - "workPeriodId": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", + "id": "5bdd5c22-d9b7-428c-b084-d0950a18bc37", + "workPeriodId": "0c825dec-6e7b-4dde-943a-f3f8354219cc", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, + "memberRate": 5.59, + "customerRate": 30.54, + "days": 4, + "amount": 4.47, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:41.381Z", - "updatedAt": "2021-05-09T21:32:41.381Z" + "createdAt": "2021-05-09T21:30:49.123Z", + "updatedAt": "2021-05-09T21:30:49.123Z" } ] } ] }, { - "id": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "id": "c0a12936-77ef-46fa-8c75-6996339e79f6", "projectId": 111, - "userId": "6d0509c7-5f12-4d84-9a19-8e80ef7ddd66", + "userId": "05e988b7-7d54-4c10-ada1-1a04870a88a8", "jobId": "a8adb1f8-a6ee-48b1-8661-33bd851b726e", - "status": "closed", - "startDate": "2021-03-27", - "endDate": "2021-04-27", + "status": "placed", + "startDate": "2020-09-27", + "endDate": "2020-10-27", "memberRate": 13.23, "customerRate": 13, "rateType": "hourly", "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:26:16.403Z", - "updatedAt": "2021-05-09T21:26:16.403Z", + "createdAt": "2021-05-09T21:25:46.728Z", + "updatedAt": "2021-05-09T21:25:46.728Z", "workPeriods": [ { - "id": "b0758857-0221-47a5-a444-e263e5d9e1cf", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", + "id": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", + "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "userHandle": "sachin-wipro", "projectId": 111, - "startDate": "2021-03-21", - "endDate": "2021-03-27", - "daysWorked": 5, - "memberRate": 27.06, - "customerRate": 22.77, - "paymentStatus": "pending", + "startDate": "2020-09-27", + "endDate": "2020-10-03", + "daysWorked": 4, + "daysPaid": 3, + "paymentTotal": 16.24, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.187Z", - "updatedAt": "2021-05-09T21:46:59.354Z", + "createdAt": "2021-05-09T21:25:47.813Z", + "updatedAt": "2021-05-09T21:45:32.659Z", "payments": [ { - "id": "9785ae89-05dc-4bcc-a030-52bd0e681d41", - "workPeriodId": "b0758857-0221-47a5-a444-e263e5d9e1cf", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 168.54, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:01.410Z", - "updatedAt": "2021-05-09T21:34:01.410Z" - }, - { - "id": "c8be508d-2eb5-4712-8bd7-1b28e870abc2", - "workPeriodId": "b0758857-0221-47a5-a444-e263e5d9e1cf", + "id": "1c682ea9-ba63-4fcc-b00c-049d2458d3ac", + "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 448.51, + "memberRate": 27.06, + "customerRate": 13.13, + "days": 3, + "amount": 16.24, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:02.733Z", - "updatedAt": "2021-05-09T21:34:02.733Z" - } - ] - }, - { - "id": "176db0d0-474f-4590-831a-547d596c01b4", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", - "projectId": 111, - "startDate": "2021-03-28", - "endDate": "2021-04-03", - "daysWorked": 5, - "memberRate": 6.11, - "customerRate": 14.63, - "paymentStatus": "cancelled", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.168Z", - "updatedAt": "2021-05-09T21:47:05.373Z", - "payments": [ + "createdAt": "2021-05-09T21:31:35.726Z", + "updatedAt": "2021-05-09T21:31:35.726Z" + }, { - "id": "3ed31706-0e99-4084-81f4-b126a1a68db6", - "workPeriodId": "176db0d0-474f-4590-831a-547d596c01b4", + "id": "14b266c6-e76a-4042-b439-74fe3e42c90f", + "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 144.16, - "status": "completed", + "memberRate": 27.06, + "customerRate": 13.13, + "days": 4, + "amount": 21.65, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:31:17.193Z", - "updatedAt": "2021-05-09T21:31:17.193Z" + "createdAt": "2021-05-09T21:31:38.183Z", + "updatedAt": "2021-05-09T21:31:38.183Z" }, { - "id": "c3b71f96-7680-459b-82b2-f6eb3c3f6c8f", - "workPeriodId": "176db0d0-474f-4590-831a-547d596c01b4", + "id": "03a0163c-472e-4ea6-b8ad-3dc86d418ecf", + "workPeriodId": "1cdd1505-f6f4-40f6-acce-da7a4578dab5", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 119.32, - "status": "completed", + "memberRate": 27.06, + "customerRate": 13.13, + "days": 4, + "amount": 21.65, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:31:18.342Z", - "updatedAt": "2021-05-09T21:31:18.342Z" + "createdAt": "2021-05-09T21:31:36.932Z", + "updatedAt": "2021-05-09T21:31:36.932Z" } ] }, { - "id": "5a174833-cb08-49f5-b077-cffb8e60ca01", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", + "id": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", + "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "userHandle": "sachin-wipro", "projectId": 111, - "startDate": "2021-04-04", - "endDate": "2021-04-10", - "daysWorked": 5, - "memberRate": 4.91, - "customerRate": 24.11, + "startDate": "2020-10-04", + "endDate": "2020-10-10", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.165Z", - "updatedAt": "2021-05-09T21:47:12.015Z", + "createdAt": "2021-05-09T21:25:47.841Z", + "updatedAt": "2021-05-09T21:45:27.504Z", "payments": [ { - "id": "663f11df-7832-431a-a46e-ad8c890ae52b", - "workPeriodId": "5a174833-cb08-49f5-b077-cffb8e60ca01", + "id": "40e862a0-8772-4587-88b4-23acff8eb2e0", + "workPeriodId": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 55.6, + "memberRate": 16.71, + "customerRate": 24.11, + "days": 4, + "amount": 13.37, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:32.606Z", - "updatedAt": "2021-05-09T21:32:32.606Z" + "createdAt": "2021-05-09T21:32:40.091Z", + "updatedAt": "2021-05-09T21:32:40.091Z" }, { - "id": "69445cbf-6d94-49a5-b2aa-65459ec78594", - "workPeriodId": "5a174833-cb08-49f5-b077-cffb8e60ca01", + "id": "fcd10a26-3548-4f9b-9e2b-20397d057800", + "workPeriodId": "61c1e7e3-5e0a-4892-9099-872bc4c11a22", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 417.42, - "status": "completed", + "memberRate": 16.71, + "customerRate": 24.11, + "days": 2, + "amount": 6.68, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:33.664Z", - "updatedAt": "2021-05-09T21:32:33.664Z" + "createdAt": "2021-05-09T21:32:41.381Z", + "updatedAt": "2021-05-09T21:32:41.381Z" } ] }, { - "id": "8c9db4fd-78ad-4e59-acba-462487b74c3a", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", + "id": "e8346d7b-4ada-428d-a768-c2989306f63a", + "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "userHandle": "sachin-wipro", "projectId": 111, - "startDate": "2021-04-18", - "endDate": "2021-04-24", - "daysWorked": 2, - "memberRate": 27.46, - "customerRate": 25.57, + "startDate": "2020-10-18", + "endDate": "2020-10-24", + "daysWorked": 4, + "daysPaid": 4, + "paymentTotal": 3.26, "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.200Z", - "updatedAt": "2021-05-09T21:47:25.687Z", + "createdAt": "2021-05-09T21:25:47.834Z", + "updatedAt": "2021-05-09T21:45:37.647Z", "payments": [ { - "id": "f65930b7-d61d-4923-bdab-54848661f151", - "workPeriodId": "8c9db4fd-78ad-4e59-acba-462487b74c3a", + "id": "cc235aee-0911-4869-bb49-911507bb31e7", + "workPeriodId": "e8346d7b-4ada-428d-a768-c2989306f63a", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 57.79, - "status": "completed", + "memberRate": 4.08, + "customerRate": 3.89, + "days": 4, + "amount": 3.26, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:06.108Z", - "updatedAt": "2021-05-09T21:33:06.108Z" + "createdAt": "2021-05-09T21:34:26.807Z", + "updatedAt": "2021-05-09T21:34:26.807Z" }, { - "id": "8eb8fc37-5ab0-4480-8806-3d3c57ab38e1", - "workPeriodId": "8c9db4fd-78ad-4e59-acba-462487b74c3a", + "id": "e8f3d379-f5a0-47f6-b37b-cae24f5909e9", + "workPeriodId": "e8346d7b-4ada-428d-a768-c2989306f63a", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 496.54, + "memberRate": 4.08, + "customerRate": 3.89, + "days": 4, + "amount": 3.26, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:07.419Z", - "updatedAt": "2021-05-09T21:33:07.419Z" + "createdAt": "2021-05-09T21:34:22.403Z", + "updatedAt": "2021-05-09T21:34:22.403Z" } ] }, { - "id": "18881107-cc17-4087-9b2b-a74f04187f73", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", + "id": "a3bbd01d-535d-4f02-8524-0d61395b84e9", + "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "userHandle": "sachin-wipro", "projectId": 111, - "startDate": "2021-04-11", - "endDate": "2021-04-17", - "daysWorked": 2, - "memberRate": 22.82, - "customerRate": 2.32, - "paymentStatus": "pending", + "startDate": "2020-10-25", + "endDate": "2020-10-31", + "daysWorked": 3, + "daysPaid": 3, + "paymentTotal": 9.37, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.202Z", - "updatedAt": "2021-05-09T21:47:30.586Z", + "createdAt": "2021-05-09T21:25:47.824Z", + "updatedAt": "2021-05-09T21:45:48.727Z", "payments": [ { - "id": "dd8f5c08-d6a1-4fd2-b6bd-85fb6425d13d", - "workPeriodId": "18881107-cc17-4087-9b2b-a74f04187f73", + "id": "7c27346e-a23f-46f3-b4d5-88a323fd437d", + "workPeriodId": "a3bbd01d-535d-4f02-8524-0d61395b84e9", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 372.18, + "memberRate": 15.61, + "customerRate": 9.76, + "days": 3, + "amount": 9.37, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:31:25.690Z", - "updatedAt": "2021-05-09T21:31:25.690Z" - }, - { - "id": "c456755e-0432-4656-848b-64f9c5dc8f25", - "workPeriodId": "18881107-cc17-4087-9b2b-a74f04187f73", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 32.92, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:27.102Z", - "updatedAt": "2021-05-09T21:31:27.102Z" + "createdAt": "2021-05-09T21:33:46.507Z", + "updatedAt": "2021-05-09T21:33:46.507Z" } ] }, { - "id": "9b455e21-e186-4622-923a-f115d23549d1", - "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", - "userHandle": "aaaa", + "id": "fa030947-2f2f-4976-82ea-0a22ee96635a", + "resourceBookingId": "c0a12936-77ef-46fa-8c75-6996339e79f6", + "userHandle": "sachin-wipro", "projectId": 111, - "startDate": "2021-04-25", - "endDate": "2021-05-01", - "daysWorked": 2, - "memberRate": 22.82, - "customerRate": 10.1, - "paymentStatus": "cancelled", + "startDate": "2020-10-11", + "endDate": "2020-10-17", + "daysWorked": 4, + "daysPaid": 3, + "paymentTotal": 6.49, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:17.161Z", - "updatedAt": "2021-05-09T21:47:19.034Z", + "createdAt": "2021-05-09T21:25:47.815Z", + "updatedAt": "2021-05-09T21:45:41.810Z", "payments": [ { - "id": "6d59a499-44e3-41e2-8368-5baee86dd8ab", - "workPeriodId": "9b455e21-e186-4622-923a-f115d23549d1", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 57.79, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:33:28.108Z", - "updatedAt": "2021-05-09T21:33:28.108Z" - }, - { - "id": "10584b23-5ab2-44e2-a927-e020c08e4f84", - "workPeriodId": "9b455e21-e186-4622-923a-f115d23549d1", + "id": "2a4d1488-d27b-4bc8-af68-1a2b893774de", + "workPeriodId": "fa030947-2f2f-4976-82ea-0a22ee96635a", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 293.79, - "status": "cancelled", + "memberRate": 10.82, + "customerRate": 30.71, + "days": 3, + "amount": 6.49, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:29.348Z", - "updatedAt": "2021-05-09T21:33:29.348Z" + "createdAt": "2021-05-09T21:34:31.474Z", + "updatedAt": "2021-05-09T21:34:31.474Z" } ] } ] }, { - "id": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "id": "314084fc-e854-4b62-8901-03ea9bbf2ffa", "projectId": 111, - "userId": "a2ffdeed-704d-4cf7-b70a-93fcf61de598", + "userId": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "jobId": "b28f4e67-324f-4ada-a23a-c27499053ed4", - "status": "closed", - "startDate": "2021-05-10", - "endDate": "2021-06-15", + "status": "cancelled", + "startDate": "2020-12-27", + "endDate": "2021-01-27", "memberRate": 13.23, "customerRate": 13, "rateType": "hourly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": null, - "createdAt": "2021-05-09T21:27:15.093Z", - "updatedAt": "2021-05-09T21:27:15.093Z", + "createdAt": "2021-05-09T21:25:50.450Z", + "updatedAt": "2021-05-09T21:25:50.450Z", "workPeriods": [ { - "id": "ac0ae325-8d77-4a73-bd85-5361165801cd", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", + "id": "32b977c9-386a-4159-a1c3-08169ee12f6e", + "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", + "userHandle": "pshah_manager", "projectId": 111, - "startDate": "2021-06-06", - "endDate": "2021-06-12", + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 3, - "memberRate": 13.74, - "customerRate": 14.57, - "paymentStatus": "pending", + "daysPaid": 2, + "paymentTotal": 5.5, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:15.951Z", - "updatedAt": "2021-05-09T21:46:12.086Z", + "createdAt": "2021-05-09T21:25:51.435Z", + "updatedAt": "2021-05-09T21:45:08.968Z", "payments": [ { - "id": "05d09e2b-02a0-4d33-b6db-0f69a98154c6", - "workPeriodId": "ac0ae325-8d77-4a73-bd85-5361165801cd", + "id": "99e4bffb-90f8-411e-9a49-fc7779bd2c07", + "workPeriodId": "32b977c9-386a-4159-a1c3-08169ee12f6e", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 374.34, + "memberRate": 13.74, + "customerRate": 22.37, + "days": 2, + "amount": 5.5, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:53.131Z", - "updatedAt": "2021-05-09T21:33:53.131Z" + "createdAt": "2021-05-09T21:31:57.470Z", + "updatedAt": "2021-05-09T21:31:57.470Z" }, { - "id": "00640d2d-8330-445a-b022-aa687033b2b3", - "workPeriodId": "ac0ae325-8d77-4a73-bd85-5361165801cd", + "id": "fa4c7e24-470f-4aef-a269-59b7e0b2bc05", + "workPeriodId": "32b977c9-386a-4159-a1c3-08169ee12f6e", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 275.73, - "status": "completed", + "memberRate": 13.74, + "customerRate": 22.37, + "days": 3, + "amount": 8.24, + "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:54.315Z", - "updatedAt": "2021-05-09T21:33:54.315Z" + "createdAt": "2021-05-09T21:31:56.152Z", + "updatedAt": "2021-05-09T21:31:56.152Z" } ] }, { - "id": "9d914249-82f2-422e-9ba6-c281da411266", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", - "projectId": 111, - "startDate": "2021-05-16", - "endDate": "2021-05-22", + "id": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", + "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", + "userHandle": "pshah_manager", + "projectId": 111, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": null, - "customerRate": 9.46, - "paymentStatus": "cancelled", + "daysPaid": 5, + "paymentTotal": 24.35, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:16.017Z", - "updatedAt": "2021-05-09T21:46:21.053Z", + "createdAt": "2021-05-09T21:25:51.398Z", + "updatedAt": "2021-05-09T21:45:01.792Z", "payments": [ { - "id": "6036c7cc-b180-4f50-8163-5fd2541c66b5", - "workPeriodId": "9d914249-82f2-422e-9ba6-c281da411266", + "id": "1d2b92e8-194f-477a-97f8-e104056e6b10", + "workPeriodId": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, + "memberRate": 24.35, + "customerRate": 4.79, + "days": 2, + "amount": 9.74, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:40.984Z", - "updatedAt": "2021-05-09T21:33:40.984Z" - } - ] - }, - { - "id": "4ae26d58-1910-4ace-9f09-4c62c8df6031", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", - "projectId": 111, - "startDate": "2021-06-13", - "endDate": "2021-06-19", - "daysWorked": 3, - "memberRate": 15.61, - "customerRate": 2.1, - "paymentStatus": "partially-completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:15.972Z", - "updatedAt": "2021-05-09T21:45:57.739Z", - "payments": [ + "createdAt": "2021-05-09T21:31:09.459Z", + "updatedAt": "2021-05-09T21:31:09.459Z" + }, { - "id": "e623d9c7-caa9-4e58-83f1-44741b1169f8", - "workPeriodId": "4ae26d58-1910-4ace-9f09-4c62c8df6031", + "id": "381af41e-6b0a-49fe-987f-1bcb03fda571", + "workPeriodId": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 293.79, + "memberRate": 24.35, + "customerRate": 4.79, + "days": 3, + "amount": 14.61, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:19.371Z", - "updatedAt": "2021-05-09T21:32:19.371Z" + "createdAt": "2021-05-09T21:31:08.119Z", + "updatedAt": "2021-05-09T21:31:08.119Z" } ] }, { - "id": "94dde794-b730-4e05-8ea6-dcc5b541d43e", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", + "id": "0cf74043-b432-41a5-99d9-83420a6ad8ef", + "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", + "userHandle": "pshah_manager", "projectId": 111, - "startDate": "2021-05-23", - "endDate": "2021-05-29", - "daysWorked": 3, - "memberRate": 10.82, - "customerRate": 29.89, - "paymentStatus": "partially-completed", + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 2, + "daysPaid": 2, + "paymentTotal": 5.5, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:15.991Z", - "updatedAt": "2021-05-09T21:46:02.038Z", + "createdAt": "2021-05-09T21:25:51.419Z", + "updatedAt": "2021-05-09T21:44:51.852Z", "payments": [ { - "id": "c7013bf0-17b5-4b15-826b-385fad41caf4", - "workPeriodId": "94dde794-b730-4e05-8ea6-dcc5b541d43e", + "id": "f0f85e56-6bf4-4e1f-a1ef-c31529efe4cd", + "workPeriodId": "0cf74043-b432-41a5-99d9-83420a6ad8ef", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 144.16, + "memberRate": 13.74, + "customerRate": 21.1, + "days": 1, + "amount": 2.75, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:20.680Z", - "updatedAt": "2021-05-09T21:33:20.680Z" + "createdAt": "2021-05-09T21:30:58.017Z", + "updatedAt": "2021-05-09T21:30:58.017Z" }, { - "id": "be9706ac-c6cb-4fff-894b-8719bcf634dc", - "workPeriodId": "94dde794-b730-4e05-8ea6-dcc5b541d43e", + "id": "ef951baa-a007-48db-a658-495c6eeda9bc", + "workPeriodId": "0cf74043-b432-41a5-99d9-83420a6ad8ef", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 275.73, - "status": "cancelled", + "memberRate": 13.74, + "customerRate": 21.1, + "days": 2, + "amount": 5.5, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:33:21.933Z", - "updatedAt": "2021-05-09T21:33:21.933Z" + "createdAt": "2021-05-09T21:30:59.323Z", + "updatedAt": "2021-05-09T21:30:59.323Z" } ] }, { - "id": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", + "id": "e71f17b2-acb4-4c14-a492-8cab071fe2b5", + "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", + "userHandle": "pshah_manager", "projectId": 111, - "startDate": "2021-05-30", - "endDate": "2021-06-05", - "daysWorked": 3, - "memberRate": 29.32, - "customerRate": 29.89, - "paymentStatus": "pending", + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 4, + "daysPaid": 4, + "paymentTotal": 12.49, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:16.013Z", - "updatedAt": "2021-05-09T21:45:53.796Z", + "createdAt": "2021-05-09T21:25:51.383Z", + "updatedAt": "2021-05-09T21:45:22.801Z", "payments": [ { - "id": "6e1a114f-bfac-4ab8-93d6-e47206200540", - "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:40.036Z", - "updatedAt": "2021-05-09T21:34:40.036Z" - }, - { - "id": "10fd3b3e-f5b2-42cc-91d4-54c73c003aae", - "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 477.97, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:37.374Z", - "updatedAt": "2021-05-09T21:34:37.374Z" - }, - { - "id": "fbc2d96f-f6c6-4a4d-b737-14a3564b7f70", - "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 448.51, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:38.700Z", - "updatedAt": "2021-05-09T21:34:38.700Z" - }, - { - "id": "fc577d14-78e8-404c-a17b-ab496e4041d8", - "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "id": "a376dfdc-3330-417b-916d-3a7d4f9ab384", + "workPeriodId": "e71f17b2-acb4-4c14-a492-8cab071fe2b5", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 203.74, + "memberRate": 15.61, + "customerRate": 2.54, + "days": 4, + "amount": 12.49, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:41.520Z", - "updatedAt": "2021-05-09T21:34:41.520Z" + "createdAt": "2021-05-09T21:34:17.363Z", + "updatedAt": "2021-05-09T21:34:17.363Z" } ] }, { - "id": "6a567293-7189-4b14-82c9-57bd3d0eab20", - "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", - "userHandle": "lakshmiaconnmgr", + "id": "028287bf-6999-4fef-bdfa-1229b4e23ac1", + "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", + "userHandle": "pshah_manager", "projectId": 111, - "startDate": "2021-05-09", - "endDate": "2021-05-15", - "daysWorked": 3, - "memberRate": 24.03, - "customerRate": 24.11, - "paymentStatus": "completed", + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:15.959Z", - "updatedAt": "2021-05-09T21:46:07.315Z", + "createdAt": "2021-05-09T21:25:51.432Z", + "updatedAt": "2021-05-09T21:45:16.298Z", "payments": [ { - "id": "e386f5a1-2856-4cc5-8304-1598e5683a0f", - "workPeriodId": "6a567293-7189-4b14-82c9-57bd3d0eab20", + "id": "1cb5129e-8d92-4280-a946-8cb0f5757abc", + "workPeriodId": "028287bf-6999-4fef-bdfa-1229b4e23ac1", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 57.79, + "memberRate": 27.06, + "customerRate": 2.54, + "days": 2, + "amount": 10.82, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:47.852Z", - "updatedAt": "2021-05-09T21:32:47.852Z" + "createdAt": "2021-05-09T21:30:33.549Z", + "updatedAt": "2021-05-09T21:30:33.549Z" + }, + { + "id": "b576f845-7dea-4b56-b0de-6ce15fd2c245", + "workPeriodId": "028287bf-6999-4fef-bdfa-1229b4e23ac1", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 27.06, + "customerRate": 2.54, + "days": 2, + "amount": 10.82, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:30:25.688Z", + "updatedAt": "2021-05-09T21:30:25.688Z" } ] } ] }, { - "id": "d6103727-6615-4168-8169-0485577bfb3f", + "id": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", "projectId": 111, - "userId": "bef43122-426b-4b2b-acdd-9b5b3bd1c0bf", - "jobId": "a8adb1f8-a6ee-48b1-8661-33bd851b726e", + "userId": "dd5adacb-444d-4992-8b7b-0c349be598db", + "jobId": "b28f4e67-324f-4ada-a23a-c27499053ed4", "status": "placed", - "startDate": "2021-03-27", - "endDate": "2021-04-27", + "startDate": "2021-05-10", + "endDate": "2021-06-15", "memberRate": 13.23, "customerRate": 13, "rateType": "hourly", "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": null, - "createdAt": "2021-05-09T21:27:11.914Z", - "updatedAt": "2021-05-09T21:27:11.914Z", + "createdAt": "2021-05-09T21:26:30.065Z", + "updatedAt": "2021-05-09T21:26:30.065Z", "workPeriods": [ { - "id": "d111a56f-593d-452e-9787-551bea504c92", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "28bd80ec-ef91-4516-90d6-6979e6cc341c", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-04-04", - "endDate": "2021-04-10", - "daysWorked": 4, - "memberRate": 23.2, - "customerRate": 30.71, - "paymentStatus": "pending", + "startDate": "2021-05-23", + "endDate": "2021-05-29", + "daysWorked": 5, + "daysPaid": 4, + "paymentTotal": 22.72, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.731Z", - "updatedAt": "2021-05-09T21:48:08.381Z", + "createdAt": "2021-05-09T21:26:30.824Z", + "updatedAt": "2021-05-09T21:46:34.331Z", "payments": [ { - "id": "abb79afc-a370-4625-a067-a3b57c9b4700", - "workPeriodId": "d111a56f-593d-452e-9787-551bea504c92", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 448.51, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:10.371Z", - "updatedAt": "2021-05-09T21:34:10.371Z" - }, - { - "id": "fa9bd31c-6c83-4ee4-9d45-a833cfe821f5", - "workPeriodId": "d111a56f-593d-452e-9787-551bea504c92", + "id": "4892cd43-a132-4ca9-a511-8d10cdc22f5d", + "workPeriodId": "28bd80ec-ef91-4516-90d6-6979e6cc341c", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 271.42, + "memberRate": 28.4, + "customerRate": 12.25, + "days": 4, + "amount": 22.72, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:34:11.662Z", - "updatedAt": "2021-05-09T21:34:11.662Z" + "createdAt": "2021-05-09T21:31:43.808Z", + "updatedAt": "2021-05-09T21:31:43.808Z" } ] }, { - "id": "061f31fb-4f8c-462f-92c2-e5d275c45fde", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "355c7114-753a-4f99-b026-1d1430bf5530", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-03-28", - "endDate": "2021-04-03", - "daysWorked": 2, - "memberRate": 8.09, - "customerRate": 22.15, - "paymentStatus": "pending", + "startDate": "2021-05-16", + "endDate": "2021-05-22", + "daysWorked": 5, + "daysPaid": 4, + "paymentTotal": 7.4, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.733Z", - "updatedAt": "2021-05-09T21:47:38.022Z", + "createdAt": "2021-05-09T21:26:30.865Z", + "updatedAt": "2021-05-09T21:46:39.040Z", "payments": [ { - "id": "3770680c-8045-43d4-8baf-cb7b3b714d39", - "workPeriodId": "061f31fb-4f8c-462f-92c2-e5d275c45fde", + "id": "71b3b7d4-129c-4348-9ead-6f22eafa6db8", + "workPeriodId": "355c7114-753a-4f99-b026-1d1430bf5530", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 477.97, - "status": "cancelled", + "memberRate": 9.26, + "customerRate": 16.44, + "days": 2, + "amount": 3.7, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:30:42.711Z", - "updatedAt": "2021-05-09T21:30:42.711Z" + "createdAt": "2021-05-09T21:32:05.827Z", + "updatedAt": "2021-05-09T21:32:05.827Z" }, { - "id": "c658d66e-86e1-49c7-8051-2b9a017935ad", - "workPeriodId": "061f31fb-4f8c-462f-92c2-e5d275c45fde", + "id": "d0ebcc96-70f2-4716-92d4-74e40af04387", + "workPeriodId": "355c7114-753a-4f99-b026-1d1430bf5530", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 248.38, + "memberRate": 9.26, + "customerRate": 16.44, + "days": 2, + "amount": 3.7, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:30:41.304Z", - "updatedAt": "2021-05-09T21:30:41.304Z" + "createdAt": "2021-05-09T21:32:04.463Z", + "updatedAt": "2021-05-09T21:32:04.463Z" } ] }, { - "id": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "9c024b6a-229a-4b8d-ac03-a53e4e412a73", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-04-18", - "endDate": "2021-04-24", - "daysWorked": 2, - "memberRate": 22.82, - "customerRate": 4.07, - "paymentStatus": "cancelled", + "startDate": "2021-05-09", + "endDate": "2021-05-15", + "daysWorked": 5, + "daysPaid": 5, + "paymentTotal": 5.59, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.746Z", - "updatedAt": "2021-05-09T21:47:44.291Z", + "createdAt": "2021-05-09T21:26:30.813Z", + "updatedAt": "2021-05-09T21:46:53.821Z", "payments": [ { - "id": "dfc9bed6-78f2-407e-a7e4-abea9a3d3b46", - "workPeriodId": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 48.51, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:32:27.398Z", - "updatedAt": "2021-05-09T21:32:27.398Z" - }, - { - "id": "be4d5099-8b8e-45e2-b6cd-ab1997f57e26", - "workPeriodId": "5904b1d9-cb50-4b5d-8103-6741fec2f86b", + "id": "28f285ec-0965-4904-901d-7ae5c5d8e220", + "workPeriodId": "9c024b6a-229a-4b8d-ac03-a53e4e412a73", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 477.97, + "memberRate": 5.59, + "customerRate": 18.55, + "days": 5, + "amount": 5.59, "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:26.174Z", - "updatedAt": "2021-05-09T21:32:26.174Z" + "createdAt": "2021-05-09T21:33:35.441Z", + "updatedAt": "2021-05-09T21:33:35.441Z" } ] }, { - "id": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "48c4b614-6588-46c9-8b4f-54d3175ae47d", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-03-21", - "endDate": "2021-03-27", - "daysWorked": 4, - "memberRate": 22.85, - "customerRate": 29.89, + "startDate": "2021-06-06", + "endDate": "2021-06-12", + "daysWorked": 5, + "daysPaid": 5, + "paymentTotal": 16.02, "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.737Z", - "updatedAt": "2021-05-09T21:47:58.216Z", + "createdAt": "2021-05-09T21:26:30.878Z", + "updatedAt": "2021-05-09T21:46:27.840Z", "payments": [ { - "id": "ea3bdc7a-7c14-4ac1-955d-2540589fcfa6", - "workPeriodId": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 448.51, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:33:00.899Z", - "updatedAt": "2021-05-09T21:33:00.899Z" - }, - { - "id": "3bf29da2-581c-4f9c-8b0f-ff3c876848a0", - "workPeriodId": "6ed56eb5-cadc-45f8-bbdf-3f408948c274", + "id": "e1f9634a-4c3b-4dcd-ad81-3703c807a820", + "workPeriodId": "48c4b614-6588-46c9-8b4f-54d3175ae47d", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 293.79, - "status": "cancelled", + "memberRate": 16.02, + "customerRate": 30.71, + "days": 5, + "amount": 16.02, + "status": "completed", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:59.500Z", - "updatedAt": "2021-05-09T21:32:59.500Z" + "createdAt": "2021-05-09T21:32:12.499Z", + "updatedAt": "2021-05-09T21:32:12.499Z" } ] }, { - "id": "6adbf80c-43aa-41ad-b7db-544dc76f9b1c", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-04-25", - "endDate": "2021-05-01", - "daysWorked": 0, - "memberRate": 29.32, - "customerRate": 22.15, - "paymentStatus": "completed", + "startDate": "2021-06-13", + "endDate": "2021-06-19", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.794Z", - "updatedAt": "2021-05-09T21:47:51.348Z", + "createdAt": "2021-05-09T21:26:30.893Z", + "updatedAt": "2021-05-09T21:46:44.896Z", "payments": [ { - "id": "e85008c3-feff-40ab-bf4c-bc80f0bb5288", - "workPeriodId": "6adbf80c-43aa-41ad-b7db-544dc76f9b1c", + "id": "d36afd1d-1f76-4f2d-b630-69bf85796496", + "workPeriodId": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 1.53, + "customerRate": 2.1, + "days": 5, + "amount": 1.53, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:12.838Z", + "updatedAt": "2021-05-09T21:33:12.838Z" + }, + { + "id": "71750282-0ffe-46ed-b8c2-37e36c148833", + "workPeriodId": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 460.88, + "memberRate": 1.53, + "customerRate": 2.1, + "days": 3, + "amount": 0.92, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:32:53.856Z", - "updatedAt": "2021-05-09T21:32:53.856Z" + "createdAt": "2021-05-09T21:33:14.202Z", + "updatedAt": "2021-05-09T21:33:14.202Z" } ] }, { - "id": "0c825dec-6e7b-4dde-943a-f3f8354219cc", - "resourceBookingId": "d6103727-6615-4168-8169-0485577bfb3f", - "userHandle": "testcat", + "id": "311a692f-18bc-4eb6-a6d0-06cf3dbd1637", + "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", + "userHandle": "amy_admin", "projectId": 111, - "startDate": "2021-04-11", - "endDate": "2021-04-17", - "daysWorked": 4, - "memberRate": 5.59, - "customerRate": 30.54, - "paymentStatus": "partially-completed", + "startDate": "2021-05-30", + "endDate": "2021-06-05", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:27:12.783Z", - "updatedAt": "2021-05-09T21:48:03.740Z", + "createdAt": "2021-05-09T21:26:30.875Z", + "updatedAt": "2021-05-09T21:46:49.092Z", "payments": [ { - "id": "78641310-ad51-40a3-a0fd-fdd8d15455b9", - "workPeriodId": "0c825dec-6e7b-4dde-943a-f3f8354219cc", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 417.42, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:30:50.460Z", - "updatedAt": "2021-05-09T21:30:50.460Z" - }, - { - "id": "5bdd5c22-d9b7-428c-b084-d0950a18bc37", - "workPeriodId": "0c825dec-6e7b-4dde-943a-f3f8354219cc", + "id": "875c7250-50fa-453f-99d0-e76260648cd1", + "workPeriodId": "311a692f-18bc-4eb6-a6d0-06cf3dbd1637", "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 57.79, + "memberRate": 13.07, + "customerRate": 10.1, + "days": 5, + "amount": 13.07, "status": "cancelled", + "statusDetails": null, "billingAccountId": 80000071, "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": null, - "createdAt": "2021-05-09T21:30:49.123Z", - "updatedAt": "2021-05-09T21:30:49.123Z" + "createdAt": "2021-05-09T21:31:50.023Z", + "updatedAt": "2021-05-09T21:31:50.023Z" } ] } ] }, { - "id": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "projectId": 111, - "userId": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", - "jobId": "b28f4e67-324f-4ada-a23a-c27499053ed4", - "status": "cancelled", - "startDate": "2020-12-27", - "endDate": "2021-01-27", - "memberRate": 13.23, - "customerRate": 13, - "rateType": "hourly", + "id": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "projectId": 16870, + "userId": "acdf9ebe-8358-4bd3-9374-1d86cf27e5f4", + "jobId": "fe8da845-5313-496f-b859-9824bd06a0db", + "status": "placed", + "startDate": "2021-01-21", + "endDate": "2021-02-21", + "memberRate": 114.33, + "customerRate": 258.37, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": null, - "createdAt": "2021-05-09T21:25:50.450Z", - "updatedAt": "2021-05-09T21:25:50.450Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-01T09:30:59.306Z", + "updatedAt": "2021-05-30T11:48:56.459Z", "workPeriods": [ { - "id": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", - "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "userHandle": "pshah_manager", - "projectId": 111, + "id": "97cb1bad-772a-4f1e-a5a3-f0b19ae766f2", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, + "startDate": "2021-02-21", + "endDate": "2021-02-27", + "daysWorked": 0, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "no-days", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:57.210Z", + "updatedAt": "2021-05-30T16:12:01.358Z", + "payments": [] + }, + { + "id": "55b66454-3a29-4163-9d97-7ecd2e805f71", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, "startDate": "2021-01-17", "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 24.35, - "customerRate": 4.79, + "daysWorked": 2, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:51.398Z", - "updatedAt": "2021-05-09T21:45:01.792Z", - "payments": [ - { - "id": "1d2b92e8-194f-477a-97f8-e104056e6b10", - "workPeriodId": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 39.66, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:09.459Z", - "updatedAt": "2021-05-09T21:31:09.459Z" - }, - { - "id": "381af41e-6b0a-49fe-987f-1bcb03fda571", - "workPeriodId": "13f22f72-9240-43bb-ba0c-618d0b24ad8c", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 460.88, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:08.119Z", - "updatedAt": "2021-05-09T21:31:08.119Z" - } - ] + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:57.225Z", + "updatedAt": "2021-05-30T16:12:01.359Z", + "payments": [] }, { - "id": "0cf74043-b432-41a5-99d9-83420a6ad8ef", - "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "userHandle": "pshah_manager", - "projectId": 111, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 2, - "memberRate": 13.74, - "customerRate": 21.1, - "paymentStatus": "cancelled", + "id": "5bc5686b-95b3-49d7-9c8e-50f1dfdcb82e", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:51.419Z", - "updatedAt": "2021-05-09T21:44:51.852Z", - "payments": [ - { - "id": "f0f85e56-6bf4-4e1f-a1ef-c31529efe4cd", - "workPeriodId": "0cf74043-b432-41a5-99d9-83420a6ad8ef", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 466.42, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:30:58.017Z", - "updatedAt": "2021-05-09T21:30:58.017Z" - }, - { - "id": "ef951baa-a007-48db-a658-495c6eeda9bc", - "workPeriodId": "0cf74043-b432-41a5-99d9-83420a6ad8ef", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 448.51, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:30:59.323Z", - "updatedAt": "2021-05-09T21:30:59.323Z" - } - ] + "createdAt": "2021-05-30T11:48:57.306Z", + "updatedAt": "2021-05-30T16:04:57.957Z", + "payments": [] }, { - "id": "028287bf-6999-4fef-bdfa-1229b4e23ac1", - "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "userHandle": "pshah_manager", - "projectId": 111, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": 4, - "memberRate": 27.06, - "customerRate": 2.54, + "id": "77dcf745-bd59-40d8-b563-75a4d5354d29", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, + "startDate": "2021-02-14", + "endDate": "2021-02-20", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:51.432Z", - "updatedAt": "2021-05-09T21:45:16.298Z", - "payments": [ - { - "id": "b576f845-7dea-4b56-b0de-6ce15fd2c245", - "workPeriodId": "028287bf-6999-4fef-bdfa-1229b4e23ac1", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 477.97, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:30:25.688Z", - "updatedAt": "2021-05-09T21:30:25.688Z" - }, - { - "id": "1cb5129e-8d92-4280-a946-8cb0f5757abc", - "workPeriodId": "028287bf-6999-4fef-bdfa-1229b4e23ac1", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 460.88, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:30:33.549Z", - "updatedAt": "2021-05-09T21:30:33.549Z" - } - ] + "createdAt": "2021-05-30T11:48:57.208Z", + "updatedAt": "2021-05-30T16:04:30.745Z", + "payments": [] }, { - "id": "e71f17b2-acb4-4c14-a492-8cab071fe2b5", - "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "userHandle": "pshah_manager", - "projectId": 111, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 4, - "memberRate": 15.61, - "customerRate": 2.54, + "id": "1fa1f111-6574-47b0-8d12-6832541d496c", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:51.383Z", - "updatedAt": "2021-05-09T21:45:22.801Z", - "payments": [ - { - "id": "a376dfdc-3330-417b-916d-3a7d4f9ab384", - "workPeriodId": "e71f17b2-acb4-4c14-a492-8cab071fe2b5", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 466.42, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:34:17.363Z", - "updatedAt": "2021-05-09T21:34:17.363Z" - } - ] + "createdAt": "2021-05-30T11:48:57.244Z", + "updatedAt": "2021-05-30T16:05:42.410Z", + "payments": [] }, { - "id": "32b977c9-386a-4159-a1c3-08169ee12f6e", - "resourceBookingId": "314084fc-e854-4b62-8901-03ea9bbf2ffa", - "userHandle": "pshah_manager", - "projectId": 111, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 3, - "memberRate": 13.74, - "customerRate": 22.37, - "paymentStatus": "cancelled", + "id": "4c626a59-e591-4e7a-88cb-1d601b9b8493", + "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", + "userHandle": "newwayenjoy", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:25:51.435Z", - "updatedAt": "2021-05-09T21:45:08.968Z", - "payments": [ - { - "id": "99e4bffb-90f8-411e-9a49-fc7779bd2c07", - "workPeriodId": "32b977c9-386a-4159-a1c3-08169ee12f6e", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 416.38, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:57.470Z", - "updatedAt": "2021-05-09T21:31:57.470Z" - }, - { - "id": "fa4c7e24-470f-4aef-a269-59b7e0b2bc05", - "workPeriodId": "32b977c9-386a-4159-a1c3-08169ee12f6e", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 460.88, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:56.152Z", - "updatedAt": "2021-05-09T21:31:56.152Z" - } - ] + "createdAt": "2021-05-30T11:48:57.302Z", + "updatedAt": "2021-05-30T16:05:10.190Z", + "payments": [] } ] }, { - "id": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "projectId": 111, - "userId": "dd5adacb-444d-4992-8b7b-0c349be598db", - "jobId": "b28f4e67-324f-4ada-a23a-c27499053ed4", - "status": "placed", - "startDate": "2021-05-10", - "endDate": "2021-06-15", - "memberRate": 13.23, - "customerRate": 13, - "rateType": "hourly", + "id": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "projectId": 17103, + "userId": "8fe0c1c3-e63e-4047-9854-01f03b166bd8", + "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", + "status": "closed", + "startDate": "2021-01-02", + "endDate": "2021-02-02", + "memberRate": 85.22, + "customerRate": 170.64, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": null, - "createdAt": "2021-05-09T21:26:30.065Z", - "updatedAt": "2021-05-09T21:26:30.065Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-01T10:25:45.827Z", + "updatedAt": "2021-05-30T11:49:17.657Z", "workPeriods": [ { - "id": "28bd80ec-ef91-4516-90d6-6979e6cc341c", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-05-23", - "endDate": "2021-05-29", - "daysWorked": 5, - "memberRate": 28.4, - "customerRate": 12.25, - "paymentStatus": "partially-completed", + "id": "0466ddf6-83ba-41ee-b299-4abb2b5f8a3b", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 0, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "no-days", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.824Z", - "updatedAt": "2021-05-09T21:46:34.331Z", - "payments": [ - { - "id": "4892cd43-a132-4ca9-a511-8d10cdc22f5d", - "workPeriodId": "28bd80ec-ef91-4516-90d6-6979e6cc341c", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 374.34, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:43.808Z", - "updatedAt": "2021-05-09T21:31:43.808Z" - } - ] + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:18.405Z", + "updatedAt": "2021-05-30T16:12:15.134Z", + "payments": [] }, { - "id": "355c7114-753a-4f99-b026-1d1430bf5530", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-05-16", - "endDate": "2021-05-22", + "id": "bd92f07b-4b57-4486-9101-254578cf32f8", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 9.26, - "customerRate": 16.44, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.865Z", - "updatedAt": "2021-05-09T21:46:39.040Z", - "payments": [ - { - "id": "71b3b7d4-129c-4348-9ead-6f22eafa6db8", - "workPeriodId": "355c7114-753a-4f99-b026-1d1430bf5530", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 416.38, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:32:05.827Z", - "updatedAt": "2021-05-09T21:32:05.827Z" - }, - { - "id": "d0ebcc96-70f2-4716-92d4-74e40af04387", - "workPeriodId": "355c7114-753a-4f99-b026-1d1430bf5530", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 416.38, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:32:04.463Z", - "updatedAt": "2021-05-09T21:32:04.463Z" - } - ] + "createdAt": "2021-05-30T11:49:18.505Z", + "updatedAt": "2021-05-30T16:03:42.520Z", + "payments": [] }, { - "id": "9c024b6a-229a-4b8d-ac03-a53e4e412a73", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-05-09", - "endDate": "2021-05-15", + "id": "9c976d1a-f395-4889-ac9b-38846a083dcb", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 5.59, - "customerRate": 18.55, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.813Z", - "updatedAt": "2021-05-09T21:46:53.821Z", - "payments": [ - { - "id": "28f285ec-0965-4904-901d-7ae5c5d8e220", - "workPeriodId": "9c024b6a-229a-4b8d-ac03-a53e4e412a73", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 496.54, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:33:35.441Z", - "updatedAt": "2021-05-09T21:33:35.441Z" - } - ] + "createdAt": "2021-05-30T11:49:18.500Z", + "updatedAt": "2021-05-30T16:04:11.932Z", + "payments": [] }, { - "id": "48c4b614-6588-46c9-8b4f-54d3175ae47d", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-06-06", - "endDate": "2021-06-12", + "id": "62bf7ac9-bea9-4f96-8a28-2a3a8dbbc48f", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 16.02, - "customerRate": 30.71, - "paymentStatus": "cancelled", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.878Z", - "updatedAt": "2021-05-09T21:46:27.840Z", - "payments": [ - { - "id": "e1f9634a-4c3b-4dcd-ad81-3703c807a820", - "workPeriodId": "48c4b614-6588-46c9-8b4f-54d3175ae47d", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 293.79, - "status": "completed", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:32:12.499Z", - "updatedAt": "2021-05-09T21:32:12.499Z" - } - ] + "createdAt": "2021-05-30T11:49:18.439Z", + "updatedAt": "2021-05-30T16:04:50.801Z", + "payments": [] }, { - "id": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-06-13", - "endDate": "2021-06-19", - "daysWorked": 5, - "memberRate": 1.53, - "customerRate": 2.1, - "paymentStatus": "completed", + "id": "05fb419d-927c-4264-b346-905ba7a55f49", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 2, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.893Z", - "updatedAt": "2021-05-09T21:46:44.896Z", - "payments": [ - { - "id": "71750282-0ffe-46ed-b8c2-37e36c148833", - "workPeriodId": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 203.74, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:33:14.202Z", - "updatedAt": "2021-05-09T21:33:14.202Z" - }, - { - "id": "d36afd1d-1f76-4f2d-b630-69bf85796496", - "workPeriodId": "91fcf91f-b2cf-4909-8f03-b5efc0732b28", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 494.46, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:33:12.838Z", - "updatedAt": "2021-05-09T21:33:12.838Z" - } - ] + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:18.492Z", + "updatedAt": "2021-05-30T16:12:15.133Z", + "payments": [] }, { - "id": "311a692f-18bc-4eb6-a6d0-06cf3dbd1637", - "resourceBookingId": "d4134cc8-d306-45e2-bb76-cf3707b6df3e", - "userHandle": "amy_admin", - "projectId": 111, - "startDate": "2021-05-30", - "endDate": "2021-06-05", - "daysWorked": 5, - "memberRate": 13.07, - "customerRate": 10.1, - "paymentStatus": "completed", + "id": "c4b535c4-0c6f-4420-930e-0103aea68057", + "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", + "userHandle": "marathon_zhang", + "projectId": 17103, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-09T21:26:30.875Z", - "updatedAt": "2021-05-09T21:46:49.092Z", - "payments": [ - { - "id": "875c7250-50fa-453f-99d0-e76260648cd1", - "workPeriodId": "311a692f-18bc-4eb6-a6d0-06cf3dbd1637", - "challengeId": "00000000-0000-0000-0000-000000000000", - "amount": 248.38, - "status": "cancelled", - "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "updatedBy": null, - "createdAt": "2021-05-09T21:31:50.023Z", - "updatedAt": "2021-05-09T21:31:50.023Z" - } - ] + "createdAt": "2021-05-30T11:49:18.490Z", + "updatedAt": "2021-05-30T16:03:36.317Z", + "payments": [] } ] }, @@ -2680,37 +2663,20 @@ "updatedAt": "2021-05-30T11:41:11.436Z", "workPeriods": [ { - "id": "f5ab8f98-7e4b-4cf9-a1e5-6a15ab6bad91", - "resourceBookingId": "3f12b87c-9915-4ce1-89e5-535a3c0337f4", - "userHandle": "nkumar2", - "projectId": 16714, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 63.94, - "customerRate": 16.07, - "paymentStatus": "completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:12.251Z", - "updatedAt": "2021-05-30T16:02:51.923Z", - "payments": [] - }, - { - "id": "c20620e6-17de-41f5-8a0a-089683550b2f", + "id": "15cbf62c-67d9-4f4a-92dc-546cb0afac32", "resourceBookingId": "3f12b87c-9915-4ce1-89e5-535a3c0337f4", "userHandle": "nkumar2", "projectId": 16714, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 248.87, - "customerRate": 217.32, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:12.260Z", - "updatedAt": "2021-05-30T16:03:39.019Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:41:12.216Z", + "updatedAt": "2021-05-30T16:12:06.801Z", "payments": [] }, { @@ -2721,9 +2687,9 @@ "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 248.87, - "customerRate": 281.39, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "createdAt": "2021-05-30T11:41:12.223Z", @@ -2738,8 +2704,8 @@ "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 1, - "memberRate": 196.23, - "customerRate": 271.77, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", @@ -2755,8 +2721,8 @@ "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 63.04, - "customerRate": 47.87, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2765,20 +2731,37 @@ "payments": [] }, { - "id": "15cbf62c-67d9-4f4a-92dc-546cb0afac32", + "id": "f5ab8f98-7e4b-4cf9-a1e5-6a15ab6bad91", "resourceBookingId": "3f12b87c-9915-4ce1-89e5-535a3c0337f4", "userHandle": "nkumar2", "projectId": 16714, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 295.62, - "customerRate": 235.7, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:41:12.216Z", - "updatedAt": "2021-05-30T16:12:06.801Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:41:12.251Z", + "updatedAt": "2021-05-30T16:02:51.923Z", + "payments": [] + }, + { + "id": "c20620e6-17de-41f5-8a0a-089683550b2f", + "resourceBookingId": "3f12b87c-9915-4ce1-89e5-535a3c0337f4", + "userHandle": "nkumar2", + "projectId": 16714, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:41:12.260Z", + "updatedAt": "2021-05-30T16:03:39.019Z", "payments": [] } ] @@ -2808,8 +2791,8 @@ "startDate": "2020-12-27", "endDate": "2021-01-02", "daysWorked": 1, - "memberRate": 8.1, - "customerRate": 155.91, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", @@ -2825,8 +2808,8 @@ "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 216.18, - "customerRate": 262.91, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2834,23 +2817,6 @@ "updatedAt": "2021-05-30T16:03:44.298Z", "payments": [] }, - { - "id": "31436a53-4c2e-40fc-98f2-2b6e3e36aa2b", - "resourceBookingId": "e8e5ba0d-d506-4f76-b920-e6efcee29611", - "userHandle": "jimsun", - "projectId": 17091, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": null, - "memberRate": 104.85, - "customerRate": 225.57, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:18.565Z", - "updatedAt": "2021-05-30T16:11:38.208Z", - "payments": [] - }, { "id": "b04da80e-eff3-4be3-8849-f39f6af417b9", "resourceBookingId": "e8e5ba0d-d506-4f76-b920-e6efcee29611", @@ -2859,8 +2825,8 @@ "startDate": "2021-01-03", "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 131.12, - "customerRate": 270.74, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2876,8 +2842,8 @@ "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 34.56, - "customerRate": 265.36, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2893,50 +2859,188 @@ "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 30.95, - "customerRate": 54.36, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "createdAt": "2021-05-30T11:48:18.552Z", "updatedAt": "2021-05-30T16:03:06.211Z", "payments": [] + }, + { + "id": "31436a53-4c2e-40fc-98f2-2b6e3e36aa2b", + "resourceBookingId": "e8e5ba0d-d506-4f76-b920-e6efcee29611", + "userHandle": "jimsun", + "projectId": 17091, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:18.565Z", + "updatedAt": "2021-05-30T16:11:38.208Z", + "payments": [] } ] }, { - "id": "de7e5be7-c8a9-416b-b8d0-d3faff274a40", - "projectId": 16781, - "userId": "7eea7c2f-5a46-4646-82bd-db4ac528378d", - "jobId": "ff3feeae-d4f7-457c-bff7-215be5efe2b8", - "status": "sourcing", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 61.33, - "customerRate": 196.21, + "id": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "projectId": 16870, + "userId": "2bba34d5-20e4-46d6-bfc1-05736b17afbb", + "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", + "status": "closed", + "startDate": "2021-01-02", + "endDate": "2021-02-02", + "memberRate": 18.4, + "customerRate": 30.14, "rateType": "weekly", "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-12T10:49:14.209Z", - "updatedAt": "2021-05-30T11:48:22.088Z", + "createdAt": "2021-05-01T03:43:44.374Z", + "updatedAt": "2021-05-30T11:49:00.956Z", "workPeriods": [ { - "id": "41217a15-4231-480c-91bc-492cbbe95113", - "resourceBookingId": "de7e5be7-c8a9-416b-b8d0-d3faff274a40", - "userHandle": "ZeroChance", - "projectId": 16781, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 217.78, - "customerRate": 134.84, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:22.909Z", - "updatedAt": "2021-05-30T16:11:40.871Z", - "payments": [] + "id": "b9768ae4-ae40-4bb9-8bc2-970c9f36f0bf", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 0, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "no-days", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:01.820Z", + "updatedAt": "2021-05-30T16:12:04.121Z", + "payments": [] + }, + { + "id": "77ac0f07-d4ae-463e-a9db-437623a29958", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:01.793Z", + "updatedAt": "2021-05-30T16:04:31.663Z", + "payments": [] + }, + { + "id": "1f5d3abe-fe2b-4961-831c-b7bbdf76da82", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:01.732Z", + "updatedAt": "2021-05-30T16:05:43.321Z", + "payments": [] + }, + { + "id": "1c526f5f-d9e0-4e16-8421-cee4e8154a3c", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:01.802Z", + "updatedAt": "2021-05-30T16:05:48.592Z", + "payments": [] + }, + { + "id": "b7bce7db-65dc-4447-8865-f6e8a84a867e", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:01.698Z", + "updatedAt": "2021-05-30T16:03:48.778Z", + "payments": [] + }, + { + "id": "a475c2fa-c5ce-4a30-bdd8-d4fad1e6308c", + "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 2, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:01.795Z", + "updatedAt": "2021-05-30T16:12:04.120Z", + "payments": [] + } + ] + }, + { + "id": "de7e5be7-c8a9-416b-b8d0-d3faff274a40", + "projectId": 16781, + "userId": "7eea7c2f-5a46-4646-82bd-db4ac528378d", + "jobId": "ff3feeae-d4f7-457c-bff7-215be5efe2b8", + "status": "sourcing", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 61.33, + "customerRate": 196.21, + "rateType": "weekly", + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-01-12T10:49:14.209Z", + "updatedAt": "2021-05-30T11:48:22.088Z", + "workPeriods": [ + { + "id": "41217a15-4231-480c-91bc-492cbbe95113", + "resourceBookingId": "de7e5be7-c8a9-416b-b8d0-d3faff274a40", + "userHandle": "ZeroChance", + "projectId": 16781, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:22.909Z", + "updatedAt": "2021-05-30T16:11:40.871Z", + "payments": [] }, { "id": "cd2ff33c-70d9-4b47-a1f2-d3a32febb22d", @@ -2946,8 +3050,8 @@ "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 297.89, - "customerRate": 277.1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2963,8 +3067,8 @@ "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 4, - "memberRate": 197.07, - "customerRate": 93.25, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2980,8 +3084,8 @@ "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 115.09, - "customerRate": 282.56, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -2997,9 +3101,9 @@ "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 175.62, - "customerRate": 101, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "createdAt": "2021-05-30T11:48:22.912Z", @@ -3033,8 +3137,8 @@ "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 178.01, - "customerRate": 282.9, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -3050,8 +3154,8 @@ "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 148.65, - "customerRate": 131.63, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -3067,8 +3171,8 @@ "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 69.98, - "customerRate": 245.82, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -3084,8 +3188,8 @@ "startDate": "2021-02-07", "endDate": "2021-02-13", "daysWorked": 4, - "memberRate": 28.27, - "customerRate": 154.51, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", @@ -3101,8 +3205,8 @@ "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 118.86, - "customerRate": 300.07, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -3113,3722 +3217,4085 @@ ] }, { - "id": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "projectId": 16870, - "userId": "b851684b-1071-47c3-8719-bdae96aa0e6d", - "jobId": "fed687e1-4257-48bb-806c-38712f9bf14f", - "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 115.29, - "customerRate": 278.45, - "rateType": "weekly", + "id": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "projectId": 111, + "userId": "a2ffdeed-704d-4cf7-b70a-93fcf61de598", + "jobId": "b28f4e67-324f-4ada-a23a-c27499053ed4", + "status": "closed", + "startDate": "2021-05-10", + "endDate": "2021-06-15", + "memberRate": 13.23, + "customerRate": 13, + "rateType": "hourly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-04-29T09:50:13.905Z", - "updatedAt": "2021-05-30T11:48:15.196Z", + "updatedBy": null, + "createdAt": "2021-05-09T21:27:15.093Z", + "updatedAt": "2021-05-09T21:27:15.093Z", "workPeriods": [ { - "id": "e95f0541-bc37-4c1e-a619-029753c1a69a", - "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "userHandle": "zxx.lotus", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 43.3, - "customerRate": 40.52, - "paymentStatus": "cancelled", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:16.045Z", - "updatedAt": "2021-05-30T16:03:08.035Z", - "payments": [] - }, - { - "id": "cb6114ca-1624-4239-8243-aee05f8b5fe5", - "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "userHandle": "zxx.lotus", - "projectId": 16870, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 216.67, - "customerRate": 260.18, + "id": "94dde794-b730-4e05-8ea6-dcc5b541d43e", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-05-23", + "endDate": "2021-05-29", + "daysWorked": 3, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:16.042Z", - "updatedAt": "2021-05-30T16:03:29.374Z", - "payments": [] + "createdAt": "2021-05-09T21:27:15.991Z", + "updatedAt": "2021-05-09T21:46:02.038Z", + "payments": [ + { + "id": "c7013bf0-17b5-4b15-826b-385fad41caf4", + "workPeriodId": "94dde794-b730-4e05-8ea6-dcc5b541d43e", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 10.82, + "customerRate": 29.89, + "days": 3, + "amount": 6.49, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:20.680Z", + "updatedAt": "2021-05-09T21:33:20.680Z" + }, + { + "id": "be9706ac-c6cb-4fff-894b-8719bcf634dc", + "workPeriodId": "94dde794-b730-4e05-8ea6-dcc5b541d43e", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 10.82, + "customerRate": 29.89, + "days": 2, + "amount": 4.33, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:21.933Z", + "updatedAt": "2021-05-09T21:33:21.933Z" + } + ] }, { - "id": "f382c2c8-fe32-42f3-b960-29c345ab0264", - "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "userHandle": "zxx.lotus", - "projectId": 16870, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 185.3, - "customerRate": 203.04, + "id": "6a567293-7189-4b14-82c9-57bd3d0eab20", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-05-09", + "endDate": "2021-05-15", + "daysWorked": 3, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:16.004Z", - "updatedAt": "2021-05-30T16:11:36.370Z", - "payments": [] + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:27:15.959Z", + "updatedAt": "2021-05-09T21:46:07.315Z", + "payments": [ + { + "id": "e386f5a1-2856-4cc5-8304-1598e5683a0f", + "workPeriodId": "6a567293-7189-4b14-82c9-57bd3d0eab20", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 24.03, + "customerRate": 24.11, + "days": 3, + "amount": 14.42, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:32:47.852Z", + "updatedAt": "2021-05-09T21:32:47.852Z" + } + ] }, { - "id": "9215b576-8f67-4511-88f9-76000d6c8326", - "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "userHandle": "zxx.lotus", - "projectId": 16870, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-05-30", + "endDate": "2021-06-05", "daysWorked": 5, - "memberRate": 283.73, - "customerRate": 232.51, - "paymentStatus": "pending", + "daysPaid": 4, + "paymentTotal": 23.45, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:16.008Z", - "updatedAt": "2021-05-30T16:04:19.062Z", - "payments": [] + "createdAt": "2021-05-09T21:27:16.013Z", + "updatedAt": "2021-05-09T21:45:53.796Z", + "payments": [ + { + "id": "6e1a114f-bfac-4ab8-93d6-e47206200540", + "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 29.32, + "customerRate": 29.89, + "days": 1, + "amount": 5.86, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:40.036Z", + "updatedAt": "2021-05-09T21:34:40.036Z" + }, + { + "id": "10fd3b3e-f5b2-42cc-91d4-54c73c003aae", + "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 29.32, + "customerRate": 29.89, + "days": 1, + "amount": 5.86, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:37.374Z", + "updatedAt": "2021-05-09T21:34:37.374Z" + }, + { + "id": "fbc2d96f-f6c6-4a4d-b737-14a3564b7f70", + "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 29.32, + "customerRate": 29.89, + "days": 1, + "amount": 5.86, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:38.700Z", + "updatedAt": "2021-05-09T21:34:38.700Z" + }, + { + "id": "fc577d14-78e8-404c-a17b-ab496e4041d8", + "workPeriodId": "fd6034b3-b6a0-4a3f-9a5d-fc077c08c680", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 29.32, + "customerRate": 29.89, + "days": 2, + "amount": 11.73, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:41.520Z", + "updatedAt": "2021-05-09T21:34:41.520Z" + } + ] }, { - "id": "333bcf25-25cc-4a4e-a6d7-2666a1326d68", - "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", - "userHandle": "zxx.lotus", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "ac0ae325-8d77-4a73-bd85-5361165801cd", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-06-06", + "endDate": "2021-06-12", + "daysWorked": 3, + "daysPaid": 3, + "paymentTotal": 8.25, + "paymentStatus": "completed", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:27:15.951Z", + "updatedAt": "2021-05-09T21:46:12.086Z", + "payments": [ + { + "id": "00640d2d-8330-445a-b022-aa687033b2b3", + "workPeriodId": "ac0ae325-8d77-4a73-bd85-5361165801cd", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 13.74, + "customerRate": 14.57, + "days": 1, + "amount": 2.75, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:54.315Z", + "updatedAt": "2021-05-09T21:33:54.315Z" + }, + { + "id": "05d09e2b-02a0-4d33-b6db-0f69a98154c6", + "workPeriodId": "ac0ae325-8d77-4a73-bd85-5361165801cd", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 13.74, + "customerRate": 14.57, + "days": 2, + "amount": 5.5, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:53.131Z", + "updatedAt": "2021-05-09T21:33:53.131Z" + } + ] + }, + { + "id": "4ae26d58-1910-4ace-9f09-4c62c8df6031", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-06-13", + "endDate": "2021-06-19", + "daysWorked": 3, + "daysPaid": 3, + "paymentTotal": 9.37, + "paymentStatus": "completed", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:27:15.972Z", + "updatedAt": "2021-05-09T21:45:57.739Z", + "payments": [ + { + "id": "e623d9c7-caa9-4e58-83f1-44741b1169f8", + "workPeriodId": "4ae26d58-1910-4ace-9f09-4c62c8df6031", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 15.61, + "customerRate": 2.1, + "days": 3, + "amount": 9.37, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:32:19.371Z", + "updatedAt": "2021-05-09T21:32:19.371Z" + } + ] + }, + { + "id": "9d914249-82f2-422e-9ba6-c281da411266", + "resourceBookingId": "c4e86eae-ead3-49b7-90ab-92c3b4a3be0c", + "userHandle": "lakshmiaconnmgr", + "projectId": 111, + "startDate": "2021-05-16", + "endDate": "2021-05-22", "daysWorked": 5, - "memberRate": 162.3, - "customerRate": 132.28, - "paymentStatus": "pending", + "daysPaid": 5, + "paymentTotal": 113.23, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:16.001Z", - "updatedAt": "2021-05-30T16:05:26.263Z", - "payments": [] + "createdAt": "2021-05-09T21:27:16.017Z", + "updatedAt": "2021-05-09T21:46:21.053Z", + "payments": [ + { + "id": "6036c7cc-b180-4f50-8163-5fd2541c66b5", + "workPeriodId": "9d914249-82f2-422e-9ba6-c281da411266", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 113.23, + "customerRate": 9.46, + "days": 5, + "amount": 113.23, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:40.984Z", + "updatedAt": "2021-05-09T21:33:40.984Z" + } + ] } ] }, { - "id": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "projectId": 17232, - "userId": "1ab93e53-71f6-4c50-ab48-9446229b6451", - "jobId": "ff76b81d-f49b-4019-b50e-c7932a818f19", + "id": "1ad758ab-c19f-4247-954a-4581420aba8a", + "projectId": 17363, + "userId": "dbf68f12-69a4-4592-a0ab-cf68d9ed7ae4", + "jobId": "fd48d96e-b0f2-43b7-8a48-f4fa194d6bc8", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 18.4, - "customerRate": 84.88, + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 114.33, + "customerRate": 217.99, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-17T13:12:55.459Z", - "updatedAt": "2021-05-30T11:48:11.067Z", + "createdAt": "2021-05-27T11:25:35.292Z", + "updatedAt": "2021-05-30T11:49:08.019Z", "workPeriods": [ { - "id": "e84de57c-d131-4431-8e46-9452218d30e7", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 253.31, - "customerRate": 57.88, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:12.550Z", - "updatedAt": "2021-05-30T16:03:08.981Z", - "payments": [] - }, - { - "id": "97dabae3-74dd-45f6-ab83-53e4a828c4a6", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 297.19, - "customerRate": 280.07, + "id": "8ff2339f-d90a-4ac2-9798-3158d0746d53", + "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", + "userHandle": "vishalgoel", + "projectId": 17363, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:12.488Z", - "updatedAt": "2021-05-30T16:11:34.545Z", + "createdAt": "2021-05-30T11:49:08.875Z", + "updatedAt": "2021-05-30T16:12:09.701Z", "payments": [] }, { - "id": "75c345fa-9e34-46a9-8cf0-46245495110d", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "c4c8588e-68a4-4b82-be91-a3d98661ffba", + "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", + "userHandle": "vishalgoel", + "projectId": 17363, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 236.08, - "customerRate": 26.72, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:12.586Z", - "updatedAt": "2021-05-30T16:04:33.475Z", + "createdAt": "2021-05-30T11:49:08.879Z", + "updatedAt": "2021-05-30T16:03:35.487Z", "payments": [] }, { - "id": "20242864-9dd6-4376-85fb-1402297e4597", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "5ecaa40c-1fb3-4df7-9870-6fc3c2bc1bca", + "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", + "userHandle": "vishalgoel", + "projectId": 17363, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 214.14, - "customerRate": 67.44, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:12.497Z", - "updatedAt": "2021-05-30T16:05:41.521Z", + "createdAt": "2021-05-30T11:49:08.877Z", + "updatedAt": "2021-05-30T16:04:53.463Z", "payments": [] }, { - "id": "c0c613e3-845a-45c0-85fe-41c063d9df3d", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, + "id": "38afaa09-32da-4d81-b2f5-0c5e31af617f", + "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", + "userHandle": "vishalgoel", + "projectId": 17363, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 33.79, - "customerRate": 282.9, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:12.493Z", - "updatedAt": "2021-05-30T16:11:34.546Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:08.867Z", + "updatedAt": "2021-05-30T16:05:21.960Z", "payments": [] }, { - "id": "b53b6f48-0a07-434e-a03d-f5d9ab772e60", - "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", - "userHandle": "droopy74", - "projectId": 17232, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 4, - "memberRate": 58.11, - "customerRate": 256.06, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", + "id": "83cb4174-6ee3-4557-97c1-120c46054af6", + "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", + "userHandle": "vishalgoel", + "projectId": 17363, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:12.515Z", - "updatedAt": "2021-05-30T16:03:53.254Z", + "createdAt": "2021-05-30T11:49:08.882Z", + "updatedAt": "2021-05-30T16:04:22.560Z", "payments": [] } ] }, { - "id": "f667a667-6026-4d93-89bb-358aced982e5", - "projectId": 16870, - "userId": "2bba34d5-20e4-46d6-bfc1-05736b17afbb", - "jobId": "fed687e1-4257-48bb-806c-38712f9bf14f", + "id": "07f73049-e51a-4394-b61f-b75418afa908", + "projectId": 16739, + "userId": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "jobId": "fc5ba131-566f-46fe-8501-79c593241896", "status": "placed", - "startDate": "2021-01-03", - "endDate": "2021-02-03", - "memberRate": 61.4, + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 66, "customerRate": 114.05, - "rateType": "daily", + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-04-29T09:28:04.405Z", - "updatedAt": "2021-05-30T11:48:13.500Z", + "createdAt": "2021-01-12T10:59:20.006Z", + "updatedAt": "2021-05-30T11:49:21.188Z", "workPeriods": [ { - "id": "1dd649b8-f536-4285-989d-56c45f1fca4d", - "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": null, - "memberRate": 21.8, - "customerRate": 54.36, - "paymentStatus": "partially-completed", + "id": "7ff4804e-2a65-4f8b-af5b-24b58c066fd4", + "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", + "userHandle": "nkumartest", + "projectId": 16739, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:14.325Z", - "updatedAt": "2021-05-30T16:05:45.949Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:22.068Z", + "updatedAt": "2021-05-30T16:12:16.993Z", "payments": [] }, { - "id": "d44b8f1a-46b7-43a8-afd6-d2d13bd02fa5", - "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 298.88, - "customerRate": 84.09, + "id": "410e034d-ee48-4a18-aa65-679ef7efcb80", + "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", + "userHandle": "nkumartest", + "projectId": 16739, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:14.367Z", - "updatedAt": "2021-05-30T16:03:23.275Z", + "createdAt": "2021-05-30T11:49:21.961Z", + "updatedAt": "2021-05-30T16:05:16.466Z", "payments": [] }, { - "id": "7011b330-8509-4f60-a2db-c0f5c9b5837b", - "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, + "id": "d99a524f-c8a4-4d46-a42c-dbcddd65b6db", + "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", + "userHandle": "nkumartest", + "projectId": 16739, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 3, - "memberRate": 47.41, - "customerRate": 18.13, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:14.320Z", - "updatedAt": "2021-05-30T16:11:35.512Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:22.017Z", + "updatedAt": "2021-05-30T16:03:19.706Z", "payments": [] }, { - "id": "8252cd13-4351-4a86-9315-521963f329f5", - "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "5c4bb82b-e617-4c91-861f-5e0825d43c53", + "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", + "userHandle": "nkumartest", + "projectId": 16739, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 63.04, - "customerRate": 209, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:14.322Z", - "updatedAt": "2021-05-30T16:04:23.465Z", + "createdAt": "2021-05-30T11:49:21.977Z", + "updatedAt": "2021-05-30T16:04:55.294Z", "payments": [] }, { - "id": "259d8de1-1c56-49d0-936d-d5fcbdcc5a8a", - "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": null, - "memberRate": 162.12, - "customerRate": 99.32, + "id": "da043aba-161e-4894-a3d5-d63678ac89b0", + "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", + "userHandle": "nkumartest", + "projectId": 16739, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:14.314Z", - "updatedAt": "2021-05-30T16:05:34.486Z", + "createdAt": "2021-05-30T11:49:21.974Z", + "updatedAt": "2021-05-30T16:03:18.831Z", "payments": [] } ] }, { - "id": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "projectId": 17103, - "userId": "fa5f4dc4-2992-4066-b4cc-16ceb5d1c1b7", - "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", - "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 287.14, - "customerRate": 258.37, - "rateType": "daily", + "id": "016312f6-72cf-486b-be8f-956ca4b2171e", + "projectId": 16706, + "userId": "4b00d029-c87b-47b2-bfe2-0ab80d8b5774", + "jobId": "fc2b006d-997b-49c3-a414-59ee54a48f9f", + "status": "sourcing", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 114.33, + "customerRate": 67.93, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-02T06:00:42.366Z", - "updatedAt": "2021-05-30T11:48:23.808Z", + "createdAt": "2021-01-26T08:27:38.010Z", + "updatedAt": "2021-05-30T11:40:20.936Z", "workPeriods": [ { - "id": "b60da405-cee8-41c9-919b-98d9acfd9f74", - "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "userHandle": "rtuthaya", - "projectId": 17103, + "id": "a2e2905a-efd7-45ba-a891-f0523b4b1351", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 271.31, - "customerRate": 195.92, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:24.607Z", - "updatedAt": "2021-05-30T16:03:52.385Z", + "createdAt": "2021-05-30T11:40:21.794Z", + "updatedAt": "2021-05-30T16:04:08.375Z", "payments": [] }, { - "id": "19110441-201e-449b-a350-661c50fb1387", - "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "userHandle": "rtuthaya", - "projectId": 17103, + "id": "6629d501-d17f-4261-a4d1-ed51d2a4b533", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, "startDate": "2021-01-24", "endDate": "2021-01-30", - "daysWorked": 4, - "memberRate": 30.12, - "customerRate": 84.76, - "paymentStatus": "cancelled", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:24.639Z", - "updatedAt": "2021-05-30T16:05:49.510Z", - "payments": [] - }, - { - "id": "1f12ada9-d0e6-43df-abe5-8a78850b20b4", - "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "userHandle": "rtuthaya", - "projectId": 17103, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 191.92, - "customerRate": 6.17, - "paymentStatus": "cancelled", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:24.601Z", - "updatedAt": "2021-05-30T16:11:41.938Z", + "createdAt": "2021-05-30T11:40:21.784Z", + "updatedAt": "2021-05-30T16:04:46.695Z", "payments": [] }, { - "id": "1e94f892-ae25-4233-b9b0-81aa70c00b1e", - "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "userHandle": "rtuthaya", - "projectId": 17103, + "id": "42ca2389-e8a6-42c5-8a97-8d47531d2f23", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 109.93, - "customerRate": 271.9, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:24.604Z", - "updatedAt": "2021-05-30T16:05:45.069Z", + "createdAt": "2021-05-30T11:40:21.766Z", + "updatedAt": "2021-05-30T16:05:14.728Z", "payments": [] }, { - "id": "4d7f0350-b2f0-4f31-acc3-6555c3756fdd", - "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", - "userHandle": "rtuthaya", - "projectId": 17103, + "id": "b3101b68-cc83-4a5c-aa33-0c5220e4b78f", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 70.84, - "customerRate": 207.33, - "paymentStatus": "partially-completed", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:24.637Z", - "updatedAt": "2021-05-30T16:05:08.370Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:40:21.780Z", + "updatedAt": "2021-05-30T16:12:19.637Z", "payments": [] - } - ] - }, - { - "id": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "projectId": 16870, - "userId": "60d3e956-820b-4d59-a30b-9309b838fac5", - "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", - "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 60.63, - "customerRate": 132.43, - "rateType": "weekly", - "billingAccountId": 80000071, - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-04-30T08:09:51.618Z", - "updatedAt": "2021-05-30T11:48:20.311Z", - "workPeriods": [ + }, { - "id": "6ad492cf-4d90-4608-8dd5-13aaafad12e2", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, + "id": "149f2401-f2c2-4e3f-98fe-44148820cd5e", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, "startDate": "2020-12-27", "endDate": "2021-01-02", "daysWorked": 1, - "memberRate": 131.12, - "customerRate": 18.28, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:21.194Z", - "updatedAt": "2021-05-30T16:11:39.976Z", + "createdAt": "2021-05-30T11:40:21.757Z", + "updatedAt": "2021-05-30T16:12:19.636Z", "payments": [] }, { - "id": "61134c36-5e69-469c-bc50-75648f7949ca", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 112.54, - "customerRate": 222.98, + "id": "e002f23e-8358-4f49-8770-af19aa23708e", + "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", + "userHandle": "nkumar2", + "projectId": 16706, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:21.187Z", - "updatedAt": "2021-05-30T16:04:51.659Z", + "createdAt": "2021-05-30T11:40:21.710Z", + "updatedAt": "2021-05-30T16:03:14.321Z", "payments": [] - }, + } + ] + }, + { + "id": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "projectId": 111, + "userId": "6d0509c7-5f12-4d84-9a19-8e80ef7ddd66", + "jobId": "a8adb1f8-a6ee-48b1-8661-33bd851b726e", + "status": "closed", + "startDate": "2021-03-27", + "endDate": "2021-04-27", + "memberRate": 13.23, + "customerRate": 13, + "rateType": "hourly", + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:26:16.403Z", + "updatedAt": "2021-05-09T21:26:16.403Z", + "workPeriods": [ { - "id": "f095424c-9a15-4f37-b8e4-1cd685f17451", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 200.17, - "customerRate": 260.87, - "paymentStatus": "pending", + "id": "b0758857-0221-47a5-a444-e263e5d9e1cf", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-03-21", + "endDate": "2021-03-27", + "daysWorked": 5, + "daysPaid": 5, + "paymentTotal": 27.06, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:21.198Z", - "updatedAt": "2021-05-30T16:11:39.977Z", - "payments": [] + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:26:17.187Z", + "updatedAt": "2021-05-09T21:46:59.354Z", + "payments": [ + { + "id": "9785ae89-05dc-4bcc-a030-52bd0e681d41", + "workPeriodId": "b0758857-0221-47a5-a444-e263e5d9e1cf", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 27.06, + "customerRate": 22.77, + "days": 5, + "amount": 27.06, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:01.410Z", + "updatedAt": "2021-05-09T21:34:01.410Z" + }, + { + "id": "c8be508d-2eb5-4712-8bd7-1b28e870abc2", + "workPeriodId": "b0758857-0221-47a5-a444-e263e5d9e1cf", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 27.06, + "customerRate": 22.77, + "days": 5, + "amount": 27.06, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:34:02.733Z", + "updatedAt": "2021-05-09T21:34:02.733Z" + } + ] }, { - "id": "f79b0a83-5f72-4e9c-bffe-4ebf694db7f4", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "176db0d0-474f-4590-831a-547d596c01b4", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-03-28", + "endDate": "2021-04-03", "daysWorked": 5, - "memberRate": 27.09, - "customerRate": 40.76, - "paymentStatus": "pending", + "daysPaid": 5, + "paymentTotal": 6.11, + "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:21.107Z", - "updatedAt": "2021-05-30T16:02:50.987Z", - "payments": [] + "createdAt": "2021-05-09T21:26:17.168Z", + "updatedAt": "2021-05-09T21:47:05.373Z", + "payments": [ + { + "id": "c3b71f96-7680-459b-82b2-f6eb3c3f6c8f", + "workPeriodId": "176db0d0-474f-4590-831a-547d596c01b4", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 6.11, + "customerRate": 14.63, + "days": 1, + "amount": 1.22, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:31:18.342Z", + "updatedAt": "2021-05-09T21:31:18.342Z" + }, + { + "id": "3ed31706-0e99-4084-81f4-b126a1a68db6", + "workPeriodId": "176db0d0-474f-4590-831a-547d596c01b4", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 6.11, + "customerRate": 14.63, + "days": 4, + "amount": 4.89, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:31:17.193Z", + "updatedAt": "2021-05-09T21:31:17.193Z" + } + ] }, { - "id": "c75ee2eb-a7c0-4eb8-83f9-860ce22d1b03", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 278.4, - "customerRate": 270.68, + "id": "8c9db4fd-78ad-4e59-acba-462487b74c3a", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-04-18", + "endDate": "2021-04-24", + "daysWorked": 2, + "daysPaid": 2, + "paymentTotal": 10.98, "paymentStatus": "completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:21.104Z", - "updatedAt": "2021-05-30T16:03:34.616Z", - "payments": [] + "createdAt": "2021-05-09T21:26:17.200Z", + "updatedAt": "2021-05-09T21:47:25.687Z", + "payments": [ + { + "id": "f65930b7-d61d-4923-bdab-54848661f151", + "workPeriodId": "8c9db4fd-78ad-4e59-acba-462487b74c3a", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 27.46, + "customerRate": 25.57, + "days": 1, + "amount": 5.49, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:06.108Z", + "updatedAt": "2021-05-09T21:33:06.108Z" + }, + { + "id": "8eb8fc37-5ab0-4480-8806-3d3c57ab38e1", + "workPeriodId": "8c9db4fd-78ad-4e59-acba-462487b74c3a", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 27.46, + "customerRate": 25.57, + "days": 1, + "amount": 5.49, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:07.419Z", + "updatedAt": "2021-05-09T21:33:07.419Z" + } + ] }, { - "id": "b0aad7c5-bafb-4cae-90ca-832334505e9b", - "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", - "userHandle": "Hypernova", - "projectId": 16870, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "9b455e21-e186-4622-923a-f115d23549d1", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-04-25", + "endDate": "2021-05-01", + "daysWorked": 2, + "daysPaid": 2, + "paymentTotal": 9.13, + "paymentStatus": "completed", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:26:17.161Z", + "updatedAt": "2021-05-09T21:47:19.034Z", + "payments": [ + { + "id": "10584b23-5ab2-44e2-a927-e020c08e4f84", + "workPeriodId": "9b455e21-e186-4622-923a-f115d23549d1", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 22.82, + "customerRate": 10.1, + "days": 2, + "amount": 9.13, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:29.348Z", + "updatedAt": "2021-05-09T21:33:29.348Z" + }, + { + "id": "6d59a499-44e3-41e2-8368-5baee86dd8ab", + "workPeriodId": "9b455e21-e186-4622-923a-f115d23549d1", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 22.82, + "customerRate": 10.1, + "days": 2, + "amount": 9.13, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:33:28.108Z", + "updatedAt": "2021-05-09T21:33:28.108Z" + } + ] + }, + { + "id": "5a174833-cb08-49f5-b077-cffb8e60ca01", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-04-04", + "endDate": "2021-04-10", "daysWorked": 5, - "memberRate": 155.75, - "customerRate": 13.09, - "paymentStatus": "pending", + "daysPaid": 3, + "paymentTotal": 2.95, + "paymentStatus": "partially-completed", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:21.192Z", - "updatedAt": "2021-05-30T16:03:58.410Z", - "payments": [] + "createdAt": "2021-05-09T21:26:17.165Z", + "updatedAt": "2021-05-09T21:47:12.015Z", + "payments": [ + { + "id": "663f11df-7832-431a-a46e-ad8c890ae52b", + "workPeriodId": "5a174833-cb08-49f5-b077-cffb8e60ca01", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 4.91, + "customerRate": 24.11, + "days": 5, + "amount": 4.91, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:32:32.606Z", + "updatedAt": "2021-05-09T21:32:32.606Z" + }, + { + "id": "69445cbf-6d94-49a5-b2aa-65459ec78594", + "workPeriodId": "5a174833-cb08-49f5-b077-cffb8e60ca01", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 4.91, + "customerRate": 24.11, + "days": 3, + "amount": 2.95, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:32:33.664Z", + "updatedAt": "2021-05-09T21:32:33.664Z" + } + ] + }, + { + "id": "18881107-cc17-4087-9b2b-a74f04187f73", + "resourceBookingId": "d5de4575-c977-4f4b-bd5b-bb82360dd365", + "userHandle": "aaaa", + "projectId": 111, + "startDate": "2021-04-11", + "endDate": "2021-04-17", + "daysWorked": 2, + "daysPaid": 1, + "paymentTotal": 4.56, + "paymentStatus": "partially-completed", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-09T21:26:17.202Z", + "updatedAt": "2021-05-09T21:47:30.586Z", + "payments": [ + { + "id": "dd8f5c08-d6a1-4fd2-b6bd-85fb6425d13d", + "workPeriodId": "18881107-cc17-4087-9b2b-a74f04187f73", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 22.82, + "customerRate": 2.32, + "days": 1, + "amount": 4.56, + "status": "completed", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:31:25.690Z", + "updatedAt": "2021-05-09T21:31:25.690Z" + }, + { + "id": "c456755e-0432-4656-848b-64f9c5dc8f25", + "workPeriodId": "18881107-cc17-4087-9b2b-a74f04187f73", + "challengeId": "00000000-0000-0000-0000-000000000000", + "memberRate": 22.82, + "customerRate": 2.32, + "days": 2, + "amount": 9.13, + "status": "cancelled", + "statusDetails": null, + "billingAccountId": 80000071, + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "updatedBy": null, + "createdAt": "2021-05-09T21:31:27.102Z", + "updatedAt": "2021-05-09T21:31:27.102Z" + } + ] } ] }, { - "id": "016312f6-72cf-486b-be8f-956ca4b2171e", - "projectId": 16706, - "userId": "4b00d029-c87b-47b2-bfe2-0ab80d8b5774", - "jobId": "fc2b006d-997b-49c3-a414-59ee54a48f9f", + "id": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "projectId": 16718, + "userId": "085fc95d-0336-4572-a641-6c8334e7f0c9", + "jobId": "fb2f5f9b-5874-4dcd-af94-727fc0409760", "status": "sourcing", "startDate": "2021-01-01", "endDate": "2021-02-01", "memberRate": 114.33, - "customerRate": 67.93, + "customerRate": 100.25, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-26T08:27:38.010Z", - "updatedAt": "2021-05-30T11:40:20.936Z", + "createdAt": "2021-01-26T08:27:33.886Z", + "updatedAt": "2021-05-30T11:49:22.899Z", "workPeriods": [ { - "id": "6629d501-d17f-4261-a4d1-ed51d2a4b533", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "f8d56b84-b374-4975-81f8-7fab96463243", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 181.55, - "customerRate": 22.69, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:23.666Z", + "updatedAt": "2021-05-30T16:02:49.121Z", + "payments": [] + }, + { + "id": "ddcfc959-d749-45dc-9e9f-f18a893f9e1a", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:40:21.784Z", - "updatedAt": "2021-05-30T16:04:46.695Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:23.644Z", + "updatedAt": "2021-05-30T16:12:17.859Z", "payments": [] }, { - "id": "42ca2389-e8a6-42c5-8a97-8d47531d2f23", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "a322ee7e-7f23-4f9f-b2d8-286b574efd7f", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 41.26, - "customerRate": 286.6, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:40:21.766Z", - "updatedAt": "2021-05-30T16:05:14.728Z", + "createdAt": "2021-05-30T11:49:23.681Z", + "updatedAt": "2021-05-30T16:04:07.452Z", "payments": [] }, { - "id": "a2e2905a-efd7-45ba-a891-f0523b4b1351", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, + "id": "77f9b42c-6e67-4363-8b43-aa0b70a904e1", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, "startDate": "2021-01-17", "endDate": "2021-01-23", - "daysWorked": null, - "memberRate": 114.59, - "customerRate": 180.76, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:40:21.794Z", - "updatedAt": "2021-05-30T16:04:08.375Z", + "createdAt": "2021-05-30T11:49:23.734Z", + "updatedAt": "2021-05-30T16:04:29.823Z", "payments": [] }, { - "id": "b3101b68-cc83-4a5c-aa33-0c5220e4b78f", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, + "id": "20fc029b-108a-4f12-aec9-ba36619d4ce7", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 1, - "memberRate": 280.73, - "customerRate": 7.02, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:40:21.780Z", - "updatedAt": "2021-05-30T16:12:19.637Z", - "payments": [] - }, - { - "id": "149f2401-f2c2-4e3f-98fe-44148820cd5e", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 3.94, - "customerRate": 88.91, - "paymentStatus": "partially-completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:40:21.757Z", - "updatedAt": "2021-05-30T16:12:19.636Z", + "createdAt": "2021-05-30T11:49:23.730Z", + "updatedAt": "2021-05-30T16:12:17.860Z", "payments": [] }, { - "id": "e002f23e-8358-4f49-8770-af19aa23708e", - "resourceBookingId": "016312f6-72cf-486b-be8f-956ca4b2171e", - "userHandle": "nkumar2", - "projectId": 16706, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "662f11e5-c02e-460d-989e-1396ff4f00a6", + "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", + "userHandle": "george0095", + "projectId": 16718, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 4, - "memberRate": 108.35, - "customerRate": 189.61, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:40:21.710Z", - "updatedAt": "2021-05-30T16:03:14.321Z", + "createdAt": "2021-05-30T11:49:23.678Z", + "updatedAt": "2021-05-30T16:04:45.827Z", "payments": [] } ] }, { - "id": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "projectId": 16899, - "userId": "5bc40e16-4fdb-40f1-93fe-de465789e1b2", - "jobId": "fe270791-bc24-4f6a-8c1b-b897f5d97d2f", + "id": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "projectId": 16870, + "userId": "b851684b-1071-47c3-8719-bdae96aa0e6d", + "jobId": "fed687e1-4257-48bb-806c-38712f9bf14f", "status": "placed", "startDate": "2021-01-11", "endDate": "2021-02-11", - "memberRate": 271.93, - "customerRate": 102.37, + "memberRate": 115.29, + "customerRate": 278.45, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T09:45:15.939Z", - "updatedAt": "2021-05-30T11:48:39.054Z", + "createdAt": "2021-04-29T09:50:13.905Z", + "updatedAt": "2021-05-30T11:48:15.196Z", "workPeriods": [ { - "id": "eeea5cf0-513c-4d1a-9318-a376aa86c28f", - "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "userHandle": "ramag", - "projectId": 16899, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "e95f0541-bc37-4c1e-a619-029753c1a69a", + "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "userHandle": "zxx.lotus", + "projectId": 16870, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 298.22, - "customerRate": 277.1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:39.879Z", - "updatedAt": "2021-05-30T16:03:01.733Z", + "createdAt": "2021-05-30T11:48:16.045Z", + "updatedAt": "2021-05-30T16:03:08.035Z", "payments": [] }, { - "id": "ab2c5ad4-165f-48d2-bf1c-005b56e049ce", - "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "userHandle": "ramag", - "projectId": 16899, + "id": "cb6114ca-1624-4239-8243-aee05f8b5fe5", + "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "userHandle": "zxx.lotus", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:16.042Z", + "updatedAt": "2021-05-30T16:03:29.374Z", + "payments": [] + }, + { + "id": "f382c2c8-fe32-42f3-b960-29c345ab0264", + "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "userHandle": "zxx.lotus", + "projectId": 16870, "startDate": "2021-02-07", "endDate": "2021-02-13", "daysWorked": 4, - "memberRate": 174.63, - "customerRate": 103.63, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:39.824Z", - "updatedAt": "2021-05-30T16:11:51.073Z", + "createdAt": "2021-05-30T11:48:16.004Z", + "updatedAt": "2021-05-30T16:11:36.370Z", "payments": [] }, { - "id": "aed553d8-4eb4-45a8-86f0-3c21f81c7570", - "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "userHandle": "ramag", - "projectId": 16899, + "id": "9215b576-8f67-4511-88f9-76000d6c8326", + "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "userHandle": "zxx.lotus", + "projectId": 16870, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 19.08, - "customerRate": 101.27, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:39.870Z", - "updatedAt": "2021-05-30T16:04:00.297Z", + "createdAt": "2021-05-30T11:48:16.008Z", + "updatedAt": "2021-05-30T16:04:19.062Z", "payments": [] }, { - "id": "4c9a7d50-8014-4ff2-9867-98dc66e466ac", - "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "userHandle": "ramag", - "projectId": 16899, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "333bcf25-25cc-4a4e-a6d7-2666a1326d68", + "resourceBookingId": "f40f43a8-b7b0-4181-967c-26e4e070f95e", + "userHandle": "zxx.lotus", + "projectId": 16870, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 209.34, - "customerRate": 97.01, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:39.838Z", - "updatedAt": "2021-05-30T16:05:09.308Z", - "payments": [] - }, - { - "id": "d5c4716f-e26a-4d3f-a57d-2410d7537ecd", - "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", - "userHandle": "ramag", - "projectId": 16899, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": null, - "memberRate": 30.95, - "customerRate": 156.32, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:39.820Z", - "updatedAt": "2021-05-30T16:03:21.454Z", + "createdAt": "2021-05-30T11:48:16.001Z", + "updatedAt": "2021-05-30T16:05:26.263Z", "payments": [] } ] }, { - "id": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "projectId": 16870, - "userId": "2bba34d5-20e4-46d6-bfc1-05736b17afbb", - "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", - "status": "closed", - "startDate": "2021-01-02", - "endDate": "2021-02-02", - "memberRate": 18.4, - "customerRate": 30.14, + "id": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "projectId": 16762, + "userId": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", + "jobId": "fe481d1c-cf87-49c1-9370-695f9f754041", + "status": "placed", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 61.33, + "customerRate": 84.88, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T03:43:44.374Z", - "updatedAt": "2021-05-30T11:49:00.956Z", + "createdAt": "2021-01-12T10:53:32.373Z", + "updatedAt": "2021-05-30T11:48:49.532Z", "workPeriods": [ { - "id": "b9768ae4-ae40-4bb9-8bc2-970c9f36f0bf", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 0, - "memberRate": 213.59, - "customerRate": 286.15, + "id": "3ad03850-ebe9-4227-8b30-1303b20bbd31", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:01.820Z", - "updatedAt": "2021-05-30T16:12:04.121Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:50.292Z", + "updatedAt": "2021-05-30T16:05:19.240Z", "payments": [] }, { - "id": "77ac0f07-d4ae-463e-a9db-437623a29958", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "2ea4bffd-2519-422f-8baa-a0f74b3b398b", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 191.95, - "customerRate": 172.18, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:01.793Z", - "updatedAt": "2021-05-30T16:04:31.663Z", + "createdAt": "2021-05-30T11:48:50.340Z", + "updatedAt": "2021-05-30T16:05:30.731Z", "payments": [] }, { - "id": "1f5d3abe-fe2b-4961-831c-b7bbdf76da82", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 54.98, - "customerRate": 237.88, + "id": "e1099a6a-7c6b-465d-bb1b-517c3fbd06f1", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:01.732Z", - "updatedAt": "2021-05-30T16:05:43.321Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:50.297Z", + "updatedAt": "2021-05-30T16:11:57.610Z", "payments": [] }, { - "id": "1c526f5f-d9e0-4e16-8421-cee4e8154a3c", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, + "id": "a154b1fb-06d3-4cfd-97d3-0a810a1c4317", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 36.75, - "customerRate": 21.33, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:01.802Z", - "updatedAt": "2021-05-30T16:05:48.592Z", + "createdAt": "2021-05-30T11:48:50.279Z", + "updatedAt": "2021-05-30T16:04:09.261Z", "payments": [] }, { - "id": "b7bce7db-65dc-4447-8865-f6e8a84a867e", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 209.34, - "customerRate": 251.36, + "id": "a35207bd-ac1d-4539-b7bb-7a923c8a6f7f", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:01.698Z", - "updatedAt": "2021-05-30T16:03:48.778Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:50.330Z", + "updatedAt": "2021-05-30T16:11:57.609Z", "payments": [] }, { - "id": "a475c2fa-c5ce-4a30-bdd8-d4fad1e6308c", - "resourceBookingId": "48bd8a8b-40fb-459a-b5db-f22de90c2799", - "userHandle": "GunaK-TopCoder", - "projectId": 16870, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 2, - "memberRate": 25.99, - "customerRate": 155.48, + "id": "b34361ca-eb0e-47f7-86d9-3bccbb6839d5", + "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", + "userHandle": "pshah_manager", + "projectId": 16762, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:01.795Z", - "updatedAt": "2021-05-30T16:12:04.120Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:50.288Z", + "updatedAt": "2021-05-30T16:03:55.011Z", "payments": [] } ] }, { - "id": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "projectId": 17290, - "userId": "0eaf032f-f376-47cc-b7aa-668685efac90", - "jobId": "fe600350-0a6d-4dac-922f-a6a7d285daa1", + "id": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "projectId": 17324, + "userId": "4709473d-f060-4102-87f8-4d51ff0b34c1", + "jobId": "fefd2618-9b66-4431-9874-1d02d7a37d90", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 106.51, - "customerRate": 111.21, + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 271.93, + "customerRate": 188.33, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-18T08:18:13.123Z", - "updatedAt": "2021-05-30T11:48:52.915Z", + "createdAt": "2021-05-20T06:52:40.679Z", + "updatedAt": "2021-05-30T11:49:15.876Z", "workPeriods": [ { - "id": "e6b70714-8bd6-47ce-9e58-f04d3c25ee28", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": 5, - "memberRate": 147.9, - "customerRate": 132.28, + "id": "f28bd617-dce3-47c0-a9ab-6b2ff321d206", + "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "userHandle": "TCConnCopilot", + "projectId": 17324, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:53.719Z", - "updatedAt": "2021-05-30T16:03:09.841Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:16.700Z", + "updatedAt": "2021-05-30T16:12:14.202Z", "payments": [] }, { - "id": "b6c1f079-e5cb-46a0-a6bf-5988ec013c4c", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "c447a850-2549-4c6a-ad3e-47cb6b26ac0b", + "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "userHandle": "TCConnCopilot", + "projectId": 17324, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 22.66, - "customerRate": 265.36, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:53.776Z", - "updatedAt": "2021-05-30T16:03:49.745Z", + "createdAt": "2021-05-30T11:49:16.706Z", + "updatedAt": "2021-05-30T16:03:37.121Z", "payments": [] }, { - "id": "064d2511-9af6-4d6a-be4f-79eebacc6345", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, + "id": "66732a8f-7bab-4e46-8eda-c58f28344114", + "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "userHandle": "TCConnCopilot", + "projectId": 17324, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 66.85, - "customerRate": 16.02, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:53.778Z", - "updatedAt": "2021-05-30T16:11:59.550Z", - "payments": [] - }, - { - "id": "c8c69543-1598-43e4-9ef6-8a569ebdf831", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 252.02, - "customerRate": 271.75, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:53.716Z", - "updatedAt": "2021-05-30T16:11:59.551Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:16.759Z", + "updatedAt": "2021-05-30T16:04:44.983Z", "payments": [] }, { - "id": "0d237fa9-3fe9-48dc-82b8-7027edddc5a1", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, + "id": "444fbe9a-616e-443a-a1b5-aadfe7c617ff", + "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "userHandle": "TCConnCopilot", + "projectId": 17324, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 33.79, - "customerRate": 155.11, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:53.731Z", - "updatedAt": "2021-05-30T16:05:57.480Z", + "createdAt": "2021-05-30T11:49:16.687Z", + "updatedAt": "2021-05-30T16:05:13.852Z", "payments": [] }, { - "id": "7bc96a71-deda-4cde-b8b0-f809cea1398a", - "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", - "userHandle": "gliu", - "projectId": 17290, + "id": "50865971-2fd2-4576-a799-8ab438e9dd75", + "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", + "userHandle": "TCConnCopilot", + "projectId": 17324, "startDate": "2021-01-17", "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 140.77, - "customerRate": 120.77, + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:53.710Z", - "updatedAt": "2021-05-30T16:04:26.082Z", + "createdAt": "2021-05-30T11:49:16.701Z", + "updatedAt": "2021-05-30T16:05:05.541Z", "payments": [] } ] }, { - "id": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "projectId": 17290, - "userId": "1f6ca39c-0620-4de0-9bb2-d64d4ce26b42", - "jobId": "fe600350-0a6d-4dac-922f-a6a7d285daa1", - "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 4.07, - "customerRate": 296.66, + "id": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "projectId": 17103, + "userId": "9e4b1242-9b14-4159-bd0b-de7fa1803ca9", + "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", + "status": "cancelled", + "startDate": "2021-01-21", + "endDate": "2021-02-21", + "memberRate": 61.33, + "customerRate": 196.21, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-18T07:05:53.664Z", - "updatedAt": "2021-05-30T11:48:33.177Z", + "createdAt": "2021-05-01T10:25:50.725Z", + "updatedAt": "2021-05-30T11:49:19.410Z", "workPeriods": [ { - "id": "e29735b3-cf81-4877-8fd5-6d346a1824f0", - "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "userHandle": "suacoustic", - "projectId": 17290, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 8.1, - "customerRate": 273.89, - "paymentStatus": "completed", + "id": "f04d5bb8-abba-4447-92f0-005e823238f8", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, + "startDate": "2021-02-21", + "endDate": "2021-02-27", + "daysWorked": 0, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "no-days", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:33.942Z", - "updatedAt": "2021-05-30T16:03:12.511Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:20.193Z", + "updatedAt": "2021-05-30T16:12:15.996Z", "payments": [] }, { - "id": "df0b3604-7ee9-4862-a8d1-abe8a2142f77", - "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "userHandle": "suacoustic", - "projectId": 17290, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "fe874682-2ba6-4f42-929b-efc9e05adafd", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, + "startDate": "2021-02-14", + "endDate": "2021-02-20", "daysWorked": 5, - "memberRate": 154, - "customerRate": 244.09, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:33.954Z", - "updatedAt": "2021-05-30T16:03:15.193Z", + "createdAt": "2021-05-30T11:49:20.197Z", + "updatedAt": "2021-05-30T15:58:40.816Z", "payments": [] }, { - "id": "9a480e44-2026-4327-a220-715ace30743e", - "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "userHandle": "suacoustic", - "projectId": 17290, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 248.36, - "customerRate": 257.04, + "id": "217f124d-37db-49a8-9cac-187c5c8b2905", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:33.952Z", - "updatedAt": "2021-05-30T16:04:12.811Z", + "createdAt": "2021-05-30T11:49:20.202Z", + "updatedAt": "2021-05-30T16:05:38.038Z", "payments": [] }, { - "id": "b6147962-6666-4534-8b73-0c7f9a7052e8", - "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "userHandle": "suacoustic", - "projectId": 17290, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 126.28, - "customerRate": 4.22, + "id": "b826c9b8-12f5-4567-bd62-df524bb690a2", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:33.959Z", - "updatedAt": "2021-05-30T16:11:47.528Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:20.194Z", + "updatedAt": "2021-05-30T16:03:47.803Z", "payments": [] }, { - "id": "47ac2474-d9e9-416d-afa8-fea8fb4f2a6c", - "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", - "userHandle": "suacoustic", - "projectId": 17290, + "id": "3e6436c6-f6d4-4b33-8027-1269b167554f", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, "startDate": "2021-01-24", "endDate": "2021-01-30", - "daysWorked": 4, - "memberRate": 28.27, - "customerRate": 256.06, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:33.940Z", - "updatedAt": "2021-05-30T16:05:12.030Z", + "createdAt": "2021-05-30T11:49:20.200Z", + "updatedAt": "2021-05-30T16:05:18.330Z", + "payments": [] + }, + { + "id": "56f49073-e651-479c-967c-8ba58e36b8e6", + "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", + "userHandle": "ApolloZhang", + "projectId": 17103, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 2, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:20.236Z", + "updatedAt": "2021-05-30T16:12:15.994Z", "payments": [] } ] }, { - "id": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "projectId": 16781, - "userId": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "jobId": "ff3feeae-d4f7-457c-bff7-215be5efe2b8", + "id": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "projectId": 17232, + "userId": "1ab93e53-71f6-4c50-ab48-9446229b6451", + "jobId": "ff76b81d-f49b-4019-b50e-c7932a818f19", "status": "placed", "startDate": "2021-01-01", "endDate": "2021-02-01", - "memberRate": 54.02, - "customerRate": 217.99, + "memberRate": 18.4, + "customerRate": 84.88, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-12T15:02:15.210Z", - "updatedAt": "2021-05-30T11:48:59.149Z", + "createdAt": "2021-05-17T13:12:55.459Z", + "updatedAt": "2021-05-30T11:48:11.067Z", "workPeriods": [ { - "id": "d062e2fe-2446-4fb5-b0b3-0577cd57fd7c", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "e84de57c-d131-4431-8e46-9452218d30e7", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 122.15, - "customerRate": 115.26, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:59.909Z", - "updatedAt": "2021-05-30T16:03:24.198Z", + "createdAt": "2021-05-30T11:48:12.550Z", + "updatedAt": "2021-05-30T16:03:08.981Z", "payments": [] }, { - "id": "bdd60068-9e8d-4c43-8440-48a066ba4396", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "97dabae3-74dd-45f6-ab83-53e4a828c4a6", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2020-12-27", + "endDate": "2021-01-02", "daysWorked": 1, - "memberRate": 15.41, - "customerRate": 55.77, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:59.921Z", - "updatedAt": "2021-05-30T16:12:03.178Z", + "createdAt": "2021-05-30T11:48:12.488Z", + "updatedAt": "2021-05-30T16:11:34.545Z", "payments": [] }, { - "id": "a0eec246-3b4d-41b6-9d54-b892513bd727", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "75c345fa-9e34-46a9-8cf0-46245495110d", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 231.38, - "customerRate": 270.68, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:00.007Z", - "updatedAt": "2021-05-30T16:04:10.173Z", + "createdAt": "2021-05-30T11:48:12.586Z", + "updatedAt": "2021-05-30T16:04:33.475Z", "payments": [] }, { - "id": "752f3cf3-a9c2-487c-93ae-22d21af10403", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "20242864-9dd6-4376-85fb-1402297e4597", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 66.85, - "customerRate": 42.45, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:00.041Z", - "updatedAt": "2021-05-30T16:04:34.403Z", + "createdAt": "2021-05-30T11:48:12.497Z", + "updatedAt": "2021-05-30T16:05:41.521Z", "payments": [] }, { - "id": "5be5a577-32cd-4557-8d11-bb5723dd7be2", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 158.5, - "customerRate": 299.34, + "id": "c0c613e3-845a-45c0-85fe-41c063d9df3d", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:59.998Z", - "updatedAt": "2021-05-30T16:04:57.065Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:12.493Z", + "updatedAt": "2021-05-30T16:11:34.546Z", "payments": [] }, { - "id": "e9ff7b7f-05ec-45f9-a09e-b2c24017b59b", - "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", - "userHandle": "nkumartest", - "projectId": 16781, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 34.56, - "customerRate": 175.32, + "id": "b53b6f48-0a07-434e-a03d-f5d9ab772e60", + "resourceBookingId": "f88e8c6b-565a-41ca-a8b4-72351fc140fe", + "userHandle": "droopy74", + "projectId": 17232, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:59.974Z", - "updatedAt": "2021-05-30T16:12:03.180Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:12.515Z", + "updatedAt": "2021-05-30T16:03:53.254Z", "payments": [] } ] }, { - "id": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "projectId": 17363, - "userId": "c40cdb0a-4fac-4ca1-8052-d92001858887", - "jobId": "fd48d96e-b0f2-43b7-8a48-f4fa194d6bc8", + "id": "f667a667-6026-4d93-89bb-358aced982e5", + "projectId": 16870, + "userId": "2bba34d5-20e4-46d6-bfc1-05736b17afbb", + "jobId": "fed687e1-4257-48bb-806c-38712f9bf14f", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 235.26, - "customerRate": 84.88, - "rateType": "hourly", + "startDate": "2021-01-03", + "endDate": "2021-02-03", + "memberRate": 61.4, + "customerRate": 114.05, + "rateType": "daily", "billingAccountId": 80000071, - "createdBy": "71c5e6a8-51d9-4fb5-91ce-d974642531af", + "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-28T04:41:39.728Z", - "updatedAt": "2021-05-30T11:48:34.793Z", + "createdAt": "2021-04-29T09:28:04.405Z", + "updatedAt": "2021-05-30T11:48:13.500Z", "workPeriods": [ { - "id": "94a897e9-6291-4206-a0b1-74c35ff06a6e", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": null, - "memberRate": 214.34, - "customerRate": 16.02, + "id": "d44b8f1a-46b7-43a8-afd6-d2d13bd02fa5", + "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:35.596Z", - "updatedAt": "2021-05-30T16:04:17.285Z", + "createdAt": "2021-05-30T11:48:14.367Z", + "updatedAt": "2021-05-30T16:03:23.275Z", "payments": [] }, { - "id": "2570737c-02b4-4b90-b692-45dcc5774215", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 34.23, - "customerRate": 257.04, + "id": "7011b330-8509-4f60-a2db-c0f5c9b5837b", + "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 3, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:35.576Z", - "updatedAt": "2021-05-30T16:11:48.431Z", + "createdAt": "2021-05-30T11:48:14.320Z", + "updatedAt": "2021-05-30T16:11:35.512Z", "payments": [] }, { - "id": "789b83d2-3278-4c90-a5c1-3aa96e61db4b", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "8252cd13-4351-4a86-9315-521963f329f5", + "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 181.55, - "customerRate": 97.01, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:35.600Z", - "updatedAt": "2021-05-30T16:04:27.884Z", + "createdAt": "2021-05-30T11:48:14.322Z", + "updatedAt": "2021-05-30T16:04:23.465Z", "payments": [] }, { - "id": "764fec45-842e-4d06-b009-29ba4c9c116c", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "259d8de1-1c56-49d0-936d-d5fcbdcc5a8a", + "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 197.07, - "customerRate": 39.93, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:35.588Z", - "updatedAt": "2021-05-30T16:04:32.547Z", + "createdAt": "2021-05-30T11:48:14.314Z", + "updatedAt": "2021-05-30T16:05:34.486Z", "payments": [] }, { - "id": "00fa978f-e2c4-4cab-8da9-e6b0dce80258", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, + "id": "1dd649b8-f536-4285-989d-56c45f1fca4d", + "resourceBookingId": "f667a667-6026-4d93-89bb-358aced982e5", + "userHandle": "GunaK-TopCoder", + "projectId": 16870, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 34.07, - "customerRate": 287.29, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:35.585Z", - "updatedAt": "2021-05-30T16:06:04.649Z", - "payments": [] - }, - { - "id": "daa54d7d-84f5-4f62-b58c-4c09ec26dd1a", - "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", - "userHandle": "ApolloChang", - "projectId": 17363, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 297.19, - "customerRate": 32.3, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:35.581Z", - "updatedAt": "2021-05-30T16:11:48.432Z", + "createdAt": "2021-05-30T11:48:14.325Z", + "updatedAt": "2021-05-30T16:05:45.949Z", "payments": [] } ] }, { - "id": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "id": "d84082de-9a09-4e9b-b5ab-4024f67687c5", "projectId": 17103, - "userId": "d8e11333-af08-4149-a270-b355001b44e7", + "userId": "fa5f4dc4-2992-4066-b4cc-16ceb5d1c1b7", "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 240.84, - "customerRate": 100.25, - "rateType": "weekly", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 287.14, + "customerRate": 258.37, + "rateType": "daily", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T12:20:21.613Z", - "updatedAt": "2021-05-30T11:48:28.143Z", + "createdAt": "2021-05-02T06:00:42.366Z", + "updatedAt": "2021-05-30T11:48:23.808Z", "workPeriods": [ { - "id": "d0571318-a0be-4263-bfe9-eba783ba8957", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", + "id": "b60da405-cee8-41c9-919b-98d9acfd9f74", + "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", + "userHandle": "rtuthaya", + "projectId": 17103, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:24.607Z", + "updatedAt": "2021-05-30T16:03:52.385Z", + "payments": [] + }, + { + "id": "19110441-201e-449b-a350-661c50fb1387", + "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", + "userHandle": "rtuthaya", "projectId": 17103, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 4, - "memberRate": 205.68, - "customerRate": 154.12, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:28.918Z", - "updatedAt": "2021-05-30T16:03:25.073Z", + "createdAt": "2021-05-30T11:48:24.639Z", + "updatedAt": "2021-05-30T16:05:49.510Z", "payments": [] }, { - "id": "9fd57023-518e-42e3-a998-6098ae49a3fb", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", + "id": "1f12ada9-d0e6-43df-abe5-8a78850b20b4", + "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", + "userHandle": "rtuthaya", "projectId": 17103, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "startDate": "2021-02-07", + "endDate": "2021-02-13", "daysWorked": 4, - "memberRate": 202.33, - "customerRate": 1.49, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:28.905Z", - "updatedAt": "2021-05-30T16:04:11.041Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:24.601Z", + "updatedAt": "2021-05-30T16:11:41.938Z", "payments": [] }, { - "id": "b473e949-0a6e-452c-b626-6cc79ee61d1c", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", + "id": "1e94f892-ae25-4233-b9b0-81aa70c00b1e", + "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", + "userHandle": "rtuthaya", "projectId": 17103, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 146.28, - "customerRate": 145.74, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:28.924Z", - "updatedAt": "2021-05-30T16:03:54.140Z", + "createdAt": "2021-05-30T11:48:24.604Z", + "updatedAt": "2021-05-30T16:05:45.069Z", "payments": [] }, { - "id": "b952458d-12a9-4398-b549-3fe44d3814dd", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", + "id": "4d7f0350-b2f0-4f31-acc3-6555c3756fdd", + "resourceBookingId": "d84082de-9a09-4e9b-b5ab-4024f67687c5", + "userHandle": "rtuthaya", "projectId": 17103, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 214.34, - "customerRate": 167.08, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:28.922Z", - "updatedAt": "2021-05-30T16:11:44.684Z", - "payments": [] - }, - { - "id": "f206743e-f797-40a8-8dee-634fb0f08e08", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", - "projectId": 17103, - "startDate": "2021-01-03", - "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 184.32, - "customerRate": 255.03, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:28.873Z", - "updatedAt": "2021-05-30T16:02:57.423Z", - "payments": [] - }, - { - "id": "ef0f5c89-c979-4504-9b20-54b110a1495a", - "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", - "userHandle": "mvarlie", - "projectId": 17103, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 166.73, - "customerRate": 189.61, - "paymentStatus": "partially-completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:28.915Z", - "updatedAt": "2021-05-30T16:11:44.683Z", + "createdAt": "2021-05-30T11:48:24.637Z", + "updatedAt": "2021-05-30T16:05:08.370Z", "payments": [] } ] }, { - "id": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "projectId": 16899, - "userId": "47034de0-698d-4e1b-a10b-ae4b8c59288e", - "jobId": "fe270791-bc24-4f6a-8c1b-b897f5d97d2f", + "id": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "projectId": 16870, + "userId": "60d3e956-820b-4d59-a30b-9309b838fac5", + "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", "status": "placed", "startDate": "2021-01-01", "endDate": "2021-02-01", - "memberRate": 4.07, - "customerRate": 258.37, - "rateType": "monthly", + "memberRate": 60.63, + "customerRate": 132.43, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T09:36:02.161Z", - "updatedAt": "2021-05-30T11:48:31.516Z", + "createdAt": "2021-04-30T08:09:51.618Z", + "updatedAt": "2021-05-30T11:48:20.311Z", "workPeriods": [ { - "id": "0ae1abc8-3e8d-4eea-933e-ab3cfa7c6826", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "6ad492cf-4d90-4608-8dd5-13aaafad12e2", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, + "startDate": "2020-12-27", + "endDate": "2021-01-02", "daysWorked": 1, - "memberRate": 122.15, - "customerRate": 25.64, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:32.269Z", - "updatedAt": "2021-05-30T16:11:46.620Z", + "createdAt": "2021-05-30T11:48:21.194Z", + "updatedAt": "2021-05-30T16:11:39.976Z", "payments": [] }, { - "id": "97fd7b67-0cd7-47fb-9017-7a7b653ef940", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, + "id": "61134c36-5e69-469c-bc50-75648f7949ca", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 298.22, - "customerRate": 271.9, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:32.256Z", - "updatedAt": "2021-05-30T16:04:14.644Z", + "createdAt": "2021-05-30T11:48:21.187Z", + "updatedAt": "2021-05-30T16:04:51.659Z", "payments": [] }, { - "id": "3fe04a0d-62ff-4060-935a-4f294ee19fac", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, - "startDate": "2020-12-27", - "endDate": "2021-01-02", + "id": "f095424c-9a15-4f37-b8e4-1cd685f17451", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 1, - "memberRate": 280.11, - "customerRate": 195.99, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:32.237Z", - "updatedAt": "2021-05-30T16:11:46.621Z", + "createdAt": "2021-05-30T11:48:21.198Z", + "updatedAt": "2021-05-30T16:11:39.977Z", "payments": [] }, { - "id": "a3daf653-c87c-451b-acfc-508ef8364fbb", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "f79b0a83-5f72-4e9c-bffe-4ebf694db7f4", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 207.81, - "customerRate": 297.59, - "paymentStatus": "cancelled", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:32.273Z", - "updatedAt": "2021-05-30T16:04:05.668Z", + "createdAt": "2021-05-30T11:48:21.107Z", + "updatedAt": "2021-05-30T16:02:50.987Z", "payments": [] }, { - "id": "15337715-0c4a-4036-a1d3-5aaa14a214af", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, + "id": "c75ee2eb-a7c0-4eb8-83f9-860ce22d1b03", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, "startDate": "2021-01-03", "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 104.85, - "customerRate": 260.77, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:32.252Z", - "updatedAt": "2021-05-30T16:05:51.388Z", + "createdAt": "2021-05-30T11:48:21.104Z", + "updatedAt": "2021-05-30T16:03:34.616Z", "payments": [] }, { - "id": "304a0ba1-2534-46c0-b2e9-9d85936755df", - "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", - "userHandle": "brijgogogo", - "projectId": 16899, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "b0aad7c5-bafb-4cae-90ca-832334505e9b", + "resourceBookingId": "e673b52e-738d-47f9-bf37-68f6b5ed1926", + "userHandle": "Hypernova", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 129.72, - "customerRate": 93.25, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:32.234Z", - "updatedAt": "2021-05-30T16:05:28.904Z", + "createdAt": "2021-05-30T11:48:21.192Z", + "updatedAt": "2021-05-30T16:03:58.410Z", "payments": [] } ] }, { - "id": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "projectId": 16706, - "userId": "149c9ad0-f5d7-4192-8c61-f634f6120816", - "jobId": "fc2b006d-997b-49c3-a414-59ee54a48f9f", - "status": "sourcing", + "id": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "projectId": 16899, + "userId": "5bc40e16-4fdb-40f1-93fe-de465789e1b2", + "jobId": "fe270791-bc24-4f6a-8c1b-b897f5d97d2f", + "status": "placed", "startDate": "2021-01-11", "endDate": "2021-02-11", - "memberRate": 201.77, - "customerRate": 84.88, + "memberRate": 271.93, + "customerRate": 102.37, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-26T08:27:38.944Z", - "updatedAt": "2021-05-30T11:41:01.828Z", + "createdAt": "2021-05-01T09:45:15.939Z", + "updatedAt": "2021-05-30T11:48:39.054Z", "workPeriods": [ { - "id": "b21eed94-dce5-42e1-9734-155594773222", - "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "userHandle": "lt_dan", - "projectId": 16706, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "eeea5cf0-513c-4d1a-9318-a376aa86c28f", + "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "userHandle": "ramag", + "projectId": 16899, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 186.09, - "customerRate": 37.15, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:02.603Z", - "updatedAt": "2021-05-30T16:03:56.759Z", + "createdAt": "2021-05-30T11:48:39.879Z", + "updatedAt": "2021-05-30T16:03:01.733Z", "payments": [] }, { - "id": "85201917-77e0-41d1-8c76-66eefcbc23e0", - "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "userHandle": "lt_dan", - "projectId": 16706, + "id": "ab2c5ad4-165f-48d2-bf1c-005b56e049ce", + "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "userHandle": "ramag", + "projectId": 16899, "startDate": "2021-02-07", "endDate": "2021-02-13", "daysWorked": 4, - "memberRate": 143.95, - "customerRate": 7.02, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:41:02.617Z", - "updatedAt": "2021-05-30T16:11:54.733Z", + "createdAt": "2021-05-30T11:48:39.824Z", + "updatedAt": "2021-05-30T16:11:51.073Z", "payments": [] }, { - "id": "56105e62-d690-484c-9fe8-b6d18671c9ac", - "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "userHandle": "lt_dan", - "projectId": 16706, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "aed553d8-4eb4-45a8-86f0-3c21f81c7570", + "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "userHandle": "ramag", + "projectId": 16899, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 127.23, - "customerRate": 162.5, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:02.600Z", - "updatedAt": "2021-05-30T16:04:59.664Z", + "createdAt": "2021-05-30T11:48:39.870Z", + "updatedAt": "2021-05-30T16:04:00.297Z", "payments": [] }, { - "id": "5d6c9cf8-a6bc-43b9-af35-67812fc10db9", - "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "userHandle": "lt_dan", - "projectId": 16706, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "4c9a7d50-8014-4ff2-9867-98dc66e466ac", + "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "userHandle": "ramag", + "projectId": 16899, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 140.77, - "customerRate": 161.96, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:02.595Z", - "updatedAt": "2021-05-30T16:04:54.450Z", + "createdAt": "2021-05-30T11:48:39.838Z", + "updatedAt": "2021-05-30T16:05:09.308Z", "payments": [] }, { - "id": "34ab1933-c9a3-4087-b220-3716d3729703", - "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", - "userHandle": "lt_dan", - "projectId": 16706, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "d5c4716f-e26a-4d3f-a57d-2410d7537ecd", + "resourceBookingId": "9e6e2bd4-1e4d-401b-871b-2c8fe8f44b54", + "userHandle": "ramag", + "projectId": 16899, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 202.33, - "customerRate": 140.66, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:41:02.645Z", - "updatedAt": "2021-05-30T16:05:24.577Z", + "createdAt": "2021-05-30T11:48:39.820Z", + "updatedAt": "2021-05-30T16:03:21.454Z", "payments": [] } ] }, { - "id": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "projectId": 16714, - "userId": "bde2cf99-b290-40cd-a064-9b6bb7e54bea", - "jobId": "fc0240f0-8c8f-40ce-a551-e83b45673098", - "status": "sourcing", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 115.29, - "customerRate": 84.88, + "id": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "projectId": 17290, + "userId": "0eaf032f-f376-47cc-b7aa-668685efac90", + "jobId": "fe600350-0a6d-4dac-922f-a6a7d285daa1", + "status": "placed", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 106.51, + "customerRate": 111.21, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-26T08:16:00.294Z", - "updatedAt": "2021-05-30T11:48:40.735Z", + "createdAt": "2021-05-18T08:18:13.123Z", + "updatedAt": "2021-05-30T11:48:52.915Z", "workPeriods": [ { - "id": "ae316c25-ec04-4bc1-b209-798b69ed5250", - "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "userHandle": "atish.chandra", - "projectId": 16714, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "e6b70714-8bd6-47ce-9e58-f04d3c25ee28", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 34.07, - "customerRate": 55.77, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:41.592Z", - "updatedAt": "2021-05-30T16:04:01.125Z", + "createdAt": "2021-05-30T11:48:53.719Z", + "updatedAt": "2021-05-30T16:03:09.841Z", "payments": [] }, { - "id": "7501c035-46c4-4704-973a-595145bd2d17", - "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "userHandle": "atish.chandra", - "projectId": 16714, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 114.76, - "customerRate": 268.61, + "id": "b6c1f079-e5cb-46a0-a6bf-5988ec013c4c", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:53.776Z", + "updatedAt": "2021-05-30T16:03:49.745Z", + "payments": [] + }, + { + "id": "064d2511-9af6-4d6a-be4f-79eebacc6345", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:41.588Z", - "updatedAt": "2021-05-30T16:11:52.009Z", + "createdAt": "2021-05-30T11:48:53.778Z", + "updatedAt": "2021-05-30T16:11:59.550Z", "payments": [] }, { - "id": "519b4818-8e39-4d4c-bcc6-3486816a4bc8", - "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "userHandle": "atish.chandra", - "projectId": 16714, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 173.56, - "customerRate": 140.66, + "id": "c8c69543-1598-43e4-9ef6-8a569ebdf831", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:41.595Z", - "updatedAt": "2021-05-30T16:05:04.624Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:53.716Z", + "updatedAt": "2021-05-30T16:11:59.551Z", "payments": [] }, { - "id": "13444e2f-1254-40fc-a7d9-08ca49fc7239", - "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "userHandle": "atish.chandra", - "projectId": 16714, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "0d237fa9-3fe9-48dc-82b8-7027edddc5a1", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 276.5, - "customerRate": 287.29, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:41.597Z", - "updatedAt": "2021-05-30T16:05:53.017Z", + "createdAt": "2021-05-30T11:48:53.731Z", + "updatedAt": "2021-05-30T16:05:57.480Z", "payments": [] }, { - "id": "66c66f68-3882-4521-9c4e-ce08e6b47ca0", - "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", - "userHandle": "atish.chandra", - "projectId": 16714, + "id": "7bc96a71-deda-4cde-b8b0-f809cea1398a", + "resourceBookingId": "72829b1f-9183-4660-815f-d3e80d38a5a9", + "userHandle": "gliu", + "projectId": 17290, "startDate": "2021-01-17", "endDate": "2021-01-23", - "daysWorked": 4, - "memberRate": 43.3, - "customerRate": 72.49, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:41.579Z", - "updatedAt": "2021-05-30T16:04:44.142Z", + "createdAt": "2021-05-30T11:48:53.710Z", + "updatedAt": "2021-05-30T16:04:26.082Z", "payments": [] } ] }, { - "id": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "projectId": 16805, - "userId": "13330208-ab10-4ca3-9fd1-a132fbf7ac4e", - "jobId": "fc58382a-31d7-44b7-bfe5-2d671300f8d9", + "id": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "projectId": 17290, + "userId": "1f6ca39c-0620-4de0-9bb2-d64d4ce26b42", + "jobId": "fe600350-0a6d-4dac-922f-a6a7d285daa1", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 4.79, - "customerRate": 146.2, + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 4.07, + "customerRate": 296.66, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-19T11:04:22.566Z", - "updatedAt": "2021-05-30T11:48:46.861Z", + "createdAt": "2021-05-18T07:05:53.664Z", + "updatedAt": "2021-05-30T11:48:33.177Z", "workPeriods": [ { - "id": "f2a85b87-8e75-4db9-b29c-a3c170101ed6", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, + "id": "e29735b3-cf81-4877-8fd5-6d346a1824f0", + "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "userHandle": "suacoustic", + "projectId": 17290, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 104.6, - "customerRate": 217.32, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:47.631Z", - "updatedAt": "2021-05-30T16:02:54.605Z", - "payments": [] - }, - { - "id": "e6801711-327e-4387-a7f0-d592b49b1ba3", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 54.82, - "customerRate": 191.42, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:47.726Z", - "updatedAt": "2021-05-30T16:03:10.690Z", - "payments": [] - }, - { - "id": "cd44a405-c77a-4f6d-95a7-c10de740eb29", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "createdAt": "2021-05-30T11:48:33.942Z", + "updatedAt": "2021-05-30T16:03:12.511Z", + "payments": [] + }, + { + "id": "df0b3604-7ee9-4862-a8d1-abe8a2142f77", + "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "userHandle": "suacoustic", + "projectId": 17290, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 70.98, - "customerRate": 107.72, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:47.728Z", - "updatedAt": "2021-05-30T16:03:27.679Z", + "createdAt": "2021-05-30T11:48:33.954Z", + "updatedAt": "2021-05-30T16:03:15.193Z", "payments": [] }, { - "id": "6565d172-61c4-4357-a01f-b8e6bf179e2f", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 172.94, - "customerRate": 67.44, + "id": "9a480e44-2026-4327-a220-715ace30743e", + "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "userHandle": "suacoustic", + "projectId": 17290, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:47.638Z", - "updatedAt": "2021-05-30T16:11:55.746Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:33.952Z", + "updatedAt": "2021-05-30T16:04:12.811Z", "payments": [] }, { - "id": "f7c8a1e8-76c6-4eee-bb99-15cce5cb8b1f", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 219.84, - "customerRate": 122.72, + "id": "b6147962-6666-4534-8b73-0c7f9a7052e8", + "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "userHandle": "suacoustic", + "projectId": 17290, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:47.648Z", - "updatedAt": "2021-05-30T16:11:55.747Z", + "createdAt": "2021-05-30T11:48:33.959Z", + "updatedAt": "2021-05-30T16:11:47.528Z", "payments": [] }, { - "id": "a71105ef-a2b8-4163-b2de-9ddcaa8329bb", - "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", - "userHandle": "Soumyajit_Lotus", - "projectId": 16805, + "id": "47ac2474-d9e9-416d-afa8-fea8fb4f2a6c", + "resourceBookingId": "c666e835-4145-406e-b6bb-8b0f98ed8f68", + "userHandle": "suacoustic", + "projectId": 17290, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 4, - "memberRate": 252.02, - "customerRate": 219.79, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:47.731Z", - "updatedAt": "2021-05-30T16:04:02.955Z", + "createdAt": "2021-05-30T11:48:33.940Z", + "updatedAt": "2021-05-30T16:05:12.030Z", "payments": [] } ] }, { - "id": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "projectId": 17232, - "userId": "8e6bfd51-fd78-45fa-9234-172976168f29", - "jobId": "ff76b81d-f49b-4019-b50e-c7932a818f19", + "id": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "projectId": 16781, + "userId": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "jobId": "ff3feeae-d4f7-457c-bff7-215be5efe2b8", "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 225.34, - "customerRate": 170.64, - "rateType": "monthly", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 54.02, + "customerRate": 217.99, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-18T04:01:23.725Z", - "updatedAt": "2021-05-30T11:48:44.244Z", + "createdAt": "2021-01-12T15:02:15.210Z", + "updatedAt": "2021-05-30T11:48:59.149Z", "workPeriods": [ { - "id": "eeda07cc-8a10-4337-ab8d-e1107e4072a0", - "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "userHandle": "cyber-guard", - "projectId": 17232, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "d062e2fe-2446-4fb5-b0b3-0577cd57fd7c", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 204.06, - "customerRate": 143.1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:45.002Z", - "updatedAt": "2021-05-30T16:03:02.635Z", + "createdAt": "2021-05-30T11:48:59.909Z", + "updatedAt": "2021-05-30T16:03:24.198Z", "payments": [] }, { - "id": "7aaa313f-62be-4483-80b2-87a95b4a0b8c", - "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "userHandle": "cyber-guard", - "projectId": 17232, + "id": "bdd60068-9e8d-4c43-8440-48a066ba4396", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 185.82, - "customerRate": 286.29, + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:45.006Z", - "updatedAt": "2021-05-30T16:04:26.995Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:59.921Z", + "updatedAt": "2021-05-30T16:12:03.178Z", "payments": [] }, { - "id": "c0568bd9-1523-494d-bb3b-4b7a89026de9", - "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "userHandle": "cyber-guard", - "projectId": 17232, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 248.86, - "customerRate": 271.75, + "id": "a0eec246-3b4d-41b6-9d54-b892513bd727", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:45.074Z", - "updatedAt": "2021-05-30T16:11:53.758Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:00.007Z", + "updatedAt": "2021-05-30T16:04:10.173Z", "payments": [] }, { - "id": "4f7b2806-cdc4-40de-979e-82573123b1ce", - "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "userHandle": "cyber-guard", - "projectId": 17232, + "id": "752f3cf3-a9c2-487c-93ae-22d21af10403", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 162.88, - "customerRate": 11.72, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:45.076Z", - "updatedAt": "2021-05-30T16:05:06.523Z", + "createdAt": "2021-05-30T11:49:00.041Z", + "updatedAt": "2021-05-30T16:04:34.403Z", "payments": [] }, { - "id": "3a652bb3-69b2-4e9b-b6e7-804568a9a76b", - "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", - "userHandle": "cyber-guard", - "projectId": 17232, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "5be5a577-32cd-4557-8d11-bb5723dd7be2", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 54.97, - "customerRate": 167.68, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:45.012Z", - "updatedAt": "2021-05-30T16:05:20.251Z", + "createdAt": "2021-05-30T11:48:59.998Z", + "updatedAt": "2021-05-30T16:04:57.065Z", + "payments": [] + }, + { + "id": "e9ff7b7f-05ec-45f9-a09e-b2c24017b59b", + "resourceBookingId": "5b93498d-eecf-4798-ad62-0dea8b4aa49e", + "userHandle": "nkumartest", + "projectId": 16781, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:59.974Z", + "updatedAt": "2021-05-30T16:12:03.180Z", "payments": [] } ] }, { - "id": "905654a2-e07d-47a3-b577-c03d100bc94a", - "projectId": 17300, - "userId": "6719d9dc-beca-4731-a4be-a214152ccadf", - "jobId": "fd13ad99-f16a-4362-9274-80f5f38895c3", + "id": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "projectId": 17363, + "userId": "c40cdb0a-4fac-4ca1-8052-d92001858887", + "jobId": "fd48d96e-b0f2-43b7-8a48-f4fa194d6bc8", "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 66, - "customerRate": 132.43, - "rateType": "daily", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 235.26, + "customerRate": 84.88, + "rateType": "hourly", "billingAccountId": 80000071, - "createdBy": "00000000-0000-0000-0000-000000000000", + "createdBy": "71c5e6a8-51d9-4fb5-91ce-d974642531af", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-19T07:40:44.211Z", - "updatedAt": "2021-05-30T11:48:42.523Z", + "createdAt": "2021-05-28T04:41:39.728Z", + "updatedAt": "2021-05-30T11:48:34.793Z", "workPeriods": [ { - "id": "6ca0c12a-eecb-4d12-b40d-89a19f2c38ad", - "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", - "userHandle": "vimal123", - "projectId": 17300, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 216.67, - "customerRate": 281.91, + "id": "2570737c-02b4-4b90-b692-45dcc5774215", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:43.331Z", - "updatedAt": "2021-05-30T16:11:52.856Z", + "createdAt": "2021-05-30T11:48:35.576Z", + "updatedAt": "2021-05-30T16:11:48.431Z", "payments": [] }, { - "id": "92f9e88b-bc75-4934-9c3f-cdb3a846e545", - "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", - "userHandle": "vimal123", - "projectId": 17300, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "789b83d2-3278-4c90-a5c1-3aa96e61db4b", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 85.45, - "customerRate": 273.89, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:43.339Z", - "updatedAt": "2021-05-30T16:04:18.164Z", + "createdAt": "2021-05-30T11:48:35.600Z", + "updatedAt": "2021-05-30T16:04:27.884Z", "payments": [] }, { - "id": "bc7af7e8-873a-4ddf-a3a5-8b5f0db41827", - "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", - "userHandle": "vimal123", - "projectId": 17300, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": null, - "memberRate": 239.68, - "customerRate": 180.76, - "paymentStatus": "partially-completed", + "id": "764fec45-842e-4d06-b009-29ba4c9c116c", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:43.254Z", - "updatedAt": "2021-05-30T16:03:45.211Z", + "createdAt": "2021-05-30T11:48:35.588Z", + "updatedAt": "2021-05-30T16:04:32.547Z", "payments": [] }, { - "id": "11084a75-bae7-4c93-a2fc-44ff691b6ded", - "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", - "userHandle": "vimal123", - "projectId": 17300, + "id": "00fa978f-e2c4-4cab-8da9-e6b0dce80258", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 79.89, - "customerRate": 174.2, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:43.335Z", - "updatedAt": "2021-05-30T16:05:54.898Z", + "createdAt": "2021-05-30T11:48:35.585Z", + "updatedAt": "2021-05-30T16:06:04.649Z", "payments": [] }, { - "id": "6c3a492a-d2bf-4740-91b0-0d877b044268", - "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", - "userHandle": "vimal123", - "projectId": 17300, + "id": "daa54d7d-84f5-4f62-b58c-4c09ec26dd1a", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:35.581Z", + "updatedAt": "2021-05-30T16:11:48.432Z", + "payments": [] + }, + { + "id": "94a897e9-6291-4206-a0b1-74c35ff06a6e", + "resourceBookingId": "a74df62a-dba0-4214-8f8e-5e071f359afe", + "userHandle": "ApolloChang", + "projectId": 17363, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 66.85, - "customerRate": 154.65, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:43.275Z", - "updatedAt": "2021-05-30T16:04:41.476Z", + "createdAt": "2021-05-30T11:48:35.596Z", + "updatedAt": "2021-05-30T16:04:17.285Z", "payments": [] } ] }, { - "id": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "projectId": 16718, - "userId": "a953dce3-8dd3-413f-b253-0ca76ff59f36", - "jobId": "fb2f5f9b-5874-4dcd-af94-727fc0409760", - "status": "sourcing", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 269.46, - "customerRate": 138.32, - "rateType": "monthly", + "id": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "projectId": 17103, + "userId": "d8e11333-af08-4149-a270-b355001b44e7", + "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", + "status": "placed", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 240.84, + "customerRate": 100.25, + "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-26T08:24:56.376Z", - "updatedAt": "2021-05-30T11:48:51.233Z", + "createdAt": "2021-05-01T12:20:21.613Z", + "updatedAt": "2021-05-30T11:48:28.143Z", "workPeriods": [ { - "id": "0ed78625-e5f0-4f05-b326-632a002d150a", - "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "userHandle": "centurionme", - "projectId": 16718, - "startDate": "2021-02-07", - "endDate": "2021-02-13", + "id": "d0571318-a0be-4263-bfe9-eba783ba8957", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 4, - "memberRate": 46.62, - "customerRate": 76.96, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:52.006Z", - "updatedAt": "2021-05-30T16:11:58.578Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:28.918Z", + "updatedAt": "2021-05-30T16:03:25.073Z", "payments": [] }, { - "id": "279989ed-1e9e-45e9-bdb8-26c03d396344", - "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "userHandle": "centurionme", - "projectId": 16718, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "9fd57023-518e-42e3-a998-6098ae49a3fb", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 4, - "memberRate": 173.64, - "customerRate": 160.37, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:51.981Z", - "updatedAt": "2021-05-30T16:05:33.514Z", + "createdAt": "2021-05-30T11:48:28.905Z", + "updatedAt": "2021-05-30T16:04:11.041Z", "payments": [] }, { - "id": "31530732-4c7a-429c-9384-c219f16590fa", - "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "userHandle": "centurionme", - "projectId": 16718, + "id": "b473e949-0a6e-452c-b626-6cc79ee61d1c", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 239.68, - "customerRate": 84.09, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:51.988Z", - "updatedAt": "2021-05-30T16:05:27.123Z", + "createdAt": "2021-05-30T11:48:28.924Z", + "updatedAt": "2021-05-30T16:03:54.140Z", "payments": [] }, { - "id": "91065330-b979-4b3c-b084-0e14b6be6740", - "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "userHandle": "centurionme", - "projectId": 16718, + "id": "b952458d-12a9-4398-b549-3fe44d3814dd", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 191.95, - "customerRate": 260.09, + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:51.984Z", - "updatedAt": "2021-05-30T16:04:19.946Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:28.922Z", + "updatedAt": "2021-05-30T16:11:44.684Z", "payments": [] }, { - "id": "06187a37-d29a-4bdb-bcb1-e0e7f57eec4a", - "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", - "userHandle": "centurionme", - "projectId": 16718, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "f206743e-f797-40a8-8dee-634fb0f08e08", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 124.66, - "customerRate": 219.67, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:51.978Z", - "updatedAt": "2021-05-30T16:06:00.996Z", + "createdAt": "2021-05-30T11:48:28.873Z", + "updatedAt": "2021-05-30T16:02:57.423Z", + "payments": [] + }, + { + "id": "ef0f5c89-c979-4504-9b20-54b110a1495a", + "resourceBookingId": "caf8fde9-2137-48fb-b388-24a1801eacf3", + "userHandle": "mvarlie", + "projectId": 17103, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:28.915Z", + "updatedAt": "2021-05-30T16:11:44.683Z", "payments": [] } ] }, { - "id": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "projectId": 16870, - "userId": "cc959274-bb53-4612-a4f4-af62496b026c", - "jobId": "fe8da845-5313-496f-b859-9824bd06a0db", + "id": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "projectId": 16899, + "userId": "47034de0-698d-4e1b-a10b-ae4b8c59288e", + "jobId": "fe270791-bc24-4f6a-8c1b-b897f5d97d2f", "status": "placed", - "startDate": "2021-01-12", - "endDate": "2021-02-12", - "memberRate": 240.84, - "customerRate": 188.33, - "rateType": "weekly", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 4.07, + "customerRate": 258.37, + "rateType": "monthly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T09:30:37.276Z", - "updatedAt": "2021-05-30T11:48:54.737Z", + "createdAt": "2021-05-01T09:36:02.161Z", + "updatedAt": "2021-05-30T11:48:31.516Z", "workPeriods": [ { - "id": "c44339a8-5562-493d-9e59-02fded34dadd", - "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "userHandle": "MikeKusold", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 6.22, - "customerRate": 62.03, + "id": "0ae1abc8-3e8d-4eea-933e-ab3cfa7c6826", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:55.482Z", - "updatedAt": "2021-05-30T16:03:38.050Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:32.269Z", + "updatedAt": "2021-05-30T16:11:46.620Z", "payments": [] }, { - "id": "6e8627d9-f3b9-4e56-ba48-0d4cd0572beb", - "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "userHandle": "MikeKusold", - "projectId": 16870, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "97fd7b67-0cd7-47fb-9017-7a7b653ef940", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 21.58, - "customerRate": 72.49, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:55.537Z", - "updatedAt": "2021-05-30T16:04:39.704Z", + "createdAt": "2021-05-30T11:48:32.256Z", + "updatedAt": "2021-05-30T16:04:14.644Z", "payments": [] }, { - "id": "20b18eeb-a78f-4ff2-8a3b-fbd1cfba567c", - "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "userHandle": "MikeKusold", - "projectId": 16870, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": null, - "memberRate": 41.26, - "customerRate": 286.29, + "id": "3fe04a0d-62ff-4060-935a-4f294ee19fac", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:32.237Z", + "updatedAt": "2021-05-30T16:11:46.621Z", + "payments": [] + }, + { + "id": "a3daf653-c87c-451b-acfc-508ef8364fbb", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:55.526Z", - "updatedAt": "2021-05-30T16:05:40.643Z", + "createdAt": "2021-05-30T11:48:32.273Z", + "updatedAt": "2021-05-30T16:04:05.668Z", "payments": [] }, { - "id": "36abc507-0e01-46e3-ab78-52c0e8f848b1", - "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "userHandle": "MikeKusold", - "projectId": 16870, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "15337715-0c4a-4036-a1d3-5aaa14a214af", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 102.8, - "customerRate": 149.44, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:55.539Z", - "updatedAt": "2021-05-30T16:05:22.767Z", + "createdAt": "2021-05-30T11:48:32.252Z", + "updatedAt": "2021-05-30T16:05:51.388Z", "payments": [] }, { - "id": "4b8cc238-bb26-4fbf-ab74-a86c1d9a47ce", - "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", - "userHandle": "MikeKusold", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 4, - "memberRate": 96.7, - "customerRate": 13.09, - "paymentStatus": "cancelled", + "id": "304a0ba1-2534-46c0-b2e9-9d85936755df", + "resourceBookingId": "c8cb4245-83d9-4c59-b595-f032b53b2cbc", + "userHandle": "brijgogogo", + "projectId": 16899, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:55.532Z", - "updatedAt": "2021-05-30T16:12:00.505Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:32.234Z", + "updatedAt": "2021-05-30T16:05:28.904Z", "payments": [] } ] }, { - "id": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "projectId": 16870, - "userId": "acdf9ebe-8358-4bd3-9374-1d86cf27e5f4", - "jobId": "fe8da845-5313-496f-b859-9824bd06a0db", - "status": "placed", - "startDate": "2021-01-21", - "endDate": "2021-02-21", - "memberRate": 114.33, - "customerRate": 258.37, + "id": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "projectId": 16706, + "userId": "149c9ad0-f5d7-4192-8c61-f634f6120816", + "jobId": "fc2b006d-997b-49c3-a414-59ee54a48f9f", + "status": "sourcing", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 201.77, + "customerRate": 84.88, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T09:30:59.306Z", - "updatedAt": "2021-05-30T11:48:56.459Z", + "createdAt": "2021-01-26T08:27:38.944Z", + "updatedAt": "2021-05-30T11:41:01.828Z", "workPeriods": [ { - "id": "77dcf745-bd59-40d8-b563-75a4d5354d29", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, - "startDate": "2021-02-14", - "endDate": "2021-02-20", - "daysWorked": null, - "memberRate": 158.66, - "customerRate": 19.76, + "id": "b21eed94-dce5-42e1-9734-155594773222", + "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "userHandle": "lt_dan", + "projectId": 16706, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:57.208Z", - "updatedAt": "2021-05-30T16:04:30.745Z", + "createdAt": "2021-05-30T11:41:02.603Z", + "updatedAt": "2021-05-30T16:03:56.759Z", "payments": [] }, { - "id": "97cb1bad-772a-4f1e-a5a3-f0b19ae766f2", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, - "startDate": "2021-02-21", - "endDate": "2021-02-27", - "daysWorked": 0, - "memberRate": 69.43, - "customerRate": 22.82, - "paymentStatus": "cancelled", + "id": "85201917-77e0-41d1-8c76-66eefcbc23e0", + "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "userHandle": "lt_dan", + "projectId": 16706, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:57.210Z", - "updatedAt": "2021-05-30T16:12:01.358Z", + "createdAt": "2021-05-30T11:41:02.617Z", + "updatedAt": "2021-05-30T16:11:54.733Z", "payments": [] }, { - "id": "4c626a59-e591-4e7a-88cb-1d601b9b8493", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "56105e62-d690-484c-9fe8-b6d18671c9ac", + "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "userHandle": "lt_dan", + "projectId": 16706, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 10.15, - "customerRate": 213.97, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:57.302Z", - "updatedAt": "2021-05-30T16:05:10.190Z", - "payments": [] - }, - { - "id": "55b66454-3a29-4163-9d97-7ecd2e805f71", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 2, - "memberRate": 230.66, - "customerRate": 193.93, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:57.225Z", - "updatedAt": "2021-05-30T16:12:01.359Z", + "createdAt": "2021-05-30T11:41:02.600Z", + "updatedAt": "2021-05-30T16:04:59.664Z", "payments": [] }, { - "id": "1fa1f111-6574-47b0-8d12-6832541d496c", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, + "id": "5d6c9cf8-a6bc-43b9-af35-67812fc10db9", + "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "userHandle": "lt_dan", + "projectId": 16706, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": null, - "memberRate": 104.6, - "customerRate": 62.03, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:57.244Z", - "updatedAt": "2021-05-30T16:05:42.410Z", + "createdAt": "2021-05-30T11:41:02.595Z", + "updatedAt": "2021-05-30T16:04:54.450Z", "payments": [] }, { - "id": "5bc5686b-95b3-49d7-9c8e-50f1dfdcb82e", - "resourceBookingId": "62c3f0c9-2bf0-4f24-8647-2c802a39cbcb", - "userHandle": "newwayenjoy", - "projectId": 16870, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 165.75, - "customerRate": 262.91, + "id": "34ab1933-c9a3-4087-b220-3716d3729703", + "resourceBookingId": "85ed4a55-1c13-45f0-bfd3-e5e0378b42ea", + "userHandle": "lt_dan", + "projectId": 16706, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:57.306Z", - "updatedAt": "2021-05-30T16:04:57.957Z", + "createdAt": "2021-05-30T11:41:02.645Z", + "updatedAt": "2021-05-30T16:05:24.577Z", "payments": [] } ] }, { - "id": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "projectId": 16762, - "userId": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", - "jobId": "fe481d1c-cf87-49c1-9370-695f9f754041", - "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 61.33, + "id": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "projectId": 16714, + "userId": "bde2cf99-b290-40cd-a064-9b6bb7e54bea", + "jobId": "fc0240f0-8c8f-40ce-a551-e83b45673098", + "status": "sourcing", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 115.29, "customerRate": 84.88, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-12T10:53:32.373Z", - "updatedAt": "2021-05-30T11:48:49.532Z", + "createdAt": "2021-01-26T08:16:00.294Z", + "updatedAt": "2021-05-30T11:48:40.735Z", "workPeriods": [ { - "id": "a154b1fb-06d3-4cfd-97d3-0a810a1c4317", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "ae316c25-ec04-4bc1-b209-798b69ed5250", + "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "userHandle": "atish.chandra", + "projectId": 16714, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 202.33, - "customerRate": 128, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:50.279Z", - "updatedAt": "2021-05-30T16:04:09.261Z", + "createdAt": "2021-05-30T11:48:41.592Z", + "updatedAt": "2021-05-30T16:04:01.125Z", "payments": [] }, { - "id": "a35207bd-ac1d-4539-b7bb-7a923c8a6f7f", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 294.23, - "customerRate": 142.66, + "id": "7501c035-46c4-4704-973a-595145bd2d17", + "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "userHandle": "atish.chandra", + "projectId": 16714, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:50.330Z", - "updatedAt": "2021-05-30T16:11:57.609Z", - "payments": [] - }, - { - "id": "3ad03850-ebe9-4227-8b30-1303b20bbd31", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": 5, - "memberRate": 157.6, - "customerRate": 40.76, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:50.292Z", - "updatedAt": "2021-05-30T16:05:19.240Z", + "createdAt": "2021-05-30T11:48:41.588Z", + "updatedAt": "2021-05-30T16:11:52.009Z", "payments": [] }, { - "id": "2ea4bffd-2519-422f-8baa-a0f74b3b398b", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, + "id": "519b4818-8e39-4d4c-bcc6-3486816a4bc8", + "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "userHandle": "atish.chandra", + "projectId": 16714, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 218.59, - "customerRate": 195.92, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:50.340Z", - "updatedAt": "2021-05-30T16:05:30.731Z", + "createdAt": "2021-05-30T11:48:41.595Z", + "updatedAt": "2021-05-30T16:05:04.624Z", "payments": [] }, { - "id": "b34361ca-eb0e-47f7-86d9-3bccbb6839d5", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": null, - "memberRate": 238.31, - "customerRate": 11.09, + "id": "13444e2f-1254-40fc-a7d9-08ca49fc7239", + "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "userHandle": "atish.chandra", + "projectId": 16714, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:50.288Z", - "updatedAt": "2021-05-30T16:03:55.011Z", + "createdAt": "2021-05-30T11:48:41.597Z", + "updatedAt": "2021-05-30T16:05:53.017Z", "payments": [] }, { - "id": "e1099a6a-7c6b-465d-bb1b-517c3fbd06f1", - "resourceBookingId": "7827dee4-012a-4fd2-9fb3-5b96913121a2", - "userHandle": "pshah_manager", - "projectId": 16762, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 105.58, - "customerRate": 297.59, - "paymentStatus": "partially-completed", + "id": "66c66f68-3882-4521-9c4e-ce08e6b47ca0", + "resourceBookingId": "9be5f15b-2114-4e35-8762-137e1d7b3740", + "userHandle": "atish.chandra", + "projectId": 16714, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:50.297Z", - "updatedAt": "2021-05-30T16:11:57.610Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:41.579Z", + "updatedAt": "2021-05-30T16:04:44.142Z", "payments": [] } ] }, { - "id": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "id": "80693c90-7714-47ac-b8d9-b1c93aed910f", "projectId": 16805, - "userId": "3797d69c-0bf1-421e-b086-81e36ec1f929", + "userId": "13330208-ab10-4ca3-9fd1-a132fbf7ac4e", "jobId": "fc58382a-31d7-44b7-bfe5-2d671300f8d9", "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 1.59, - "customerRate": 170.64, + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 4.79, + "customerRate": 146.2, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-28T05:15:29.662Z", - "updatedAt": "2021-05-30T11:48:37.381Z", + "createdAt": "2021-01-19T11:04:22.566Z", + "updatedAt": "2021-05-30T11:48:46.861Z", "workPeriods": [ { - "id": "33b3b539-5741-49af-a700-fa8e9bd4abba", - "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", - "userHandle": "cp185035", + "id": "f2a85b87-8e75-4db9-b29c-a3c170101ed6", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", "projectId": 16805, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": 4, - "memberRate": 280.11, - "customerRate": 111.64, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:38.136Z", - "updatedAt": "2021-05-30T16:05:25.424Z", + "createdAt": "2021-05-30T11:48:47.631Z", + "updatedAt": "2021-05-30T16:02:54.605Z", "payments": [] }, { - "id": "eca90916-ded1-49d5-8beb-582bba178dd9", - "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", - "userHandle": "cp185035", + "id": "e6801711-327e-4387-a7f0-d592b49b1ba3", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", "projectId": 16805, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 65.17, - "customerRate": 4.22, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:38.215Z", - "updatedAt": "2021-05-30T16:11:50.205Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:47.726Z", + "updatedAt": "2021-05-30T16:03:10.690Z", "payments": [] }, { - "id": "2f176676-60f7-4d27-bb79-d1183eb0b7e0", - "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", - "userHandle": "cp185035", + "id": "cd44a405-c77a-4f6d-95a7-c10de740eb29", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", "projectId": 16805, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 196.76, - "customerRate": 42.45, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:38.152Z", - "updatedAt": "2021-05-30T16:05:29.869Z", + "createdAt": "2021-05-30T11:48:47.728Z", + "updatedAt": "2021-05-30T16:03:27.679Z", "payments": [] }, { - "id": "0ac738d8-03be-4ba4-a86b-2a1f65666cd5", - "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", - "userHandle": "cp185035", + "id": "6565d172-61c4-4357-a01f-b8e6bf179e2f", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", "projectId": 16805, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 188.95, - "customerRate": 122.72, - "paymentStatus": "partially-completed", + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:38.220Z", - "updatedAt": "2021-05-30T16:05:59.284Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:47.638Z", + "updatedAt": "2021-05-30T16:11:55.746Z", "payments": [] }, { - "id": "b180bd57-30b3-4092-affc-c306401edd7d", - "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", - "userHandle": "cp185035", + "id": "f7c8a1e8-76c6-4eee-bb99-15cce5cb8b1f", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", "projectId": 16805, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:47.648Z", + "updatedAt": "2021-05-30T16:11:55.747Z", + "payments": [] + }, + { + "id": "a71105ef-a2b8-4163-b2de-9ddcaa8329bb", + "resourceBookingId": "80693c90-7714-47ac-b8d9-b1c93aed910f", + "userHandle": "Soumyajit_Lotus", + "projectId": 16805, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 4, - "memberRate": 126.33, - "customerRate": 160.37, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:38.150Z", - "updatedAt": "2021-05-30T16:03:57.617Z", + "createdAt": "2021-05-30T11:48:47.731Z", + "updatedAt": "2021-05-30T16:04:02.955Z", "payments": [] } ] }, { - "id": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "projectId": 16739, - "userId": "3ed9015f-09d8-4173-bfcd-5dcc60c52060", - "jobId": "fc5ba131-566f-46fe-8501-79c593241896", + "id": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "projectId": 17232, + "userId": "8e6bfd51-fd78-45fa-9234-172976168f29", + "jobId": "ff76b81d-f49b-4019-b50e-c7932a818f19", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 61.33, - "customerRate": 114.05, - "rateType": "hourly", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 225.34, + "customerRate": 170.64, + "rateType": "monthly", "billingAccountId": 80000071, - "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-17T13:41:56.896Z", - "updatedAt": "2021-05-30T11:48:29.760Z", + "createdAt": "2021-05-18T04:01:23.725Z", + "updatedAt": "2021-05-30T11:48:44.244Z", "workPeriods": [ { - "id": "7d495eed-d042-4a96-beed-dc2f2c1054c1", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 245.61, - "customerRate": 158.61, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:30.527Z", - "updatedAt": "2021-05-30T16:04:25.202Z", - "payments": [] - }, - { - "id": "7468173d-6d92-4560-802e-6329ab656754", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "eeda07cc-8a10-4337-ab8d-e1107e4072a0", + "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "userHandle": "cyber-guard", + "projectId": 17232, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 3.94, - "customerRate": 131.83, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:30.544Z", - "updatedAt": "2021-05-30T16:04:36.153Z", + "createdAt": "2021-05-30T11:48:45.002Z", + "updatedAt": "2021-05-30T16:03:02.635Z", "payments": [] }, { - "id": "1dc38edd-3b56-4ed3-ae6c-ea2527076b32", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "7aaa313f-62be-4483-80b2-87a95b4a0b8c", + "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "userHandle": "cyber-guard", + "projectId": 17232, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 43.7, - "customerRate": 154.12, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:30.606Z", - "updatedAt": "2021-05-30T16:05:46.841Z", + "createdAt": "2021-05-30T11:48:45.006Z", + "updatedAt": "2021-05-30T16:04:26.995Z", "payments": [] }, { - "id": "212909c4-b1e9-4d12-b2ca-4175ccbb2d7f", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 85.9, - "customerRate": 134.84, + "id": "c0568bd9-1523-494d-bb3b-4b7a89026de9", + "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "userHandle": "cyber-guard", + "projectId": 17232, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:30.530Z", - "updatedAt": "2021-05-30T16:11:45.643Z", + "createdAt": "2021-05-30T11:48:45.074Z", + "updatedAt": "2021-05-30T16:11:53.758Z", "payments": [] }, { - "id": "d4dffbb9-2224-4429-9d7e-4bd9d33dba70", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, + "id": "4f7b2806-cdc4-40de-979e-82573123b1ce", + "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "userHandle": "cyber-guard", + "projectId": 17232, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 4.63, - "customerRate": 152.35, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:48:30.547Z", - "updatedAt": "2021-05-30T16:03:22.384Z", + "createdAt": "2021-05-30T11:48:45.076Z", + "updatedAt": "2021-05-30T16:05:06.523Z", "payments": [] }, { - "id": "b6b60c49-615a-4367-b644-af68485b4293", - "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", - "userHandle": "epicdoom", - "projectId": 16739, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 18.46, - "customerRate": 171.14, + "id": "3a652bb3-69b2-4e9b-b6e7-804568a9a76b", + "resourceBookingId": "87db42ad-f3fa-4325-99f4-d5ac6e938219", + "userHandle": "cyber-guard", + "projectId": 17232, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:48:30.540Z", - "updatedAt": "2021-05-30T16:11:45.644Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:45.012Z", + "updatedAt": "2021-05-30T16:05:20.251Z", "payments": [] } ] - }, - { - "id": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "projectId": 17324, - "userId": "9807980a-a9e4-4f24-a48b-311fcdbf1f47", - "jobId": "fefd2618-9b66-4431-9874-1d02d7a37d90", + }, + { + "id": "905654a2-e07d-47a3-b577-c03d100bc94a", + "projectId": 17300, + "userId": "6719d9dc-beca-4731-a4be-a214152ccadf", + "jobId": "fd13ad99-f16a-4362-9274-80f5f38895c3", "status": "placed", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 287.14, - "customerRate": 146.2, - "rateType": "weekly", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 66, + "customerRate": 132.43, + "rateType": "daily", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-27T05:05:05.125Z", - "updatedAt": "2021-05-30T11:49:06.302Z", + "createdAt": "2021-05-19T07:40:44.211Z", + "updatedAt": "2021-05-30T11:48:42.523Z", "workPeriods": [ { - "id": "11d7db8c-b4a9-47b0-b24a-e45d4dc5fae4", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": null, - "memberRate": 85.95, - "customerRate": 178.12, + "id": "6ca0c12a-eecb-4d12-b40d-89a19f2c38ad", + "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", + "userHandle": "vimal123", + "projectId": 17300, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:07.103Z", - "updatedAt": "2021-05-30T16:05:53.988Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:43.331Z", + "updatedAt": "2021-05-30T16:11:52.856Z", "payments": [] }, { - "id": "d711870a-4f78-431b-b5b5-ae5157999a0c", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, - "startDate": "2021-01-17", - "endDate": "2021-01-23", + "id": "92f9e88b-bc75-4934-9c3f-cdb3a846e545", + "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", + "userHandle": "vimal123", + "projectId": 17300, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 58.11, - "customerRate": 143.99, - "paymentStatus": "cancelled", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:07.137Z", - "updatedAt": "2021-05-30T16:03:20.574Z", + "createdAt": "2021-05-30T11:48:43.339Z", + "updatedAt": "2021-05-30T16:04:18.164Z", "payments": [] }, { - "id": "d0266458-f9d2-42db-a716-6f114b4a0be0", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "11084a75-bae7-4c93-a2fc-44ff691b6ded", + "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", + "userHandle": "vimal123", + "projectId": 17300, + "startDate": "2021-01-17", + "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 36.75, - "customerRate": 269.78, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:07.095Z", - "updatedAt": "2021-05-30T16:03:25.900Z", + "createdAt": "2021-05-30T11:48:43.335Z", + "updatedAt": "2021-05-30T16:05:54.898Z", "payments": [] }, { - "id": "248de422-69c3-4c5b-8919-ba18113d0350", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, + "id": "6c3a492a-d2bf-4740-91b0-0d877b044268", + "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", + "userHandle": "vimal123", + "projectId": 17300, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 69.67, - "customerRate": 193.93, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:07.106Z", - "updatedAt": "2021-05-30T16:05:36.306Z", + "createdAt": "2021-05-30T11:48:43.275Z", + "updatedAt": "2021-05-30T16:04:41.476Z", "payments": [] }, { - "id": "6aabe458-6e77-4fbd-9092-d811e7bbd21d", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, + "id": "bc7af7e8-873a-4ddf-a3a5-8b5f0db41827", + "resourceBookingId": "905654a2-e07d-47a3-b577-c03d100bc94a", + "userHandle": "vimal123", + "projectId": 17300, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 126.28, - "customerRate": 213.99, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:07.144Z", - "updatedAt": "2021-05-30T16:12:08.558Z", - "payments": [] - }, - { - "id": "662931c7-09a4-43d9-a838-cb275296e818", - "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", - "userHandle": "bone2", - "projectId": 17324, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 177.96, - "customerRate": 101.95, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:07.100Z", - "updatedAt": "2021-05-30T16:12:08.560Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:43.254Z", + "updatedAt": "2021-05-30T16:03:45.211Z", "payments": [] } ] }, { - "id": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "projectId": 17103, - "userId": "8fe0c1c3-e63e-4047-9854-01f03b166bd8", - "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", - "status": "closed", - "startDate": "2021-01-02", - "endDate": "2021-02-02", - "memberRate": 85.22, - "customerRate": 170.64, - "rateType": "weekly", + "id": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "projectId": 16718, + "userId": "a953dce3-8dd3-413f-b253-0ca76ff59f36", + "jobId": "fb2f5f9b-5874-4dcd-af94-727fc0409760", + "status": "sourcing", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 269.46, + "customerRate": 138.32, + "rateType": "monthly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T10:25:45.827Z", - "updatedAt": "2021-05-30T11:49:17.657Z", + "createdAt": "2021-01-26T08:24:56.376Z", + "updatedAt": "2021-05-30T11:48:51.233Z", "workPeriods": [ { - "id": "0466ddf6-83ba-41ee-b299-4abb2b5f8a3b", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 0, - "memberRate": 191.67, - "customerRate": 40.76, + "id": "0ed78625-e5f0-4f05-b326-632a002d150a", + "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "userHandle": "centurionme", + "projectId": 16718, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:18.405Z", - "updatedAt": "2021-05-30T16:12:15.134Z", - "payments": [] - }, - { - "id": "bd92f07b-4b57-4486-9101-254578cf32f8", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 282.2, - "customerRate": 177.54, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:18.505Z", - "updatedAt": "2021-05-30T16:03:42.520Z", + "createdAt": "2021-05-30T11:48:52.006Z", + "updatedAt": "2021-05-30T16:11:58.578Z", "payments": [] }, { - "id": "9c976d1a-f395-4889-ac9b-38846a083dcb", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, + "id": "279989ed-1e9e-45e9-bdb8-26c03d396344", + "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "userHandle": "centurionme", + "projectId": 16718, "startDate": "2021-01-24", "endDate": "2021-01-30", - "daysWorked": 5, - "memberRate": 158.66, - "customerRate": 158.21, + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:18.500Z", - "updatedAt": "2021-05-30T16:04:11.932Z", + "createdAt": "2021-05-30T11:48:51.981Z", + "updatedAt": "2021-05-30T16:05:33.514Z", "payments": [] }, { - "id": "62bf7ac9-bea9-4f96-8a28-2a3a8dbbc48f", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, - "startDate": "2021-01-03", - "endDate": "2021-01-09", + "id": "31530732-4c7a-429c-9384-c219f16590fa", + "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "userHandle": "centurionme", + "projectId": 16718, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 21.58, - "customerRate": 10.21, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:18.439Z", - "updatedAt": "2021-05-30T16:04:50.801Z", + "createdAt": "2021-05-30T11:48:51.988Z", + "updatedAt": "2021-05-30T16:05:27.123Z", "payments": [] }, { - "id": "05fb419d-927c-4264-b346-905ba7a55f49", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, + "id": "91065330-b979-4b3c-b084-0e14b6be6740", + "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "userHandle": "centurionme", + "projectId": 16718, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 2, - "memberRate": 294.55, - "customerRate": 40.52, - "paymentStatus": "partially-completed", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:18.492Z", - "updatedAt": "2021-05-30T16:12:15.133Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:51.984Z", + "updatedAt": "2021-05-30T16:04:19.946Z", "payments": [] }, { - "id": "c4b535c4-0c6f-4420-930e-0103aea68057", - "resourceBookingId": "0da35f26-f0cc-4f4d-b239-68c11b9a1fa3", - "userHandle": "marathon_zhang", - "projectId": 17103, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 4, - "memberRate": 42.79, - "customerRate": 298.27, + "id": "06187a37-d29a-4bdb-bcb1-e0e7f57eec4a", + "resourceBookingId": "72db31b8-f05c-497c-9bc6-b9f6692569a0", + "userHandle": "centurionme", + "projectId": 16718, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:18.490Z", - "updatedAt": "2021-05-30T16:03:36.317Z", + "createdAt": "2021-05-30T11:48:51.978Z", + "updatedAt": "2021-05-30T16:06:00.996Z", "payments": [] } ] }, { - "id": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "projectId": 17091, - "userId": "de029f4b-f07b-4f8e-bc58-d928b8d8d289", - "jobId": "fb8b92f6-4ffb-4ba6-8c38-c2d4a151f76b", + "id": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "projectId": 16870, + "userId": "cc959274-bb53-4612-a4f4-af62496b026c", + "jobId": "fe8da845-5313-496f-b859-9824bd06a0db", "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 271.93, - "customerRate": 258.37, + "startDate": "2021-01-12", + "endDate": "2021-02-12", + "memberRate": 240.84, + "customerRate": 188.33, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T09:46:05.754Z", - "updatedAt": "2021-05-30T11:49:14.166Z", + "createdAt": "2021-05-01T09:30:37.276Z", + "updatedAt": "2021-05-30T11:48:54.737Z", "workPeriods": [ { - "id": "f234f6bb-a90f-4f2d-a205-24ac45f09246", - "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "userHandle": "kagematya", - "projectId": 17091, + "id": "c44339a8-5562-493d-9e59-02fded34dadd", + "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "userHandle": "MikeKusold", + "projectId": 16870, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 273.55, - "customerRate": 245.82, - "paymentStatus": "cancelled", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:14.947Z", - "updatedAt": "2021-05-30T16:02:56.406Z", + "createdAt": "2021-05-30T11:48:55.482Z", + "updatedAt": "2021-05-30T16:03:38.050Z", "payments": [] }, { - "id": "2962c8d7-aeab-422e-aa9e-fd76a2c559d6", - "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "userHandle": "kagematya", - "projectId": 17091, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 228.98, - "customerRate": 158.21, + "id": "6e8627d9-f3b9-4e56-ba48-0d4cd0572beb", + "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "userHandle": "MikeKusold", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:15.005Z", - "updatedAt": "2021-05-30T16:12:13.268Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:55.537Z", + "updatedAt": "2021-05-30T16:04:39.704Z", "payments": [] }, { - "id": "729c31fb-dcd7-4b1e-bab8-b47f2db27f12", - "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "userHandle": "kagematya", - "projectId": 17091, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "36abc507-0e01-46e3-ab78-52c0e8f848b1", + "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "userHandle": "MikeKusold", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 45.72, - "customerRate": 131.63, - "paymentStatus": "cancelled", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:14.943Z", - "updatedAt": "2021-05-30T16:04:37.868Z", + "createdAt": "2021-05-30T11:48:55.539Z", + "updatedAt": "2021-05-30T16:05:22.767Z", "payments": [] }, { - "id": "4dff33bc-ef83-425c-a07d-f49a12e2485f", - "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "userHandle": "kagematya", - "projectId": 17091, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "20b18eeb-a78f-4ff2-8a3b-fbd1cfba567c", + "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "userHandle": "MikeKusold", + "projectId": 16870, + "startDate": "2021-02-07", + "endDate": "2021-02-13", "daysWorked": 5, - "memberRate": 200.17, - "customerRate": 286.15, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:14.956Z", - "updatedAt": "2021-05-30T16:05:07.460Z", + "createdAt": "2021-05-30T11:48:55.526Z", + "updatedAt": "2021-05-30T16:05:40.643Z", "payments": [] }, { - "id": "2b2aaaba-2698-4b32-b6b9-e31e040ee023", - "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", - "userHandle": "kagematya", - "projectId": 17091, + "id": "4b8cc238-bb26-4fbf-ab74-a86c1d9a47ce", + "resourceBookingId": "6a4e3e22-5241-4353-94a2-f1ec0c3002e7", + "userHandle": "MikeKusold", + "projectId": 16870, "startDate": "2021-01-10", "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 239.68, - "customerRate": 12.51, + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:14.958Z", - "updatedAt": "2021-05-30T16:05:31.643Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:55.532Z", + "updatedAt": "2021-05-30T16:12:00.505Z", "payments": [] } ] }, { - "id": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "projectId": 16718, - "userId": "085fc95d-0336-4572-a641-6c8334e7f0c9", - "jobId": "fb2f5f9b-5874-4dcd-af94-727fc0409760", - "status": "sourcing", - "startDate": "2021-01-01", - "endDate": "2021-02-01", - "memberRate": 114.33, - "customerRate": 100.25, + "id": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "projectId": 16805, + "userId": "3797d69c-0bf1-421e-b086-81e36ec1f929", + "jobId": "fc58382a-31d7-44b7-bfe5-2d671300f8d9", + "status": "placed", + "startDate": "2021-01-11", + "endDate": "2021-02-11", + "memberRate": 1.59, + "customerRate": 170.64, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-26T08:27:33.886Z", - "updatedAt": "2021-05-30T11:49:22.899Z", + "createdAt": "2021-05-28T05:15:29.662Z", + "updatedAt": "2021-05-30T11:48:37.381Z", "workPeriods": [ { - "id": "ddcfc959-d749-45dc-9e9f-f18a893f9e1a", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, - "startDate": "2020-12-27", - "endDate": "2021-01-02", - "daysWorked": 1, - "memberRate": 216.18, - "customerRate": 269.78, + "id": "33b3b539-5741-49af-a700-fa8e9bd4abba", + "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "userHandle": "cp185035", + "projectId": 16805, + "startDate": "2021-01-24", + "endDate": "2021-01-30", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:23.644Z", - "updatedAt": "2021-05-30T16:12:17.859Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:38.136Z", + "updatedAt": "2021-05-30T16:05:25.424Z", "payments": [] }, { - "id": "a322ee7e-7f23-4f9f-b2d8-286b574efd7f", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": 5, - "memberRate": 115.09, - "customerRate": 107.07, + "id": "eca90916-ded1-49d5-8beb-582bba178dd9", + "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "userHandle": "cp185035", + "projectId": 16805, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:23.681Z", - "updatedAt": "2021-05-30T16:04:07.452Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:38.215Z", + "updatedAt": "2021-05-30T16:11:50.205Z", "payments": [] }, { - "id": "77f9b42c-6e67-4363-8b43-aa0b70a904e1", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, + "id": "2f176676-60f7-4d27-bb79-d1183eb0b7e0", + "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "userHandle": "cp185035", + "projectId": 16805, "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 295.92, - "customerRate": 38.47, - "paymentStatus": "completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:23.734Z", - "updatedAt": "2021-05-30T16:04:29.823Z", - "payments": [] - }, - { - "id": "20fc029b-108a-4f12-aec9-ba36619d4ce7", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 1, - "memberRate": 124.66, - "customerRate": 105, - "paymentStatus": "partially-completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:23.730Z", - "updatedAt": "2021-05-30T16:12:17.860Z", + "createdAt": "2021-05-30T11:48:38.152Z", + "updatedAt": "2021-05-30T16:05:29.869Z", "payments": [] }, { - "id": "662f11e5-c02e-460d-989e-1396ff4f00a6", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, + "id": "0ac738d8-03be-4ba4-a86b-2a1f65666cd5", + "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "userHandle": "cp185035", + "projectId": 16805, "startDate": "2021-01-10", "endDate": "2021-01-16", - "daysWorked": 4, - "memberRate": 85.69, - "customerRate": 289.93, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:23.678Z", - "updatedAt": "2021-05-30T16:04:45.827Z", + "createdAt": "2021-05-30T11:48:38.220Z", + "updatedAt": "2021-05-30T16:05:59.284Z", "payments": [] }, { - "id": "f8d56b84-b374-4975-81f8-7fab96463243", - "resourceBookingId": "04cb749b-6e23-4e5b-b5a9-f2b4d25a94a6", - "userHandle": "george0095", - "projectId": 16718, - "startDate": "2021-01-03", - "endDate": "2021-01-09", - "daysWorked": null, - "memberRate": 230.93, - "customerRate": 99.32, + "id": "b180bd57-30b3-4092-affc-c306401edd7d", + "resourceBookingId": "a331f572-8df0-4e00-8573-6aa09431e3d9", + "userHandle": "cp185035", + "projectId": 16805, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:23.666Z", - "updatedAt": "2021-05-30T16:02:49.121Z", + "createdAt": "2021-05-30T11:48:38.150Z", + "updatedAt": "2021-05-30T16:03:57.617Z", "payments": [] } ] }, { - "id": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "projectId": 16870, - "userId": "46550d28-0f34-4292-908f-02f1a34ac278", - "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", + "id": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "projectId": 16739, + "userId": "3ed9015f-09d8-4173-bfcd-5dcc60c52060", + "jobId": "fc5ba131-566f-46fe-8501-79c593241896", "status": "placed", - "startDate": "2021-01-13", - "endDate": "2021-02-13", - "memberRate": 85.22, - "customerRate": 265.1, - "rateType": "weekly", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 61.33, + "customerRate": 114.05, + "rateType": "hourly", "billingAccountId": 80000071, - "createdBy": "00000000-0000-0000-0000-000000000000", + "createdBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T08:45:58.009Z", - "updatedAt": "2021-05-30T11:49:12.395Z", - "workPeriods": [ - { - "id": "dae10e27-1bec-4004-adb9-25a09a29f58d", - "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "userHandle": "prasanna992", - "projectId": 16870, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 3, - "memberRate": 82.71, - "customerRate": 103.9, - "paymentStatus": "partially-completed", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:13.147Z", - "updatedAt": "2021-05-30T16:12:12.417Z", - "payments": [] - }, - { - "id": "60cfd6f3-4eed-4e2f-98be-f1377648d700", - "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "userHandle": "prasanna992", - "projectId": 16870, - "startDate": "2021-02-07", - "endDate": "2021-02-13", + "createdAt": "2021-05-17T13:41:56.896Z", + "updatedAt": "2021-05-30T11:48:29.760Z", + "workPeriods": [ + { + "id": "1dc38edd-3b56-4ed3-ae6c-ea2527076b32", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 30.12, - "customerRate": 229.65, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:13.155Z", - "updatedAt": "2021-05-30T16:04:52.604Z", + "createdAt": "2021-05-30T11:48:30.606Z", + "updatedAt": "2021-05-30T16:05:46.841Z", "payments": [] }, { - "id": "5356e3d0-fa3e-4a4a-a94b-3d58745c09f7", - "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "userHandle": "prasanna992", - "projectId": 16870, + "id": "212909c4-b1e9-4d12-b2ca-4175ccbb2d7f", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, "startDate": "2021-01-31", "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 191.92, - "customerRate": 271.77, + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:13.213Z", - "updatedAt": "2021-05-30T16:05:01.471Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:30.530Z", + "updatedAt": "2021-05-30T16:11:45.643Z", "payments": [] }, { - "id": "394196b1-7fde-4b3e-a6f2-1d95cd93c27d", - "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "userHandle": "prasanna992", - "projectId": 16870, + "id": "d4dffbb9-2224-4429-9d7e-4bd9d33dba70", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 257.15, - "customerRate": 31.9, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:13.168Z", - "updatedAt": "2021-05-30T16:05:21.118Z", + "createdAt": "2021-05-30T11:48:30.547Z", + "updatedAt": "2021-05-30T16:03:22.384Z", "payments": [] }, { - "id": "a6fa8266-f335-4148-96a7-3f63dc66aec4", - "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", - "userHandle": "prasanna992", - "projectId": 16870, + "id": "b6b60c49-615a-4367-b644-af68485b4293", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:48:30.540Z", + "updatedAt": "2021-05-30T16:11:45.644Z", + "payments": [] + }, + { + "id": "7d495eed-d042-4a96-beed-dc2f2c1054c1", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, "startDate": "2021-01-17", "endDate": "2021-01-23", - "daysWorked": 4, - "memberRate": 159.75, - "customerRate": 168.78, + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:13.142Z", - "updatedAt": "2021-05-30T16:04:03.881Z", + "createdAt": "2021-05-30T11:48:30.527Z", + "updatedAt": "2021-05-30T16:04:25.202Z", + "payments": [] + }, + { + "id": "7468173d-6d92-4560-802e-6329ab656754", + "resourceBookingId": "c9f268af-a03f-476e-a58b-1a2bb52324e0", + "userHandle": "epicdoom", + "projectId": 16739, + "startDate": "2021-01-03", + "endDate": "2021-01-09", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:48:30.544Z", + "updatedAt": "2021-05-30T16:04:36.153Z", "payments": [] } ] }, { - "id": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "projectId": 17103, - "userId": "9e4b1242-9b14-4159-bd0b-de7fa1803ca9", - "jobId": "feef8b66-989d-4ec7-bdb0-59ca05c95003", - "status": "cancelled", - "startDate": "2021-01-21", - "endDate": "2021-02-21", - "memberRate": 61.33, - "customerRate": 196.21, + "id": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "projectId": 17324, + "userId": "9807980a-a9e4-4f24-a48b-311fcdbf1f47", + "jobId": "fefd2618-9b66-4431-9874-1d02d7a37d90", + "status": "placed", + "startDate": "2021-01-01", + "endDate": "2021-02-01", + "memberRate": 287.14, + "customerRate": 146.2, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-01T10:25:50.725Z", - "updatedAt": "2021-05-30T11:49:19.410Z", + "createdAt": "2021-05-27T05:05:05.125Z", + "updatedAt": "2021-05-30T11:49:06.302Z", "workPeriods": [ { - "id": "217f124d-37db-49a8-9cac-187c5c8b2905", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 157.6, - "customerRate": 211.33, + "id": "d711870a-4f78-431b-b5b5-ae5157999a0c", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:20.202Z", - "updatedAt": "2021-05-30T16:05:38.038Z", + "createdAt": "2021-05-30T11:49:07.137Z", + "updatedAt": "2021-05-30T16:03:20.574Z", "payments": [] }, { - "id": "b826c9b8-12f5-4567-bd62-df524bb690a2", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-01-31", - "endDate": "2021-02-06", + "id": "d0266458-f9d2-42db-a716-6f114b4a0be0", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 26.55, - "customerRate": 24.64, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:20.194Z", - "updatedAt": "2021-05-30T16:03:47.803Z", + "createdAt": "2021-05-30T11:49:07.095Z", + "updatedAt": "2021-05-30T16:03:25.900Z", "payments": [] }, { - "id": "3e6436c6-f6d4-4b33-8027-1269b167554f", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-01-24", - "endDate": "2021-01-30", + "id": "248de422-69c3-4c5b-8919-ba18113d0350", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2021-01-10", + "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 174.63, - "customerRate": 234.94, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:20.200Z", - "updatedAt": "2021-05-30T16:05:18.330Z", + "createdAt": "2021-05-30T11:49:07.106Z", + "updatedAt": "2021-05-30T16:05:36.306Z", "payments": [] }, { - "id": "56f49073-e651-479c-967c-8ba58e36b8e6", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 2, - "memberRate": 166.58, - "customerRate": 107.72, + "id": "6aabe458-6e77-4fbd-9092-d811e7bbd21d", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:20.236Z", - "updatedAt": "2021-05-30T16:12:15.994Z", + "createdAt": "2021-05-30T11:49:07.144Z", + "updatedAt": "2021-05-30T16:12:08.558Z", "payments": [] }, { - "id": "f04d5bb8-abba-4447-92f0-005e823238f8", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-02-21", - "endDate": "2021-02-27", - "daysWorked": 0, - "memberRate": 143.95, - "customerRate": 249.53, + "id": "662931c7-09a4-43d9-a838-cb275296e818", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2020-12-27", + "endDate": "2021-01-02", + "daysWorked": 1, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:20.193Z", - "updatedAt": "2021-05-30T16:12:15.996Z", + "createdAt": "2021-05-30T11:49:07.100Z", + "updatedAt": "2021-05-30T16:12:08.560Z", "payments": [] }, { - "id": "fe874682-2ba6-4f42-929b-efc9e05adafd", - "resourceBookingId": "0957b870-fc53-4343-8dbf-ebd3994b5734", - "userHandle": "ApolloZhang", - "projectId": 17103, - "startDate": "2021-02-14", - "endDate": "2021-02-20", + "id": "11d7db8c-b4a9-47b0-b24a-e45d4dc5fae4", + "resourceBookingId": "1fd9cc33-d0ae-4be2-865b-95bc95c71700", + "userHandle": "bone2", + "projectId": 17324, + "startDate": "2021-01-03", + "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 186.09, - "customerRate": 217.18, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:20.197Z", - "updatedAt": "2021-05-30T15:58:40.816Z", + "createdAt": "2021-05-30T11:49:07.103Z", + "updatedAt": "2021-05-30T16:05:53.988Z", "payments": [] } ] }, { - "id": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "projectId": 17324, - "userId": "4709473d-f060-4102-87f8-4d51ff0b34c1", - "jobId": "fefd2618-9b66-4431-9874-1d02d7a37d90", + "id": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "projectId": 17091, + "userId": "de029f4b-f07b-4f8e-bc58-d928b8d8d289", + "jobId": "fb8b92f6-4ffb-4ba6-8c38-c2d4a151f76b", "status": "placed", "startDate": "2021-01-11", "endDate": "2021-02-11", "memberRate": 271.93, - "customerRate": 188.33, + "customerRate": 258.37, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-20T06:52:40.679Z", - "updatedAt": "2021-05-30T11:49:15.876Z", + "createdAt": "2021-05-01T09:46:05.754Z", + "updatedAt": "2021-05-30T11:49:14.166Z", "workPeriods": [ { - "id": "f28bd617-dce3-47c0-a9ab-6b2ff321d206", - "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "userHandle": "TCConnCopilot", - "projectId": 17324, + "id": "f234f6bb-a90f-4f2d-a205-24ac45f09246", + "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "userHandle": "kagematya", + "projectId": 17091, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", + "createdBy": "00000000-0000-0000-0000-000000000000", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:14.947Z", + "updatedAt": "2021-05-30T16:02:56.406Z", + "payments": [] + }, + { + "id": "2962c8d7-aeab-422e-aa9e-fd76a2c559d6", + "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "userHandle": "kagematya", + "projectId": 17091, "startDate": "2021-02-07", "endDate": "2021-02-13", "daysWorked": 4, - "memberRate": 185.99, - "customerRate": 213.97, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:16.700Z", - "updatedAt": "2021-05-30T16:12:14.202Z", + "createdAt": "2021-05-30T11:49:15.005Z", + "updatedAt": "2021-05-30T16:12:13.268Z", "payments": [] - }, - { - "id": "c447a850-2549-4c6a-ad3e-47cb6b26ac0b", - "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "userHandle": "TCConnCopilot", - "projectId": 17324, + }, + { + "id": "729c31fb-dcd7-4b1e-bab8-b47f2db27f12", + "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "userHandle": "kagematya", + "projectId": 17091, "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 22.66, - "customerRate": 215.7, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:16.706Z", - "updatedAt": "2021-05-30T16:03:37.121Z", + "createdAt": "2021-05-30T11:49:14.943Z", + "updatedAt": "2021-05-30T16:04:37.868Z", "payments": [] }, { - "id": "66732a8f-7bab-4e46-8eda-c58f28344114", - "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "userHandle": "TCConnCopilot", - "projectId": 17324, + "id": "4dff33bc-ef83-425c-a07d-f49a12e2485f", + "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "userHandle": "kagematya", + "projectId": 17091, "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 5, - "memberRate": 82.71, - "customerRate": 24.46, - "paymentStatus": "partially-completed", + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:16.759Z", - "updatedAt": "2021-05-30T16:04:44.983Z", + "createdAt": "2021-05-30T11:49:14.956Z", + "updatedAt": "2021-05-30T16:05:07.460Z", "payments": [] }, { - "id": "444fbe9a-616e-443a-a1b5-aadfe7c617ff", - "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "userHandle": "TCConnCopilot", - "projectId": 17324, + "id": "2b2aaaba-2698-4b32-b6b9-e31e040ee023", + "resourceBookingId": "0ffde888-a7d5-4ca7-8bd3-eea54f7c05f2", + "userHandle": "kagematya", + "projectId": 17091, "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 230.09, - "customerRate": 248.77, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:16.687Z", - "updatedAt": "2021-05-30T16:05:13.852Z", - "payments": [] - }, - { - "id": "50865971-2fd2-4576-a799-8ab438e9dd75", - "resourceBookingId": "0eae9b44-6764-46c4-ba13-4cec37bf8574", - "userHandle": "TCConnCopilot", - "projectId": 17324, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 4, - "memberRate": 10.25, - "customerRate": 159.65, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:16.701Z", - "updatedAt": "2021-05-30T16:05:05.541Z", + "createdAt": "2021-05-30T11:49:14.958Z", + "updatedAt": "2021-05-30T16:05:31.643Z", "payments": [] } ] }, { - "id": "1ad758ab-c19f-4247-954a-4581420aba8a", - "projectId": 17363, - "userId": "dbf68f12-69a4-4592-a0ab-cf68d9ed7ae4", - "jobId": "fd48d96e-b0f2-43b7-8a48-f4fa194d6bc8", + "id": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "projectId": 16870, + "userId": "46550d28-0f34-4292-908f-02f1a34ac278", + "jobId": "fe539bef-9119-4a8c-b7b0-915e7e3a3ba3", "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 114.33, - "customerRate": 217.99, + "startDate": "2021-01-13", + "endDate": "2021-02-13", + "memberRate": 85.22, + "customerRate": 265.1, "rateType": "weekly", "billingAccountId": 80000071, "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-27T11:25:35.292Z", - "updatedAt": "2021-05-30T11:49:08.019Z", + "createdAt": "2021-05-01T08:45:58.009Z", + "updatedAt": "2021-05-30T11:49:12.395Z", "workPeriods": [ { - "id": "c4c8588e-68a4-4b82-be91-a3d98661ffba", - "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", - "userHandle": "vishalgoel", - "projectId": 17363, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 5, - "memberRate": 54.99, - "customerRate": 109.55, + "id": "dae10e27-1bec-4004-adb9-25a09a29f58d", + "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "userHandle": "prasanna992", + "projectId": 16870, + "startDate": "2021-01-10", + "endDate": "2021-01-16", + "daysWorked": 3, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:08.879Z", - "updatedAt": "2021-05-30T16:03:35.487Z", + "updatedBy": "00000000-0000-0000-0000-000000000000", + "createdAt": "2021-05-30T11:49:13.147Z", + "updatedAt": "2021-05-30T16:12:12.417Z", "payments": [] }, { - "id": "83cb4174-6ee3-4557-97c1-120c46054af6", - "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", - "userHandle": "vishalgoel", - "projectId": 17363, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": null, - "memberRate": 213.59, - "customerRate": 176.11, + "id": "60cfd6f3-4eed-4e2f-98be-f1377648d700", + "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "userHandle": "prasanna992", + "projectId": 16870, + "startDate": "2021-02-07", + "endDate": "2021-02-13", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:08.882Z", - "updatedAt": "2021-05-30T16:04:22.560Z", + "createdAt": "2021-05-30T11:49:13.155Z", + "updatedAt": "2021-05-30T16:04:52.604Z", "payments": [] }, { - "id": "8ff2339f-d90a-4ac2-9798-3158d0746d53", - "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", - "userHandle": "vishalgoel", - "projectId": 17363, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 298.88, - "customerRate": 235.7, - "paymentStatus": "cancelled", + "id": "5356e3d0-fa3e-4a4a-a94b-3d58745c09f7", + "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "userHandle": "prasanna992", + "projectId": 16870, + "startDate": "2021-01-31", + "endDate": "2021-02-06", + "daysWorked": 5, + "daysPaid": 0, + "paymentTotal": 0, + "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:08.875Z", - "updatedAt": "2021-05-30T16:12:09.701Z", + "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", + "createdAt": "2021-05-30T11:49:13.213Z", + "updatedAt": "2021-05-30T16:05:01.471Z", "payments": [] }, { - "id": "5ecaa40c-1fb3-4df7-9870-6fc3c2bc1bca", - "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", - "userHandle": "vishalgoel", - "projectId": 17363, - "startDate": "2021-01-10", - "endDate": "2021-01-16", + "id": "394196b1-7fde-4b3e-a6f2-1d95cd93c27d", + "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "userHandle": "prasanna992", + "projectId": 16870, + "startDate": "2021-01-24", + "endDate": "2021-01-30", "daysWorked": 5, - "memberRate": 114.59, - "customerRate": 203.92, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:08.877Z", - "updatedAt": "2021-05-30T16:04:53.463Z", + "createdAt": "2021-05-30T11:49:13.168Z", + "updatedAt": "2021-05-30T16:05:21.118Z", "payments": [] }, { - "id": "38afaa09-32da-4d81-b2f5-0c5e31af617f", - "resourceBookingId": "1ad758ab-c19f-4247-954a-4581420aba8a", - "userHandle": "vishalgoel", - "projectId": 17363, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 176.02, - "customerRate": 47.87, + "id": "a6fa8266-f335-4148-96a7-3f63dc66aec4", + "resourceBookingId": "1511406b-9d2b-43f0-99b6-2117d1012aaf", + "userHandle": "prasanna992", + "projectId": 16870, + "startDate": "2021-01-17", + "endDate": "2021-01-23", + "daysWorked": 4, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:08.867Z", - "updatedAt": "2021-05-30T16:05:21.960Z", + "createdAt": "2021-05-30T11:49:13.142Z", + "updatedAt": "2021-05-30T16:04:03.881Z", "payments": [] } ] @@ -6858,8 +7325,8 @@ "startDate": "2021-01-31", "endDate": "2021-02-06", "daysWorked": 1, - "memberRate": 204.06, - "customerRate": 96.56, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", @@ -6875,8 +7342,8 @@ "startDate": "2020-12-27", "endDate": "2021-01-02", "daysWorked": 1, - "memberRate": 46.62, - "customerRate": 280.07, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "00000000-0000-0000-0000-000000000000", @@ -6892,8 +7359,8 @@ "startDate": "2021-01-17", "endDate": "2021-01-23", "daysWorked": 5, - "memberRate": 108.35, - "customerRate": 298.27, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -6909,8 +7376,8 @@ "startDate": "2021-01-10", "endDate": "2021-01-16", "daysWorked": 5, - "memberRate": 18.57, - "customerRate": 272.37, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -6926,8 +7393,8 @@ "startDate": "2021-01-03", "endDate": "2021-01-09", "daysWorked": 5, - "memberRate": 266.82, - "customerRate": 268.61, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -6943,8 +7410,8 @@ "startDate": "2021-01-24", "endDate": "2021-01-30", "daysWorked": 4, - "memberRate": 296.93, - "customerRate": 255.03, + "daysPaid": 0, + "paymentTotal": 0, "paymentStatus": "pending", "createdBy": "00000000-0000-0000-0000-000000000000", "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", @@ -6954,110 +7421,6 @@ } ] }, - { - "id": "07f73049-e51a-4394-b61f-b75418afa908", - "projectId": 16739, - "userId": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "jobId": "fc5ba131-566f-46fe-8501-79c593241896", - "status": "placed", - "startDate": "2021-01-11", - "endDate": "2021-02-11", - "memberRate": 66, - "customerRate": 114.05, - "rateType": "weekly", - "billingAccountId": 80000071, - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-01-12T10:59:20.006Z", - "updatedAt": "2021-05-30T11:49:21.188Z", - "workPeriods": [ - { - "id": "d99a524f-c8a4-4d46-a42c-dbcddd65b6db", - "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", - "userHandle": "nkumartest", - "projectId": 16739, - "startDate": "2021-01-31", - "endDate": "2021-02-06", - "daysWorked": 5, - "memberRate": 214.14, - "customerRate": 212.49, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:22.017Z", - "updatedAt": "2021-05-30T16:03:19.706Z", - "payments": [] - }, - { - "id": "5c4bb82b-e617-4c91-861f-5e0825d43c53", - "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", - "userHandle": "nkumartest", - "projectId": 16739, - "startDate": "2021-01-10", - "endDate": "2021-01-16", - "daysWorked": 5, - "memberRate": 70.84, - "customerRate": 136.39, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:21.977Z", - "updatedAt": "2021-05-30T16:04:55.294Z", - "payments": [] - }, - { - "id": "7ff4804e-2a65-4f8b-af5b-24b58c066fd4", - "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", - "userHandle": "nkumartest", - "projectId": 16739, - "startDate": "2021-02-07", - "endDate": "2021-02-13", - "daysWorked": 4, - "memberRate": 25.99, - "customerRate": 122.72, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "00000000-0000-0000-0000-000000000000", - "createdAt": "2021-05-30T11:49:22.068Z", - "updatedAt": "2021-05-30T16:12:16.993Z", - "payments": [] - }, - { - "id": "da043aba-161e-4894-a3d5-d63678ac89b0", - "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", - "userHandle": "nkumartest", - "projectId": 16739, - "startDate": "2021-01-24", - "endDate": "2021-01-30", - "daysWorked": null, - "memberRate": 71.99, - "customerRate": 155.48, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:21.974Z", - "updatedAt": "2021-05-30T16:03:18.831Z", - "payments": [] - }, - { - "id": "410e034d-ee48-4a18-aa65-679ef7efcb80", - "resourceBookingId": "07f73049-e51a-4394-b61f-b75418afa908", - "userHandle": "nkumartest", - "projectId": 16739, - "startDate": "2021-01-17", - "endDate": "2021-01-23", - "daysWorked": 4, - "memberRate": 146.28, - "customerRate": 21.33, - "paymentStatus": "pending", - "createdBy": "00000000-0000-0000-0000-000000000000", - "updatedBy": "57646ff9-1cd3-4d3c-88ba-eb09a395366c", - "createdAt": "2021-05-30T11:49:21.961Z", - "updatedAt": "2021-05-30T16:05:16.466Z", - "payments": [] - } - ] - }, { "id": "d3cd14c8-9ae8-446a-b554-69240c93a20e", "projectId": 17091, diff --git a/docs/Topcoder-bookings-api.postman_collection.json b/docs/Topcoder-bookings-api.postman_collection.json index b37011a5..39fabfb8 100644 --- a/docs/Topcoder-bookings-api.postman_collection.json +++ b/docs/Topcoder-bookings-api.postman_collection.json @@ -1,6 +1,6 @@ { "info": { - "_postman_id": "d413d21d-272f-454f-b26a-0d7e3bf926d9", + "_postman_id": "3a5bab78-49d6-4dca-9aea-e8688564ac98", "name": "Topcoder-bookings-api", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, @@ -8734,7 +8734,7 @@ } ], "url": { - "raw": "{{URL}}/resourceBookings?page=1&perPage=10&sortBy=endDate&sortOrder=asc&fields=id,endDate,workPeriods", + "raw": "{{URL}}/resourceBookings?page=1&perPage=10&sortBy=endDate&sortOrder=asc", "host": [ "{{URL}}" ], @@ -8875,7 +8875,8 @@ }, { "key": "fields", - "value": "id,endDate,workPeriods" + "value": "id,endDate,workPeriods", + "disabled": true } ] } @@ -9565,7 +9566,7 @@ "response": [] }, { - "name": "search RB sortBy workPeriods.customerRate", + "name": "search RB sortBy workPeriods.daysPaid", "event": [ { "listen": "test", @@ -9589,7 +9590,7 @@ } ], "url": { - "raw": "{{URL}}/resourceBookings?page=1&perPage=5&sortBy=workPeriods.customerRate&workPeriods.startDate=2021-01-03&sortOrder=asc&fields=id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate", + "raw": "{{URL}}/resourceBookings?page=1&perPage=5&sortBy=workPeriods.daysPaid&workPeriods.startDate=2021-01-03&sortOrder=asc&fields=id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid", "host": [ "{{URL}}" ], @@ -9607,7 +9608,7 @@ }, { "key": "sortBy", - "value": "workPeriods.customerRate" + "value": "workPeriods.daysPaid" }, { "key": "workPeriods.startDate", @@ -9624,7 +9625,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate" + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid" }, { "key": "status", @@ -9633,7 +9634,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,status", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,status", "disabled": true }, { @@ -9643,7 +9644,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,startDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,startDate", "disabled": true }, { @@ -9653,7 +9654,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,endDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,endDate", "disabled": true }, { @@ -9663,7 +9664,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,rateType", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,rateType", "disabled": true }, { @@ -9673,7 +9674,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,jobId", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,jobId", "disabled": true }, { @@ -9688,7 +9689,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,projectId", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,projectId", "disabled": true }, { @@ -9698,7 +9699,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,workPeriods.paymentStatus", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,workPeriods.paymentStatus", "disabled": true }, { @@ -9708,7 +9709,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,workPeriods.endDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,workPeriods.endDate", "disabled": true }, { @@ -9718,7 +9719,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.customerRate,workPeriods.userHandle", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.daysPaid,workPeriods.userHandle", "disabled": true }, { @@ -9732,7 +9733,7 @@ "response": [] }, { - "name": "search RB sortBy workPeriods.memberRate", + "name": "search RB sortBy workPeriods.paymentTotal", "event": [ { "listen": "test", @@ -9756,7 +9757,7 @@ } ], "url": { - "raw": "{{URL}}/resourceBookings?page=1&perPage=5&sortBy=workPeriods.memberRate&workPeriods.startDate=2021-01-03&sortOrder=asc&fields=id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate", + "raw": "{{URL}}/resourceBookings?page=1&perPage=5&sortBy=workPeriods.paymentTotal&workPeriods.startDate=2021-01-03&sortOrder=asc&fields=id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal", "host": [ "{{URL}}" ], @@ -9774,7 +9775,7 @@ }, { "key": "sortBy", - "value": "workPeriods.memberRate" + "value": "workPeriods.paymentTotal" }, { "key": "workPeriods.startDate", @@ -9791,7 +9792,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate" + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal" }, { "key": "status", @@ -9800,7 +9801,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,status", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,status", "disabled": true }, { @@ -9810,7 +9811,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,startDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,startDate", "disabled": true }, { @@ -9820,7 +9821,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,endDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,endDate", "disabled": true }, { @@ -9830,7 +9831,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,rateType", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,rateType", "disabled": true }, { @@ -9840,7 +9841,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,jobId", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,jobId", "disabled": true }, { @@ -9855,7 +9856,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,projectId", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,projectId", "disabled": true }, { @@ -9865,7 +9866,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,workPeriods.paymentStatus", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,workPeriods.paymentStatus", "disabled": true }, { @@ -9875,7 +9876,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,workPeriods.endDate", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,workPeriods.endDate", "disabled": true }, { @@ -9885,7 +9886,7 @@ }, { "key": "fields", - "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.memberRate,workPeriods.userHandle", + "value": "id,workPeriods.id,workPeriods.startDate,workPeriods.paymentTotal,workPeriods.userHandle", "disabled": true }, { @@ -10886,7 +10887,7 @@ " _.each(['id','projectId','status','startDate','endDate','billingAccountId','userId','jobId','rateType','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt','workPeriods'], field => {\r", " pm.expect(response).to.have.property(field)\r", " })\r", - " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", + " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','daysPaid','paymentTotal','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", " pm.expect(response.workPeriods[0]).to.have.property(field)\r", " })\r", "});" @@ -10936,7 +10937,7 @@ " _.each(['id','projectId','status','startDate','endDate','billingAccountId','userId','jobId','rateType','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt','workPeriods'], field => {\r", " pm.expect(response).to.have.property(field)\r", " })\r", - " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", + " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','daysPaid','paymentTotal','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", " pm.expect(response.workPeriods[0]).to.have.property(field)\r", " })\r", "});" @@ -11091,7 +11092,7 @@ "pm.test('Status code is 403', function () {\r", " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You don't have access to view memberRate\")\r", + " pm.expect(response.message).to.eq(\"You don't have access to view memberRate and paymentTotal\")\r", "});" ], "type": "text/javascript" @@ -11136,7 +11137,7 @@ "pm.test('Status code is 403', function () {\r", " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You don't have access to view memberRate\")\r", + " pm.expect(response.message).to.eq(\"You don't have access to view memberRate and paymentTotal\")\r", "});" ], "type": "text/javascript" @@ -11705,7 +11706,7 @@ " _.each(['id','projectId','status','startDate','endDate','billingAccountId','userId','jobId','rateType','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt','workPeriods'], field => {\r", " pm.expect(response[0]).to.have.property(field)\r", " })\r", - " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','memberRate','customerRate','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", + " _.each(['id','projectId','paymentStatus','startDate','endDate','userHandle','resourceBookingId','daysWorked','daysPaid','paymentTotal','createdBy','updatedBy','createdAt','updatedAt'], field => {\r", " pm.expect(response[0].workPeriods[0]).to.have.property(field)\r", " })\r", "});" @@ -12154,7 +12155,7 @@ "pm.test('Status code is 403', function () {\r", " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You don't have access to view memberRate\")\r", + " pm.expect(response.message).to.eq(\"You don't have access to view memberRate and paymentTotal\")\r", "});" ], "type": "text/javascript" @@ -12726,7 +12727,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"status\": \"placed\",\r\n \"startDate\": \"2020-09-30\",\r\n \"endDate\": \"2020-11-28\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", + "raw": "{\r\n \"status\": \"placed\",\r\n \"startDate\": \"2020-09-30\",\r\n \"endDate\": \"2020-11-28\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", "options": { "raw": { "language": "json" @@ -12772,7 +12773,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"status\": \"placed\",\r\n \"startDate\": \"2020-12-30\",\r\n \"endDate\": \"2021-02-10\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", + "raw": "{\r\n \"status\": \"placed\",\r\n \"startDate\": \"2020-12-30\",\r\n \"endDate\": \"2021-02-10\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", "options": { "raw": { "language": "json" @@ -13076,7 +13077,7 @@ "response": [] }, { - "name": "patch work period set status to completed", + "name": "post process payment for work period", "event": [ { "listen": "test", @@ -13091,7 +13092,7 @@ } ], "request": { - "method": "PATCH", + "method": "POST", "header": [ { "key": "Authorization", @@ -13101,7 +13102,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"paymentStatus\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodIdForPaid}}\"\r\n}", "options": { "raw": { "language": "json" @@ -13109,13 +13110,12 @@ } }, "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdForPaid}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-periods", - "{{workPeriodIdForPaid}}" + "work-period-payments" ] } }, @@ -13213,6 +13213,52 @@ }, "response": [] }, + { + "name": "patch resource booking set dates null", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token_bookingManager}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"startDate\": null,\r\n \"endDate\": null\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{URL}}/resourceBookings/{{resourceBookingId}}", + "host": [ + "{{URL}}" + ], + "path": [ + "resourceBookings", + "{{resourceBookingId}}" + ] + } + }, + "response": [] + }, { "name": "delete resource booking with member", "event": [ @@ -13536,7 +13582,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"projectId\": {{projectId}},\r\n \"userId\": \"a55fe1bc-1754-45fa-9adc-cf3d6d7c377a\",\r\n \"jobId\": \"{{jobId}}\",\r\n \"startDate\": \"2020-09-27\",\r\n \"endDate\": \"2020-09-27\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", + "raw": "{\r\n \"projectId\": {{projectId}},\r\n \"userId\": \"a55fe1bc-1754-45fa-9adc-cf3d6d7c377a\",\r\n \"jobId\": \"{{jobId}}\",\r\n \"startDate\": \"2021-06-01\",\r\n \"endDate\": \"2021-08-01\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", "options": { "raw": { "language": "json" @@ -13558,18 +13604,16 @@ ] }, { - "name": "create work period with booking manager", + "name": "create work period", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodId\", response.id);\r", - " }\r", + "pm.test('Status code is 405', function () {\r", + " pm.response.to.have.status(405);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"The requested HTTP method is not supported.\")\r", "});" ], "type": "text/javascript" @@ -13607,7 +13651,7 @@ "response": [] }, { - "name": "create work period with m2m create", + "name": "search work periods", "event": [ { "listen": "test", @@ -13615,10 +13659,12 @@ "exec": [ "pm.test('Status code is 200', function () {\r", " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodIdCreatedByM2M\", response.id);\r", - " }\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"workPeriodId-1\", response[0].id);\r", + " pm.environment.set(\"workPeriodId-2\", response[1].id);\r", + " pm.environment.set(\"workPeriodId-3\", response[2].id);\r", + " pm.environment.set(\"workPeriodId-4\", response[3].id);\r", + " pm.environment.set(\"workPeriodId-5\", response[4].id);\r", "});" ], "type": "text/javascript" @@ -13626,46 +13672,88 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_create_work_period}}" + "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods?sortBy=startDate&sortOrder=asc&resourceBookingId={{resourceBookingId}}&perPage=5", "host": [ "{{URL}}" ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "sortBy", + "value": "startDate" + }, + { + "key": "sortOrder", + "value": "asc" + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}" + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingId}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + }, + { + "key": "perPage", + "value": "5" + } ] } }, "response": [] }, { - "name": "create work period with connect user", + "name": "get work period with booking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13673,46 +13761,36 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_connectUser}}" + "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period with member", + "name": "get work period with m2m read 1", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13720,46 +13798,36 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer {{token_m2m_read_work_period}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-2}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-2}}" ] } }, "response": [] }, { - "name": "create work period with user id not exist", + "name": "get work period with m2m read 2", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Bad Request\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13767,46 +13835,36 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_userId_not_exist}}" + "value": "Bearer {{token_m2m_read_work_period_and_payment}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-3}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-3}}" ] } }, "response": [] }, { - "name": "create work period with invalid token", + "name": "get work period with booking manager from db", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13814,46 +13872,42 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer invalid_token" + "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-4}}?fromDb=true", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-4}}" + ], + "query": [ + { + "key": "fromDb", + "value": "true" + } ] } }, "response": [] }, { - "name": "create work period with missing parameter 1", + "name": "get work period with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.resourceBookingId\\\" is required\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13861,46 +13915,36 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_connectUser}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-5}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-5}}" ] } }, "response": [] }, { - "name": "create work period with missing parameter 2", + "name": "get work period with member", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.endDate\\\" is required\")\r", + "pm.test('Status code is 401', function () {\r", + " pm.response.to.have.status(401);\r", "});" ], "type": "text/javascript" @@ -13908,46 +13952,36 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_member}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period with missing parameter 3", + "name": "search work periods with booking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.paymentStatus\\\" is required\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -13955,7 +13989,7 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", @@ -13963,15 +13997,6 @@ "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -13979,22 +14004,77 @@ ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "35", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + } ] } }, "response": [] }, { - "name": "create work period with invalid parameter 1", + "name": "search work periods with m2m all 1", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.resourceBookingId\\\" must be a valid GUID\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -14002,23 +14082,14 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_m2m_all_work_period}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"aaa-aaa\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -14026,22 +14097,77 @@ ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "5", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + } ] } }, "response": [] }, { - "name": "create work period with invalid parameter 2", + "name": "search work periods with m2m all 2", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.startDate\\\" must be in YYYY-MM-DD format\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -14049,23 +14175,14 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_m2m_all_work_period_and_payment}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"07-03-2021\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -14073,22 +14190,77 @@ ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "5", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + } ] } }, "response": [] }, { - "name": "create work period with invalid parameter 3", + "name": "search work periods with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"startDate should be always Sunday\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -14096,23 +14268,14 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_connectUser}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-06\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -14120,46 +14283,79 @@ ], "path": [ "work-periods" - ] - } - }, - "response": [] - }, - { - "name": "create work period with invalid parameter 4", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"endDate should be always the next Saturday\")\r", - "});" - ], - "type": "text/javascript" - } + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "5", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + } + ] } - ], + }, + "response": [] + }, + { + "name": "search work periods with member", "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_member}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-14\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -14167,22 +14363,77 @@ ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "5", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "16843", + "disabled": true + } ] } }, "response": [] }, { - "name": "create work period with invalid parameter 5", + "name": "search work periods with invalid token", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.daysWorked\\\" must be a number\")\r", + "pm.test('Status code is 401', function () {\r", + " pm.response.to.have.status(401);\r", "});" ], "type": "text/javascript" @@ -14190,23 +14441,14 @@ } ], "request": { - "method": "POST", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer invalid_token" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": \"aa\",\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-periods", "host": [ @@ -14214,22 +14456,77 @@ ], "path": [ "work-periods" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "5", + "disabled": true + }, + { + "key": "sortBy", + "value": "id", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}", + "disabled": true + }, + { + "key": "resourceBookingIds", + "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "paymentStatus", + "value": "pending", + "disabled": true + }, + { + "key": "startDate", + "value": "2021-03-14", + "disabled": true + }, + { + "key": "endDate", + "value": "2021-03-20", + "disabled": true + }, + { + "key": "userHandle", + "value": "pshah_manager", + "disabled": true + }, + { + "key": "projectId", + "value": "111", + "disabled": true + } ] } }, "response": [] }, { - "name": "create work period with invalid parameter 6", + "name": "put work period", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(`Key (resource_booking_id, start_date, end_date)=(${pm.environment.get('resourceBookingId')}, 2021-03-07, 2021-03-13) already exists.`)\r", + "pm.test('Status code is 404', function () {\r", + " pm.response.to.have.status(404);\r", "});" ], "type": "text/javascript" @@ -14237,7 +14534,7 @@ } ], "request": { - "method": "POST", + "method": "PUT", "header": [ { "key": "Authorization", @@ -14255,28 +14552,27 @@ } }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period with invalid parameter 7", + "name": "patch work period with booking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriod.paymentStatus\\\" must be one of [pending, partially-completed, completed, cancelled]\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -14284,7 +14580,7 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", @@ -14294,7 +14590,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"paid\"\r\n}", + "raw": "{\r\n \"daysWorked\": 3\r\n}", "options": { "raw": { "language": "json" @@ -14302,19 +14598,20 @@ } }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "get work period with booking manager", + "name": "patch work period with m2m update", "event": [ { "listen": "test", @@ -14329,73 +14626,95 @@ } ], "request": { - "method": "GET", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_m2m_update_work_period}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"daysWorked\": 4\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", + "raw": "{{URL}}/work-periods/{{workPeriodId-2}}", "host": [ "{{URL}}" ], "path": [ "work-periods", - "{{workPeriodId}}" + "{{workPeriodId-2}}" ] } }, "response": [] }, { - "name": "get work period with m2m read 1", + "name": "patch work period with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + "});" ], "type": "text/javascript" } } ], "request": { - "method": "GET", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_read_work_period}}" + "value": "Bearer {{token_connectUser}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"daysWorked\": 3\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdCreatedByM2M}}", + "raw": "{{URL}}/work-periods/{{workPeriodId-3}}", "host": [ "{{URL}}" ], "path": [ "work-periods", - "{{workPeriodIdCreatedByM2M}}" + "{{workPeriodId-3}}" ] } }, "response": [] }, { - "name": "get work period with m2m read 2", + "name": "patch work period with member", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -14403,36 +14722,47 @@ } ], "request": { - "method": "GET", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_read_work_period_and_payment}}" + "value": "Bearer {{token_member}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"daysWorked\": 3\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdCreatedByM2M}}", + "raw": "{{URL}}/work-periods/{{workPeriodId-4}}", "host": [ "{{URL}}" ], "path": [ "work-periods", - "{{workPeriodIdCreatedByM2M}}" + "{{workPeriodId-4}}" ] } }, "response": [] }, { - "name": "get work period with booking manager from db", + "name": "patch work period with user id not exist", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"Bad Request\")\r", "});" ], "type": "text/javascript" @@ -14440,72 +14770,38 @@ } ], "request": { - "method": "GET", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_userId_not_exist}}" } ], - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}?fromDb=true", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ], - "query": [ - { - "key": "fromDb", - "value": "true" + "body": { + "mode": "raw", + "raw": "{\r\n \"daysWorked\": 3\r\n}", + "options": { + "raw": { + "language": "json" } - ] - } - }, - "response": [] - }, - { - "name": "get work period with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" } - ], + }, "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", + "raw": "{{URL}}/work-periods/{{workPeriodId-5}}", "host": [ "{{URL}}" ], "path": [ "work-periods", - "{{workPeriodId}}" + "{{workPeriodId-5}}" ] } }, "response": [] }, { - "name": "get work period with member", + "name": "patch work period with invalid token", "event": [ { "listen": "test", @@ -14513,6 +14809,8 @@ "exec": [ "pm.test('Status code is 401', function () {\r", " pm.response.to.have.status(401);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", "});" ], "type": "text/javascript" @@ -14520,2596 +14818,47 @@ } ], "request": { - "method": "GET", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer invalid_token" } ], - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "search work periods with booking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" + "body": { + "mode": "raw", + "raw": "{\r\n \"daysWorked\": 3\r\n}", + "options": { + "raw": { + "language": "json" + } } - ], + }, "url": { - "raw": "{{URL}}/work-periods", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "35", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "16843", - "disabled": true - } + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "search work periods with m2m all 1", + "name": "patch work period with invalid parameter 1", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_all_work_period}}" - } - ], - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "5", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "16843", - "disabled": true - } - ] - } - }, - "response": [] - }, - { - "name": "search work periods with m2m all 2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_all_work_period_and_payment}}" - } - ], - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "5", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "16843", - "disabled": true - } - ] - } - }, - "response": [] - }, - { - "name": "search work periods with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" - } - ], - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "5", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "16843", - "disabled": true - } - ] - } - }, - "response": [] - }, - { - "name": "search work periods with member", - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_member}}" - } - ], - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "5", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "16843", - "disabled": true - } - ] - } - }, - "response": [] - }, - { - "name": "search work periods with invalid token", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer invalid_token" - } - ], - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "5", - "disabled": true - }, - { - "key": "sortBy", - "value": "id", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "resourceBookingId", - "value": "{{resourceBookingId}}", - "disabled": true - }, - { - "key": "resourceBookingIds", - "value": "{{resourceBookingId}},{{resourceBookingIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "paymentStatus", - "value": "pending", - "disabled": true - }, - { - "key": "startDate", - "value": "2021-03-14", - "disabled": true - }, - { - "key": "endDate", - "value": "2021-03-20", - "disabled": true - }, - { - "key": "userHandle", - "value": "pshah_manager", - "disabled": true - }, - { - "key": "projectId", - "value": "111", - "disabled": true - } - ] - } - }, - "response": [] - }, - { - "name": "put work period with booking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with m2m update", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_update_work_period}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdCreatedByM2M}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodIdCreatedByM2M}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with member", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_member}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with user id not exist", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Bad Request\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_userId_not_exist}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid token", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer invalid_token" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with missing parameter 1", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.resourceBookingId\\\" is required\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with missing parameter 2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.endDate\\\" is required\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with missing parameter 3", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.paymentStatus\\\" is required\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 1", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.resourceBookingId\\\" must be a valid GUID\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"aaa-aaa\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.startDate\\\" must be in YYYY-MM-DD format\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"07-03-2021\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 3", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"startDate should be always Sunday\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-06\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 4", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"endDate should be always the next Saturday\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-14\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 5", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.daysWorked\\\" must be a number\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": \"aa\",\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 6", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(`Key (resource_booking_id, start_date, end_date)=(${pm.environment.get('resourceBookingId')}, 2021-03-14, 2021-03-20) already exists.`)\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "put work period with invalid parameter 7", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.paymentStatus\\\" must be one of [pending, partially-completed, completed, cancelled]\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"paid\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with booking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with m2m update", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_update_work_period}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdCreatedByM2M}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodIdCreatedByM2M}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with member", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_member}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with user id not exist", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Bad Request\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_userId_not_exist}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid token", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer invalid_token" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-21\",\r\n \"endDate\": \"2021-03-27\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 1", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.resourceBookingId\\\" must be a valid GUID\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"aaa-aaa\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.startDate\\\" must be in YYYY-MM-DD format\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"07-03-2021\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 3", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"startDate should be always Sunday\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-06\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 4", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"endDate should be always the next Saturday\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-14\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 5", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.daysWorked\\\" must be a number\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": \"aa\",\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 6", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(`Key (resource_booking_id, start_date, end_date)=(${pm.environment.get('resourceBookingId')}, 2021-03-14, 2021-03-20) already exists.`)\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period with invalid parameter 7", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.paymentStatus\\\" must be one of [pending, partially-completed, completed, cancelled]\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"paid\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period with member", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_member}}" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period with booking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 204', function () {\r", - " pm.response.to.have.status(204);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period with m2m delete", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 204', function () {\r", - " pm.response.to.have.status(204);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_delete_work_period}}" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodIdCreatedByM2M}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodIdCreatedByM2M}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period with invalid token", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer invalid_token" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - }, - { - "name": "delete work period not found", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 404', function () {\r", - " pm.response.to.have.status(404);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods/{{workPeriodId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods", - "{{workPeriodId}}" - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Work Period Payments", - "item": [ - { - "name": "Before Test", - "item": [ - { - "name": "create job", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"jobId\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "value": "Bearer {{token_bookingManager}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"projectId\": {{projectId}},\n \"externalId\": \"1212\",\n \"description\": \"Dummy Description\",\n \"startDate\": \"2020-09-27T04:17:23.131Z\",\n \"duration\": 1,\n \"numPositions\": 13,\n \"resourceType\": \"Dummy Resource Type\",\n \"rateType\": \"hourly\",\n \"workload\": \"full-time\",\n \"skills\": [\n \"23e00d92-207a-4b5b-b3c9-4c5662644941\",\n \"7d076384-ccf6-4e43-a45d-1b24b1e624aa\",\n \"cbac57a3-7180-4316-8769-73af64893158\",\n \"a2b4bc11-c641-4a19-9eb7-33980378f82e\"\n ],\n \"title\": \"Dummy title - at most 64 characters\",\n \"minSalary\": 100,\n \"maxSalary\": 200,\n \"hoursPerWeek\": 20,\n \"jobLocation\": \"Any location\",\n \"jobTimezone\": \"GMT\",\n \"currency\": \"USD\"\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/jobs", - "host": [ - "{{URL}}" - ], - "path": [ - "jobs" - ] - } - }, - "response": [] - }, - { - "name": "create resource booking", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"resourceBookingId\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"projectId\": {{project_id_17234}},\r\n \"userId\": \"a55fe1bc-1754-45fa-9adc-cf3d6d7c377a\",\r\n \"jobId\": \"{{jobId}}\",\r\n \"startDate\": \"2020-09-27\",\r\n \"endDate\": \"2020-10-27\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/resourceBookings", - "host": [ - "{{URL}}" - ], - "path": [ - "resourceBookings" - ] - } - }, - "response": [] - }, - { - "name": "create work period", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodId\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-07\",\r\n \"endDate\": \"2021-03-13\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ] - } - }, - "response": [] - }, - { - "name": "create work period2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodId2\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 2,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"pending\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ] - } - }, - "response": [] - }, - { - "name": "create work period with m2m", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodIdCreatedByM2M\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_create_work_period}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"resourceBookingId\": \"{{resourceBookingId}}\",\r\n \"startDate\": \"2021-03-14\",\r\n \"endDate\": \"2021-03-20\",\r\n \"daysWorked\": 3,\r\n \"memberRate\": 13.13,\r\n \"customerRate\": 13.13,\r\n \"paymentStatus\": \"cancelled\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-periods", - "host": [ - "{{URL}}" - ], - "path": [ - "work-periods" - ] - } - }, - "response": [] - } - ] - }, - { - "name": "create work period payment with boooking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodPaymentId\", response.id);\r", - " }\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-period-payments", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments" - ] - } - }, - "response": [] - }, - { - "name": "create multiple work period payments with boooking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "[{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600\r\n},{\r\n \"workPeriodId\": \"{{workPeriodId2}}\",\r\n \"amount\": 900\r\n}]", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-period-payments", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments" - ] - } - }, - "response": [] - }, - { - "name": "create query work period payments with boooking manager", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"\\\"data.daysWorked\\\" must be a number\")\r", "});" ], "type": "text/javascript" @@ -17117,7 +14866,7 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", @@ -17127,7 +14876,7 @@ ], "body": { "mode": "raw", - "raw": "{\"query\": { \"workPeriods.paymentStatus\": \"pending\" } }", + "raw": "{\r\n \"daysWorked\": \"two\"\r\n}", "options": { "raw": { "language": "json" @@ -17135,31 +14884,29 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments/query", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "query" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period payment with m2m create", + "name": "patch work period with invalid parameter 2", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - " if(pm.response.status === \"OK\"){\r", - " const response = pm.response.json()\r", - " pm.environment.set(\"workPeriodPaymentIdCreatedByM2M\", response.id);\r", - " }\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"\\\"data.daysWorked\\\" must be greater than or equal to 0\")\r", "});" ], "type": "text/javascript" @@ -17167,17 +14914,17 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_create_work_period_payment}}" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodIdCreatedByM2M}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"daysWorked\": -1\r\n}", "options": { "raw": { "language": "json" @@ -17185,28 +14932,29 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period payment with connect user", + "name": "patch work period with invalid parameter 3", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + " pm.expect(response.message).to.eq(\"\\\"data.daysWorked\\\" must be less than or equal to 5\")\r", "});" ], "type": "text/javascript" @@ -17214,17 +14962,17 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_connectUser}}" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"daysWorked\": 6\r\n}", "options": { "raw": { "language": "json" @@ -17232,28 +14980,29 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period payment with member", + "name": "patch work period with invalid parameter 4", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + " pm.expect(response.message).to.eq(\"Maximum allowed daysWorked is (4)\")\r", "});" ], "type": "text/javascript" @@ -17261,17 +15010,17 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"daysWorked\": 5\r\n}", "options": { "raw": { "language": "json" @@ -17279,19 +15028,20 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period payment with user id not exist", + "name": "post process payment for work period 5 days", "event": [ { "listen": "test", @@ -17300,7 +15050,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Bad Request\")\r", + " pm.expect(response.message).to.eq(\"Days cannot be more than not paid days which is 3\")\r", "});" ], "type": "text/javascript" @@ -17313,12 +15063,12 @@ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_userId_not_exist}}" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-1}}\",\r\n \"days\": 5\r\n}", "options": { "raw": { "language": "json" @@ -17338,16 +15088,14 @@ "response": [] }, { - "name": "create work period payment with invalid token", + "name": "post process payment for work period 2 days", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -17360,12 +15108,12 @@ { "key": "Authorization", "type": "text", - "value": "Bearer invalid_token" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-1}}\",\r\n \"days\": 2\r\n}", "options": { "raw": { "language": "json" @@ -17385,7 +15133,7 @@ "response": [] }, { - "name": "create work period payment with missing workPeriodId", + "name": "patch work period with invalid parameter 5", "event": [ { "listen": "test", @@ -17394,7 +15142,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" is required\")\r", + " pm.expect(response.message).to.eq(\"Cannot update daysWorked (1) to the value less than daysPaid (2)\")\r", "});" ], "type": "text/javascript" @@ -17402,7 +15150,7 @@ } ], "request": { - "method": "POST", + "method": "PATCH", "header": [ { "key": "Authorization", @@ -17412,7 +15160,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"daysWorked\": 1\r\n}", "options": { "raw": { "language": "json" @@ -17420,28 +15168,29 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] }, { - "name": "create work period payment with invalid workPeriodId 1", + "name": "delete work period", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 404', function () {\r", + " pm.response.to.have.status(404);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" must be a valid GUID\")\r", + " pm.expect(response.message).to.eq(\"The requested resource cannot be found.\")\r", "});" ], "type": "text/javascript" @@ -17449,7 +15198,7 @@ } ], "request": { - "method": "POST", + "method": "DELETE", "header": [ { "key": "Authorization", @@ -17459,7 +15208,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"aaa-bb-c\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "", "options": { "raw": { "language": "json" @@ -17467,28 +15216,199 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-periods/{{workPeriodId-1}}", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-periods", + "{{workPeriodId-1}}" ] } }, "response": [] + } + ] + }, + { + "name": "Work Period Payments", + "item": [ + { + "name": "Before Test", + "item": [ + { + "name": "create job", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " if(pm.response.status === \"OK\"){\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"jobId\", response.id);\r", + " }\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token_bookingManager}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"projectId\": {{projectId}},\n \"externalId\": \"1212\",\n \"description\": \"Dummy Description\",\n \"startDate\": \"2020-09-27T04:17:23.131Z\",\n \"duration\": 1,\n \"numPositions\": 13,\n \"resourceType\": \"Dummy Resource Type\",\n \"rateType\": \"hourly\",\n \"workload\": \"full-time\",\n \"skills\": [\n \"23e00d92-207a-4b5b-b3c9-4c5662644941\",\n \"7d076384-ccf6-4e43-a45d-1b24b1e624aa\",\n \"cbac57a3-7180-4316-8769-73af64893158\",\n \"a2b4bc11-c641-4a19-9eb7-33980378f82e\"\n ],\n \"title\": \"Dummy title - at most 64 characters\",\n \"minSalary\": 100,\n \"maxSalary\": 200,\n \"hoursPerWeek\": 20,\n \"jobLocation\": \"Any location\",\n \"jobTimezone\": \"GMT\",\n \"currency\": \"USD\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{URL}}/jobs", + "host": [ + "{{URL}}" + ], + "path": [ + "jobs" + ] + } + }, + "response": [] + }, + { + "name": "create resource booking", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " if(pm.response.status === \"OK\"){\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"resourceBookingId\", response.id);\r", + " }\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token_bookingManager}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"projectId\": {{project_id_17234}},\r\n \"userId\": \"a55fe1bc-1754-45fa-9adc-cf3d6d7c377a\",\r\n \"jobId\": \"{{jobId}}\",\r\n \"startDate\": \"2020-09-27\",\r\n \"endDate\": \"2020-10-27\",\r\n \"memberRate\": 13.23,\r\n \"customerRate\": 13,\r\n \"rateType\": \"hourly\",\r\n \"billingAccountId\": 80000071\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{URL}}/resourceBookings", + "host": [ + "{{URL}}" + ], + "path": [ + "resourceBookings" + ] + } + }, + "response": [] + }, + { + "name": "search work periods", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"workPeriodId-1\", response[0].id);\r", + " pm.environment.set(\"workPeriodId-2\", response[1].id);\r", + " pm.environment.set(\"workPeriodId-3\", response[2].id);\r", + " pm.environment.set(\"workPeriodId-4\", response[3].id);\r", + " pm.environment.set(\"workPeriodId-5\", response[4].id);\r", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token_bookingManager}}" + } + ], + "url": { + "raw": "{{URL}}/work-periods?sortBy=startDate&sortOrder=asc&resourceBookingId={{resourceBookingId}}&perPage=5", + "host": [ + "{{URL}}" + ], + "path": [ + "work-periods" + ], + "query": [ + { + "key": "sortBy", + "value": "startDate" + }, + { + "key": "sortOrder", + "value": "asc" + }, + { + "key": "resourceBookingId", + "value": "{{resourceBookingId}}" + }, + { + "key": "perPage", + "value": "5" + } + ] + } + }, + "response": [] + } + ] }, { - "name": "create work period payment with invalid workPeriodId 2", + "name": "create work period payment with boooking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" must be a string\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " if(pm.response.status === \"OK\"){\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"workPeriodPaymentId\", response.id);\r", + " }\r", "});" ], "type": "text/javascript" @@ -17506,7 +15426,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": 123,\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-1}}\"\r\n}", "options": { "raw": { "language": "json" @@ -17526,16 +15446,19 @@ "response": [] }, { - "name": "create work period payment with invalid amount 1", + "name": "create multiple work period payments with boooking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.amount\\\" must be a number\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " if(pm.response.status === \"OK\"){\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"workPeriodPaymentId-2\", response[0].id);\r", + " pm.environment.set(\"workPeriodPaymentId-3\", response[1].id);\r", + " }\r", "});" ], "type": "text/javascript" @@ -17553,7 +15476,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": \"abc\",\r\n \"status\": \"completed\"\r\n}", + "raw": "[{\r\n \"workPeriodId\": \"{{workPeriodId-2}}\",\r\n \"days\": 3\r\n},{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\",\r\n \"days\": 4\r\n}]", "options": { "raw": { "language": "json" @@ -17573,16 +15496,14 @@ "response": [] }, { - "name": "create work period payment with invalid amount 2", + "name": "create query work period payments with boooking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.amount\\\" must be greater than 0\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -17600,7 +15521,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 0,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\"query\": { \"workPeriods.paymentStatus\": \"pending\" } }", "options": { "raw": { "language": "json" @@ -17608,28 +15529,31 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments", + "raw": "{{URL}}/work-period-payments/query", "host": [ "{{URL}}" ], "path": [ - "work-period-payments" + "work-period-payments", + "query" ] } }, "response": [] }, { - "name": "create work period payment with invalid status 1", + "name": "create work period payment with m2m create", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.status\\\" must be one of [completed, cancelled]\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", + " if(pm.response.status === \"OK\"){\r", + " const response = pm.response.json()\r", + " pm.environment.set(\"workPeriodPaymentIdCreatedByM2M\", response.id);\r", + " }\r", "});" ], "type": "text/javascript" @@ -17642,12 +15566,12 @@ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_m2m_create_work_period_payment}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": 123\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-2}}\"\r\n}", "options": { "raw": { "language": "json" @@ -17667,16 +15591,16 @@ "response": [] }, { - "name": "create work period payment with invalid status 2", + "name": "create work period payment with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.status\\\" must be one of [completed, cancelled]\")\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -17689,12 +15613,12 @@ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_connectUser}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": \"invalid-status\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\"\r\n}", "options": { "raw": { "language": "json" @@ -17714,14 +15638,16 @@ "response": [] }, { - "name": "get work period payment with booking manager", + "name": "create work period payment with member", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -17729,73 +15655,46 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_member}}" } ], - "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" - ] - } - }, - "response": [] - }, - { - "name": "get work period payment with m2m read", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_m2m_read_work_period_payment}}" + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\"\r\n}", + "options": { + "raw": { + "language": "json" + } } - ], + }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentIdCreatedByM2M}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentIdCreatedByM2M}}" + "work-period-payments" ] } }, "response": [] }, { - "name": "get work period payment with booking manager from db", + "name": "create work period payment with user id not exist", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"Bad Request\")\r", "});" ], "type": "text/javascript" @@ -17803,83 +15702,46 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_userId_not_exist}}" } ], - "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}?fromDb=true", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" - ], - "query": [ - { - "key": "fromDb", - "value": "true" + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\"\r\n}", + "options": { + "raw": { + "language": "json" } - ] - } - }, - "response": [] - }, - { - "name": "get work period payment with connect user", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_connectUser}}" } - ], + }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" ] } }, "response": [] }, { - "name": "get work period payment with member", + "name": "create work period payment with invalid token", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", + "pm.test('Status code is 401', function () {\r", + " pm.response.to.have.status(401);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", "});" ], "type": "text/javascript" @@ -17887,36 +15749,46 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer invalid_token" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" ] } }, "response": [] }, { - "name": "search work period payments with booking manager", + "name": "create work period payment with missing workPeriodId", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" is required\")\r", "});" ], "type": "text/javascript" @@ -17924,7 +15796,7 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", @@ -17932,64 +15804,38 @@ "value": "Bearer {{token_bookingManager}}" } ], - "url": { - "raw": "{{URL}}/work-period-payments", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "50", - "disabled": true - }, - { - "key": "sortBy", - "value": "status", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "workPeriodId", - "value": "{{workPeriodId}}", - "disabled": true - }, - { - "key": "workPeriodIds", - "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "status", - "value": "completed", - "disabled": true + "body": { + "mode": "raw", + "raw": "{\r\n\r\n}", + "options": { + "raw": { + "language": "json" } + } + }, + "url": { + "raw": "{{URL}}/work-period-payments", + "host": [ + "{{URL}}" + ], + "path": [ + "work-period-payments" ] } }, "response": [] }, { - "name": "search work period payments with m2m all", + "name": "create work period payment with invalid workPeriodId 1", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" must be a valid GUID\")\r", "});" ], "type": "text/javascript" @@ -17997,14 +15843,23 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_all_work_period_payment}}" + "value": "Bearer {{token_bookingManager}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"aaa-bb-c\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { "raw": "{{URL}}/work-period-payments", "host": [ @@ -18012,59 +15867,22 @@ ], "path": [ "work-period-payments" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "50", - "disabled": true - }, - { - "key": "sortBy", - "value": "status", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "workPeriodId", - "value": "{{workPeriodId}}", - "disabled": true - }, - { - "key": "workPeriodIds", - "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "status", - "value": "completed", - "disabled": true - } ] } }, "response": [] }, { - "name": "search work period payments with connect user", + "name": "create work period payment with invalid workPeriodId 2", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.workPeriodId\\\" must be a string\")\r", "});" ], "type": "text/javascript" @@ -18072,14 +15890,23 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_connectUser}}" + "value": "Bearer {{token_bookingManager}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": 123\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { "raw": "{{URL}}/work-period-payments", "host": [ @@ -18087,59 +15914,22 @@ ], "path": [ "work-period-payments" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "50", - "disabled": true - }, - { - "key": "sortBy", - "value": "status", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "workPeriodId", - "value": "{{workPeriodId}}", - "disabled": true - }, - { - "key": "workPeriodIds", - "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "status", - "value": "completed", - "disabled": true - } ] } }, "response": [] }, { - "name": "search work period payments with member", + "name": "create work period payment with invalid days 1", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + " pm.expect(response.message).to.eq(\"Days cannot be more than not paid days which is 0\")\r", "});" ], "type": "text/javascript" @@ -18147,14 +15937,23 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer {{token_bookingManager}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-1}}\",\r\n \"days\": 1\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { "raw": "{{URL}}/work-period-payments", "host": [ @@ -18162,59 +15961,22 @@ ], "path": [ "work-period-payments" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "50", - "disabled": true - }, - { - "key": "sortBy", - "value": "status", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "workPeriodId", - "value": "{{workPeriodId}}", - "disabled": true - }, - { - "key": "workPeriodIds", - "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "status", - "value": "completed", - "disabled": true - } ] } }, "response": [] }, { - "name": "search work period payments with invalid token", + "name": "create work period payment with invalid days 2", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", + " pm.expect(response.message).to.eq(\"\\\"workPeriodPayment.days\\\" must be less than or equal to 5\")\r", "});" ], "type": "text/javascript" @@ -18222,14 +15984,23 @@ } ], "request": { - "method": "GET", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer invalid_token" + "value": "Bearer {{token_bookingManager}}" } ], + "body": { + "mode": "raw", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\",\r\n \"days\": 6\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { "raw": "{{URL}}/work-period-payments", "host": [ @@ -18237,57 +16008,22 @@ ], "path": [ "work-period-payments" - ], - "query": [ - { - "key": "page", - "value": "1", - "disabled": true - }, - { - "key": "perPage", - "value": "50", - "disabled": true - }, - { - "key": "sortBy", - "value": "status", - "disabled": true - }, - { - "key": "sortOrder", - "value": "desc", - "disabled": true - }, - { - "key": "workPeriodId", - "value": "{{workPeriodId}}", - "disabled": true - }, - { - "key": "workPeriodIds", - "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", - "disabled": true - }, - { - "key": "status", - "value": "completed", - "disabled": true - } ] } }, "response": [] }, { - "name": "put work period payment with boooking manager", + "name": "create work period payment with invalid days 2 Copy", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 400', function () {\r", + " pm.response.to.have.status(400);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"Days cannot be more than not paid days which is 1\")\r", "});" ], "type": "text/javascript" @@ -18295,7 +16031,7 @@ } ], "request": { - "method": "PUT", + "method": "POST", "header": [ { "key": "Authorization", @@ -18305,7 +16041,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-3}}\",\r\n \"days\": 3\r\n}", "options": { "raw": { "language": "json" @@ -18313,27 +16049,28 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" ] } }, "response": [] }, { - "name": "put work period payment with m2m create", + "name": "create work period payment with completed status", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 200', function () {\r", - " pm.response.to.have.status(200);\r", + "pm.test('Status code is 409', function () {\r", + " pm.response.to.have.status(409);\r", + " const response = pm.response.json()\r", + " pm.expect(response.message).to.eq(\"There are no days to pay for WorkPeriod: \"+pm.environment.get('workPeriodId-2'))\r", "});" ], "type": "text/javascript" @@ -18341,17 +16078,17 @@ } ], "request": { - "method": "PUT", + "method": "POST", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_m2m_update_work_period_payment}}" + "value": "Bearer {{token_bookingManager}}" } ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodIdCreatedByM2M}}\",\r\n \"amount\": 1600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId-2}}\"\r\n}", "options": { "raw": { "language": "json" @@ -18359,29 +16096,26 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentIdCreatedByM2M}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentIdCreatedByM2M}}" + "work-period-payments" ] } }, "response": [] }, { - "name": "put work period payment with connect user", + "name": "get work period payment with booking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -18389,23 +16123,14 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_connectUser}}" + "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", "host": [ @@ -18420,16 +16145,14 @@ "response": [] }, { - "name": "put work period payment with member", + "name": "get work period payment with m2m read", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 403', function () {\r", - " pm.response.to.have.status(403);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -18437,47 +16160,36 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_member}}" + "value": "Bearer {{token_m2m_read_work_period_payment}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentIdCreatedByM2M}}", "host": [ "{{URL}}" ], "path": [ "work-period-payments", - "{{workPeriodPaymentId}}" + "{{workPeriodPaymentIdCreatedByM2M}}" ] } }, "response": [] }, { - "name": "put work period payment with user id not exist", + "name": "get work period payment with booking manager from db", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Bad Request\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -18485,47 +16197,44 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_userId_not_exist}}" + "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}?fromDb=true", "host": [ "{{URL}}" ], "path": [ "work-period-payments", "{{workPeriodPaymentId}}" + ], + "query": [ + { + "key": "fromDb", + "value": "true" + } ] } }, "response": [] }, { - "name": "put work period payment with invalid token", + "name": "get work period payment with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 401', function () {\r", - " pm.response.to.have.status(401);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -18533,23 +16242,14 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer invalid_token" + "value": "Bearer {{token_connectUser}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", "host": [ @@ -18564,16 +16264,16 @@ "response": [] }, { - "name": "put work period payment with missing workPeriodId", + "name": "get work period payment with member", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.workPeriodId\\\" is required\")\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -18581,23 +16281,14 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_member}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", "host": [ @@ -18612,16 +16303,14 @@ "response": [] }, { - "name": "put work period payment with invalid workPeriodId 1", + "name": "search work period payments with booking manager", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.workPeriodId\\\" must be a valid GUID\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -18629,7 +16318,7 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", @@ -18637,39 +16326,64 @@ "value": "Bearer {{token_bookingManager}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"aaa-bb-c\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "50", + "disabled": true + }, + { + "key": "sortBy", + "value": "status", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "workPeriodId", + "value": "{{workPeriodId}}", + "disabled": true + }, + { + "key": "workPeriodIds", + "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "status", + "value": "completed", + "disabled": true + } ] } }, "response": [] }, { - "name": "put work period payment with invalid workPeriodId 2", + "name": "search work period payments with m2m all", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.workPeriodId\\\" must be a string\")\r", + "pm.test('Status code is 200', function () {\r", + " pm.response.to.have.status(200);\r", "});" ], "type": "text/javascript" @@ -18677,47 +16391,74 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_m2m_all_work_period_payment}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": 123,\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "50", + "disabled": true + }, + { + "key": "sortBy", + "value": "status", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "workPeriodId", + "value": "{{workPeriodId}}", + "disabled": true + }, + { + "key": "workPeriodIds", + "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "status", + "value": "completed", + "disabled": true + } ] } }, "response": [] }, { - "name": "put work period payment with invalid amount 1", + "name": "search work period payments with connect user", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.amount\\\" must be a number\")\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -18725,47 +16466,74 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_connectUser}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": \"abc\",\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" + "url": { + "raw": "{{URL}}/work-period-payments", + "host": [ + "{{URL}}" + ], + "path": [ + "work-period-payments" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "50", + "disabled": true + }, + { + "key": "sortBy", + "value": "status", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "workPeriodId", + "value": "{{workPeriodId}}", + "disabled": true + }, + { + "key": "workPeriodIds", + "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "status", + "value": "completed", + "disabled": true } - } - }, - "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" ] } }, "response": [] }, { - "name": "put work period payment with invalid amount 2", + "name": "search work period payments with member", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 403', function () {\r", + " pm.response.to.have.status(403);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.amount\\\" must be greater than 0\")\r", + " pm.expect(response.message).to.eq(\"You are not allowed to perform this action!\")\r", "});" ], "type": "text/javascript" @@ -18773,47 +16541,74 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer {{token_member}}" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 0,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "50", + "disabled": true + }, + { + "key": "sortBy", + "value": "status", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "workPeriodId", + "value": "{{workPeriodId}}", + "disabled": true + }, + { + "key": "workPeriodIds", + "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "status", + "value": "completed", + "disabled": true + } ] } }, "response": [] }, { - "name": "put work period payment with invalid status 1", + "name": "search work period payments with invalid token", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 401', function () {\r", + " pm.response.to.have.status(401);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [completed, cancelled]\")\r", + " pm.expect(response.message).to.eq(\"Invalid Token.\")\r", "});" ], "type": "text/javascript" @@ -18821,47 +16616,74 @@ } ], "request": { - "method": "PUT", + "method": "GET", "header": [ { "key": "Authorization", "type": "text", - "value": "Bearer {{token_bookingManager}}" + "value": "Bearer invalid_token" } ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": 123\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments", "host": [ "{{URL}}" ], "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" + "work-period-payments" + ], + "query": [ + { + "key": "page", + "value": "1", + "disabled": true + }, + { + "key": "perPage", + "value": "50", + "disabled": true + }, + { + "key": "sortBy", + "value": "status", + "disabled": true + }, + { + "key": "sortOrder", + "value": "desc", + "disabled": true + }, + { + "key": "workPeriodId", + "value": "{{workPeriodId}}", + "disabled": true + }, + { + "key": "workPeriodIds", + "value": "{{workPeriodId}},{{workPeriodIdCreatedByM2M}}", + "disabled": true + }, + { + "key": "status", + "value": "completed", + "disabled": true + } ] } }, "response": [] }, { - "name": "put work period payment with invalid status 2", + "name": "put work period payment", "event": [ { "listen": "test", "script": { "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", + "pm.test('Status code is 404', function () {\r", + " pm.response.to.have.status(404);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [completed, cancelled]\")\r", + " pm.expect(response.message).to.eq(\"The requested resource cannot be found.\")\r", "});" ], "type": "text/javascript" @@ -18879,7 +16701,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": \"invalid-status\"\r\n}", + "raw": "{\r\n \"status\": \"completed\"\r\n}", "options": { "raw": { "language": "json" @@ -18925,7 +16747,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 450,\r\n \"status\": \"cancelled\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -18971,7 +16793,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodIdCreatedByM2M}}\",\r\n \"amount\": 450,\r\n \"status\": \"cancelled\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -19019,7 +16841,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -19067,7 +16889,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -19115,7 +16937,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -19163,103 +16985,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period payment with invalid workPeriodId 1", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.workPeriodId\\\" must be a valid GUID\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"aaa-bb-c\",\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", - "host": [ - "{{URL}}" - ], - "path": [ - "work-period-payments", - "{{workPeriodPaymentId}}" - ] - } - }, - "response": [] - }, - { - "name": "patch work period payment with invalid workPeriodId 2", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "pm.test('Status code is 400', function () {\r", - " pm.response.to.have.status(400);\r", - " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.workPeriodId\\\" must be a string\")\r", - "});" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token_bookingManager}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\r\n \"workPeriodId\": 123,\r\n \"amount\": 600,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": \"cancelled\"\r\n}", "options": { "raw": { "language": "json" @@ -19280,7 +17006,7 @@ "response": [] }, { - "name": "patch work period payment with invalid amount 1", + "name": "patch work period payment with invalid status 1", "event": [ { "listen": "test", @@ -19289,7 +17015,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.amount\\\" must be a number\")\r", + " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [scheduled, cancelled]\")\r", "});" ], "type": "text/javascript" @@ -19307,7 +17033,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": \"abc\",\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": 123\r\n}", "options": { "raw": { "language": "json" @@ -19328,7 +17054,7 @@ "response": [] }, { - "name": "patch work period payment with invalid amount 2", + "name": "patch work period payment with invalid status 2", "event": [ { "listen": "test", @@ -19337,7 +17063,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.amount\\\" must be greater than 0\")\r", + " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [scheduled, cancelled]\")\r", "});" ], "type": "text/javascript" @@ -19355,7 +17081,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 0,\r\n \"status\": \"completed\"\r\n}", + "raw": "{\r\n \"status\": \"invalid-status\"\r\n}", "options": { "raw": { "language": "json" @@ -19376,7 +17102,7 @@ "response": [] }, { - "name": "patch work period payment with invalid status 1", + "name": "patch work period payment with invalid status 3", "event": [ { "listen": "test", @@ -19385,7 +17111,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [completed, cancelled]\")\r", + " pm.expect(response.message).to.eq(\"You cannot schedule a WorkPeriodPayment which is cancelled\")\r", "});" ], "type": "text/javascript" @@ -19403,7 +17129,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": 123\r\n}", + "raw": "{\r\n \"status\": \"scheduled\"\r\n}", "options": { "raw": { "language": "json" @@ -19424,7 +17150,7 @@ "response": [] }, { - "name": "patch work period payment with invalid status 2", + "name": "patch work period payment with invalid status 4", "event": [ { "listen": "test", @@ -19433,7 +17159,7 @@ "pm.test('Status code is 400', function () {\r", " pm.response.to.have.status(400);\r", " const response = pm.response.json()\r", - " pm.expect(response.message).to.eq(\"\\\"data.status\\\" must be one of [completed, cancelled]\")\r", + " pm.expect(response.message).to.eq(\"You cannot schedule a WorkPeriodPayment which is completed\")\r", "});" ], "type": "text/javascript" @@ -19451,7 +17177,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"workPeriodId\": \"{{workPeriodId}}\",\r\n \"amount\": 1200,\r\n \"status\": \"invalid-status\"\r\n}", + "raw": "{\r\n \"status\": \"scheduled\"\r\n}", "options": { "raw": { "language": "json" @@ -19459,13 +17185,13 @@ } }, "url": { - "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId}}", + "raw": "{{URL}}/work-period-payments/{{workPeriodPaymentId-2}}", "host": [ "{{URL}}" ], "path": [ "work-period-payments", - "{{workPeriodPaymentId}}" + "{{workPeriodPaymentId-2}}" ] } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index e6cb5988..a8abc4e4 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -174,7 +174,7 @@ paths: required: false schema: type: string - enum: ["hourly", "daily", "weekly", "monthly","annual"] + enum: ["hourly", "daily", "weekly", "monthly", "annual"] description: The rate type. - in: query name: status @@ -1509,9 +1509,11 @@ paths: - type: array items: type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: + ["pending", "partially-completed", "completed", "cancelled"] - type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: + ["pending", "partially-completed", "completed", "cancelled"] description: comma separated payment status. - in: query name: workPeriods.startDate @@ -1837,57 +1839,6 @@ paths: schema: $ref: "#/components/schemas/Error" /work-periods: - post: - tags: - - WorkPeriods - description: | - Create Work Period. - - **Authorization** Topcoder token with write Work period scope is allowed - security: - - bearerAuth: [] - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriodRequestBody" - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriod" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "401": - description: Not authenticated - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "500": - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" get: tags: - WorkPeriods @@ -1965,9 +1916,25 @@ paths: - type: array items: type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: + [ + "pending", + "partially-completed", + "completed", + "in-progress", + "failed", + "no-days", + ] - type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: + [ + "pending", + "partially-completed", + "completed", + "in-progress", + "failed", + "no-days", + ] description: comma separated payment status. - in: query name: startDate @@ -2121,61 +2088,11 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - delete: - tags: - - WorkPeriods - description: | - Delete the work period. - - **Authorization** Topcoder token with delete work period scope is allowed - security: - - bearerAuth: [] - parameters: - - in: path - name: id - description: The id of work period. - required: true - schema: - type: string - format: uuid - responses: - "204": - description: OK - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "401": - description: Not authenticated - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "500": - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - put: + patch: tags: - WorkPeriods description: | - Update the work period. + Partial Update work period. **Authorization** Topcoder token with update work period scope is allowed security: @@ -2192,7 +2109,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/WorkPeriodRequestBody" + $ref: "#/components/schemas/WorkPeriodPatchRequestBody" responses: "200": description: OK @@ -2224,61 +2141,8 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - "500": - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - patch: - tags: - - WorkPeriods - description: | - Partial Update work period. - - **Authorization** Topcoder token with update work period scope is allowed - security: - - bearerAuth: [] - parameters: - - in: path - name: id - description: The id of work period. - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriodPatchRequestBody" - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriod" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "401": - description: Not authenticated - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Not Found + "409": + description: Conflict content: application/json: schema: @@ -2345,6 +2209,12 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" + "409": + description: Conflict + content: + application/json: + schema: + $ref: "#/components/schemas/Error" "500": description: Internal Server Error content: @@ -2413,7 +2283,8 @@ paths: required: false schema: type: string - enum: ["completed", "scheduled", "in-progress", "failed", "cancelled"] + enum: + ["completed", "scheduled", "in-progress", "failed", "cancelled"] description: The payment status. responses: "200": @@ -2592,65 +2463,6 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - put: - tags: - - WorkPeriodPayments - description: | - Update the work period payment. - - **Authorization** Topcoder token with update work period payment scope is allowed - security: - - bearerAuth: [] - parameters: - - in: path - name: id - description: The id of work period payment. - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriodPaymentRequestBody" - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/WorkPeriodPayment" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "401": - description: Not authenticated - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Not Found - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "500": - description: Internal Server Error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" patch: tags: - WorkPeriodPayments @@ -4667,6 +4479,9 @@ components: - projectId - startDate - endDate + - daysWorked + - daysPaid + - paymentTotal - paymentStatus - createdAt - createdBy @@ -4699,21 +4514,33 @@ components: description: "The end date of work period. Should be always Saturday." daysWorked: type: integer + minimum: 0 + maximum: 5 example: 2 description: "The count of the days worked for that work period." - memberRate: + daysPaid: type: integer - format: float - example: 13.13 - description: "The member rate." - customerRate: + minimum: 0 + maximum: 5 + format: integer + example: 1 + description: "The count of paid days for that work period" + paymentTotal: type: integer format: float example: 13.13 - description: "The customer rate." + description: "The total paid amount" paymentStatus: type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: + [ + "pending", + "partially-completed", + "completed", + "in-progress", + "failed", + "no-days", + ] description: "The payment status." payments: type: array @@ -4736,86 +4563,21 @@ components: type: string format: uuid description: "The user Id who updated the work period last time.(Will get the user info from the token)" - WorkPeriodRequestBody: - required: - - resourceBookingId - - startDate - - endDate - - paymentStatus - properties: - resourceBookingId: - type: string - format: uuid - description: "The resource booking id." - startDate: - type: string - format: date - example: "2021-03-07" - description: "The start date of work period. Should be always Sunday." - endDate: - type: string - format: date - example: "2021-03-13" - description: "The end date of work period. Should be always Saturday." - daysWorked: - type: integer - example: 2 - description: "The count of the days worked for that work period." - memberRate: - type: integer - format: float - example: 13.13 - description: "The member rate." - customerRate: - type: integer - format: float - example: 13.13 - description: "The customer rate." - paymentStatus: - type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] - description: "The payment status." WorkPeriodPatchRequestBody: properties: - resourceBookingId: - type: string - format: uuid - description: "The resource booking id." - startDate: - type: string - format: date - example: "2021-03-07" - description: "The start date of work period. Should be always Sunday." - endDate: - type: string - format: date - example: "2021-03-13" - description: "The end date of work period. Should be always Saturday." daysWorked: type: integer example: 2 description: "The count of the days worked for that work period." - memberRate: - type: integer - format: float - example: 13.13 - description: "The member rate." - customerRate: - type: integer - format: float - example: 13.13 - description: "The customer rate." - paymentStatus: - type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] - description: "The payment status." WorkPeriodPayment: required: - id - workPeriodId - - challengeId + - memberRate + - days - amount - status + - billingAccountId - createdAt - createdBy properties: @@ -4831,6 +4593,22 @@ components: type: string format: uuid description: "The challenge id." + memberRate: + type: number + format: float + example: 20.5 + description: "The member rate" + customerRate: + type: number + format: float + example: 15.5 + description: "The customer rate" + days: + type: integer + minimum: 1 + maximum: 5 + example: 3 + description: "The workdays to pay" amount: type: integer example: 2 @@ -4895,22 +4673,6 @@ components: type: integer example: 429 description: "HTTP code of error" - WorkPeriodPaymentRequestBody: - required: - - workPeriodId - properties: - workPeriodId: - type: string - format: uuid - description: "The work period id." - amount: - type: integer - example: 2 - description: "The amount to be paid." - status: - type: string - enum: ["completed", "scheduled", "in-progress", "failed", "cancelled"] - description: "The payment status." WorkPeriodPaymentCreateRequestBody: required: - workPeriodId @@ -4919,10 +4681,12 @@ components: type: string format: uuid description: "The work period id." - amount: + days: type: integer + minimum: 1 + maximum: 5 example: 2 - description: "The amount to be paid." + description: "The workDays to be paid." WorkPeriodPaymentQueryCreateRequestBody: properties: status: @@ -4961,7 +4725,7 @@ components: type: integer workPeriods.paymentStatus: type: string - enum: ["pending", "partially-completed", "completed", "cancelled"] + enum: ["pending", "partially-completed", "failed"] workPeriods.startDate: type: string format: date @@ -4990,17 +4754,9 @@ components: $ref: "#/components/schemas/WorkPeriodPaymentQueryCreateRequestBody" WorkPeriodPaymentPatchRequestBody: properties: - workPeriodId: - type: string - format: uuid - description: "The work period id." - amount: - type: integer - example: 2 - description: "The amount to be paid." status: type: string - enum: ["completed", "scheduled", "in-progress", "failed", "cancelled"] + enum: ["scheduled", "cancelled"] description: "The payment status." CheckRun: type: object diff --git a/migrations/2021-06-14-create-and-populate-work-periods-for-resource-bookings.js b/migrations/2021-06-14-create-and-populate-work-periods-for-resource-bookings.js new file mode 100644 index 00000000..7e484f4f --- /dev/null +++ b/migrations/2021-06-14-create-and-populate-work-periods-for-resource-bookings.js @@ -0,0 +1,146 @@ +const config = require('config') +const ResourceBooking = require('../src/models').ResourceBooking +const _ = require('lodash') +const helper = require('../src/common/helper') +const { v4: uuid } = require('uuid') +const { PaymentStatus } = require('../app-constants') + +// maximum start date of resource bookings when populating work periods from existing resource bookings in migration script +const MAX_START_DATE = process.env.MAX_START_DATE || '2100-12-31' +// maximum end date of resource bookings when populating work periods from existing resource bookings in migration script +const MAX_END_DATE = process.env.MAX_END_DATE || '2100-12-31' + +/* + * Populate WorkPeriods for ResourceBookings + */ + +module.exports = { + up: async (queryInterface, Sequelize) => { + const transaction = await queryInterface.sequelize.transaction() + const Op = Sequelize.Op + try { + await queryInterface.bulkDelete({ + tableName: 'payment_schedulers', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.bulkDelete({ + tableName: 'work_period_payments', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.bulkDelete({ + tableName: 'work_periods', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'member_rate', { transaction }) + await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'customer_rate', { transaction }) + await queryInterface.addColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'days_paid', + { type: Sequelize.INTEGER, allowNull: false }, + { transaction }) + await queryInterface.addColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'payment_total', + { type: Sequelize.FLOAT, allowNull: false }, + { transaction }) + await queryInterface.changeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'days_worked', + { type: Sequelize.INTEGER, allowNull: false }, + { transaction }) + await queryInterface.addColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'member_rate', + { type: Sequelize.FLOAT, allowNull: false }, + { transaction }) + await queryInterface.addColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'customer_rate', + { type: Sequelize.FLOAT, allowNull: true }, + { transaction }) + await queryInterface.addColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'days', + { type: Sequelize.INTEGER, allowNull: false }, + { transaction }) + await queryInterface.changeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'amount', + { type: Sequelize.DOUBLE, allowNull: false }, + { transaction }) + await queryInterface.changeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'billing_account_id', + { type: Sequelize.BIGINT, allowNull: false }, + { transaction }) + const resourceBookings = await ResourceBooking.findAll({ + where: { + start_date: { [Op.lt]: new Date(MAX_START_DATE) }, + end_date: { [Op.lt]: new Date(MAX_END_DATE) } + } + }) + if (resourceBookings.length === 0) { + return + } + const workPeriodData = [] + for (const rb of resourceBookings) { + if (!_.isNil(rb.startDate) && !_.isNil(rb.endDate)) { + const periods = helper.extractWorkPeriods(rb.startDate, rb.endDate) + const user = await helper.ensureUserById(rb.userId) + _.forEach(periods, period => { + workPeriodData.push({ + id: uuid(), + resource_booking_id: rb.id, + project_id: rb.projectId, + user_handle: user.handle, + start_date: period.startDate, + end_date: period.endDate, + days_worked: period.daysWorked, + days_paid: 0, + payment_total: 0, + payment_status: period.daysWorked === 0 ? PaymentStatus.NO_DAYS : PaymentStatus.PENDING, + created_by: config.m2m.M2M_AUDIT_USER_ID, + created_at: new Date() + }) + }) + } + } + await queryInterface.bulkInsert({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, workPeriodData, { transaction }) + await transaction.commit() + } catch (err) { + await transaction.rollback() + throw err + } + }, + down: async (queryInterface, Sequelize) => { + const transaction = await queryInterface.sequelize.transaction() + try { + await queryInterface.bulkDelete({ + tableName: 'payment_schedulers', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.bulkDelete({ + tableName: 'work_period_payments', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.bulkDelete({ + tableName: 'work_periods', + schema: config.DB_SCHEMA_NAME, + transaction + }) + await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'days_paid', { transaction }) + await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'payment_total', { transaction }) + await queryInterface.addColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'member_rate', + { type: Sequelize.FLOAT, allowNull: true }, + { transaction }) + await queryInterface.addColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'customer_rate', + { type: Sequelize.FLOAT, allowNull: true }, + { transaction }) + await queryInterface.changeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'days_worked', + { type: Sequelize.INTEGER, allowNull: true }, + { transaction }) + await queryInterface.removeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'member_rate', { transaction }) + await queryInterface.removeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'customer_rate', { transaction }) + await queryInterface.removeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'days', { transaction }) + await queryInterface.changeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'amount', + { type: Sequelize.DOUBLE, allowNull: true }, + { transaction }) + await queryInterface.changeColumn({ tableName: 'work_period_payments', schema: config.DB_SCHEMA_NAME }, 'billing_account_id', + { type: Sequelize.BIGINT, allowNull: true }, + { transaction }) + await transaction.commit() + } catch (err) { + await transaction.rollback() + throw err + } + } +} diff --git a/src/bootstrap.js b/src/bootstrap.js index aebac2c2..b2f094b0 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -3,7 +3,7 @@ const Joi = require('joi') const config = require('config') const path = require('path') const _ = require('lodash') -const { Interviews, WorkPeriodPaymentStatus, PaymentProcessingSwitch } = require('../app-constants') +const { Interviews, PaymentStatus, WorkPeriodPaymentStatus, WorkPeriodPaymentUpdateStatus, PaymentProcessingSwitch } = require('../app-constants') const logger = require('./common/logger') const allowedInterviewStatuses = _.values(Interviews.Status) @@ -17,10 +17,11 @@ Joi.resourceBookingStatus = () => Joi.string().valid('placed', 'closed', 'cancel Joi.workload = () => Joi.string().valid('full-time', 'fractional') Joi.jobCandidateStatus = () => Joi.string().valid('open', 'placed', 'selected', 'client rejected - screening', 'client rejected - interview', 'rejected - other', 'cancelled', 'interview', 'topcoder-rejected', 'applied', 'rejected-pre-screen', 'skills-test', 'skills-test', 'phone-screen', 'job-closed', 'offered') Joi.title = () => Joi.string().max(128) -Joi.paymentStatus = () => Joi.string().valid('pending', 'partially-completed', 'completed', 'cancelled') +Joi.paymentStatus = () => Joi.string().valid(..._.values(PaymentStatus)) Joi.xaiTemplate = () => Joi.string().valid(...allowedXAITemplate) Joi.interviewStatus = () => Joi.string().valid(...allowedInterviewStatuses) Joi.workPeriodPaymentStatus = () => Joi.string().valid(..._.values(WorkPeriodPaymentStatus)) +Joi.workPeriodPaymentUpdateStatus = () => Joi.string().valid(..._.values(WorkPeriodPaymentUpdateStatus)) // Empty string is not allowed by Joi by default and must be enabled with allow(''). // See https://joi.dev/api/?v=17.3.0#string fro details why it's like this. // In many cases we would like to allow empty string to make it easier to create UI for editing data. diff --git a/src/common/helper.js b/src/common/helper.js index 45e4afe4..9dfd9f23 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -21,6 +21,7 @@ const models = require('../models') const eventDispatcher = require('./eventDispatcher') const busApi = require('@topcoder-platform/topcoder-bus-api-wrapper') const moment = require('moment') +const { PaymentStatus, WorkPeriodPaymentStatus } = require('../../app-constants') const localLogger = { debug: (message) => @@ -191,8 +192,8 @@ esIndexPropertyMapping[config.get('esConfig.ES_INDEX_RESOURCE_BOOKING')] = { startDate: { type: 'date', format: 'yyyy-MM-dd' }, endDate: { type: 'date', format: 'yyyy-MM-dd' }, daysWorked: { type: 'integer' }, - memberRate: { type: 'float' }, - customerRate: { type: 'float' }, + daysPaid: { type: 'integer' }, + paymentTotal: { type: 'float' }, paymentStatus: { type: 'keyword' }, payments: { type: 'nested', @@ -200,6 +201,9 @@ esIndexPropertyMapping[config.get('esConfig.ES_INDEX_RESOURCE_BOOKING')] = { id: { type: 'keyword' }, workPeriodId: { type: 'keyword' }, challengeId: { type: 'keyword' }, + memberRate: { type: 'float' }, + customerRate: { type: 'float' }, + days: { type: 'integer' }, amount: { type: 'float' }, status: { type: 'keyword' }, statusDetails: { @@ -1805,6 +1809,44 @@ function extractWorkPeriods (start, end) { return periods } +/** + * Calculate the payment status of given workPeriod + * @param {object} workPeriod workPeriod object with payments + * @returns {string} new workperiod payment status + * @throws {ConflictError} when no rule matches + */ +function calculateWorkPeriodPaymentStatus (workPeriod) { + function matchRule (rule) { + const actualState = { + daysWorked: workPeriod.daysWorked, + hasDueDays: workPeriod.daysWorked > workPeriod.daysPaid + } + return _.every(_.keys(rule.condition), condition => { + if (_.isArray(rule.condition[condition])) { + return checkIfExists(_.map(workPeriod.payments, 'status'), rule.condition[condition]) + } else { + return rule.condition[condition] === actualState[condition] + } + }) + } + // define rules for the payment status as constant + const PAYMENT_STATUS_RULES = [ + { paymentStatus: PaymentStatus.NO_DAYS, condition: { daysWorked: 0 } }, + { paymentStatus: PaymentStatus.IN_PROGRESS, condition: { hasWorkPeriodPaymentStatus: [WorkPeriodPaymentStatus.SCHEDULED, WorkPeriodPaymentStatus.IN_PROGRESS] } }, + { paymentStatus: PaymentStatus.COMPLETED, condition: { hasWorkPeriodPaymentStatus: [WorkPeriodPaymentStatus.COMPLETED], hasDueDays: false } }, + { paymentStatus: PaymentStatus.PARTIALLY_COMPLETED, condition: { hasWorkPeriodPaymentStatus: [WorkPeriodPaymentStatus.COMPLETED], hasDueDays: true } }, + { paymentStatus: PaymentStatus.FAILED, condition: { hasWorkPeriodPaymentStatus: [PaymentStatus.FAILED], hasDueDays: true } }, + { paymentStatus: PaymentStatus.PENDING, condition: { hasDueDays: true } } + ] + // find the first rule which is matched by the Work Period + for (const rule of PAYMENT_STATUS_RULES) { + if (matchRule(rule)) { + return rule.paymentStatus + } + } + throw new errors.ConflictError('Cannot calculate payment status.') +} + /** * Returns the email address of specified (via handle) user. * @@ -1958,6 +2000,7 @@ module.exports = { createChallengeResource, getChallengeResource, extractWorkPeriods, + calculateWorkPeriodPaymentStatus, getUserByHandle, substituteStringByObject, createProject, diff --git a/src/controllers/WorkPeriodController.js b/src/controllers/WorkPeriodController.js index 8a54defa..0d0853de 100644 --- a/src/controllers/WorkPeriodController.js +++ b/src/controllers/WorkPeriodController.js @@ -1,7 +1,6 @@ /** * Controller for WorkPeriod endpoints */ -const HttpStatus = require('http-status-codes') const service = require('../services/WorkPeriodService') const helper = require('../common/helper') @@ -14,15 +13,6 @@ async function getWorkPeriod (req, res) { res.send(await service.getWorkPeriod(req.authUser, req.params.id, req.query.fromDb)) } -/** - * Create workPeriod - * @param req the request - * @param res the response - */ -async function createWorkPeriod (req, res) { - res.send(await service.createWorkPeriod(req.authUser, req.body)) -} - /** * Partially update workPeriod by id * @param req the request @@ -32,25 +22,6 @@ async function partiallyUpdateWorkPeriod (req, res) { res.send(await service.partiallyUpdateWorkPeriod(req.authUser, req.params.id, req.body)) } -/** - * Fully update workPeriod by id - * @param req the request - * @param res the response - */ -async function fullyUpdateWorkPeriod (req, res) { - res.send(await service.fullyUpdateWorkPeriod(req.authUser, req.params.id, req.body)) -} - -/** - * Delete workPeriod by id - * @param req the request - * @param res the response - */ -async function deleteWorkPeriod (req, res) { - await service.deleteWorkPeriod(req.authUser, req.params.id) - res.status(HttpStatus.NO_CONTENT).end() -} - /** * Search workPeriods * @param req the request @@ -64,9 +35,6 @@ async function searchWorkPeriods (req, res) { module.exports = { getWorkPeriod, - createWorkPeriod, partiallyUpdateWorkPeriod, - fullyUpdateWorkPeriod, - deleteWorkPeriod, searchWorkPeriods } diff --git a/src/controllers/WorkPeriodPaymentController.js b/src/controllers/WorkPeriodPaymentController.js index 4bba2385..3ac5c2fe 100644 --- a/src/controllers/WorkPeriodPaymentController.js +++ b/src/controllers/WorkPeriodPaymentController.js @@ -31,15 +31,6 @@ async function partiallyUpdateWorkPeriodPayment (req, res) { res.send(await service.partiallyUpdateWorkPeriodPayment(req.authUser, req.params.id, req.body)) } -/** - * Fully update workPeriodPayment by id - * @param req the request - * @param res the response - */ -async function fullyUpdateWorkPeriodPayment (req, res) { - res.send(await service.fullyUpdateWorkPeriodPayment(req.authUser, req.params.id, req.body)) -} - /** * Search workPeriodPayments * @param req the request @@ -65,6 +56,5 @@ module.exports = { createWorkPeriodPayment, createQueryWorkPeriodPayments, partiallyUpdateWorkPeriodPayment, - fullyUpdateWorkPeriodPayment, searchWorkPeriodPayments } diff --git a/src/eventHandlers/ResourceBookingEventHandler.js b/src/eventHandlers/ResourceBookingEventHandler.js index ef5825fc..71988593 100644 --- a/src/eventHandlers/ResourceBookingEventHandler.js +++ b/src/eventHandlers/ResourceBookingEventHandler.js @@ -7,6 +7,7 @@ const _ = require('lodash') const models = require('../models') const logger = require('../common/logger') const helper = require('../common/helper') +const { PaymentStatus } = require('../../app-constants') const JobService = require('../services/JobService') const JobCandidateService = require('../services/JobCandidateService') const WorkPeriodService = require('../services/WorkPeriodService') @@ -176,15 +177,47 @@ async function updateWorkPeriods (payload) { const workPeriodsToRemove = _.differenceBy(workPeriods, newWorkPeriods, 'startDate') // find which workperiods should be created const workPeriodsToAdd = _.differenceBy(newWorkPeriods, workPeriods, 'startDate') - // find which workperiods' daysWorked propery should be updated - let workPeriodsToUpdate = _.intersectionBy(newWorkPeriods, workPeriods, 'startDate') - // find which workperiods' daysWorked property is preset and exceeds the possible maximum - workPeriodsToUpdate = _.differenceWith(workPeriodsToUpdate, workPeriods, (a, b) => b.startDate === a.startDate && _.defaultTo(b.daysWorked, a.daysWorked) <= a.daysWorked) - // include id - workPeriodsToUpdate = _.map(workPeriodsToUpdate, wpu => { - wpu.id = _.filter(workPeriods, ['startDate', wpu.startDate])[0].id - return wpu - }) + // find which workperiods' daysWorked property should be evaluated for changes + const intersectedWorkPeriods = _.intersectionBy(newWorkPeriods, workPeriods, 'startDate') + let workPeriodsToUpdate = [] + if (intersectedWorkPeriods.length > 0) { + // We only need check for first and last ones of intersected workPeriods + // The ones at the middle won't be updated and their daysWorked value will stay the same + if (payload.options.oldValue.startDate !== payload.value.startDate) { + const firstWeek = _.minBy(intersectedWorkPeriods, 'startDate') + const originalFirstWeek = _.find(workPeriods, ['startDate', firstWeek.startDate]) + const existentFirstWeek = _.minBy(workPeriods, 'startDate') + // recalculate daysWorked for the first week of existent workPeriods and daysWorked have changed + if (firstWeek.startDate === existentFirstWeek.startDate && firstWeek.daysWorked !== existentFirstWeek.daysWorked) { + workPeriodsToUpdate.push(_.assign(firstWeek, { id: originalFirstWeek.id })) + // if first of intersected workPeriods is not the first one of existent workPeriods + // we only check if it's daysWorked exceeds the possible maximum + } else if (originalFirstWeek.daysWorked > firstWeek.daysWorked) { + workPeriodsToUpdate.push(_.assign(firstWeek, { id: originalFirstWeek.id })) + } + } + if (payload.options.oldValue.endDate !== payload.value.endDate) { + const lastWeek = _.maxBy(intersectedWorkPeriods, 'startDate') + const originalLastWeek = _.find(workPeriods, ['startDate', lastWeek.startDate]) + const existentLastWeek = _.maxBy(workPeriods, 'startDate') + // recalculate daysWorked for the last week of existent workPeriods and daysWorked have changed + if (lastWeek.startDate === existentLastWeek.startDate && lastWeek.daysWorked !== existentLastWeek.daysWorked) { + workPeriodsToUpdate.push(_.assign(lastWeek, { id: originalLastWeek.id })) + // if last of intersected workPeriods is not the last one of existent workPeriods + // we only check if it's daysWorked exceeds the possible maximum + } else if (originalLastWeek.daysWorked > lastWeek.daysWorked) { + workPeriodsToUpdate.push(_.assign(lastWeek, { id: originalLastWeek.id })) + } + } + } + // if intersected WP count is 1, this can result to duplicated WorkPeriods. + // We should choose the one with higher daysWorked because, it's more likely + // the WP we applied "first/last one of existent WPs" logic above. + if (workPeriodsToUpdate.length === 2) { + if (workPeriodsToUpdate[0].startDate === workPeriodsToUpdate[1].startDate) { + workPeriodsToUpdate = [_.maxBy(workPeriodsToUpdate, 'daysWorked')] + } + } if (workPeriodsToRemove.length === 0 && workPeriodsToAdd.length === 0 && workPeriodsToUpdate.length === 0) { logger.debug({ component: 'ResourceBookingEventHandler', @@ -256,14 +289,16 @@ async function deleteWorkPeriods (payload) { * @returns {undefined} */ async function _createWorkPeriods (periods, resourceBookingId) { - await Promise.all(_.map(periods, async period => await WorkPeriodService.createWorkPeriod(helper.getAuditM2Muser(), - { - resourceBookingId: resourceBookingId, - startDate: period.startDate, - endDate: period.endDate, - daysWorked: null, - paymentStatus: 'pending' - }))) + for (const period of periods) { + await WorkPeriodService.createWorkPeriod( + { + resourceBookingId: resourceBookingId, + startDate: period.startDate, + endDate: period.endDate, + daysWorked: period.daysWorked, + paymentStatus: period.daysWorked === 0 ? PaymentStatus.NO_DAYS : PaymentStatus.PENDING + }) + } } /** @@ -272,11 +307,13 @@ async function _createWorkPeriods (periods, resourceBookingId) { * @returns {undefined} */ async function _updateWorkPeriods (periods) { - await Promise.all(_.map(periods, async period => await WorkPeriodService.partiallyUpdateWorkPeriod(helper.getAuditM2Muser(), - period.id, - { - daysWorked: period.daysWorked - }))) + for (const period of periods) { + await WorkPeriodService.partiallyUpdateWorkPeriod(helper.getAuditM2Muser(), + period.id, + { + daysWorked: period.daysWorked + }) + } } /** @@ -285,8 +322,9 @@ async function _updateWorkPeriods (periods) { * @returns {undefined} */ async function _deleteWorkPeriods (workPeriods) { - await Promise.all(_.map(workPeriods, - async workPeriod => await WorkPeriodService.deleteWorkPeriod(helper.getAuditM2Muser(), workPeriod.id))) + for (const period of workPeriods) { + await WorkPeriodService.deleteWorkPeriod(period.id) + } } /** diff --git a/src/eventHandlers/WorkPeriodPaymentEventHandler.js b/src/eventHandlers/WorkPeriodPaymentEventHandler.js new file mode 100644 index 00000000..9c4d7901 --- /dev/null +++ b/src/eventHandlers/WorkPeriodPaymentEventHandler.js @@ -0,0 +1,74 @@ +/* + * Handle events for WorkPeriodPayment. + */ + +const _ = require('lodash') +const config = require('config') +const models = require('../models') +const logger = require('../common/logger') +const helper = require('../common/helper') +const { WorkPeriodPaymentStatus } = require('../../app-constants') +const WorkPeriod = models.WorkPeriod + +/** + * When a WorkPeriodPayment is updated or created, the workPeriod related to + * that WorkPeriodPayment should be updated also. + * @param {object} payload the event payload + * @returns {undefined} + */ +async function updateWorkPeriod (payload) { + const workPeriodPayment = payload.value + // find related workPeriod to evaluate the changes + const workPeriodModel = await WorkPeriod.findById(workPeriodPayment.workPeriodId, { withPayments: true }) + const workPeriod = workPeriodModel.toJSON() + const data = {} + data.daysPaid = 0 + data.paymentTotal = 0 + _.each(workPeriod.payments, payment => { + if (_.includes([WorkPeriodPaymentStatus.SCHEDULED, WorkPeriodPaymentStatus.IN_PROGRESS, WorkPeriodPaymentStatus.COMPLETED], payment.status)) { + data.daysPaid += payment.days + data.paymentTotal += payment.amount + } + }) + data.paymentStatus = helper.calculateWorkPeriodPaymentStatus(_.assign({}, workPeriod, data)) + if (workPeriod.daysPaid === data.daysPaid && workPeriod.paymentTotal === data.paymentTotal && workPeriod.paymentStatus === data.paymentStatus) { + logger.debug({ + component: 'WorkPeriodPaymentEventHandler', + context: 'updateWorkPeriod', + message: `id: ${workPeriod.id} WorkPeriod has no change - ignored` + }) + return + } + const updated = await workPeriodModel.update(data) + await helper.postEvent(config.TAAS_WORK_PERIOD_UPDATE_TOPIC, _.omit(updated.toJSON(), 'payments'), { oldValue: workPeriod, key: `resourceBooking.id:${workPeriod.resourceBookingId}` }) + logger.debug({ + component: 'WorkPeriodPaymentEventHandler', + context: 'updateWorkPeriod', + message: `id: ${workPeriod.id} WorkPeriod updated` + }) +} + +/** + * Process work period payment create event. + * + * @param {Object} payload the event payload + * @returns {undefined} + */ +async function processCreate (payload) { + await updateWorkPeriod(payload) +} + +/** + * Process work period payment update event. + * + * @param {Object} payload the event payload + * @returns {undefined} + */ +async function processUpdate (payload) { + await updateWorkPeriod(payload) +} + +module.exports = { + processCreate, + processUpdate +} diff --git a/src/eventHandlers/index.js b/src/eventHandlers/index.js index c88ef929..3f308b18 100644 --- a/src/eventHandlers/index.js +++ b/src/eventHandlers/index.js @@ -9,6 +9,7 @@ const JobCandidateEventHandler = require('./JobCandidateEventHandler') const ResourceBookingEventHandler = require('./ResourceBookingEventHandler') const InterviewEventHandler = require('./InterviewEventHandler') const RoleEventHandler = require('./RoleEventHandler') +const WorkPeriodPaymentEventHandler = require('./WorkPeriodPaymentEventHandler') const logger = require('../common/logger') const TopicOperationMapping = { @@ -18,6 +19,8 @@ const TopicOperationMapping = { [config.TAAS_RESOURCE_BOOKING_CREATE_TOPIC]: ResourceBookingEventHandler.processCreate, [config.TAAS_RESOURCE_BOOKING_UPDATE_TOPIC]: ResourceBookingEventHandler.processUpdate, [config.TAAS_RESOURCE_BOOKING_DELETE_TOPIC]: ResourceBookingEventHandler.processDelete, + [config.TAAS_WORK_PERIOD_PAYMENT_CREATE_TOPIC]: WorkPeriodPaymentEventHandler.processCreate, + [config.TAAS_WORK_PERIOD_PAYMENT_UPDATE_TOPIC]: WorkPeriodPaymentEventHandler.processUpdate, [config.TAAS_INTERVIEW_REQUEST_TOPIC]: InterviewEventHandler.processRequest, [config.TAAS_ROLE_DELETE_TOPIC]: RoleEventHandler.processDelete } diff --git a/src/models/WorkPeriod.js b/src/models/WorkPeriod.js index 75ff0597..720e4870 100644 --- a/src/models/WorkPeriod.js +++ b/src/models/WorkPeriod.js @@ -78,15 +78,18 @@ module.exports = (sequelize) => { }, daysWorked: { field: 'days_worked', - type: Sequelize.INTEGER + type: Sequelize.INTEGER, + allowNull: false }, - memberRate: { - field: 'member_rate', - type: Sequelize.FLOAT + daysPaid: { + field: 'days_paid', + type: Sequelize.INTEGER, + allowNull: false }, - customerRate: { - field: 'customer_rate', - type: Sequelize.FLOAT + paymentTotal: { + field: 'payment_total', + type: Sequelize.FLOAT, + allowNull: false }, paymentStatus: { field: 'payment_status', diff --git a/src/models/WorkPeriodPayment.js b/src/models/WorkPeriodPayment.js index 8d23487a..bac461d0 100644 --- a/src/models/WorkPeriodPayment.js +++ b/src/models/WorkPeriodPayment.js @@ -48,8 +48,22 @@ module.exports = (sequelize) => { field: 'challenge_id', type: Sequelize.UUID }, + memberRate: { + field: 'member_rate', + type: Sequelize.FLOAT, + allowNull: false + }, + customerRate: { + field: 'customer_rate', + type: Sequelize.FLOAT + }, + days: { + type: Sequelize.INTEGER, + allowNull: false + }, amount: { - type: Sequelize.DOUBLE + type: Sequelize.DOUBLE, + allowNull: false }, status: { type: Sequelize.ENUM(_.values(WorkPeriodPaymentStatus)), @@ -61,7 +75,8 @@ module.exports = (sequelize) => { }, billingAccountId: { field: 'billing_account_id', - type: Sequelize.BIGINT + type: Sequelize.BIGINT, + allowNull: false }, createdBy: { field: 'created_by', diff --git a/src/routes/WorkPeriodPaymentRoutes.js b/src/routes/WorkPeriodPaymentRoutes.js index 3b6f6ba9..7ddd2bc5 100644 --- a/src/routes/WorkPeriodPaymentRoutes.js +++ b/src/routes/WorkPeriodPaymentRoutes.js @@ -33,12 +33,6 @@ module.exports = { auth: 'jwt', scopes: [constants.Scopes.READ_WORK_PERIOD_PAYMENT, constants.Scopes.ALL_WORK_PERIOD_PAYMENT] }, - put: { - controller: 'WorkPeriodPaymentController', - method: 'fullyUpdateWorkPeriodPayment', - auth: 'jwt', - scopes: [constants.Scopes.UPDATE_WORK_PERIOD_PAYMENT, constants.Scopes.ALL_WORK_PERIOD_PAYMENT] - }, patch: { controller: 'WorkPeriodPaymentController', method: 'partiallyUpdateWorkPeriodPayment', diff --git a/src/routes/WorkPeriodRoutes.js b/src/routes/WorkPeriodRoutes.js index 7f84b5b0..659e4d58 100644 --- a/src/routes/WorkPeriodRoutes.js +++ b/src/routes/WorkPeriodRoutes.js @@ -5,12 +5,6 @@ const constants = require('../../app-constants') module.exports = { '/work-periods': { - post: { - controller: 'WorkPeriodController', - method: 'createWorkPeriod', - auth: 'jwt', - scopes: [constants.Scopes.CREATE_WORK_PERIOD, constants.Scopes.ALL_WORK_PERIOD] - }, get: { controller: 'WorkPeriodController', method: 'searchWorkPeriods', @@ -25,23 +19,11 @@ module.exports = { auth: 'jwt', scopes: [constants.Scopes.READ_WORK_PERIOD, constants.Scopes.ALL_WORK_PERIOD] }, - put: { - controller: 'WorkPeriodController', - method: 'fullyUpdateWorkPeriod', - auth: 'jwt', - scopes: [constants.Scopes.UPDATE_WORK_PERIOD, constants.Scopes.ALL_WORK_PERIOD] - }, patch: { controller: 'WorkPeriodController', method: 'partiallyUpdateWorkPeriod', auth: 'jwt', scopes: [constants.Scopes.UPDATE_WORK_PERIOD, constants.Scopes.ALL_WORK_PERIOD] - }, - delete: { - controller: 'WorkPeriodController', - method: 'deleteWorkPeriod', - auth: 'jwt', - scopes: [constants.Scopes.DELETE_WORK_PERIOD, constants.Scopes.ALL_WORK_PERIOD] } } } diff --git a/src/services/ResourceBookingService.js b/src/services/ResourceBookingService.js index a23c336e..e3c70e5b 100644 --- a/src/services/ResourceBookingService.js +++ b/src/services/ResourceBookingService.js @@ -18,6 +18,7 @@ const moment = require('moment') const ResourceBooking = models.ResourceBooking const WorkPeriod = models.WorkPeriod +const WorkPeriodPayment = models.WorkPeriodPayment const esClient = helper.getESClient() const cachedModelFields = _cacheModelFields() @@ -105,8 +106,8 @@ function _checkCriteriaAndGetFields (currentUser, criteria) { // "currentUser.isMachine" to be true is not enough to return "workPeriods.memberRate" // but returning "workPeriod" will be evaluated later if (!canSeeMemberRate) { - result.excludeRB.push('memberRate') - result.excludeWP.push('workPeriods.memberRate') + result.excludeRB.push('paymentTotal') + result.excludeWP.push('workPeriods.paymentTotal') } // if "fields" is not included in cretia, then only ResourceBooking model will be returned // No further evaluation is required as long as the criteria does not include a WorkPeriod filter or a WorkPeriod sorting condition @@ -136,8 +137,8 @@ function _checkCriteriaAndGetFields (currentUser, criteria) { throw new errors.BadRequestError('Can not filter or sort by some field which is not included in fields') } // Check if the current user has no right to see the memberRate and memberRate is included in fields parameter - if (!canSeeMemberRate && _.some(query, q => _.includes(['memberRate', 'workPeriods.memberRate'], q))) { - throw new errors.ForbiddenError('You don\'t have access to view memberRate') + if (!canSeeMemberRate && _.some(query, q => _.includes(['memberRate', 'workPeriods.paymentTotal'], q))) { + throw new errors.ForbiddenError('You don\'t have access to view memberRate and paymentTotal') } // Check if the current user has no right to see the workPeriods and workPeriods is included in fields parameter if (currentUser.isMachine && result.withWorkPeriods && !_checkUserScopesForGetWorkPeriods(currentUser)) { @@ -168,27 +169,41 @@ async function _checkUserPermissionForGetResourceBooking (currentUser, projectId */ async function _ensurePaidWorkPeriodsNotDeleted (resourceBookingId, oldValue, newValue) { function _checkForPaidWorkPeriods (workPeriods) { - const paidWorkPeriods = _.filter(workPeriods - , workPeriod => _.includes(['completed', 'partially-completed'], workPeriod.paymentStatus)) + const paidWorkPeriods = _.filter(workPeriods, workPeriod => { + // filter by WP and WPP status + return (workPeriod.daysPaid > 0 || + _.some(workPeriod.payments, payment => [constants.WorkPeriodPaymentStatus.COMPLETED, constants.WorkPeriodPaymentStatus.IN_PROGRESS, constants.WorkPeriodPaymentStatus.SCHEDULED].indexOf(payment.status) !== -1)) + }) if (paidWorkPeriods.length > 0) { throw new errors.BadRequestError(`WorkPeriods with id of ${_.map(paidWorkPeriods, workPeriod => workPeriod.id)} - has completed or partially-completed payment status.`) + has ${constants.PaymentStatus.COMPLETED}, ${constants.PaymentStatus.PARTIALLY_COMPLETED} or ${constants.PaymentStatus.IN_PROGRESS} payment status.`) } } // find related workPeriods to evaluate the changes - const workPeriods = await WorkPeriod.findAll({ + // We don't need to include WPP because WPP's status changes should + // update WP's status. In case of any bug or slow processing, it's better to check both WP + // and WPP status for now. + let workPeriods = await WorkPeriod.findAll({ where: { resourceBookingId: resourceBookingId }, - raw: true + attributes: ['id', 'paymentStatus', 'startDate', 'endDate', 'daysPaid'], + include: [{ + model: WorkPeriodPayment, + as: 'payments', + required: false, + attributes: ['status'] + }] }) + workPeriods = _.map(workPeriods, wp => wp.toJSON()) // oldValue and newValue are not provided at deleteResourceBooking process if (_.isUndefined(oldValue) || _.isUndefined(newValue)) { _checkForPaidWorkPeriods(workPeriods) return } // We should not be able to change status of ResourceBooking to 'cancelled' - // if there is at least one associated Work Period with paymentStatus 'partially-completed' or 'completed'. + // if there is at least one associated Work Period with paymentStatus 'partially-completed', 'completed' or 'in-progress', + // or any of it's WorkPeriodsPayment has status 'completed' or 'in-progress'. if (oldValue.status !== 'cancelled' && newValue.status === 'cancelled') { _checkForPaidWorkPeriods(workPeriods) // we have already checked all existing workPeriods @@ -200,8 +215,19 @@ async function _ensurePaidWorkPeriodsNotDeleted (resourceBookingId, oldValue, ne _.isUndefined(newValue.endDate) ? oldValue.endDate : newValue.endDate) // find which workPeriods should be removed const workPeriodsToRemove = _.differenceBy(workPeriods, newWorkPeriods, 'startDate') - // we can't delete workperiods with paymentStatus 'partially-completed' or 'completed'. + // we can't delete workperiods with paymentStatus 'partially-completed', 'completed' or 'in-progress', + // or any of it's WorkPeriodsPayment has status 'completed' or 'in-progress'. _checkForPaidWorkPeriods(workPeriodsToRemove) + // check if this update makes maximum possible daysWorked value less than daysPaid + _.each(newWorkPeriods, newWP => { + const wp = _.find(workPeriods, ['startDate', newWP.startDate]) + if (!wp) { + return + } + if (wp.daysPaid > newWP.daysWorked) { + throw new errors.ConflictError(`Cannot make maximum daysWorked (${newWP.daysWorked}) to the value less than daysPaid (${wp.daysPaid}) for WorkPeriod: ${wp.id}`) + } + }) } /** @@ -320,6 +346,10 @@ async function updateResourceBooking (currentUser, id, data) { const resourceBooking = await ResourceBooking.findById(id) const oldValue = resourceBooking.toJSON() + // We can't remove dates of Resource Booking once they are both set + if (!_.isNil(oldValue.startDate) && !_.isNil(oldValue.endDate) && (_.isNull(data.startDate) || _.isNull(data.endDate))) { + throw new errors.BadRequestError('You cannot remove start or end date if both are already set for Resource Booking.') + } // before updating the record, we need to check if any paid work periods tried to be deleted await _ensurePaidWorkPeriodsNotDeleted(id, oldValue, data) @@ -670,7 +700,7 @@ searchResourceBookings.schema = Joi.object().keys({ page: Joi.page(), perPage: Joi.perPage(), sortBy: Joi.string().valid('id', 'rateType', 'startDate', 'endDate', 'customerRate', 'memberRate', 'status', - 'workPeriods.userHandle', 'workPeriods.daysWorked', 'workPeriods.customerRate', 'workPeriods.memberRate', 'workPeriods.paymentStatus'), + 'workPeriods.userHandle', 'workPeriods.daysWorked', 'workPeriods.daysPaid', 'workPeriods.paymentTotal', 'workPeriods.paymentStatus'), sortOrder: Joi.string().valid('desc', 'asc'), status: Joi.resourceBookingStatus(), startDate: Joi.date().format('YYYY-MM-DD'), diff --git a/src/services/WorkPeriodPaymentService.js b/src/services/WorkPeriodPaymentService.js index 617a04d2..ce1e016d 100644 --- a/src/services/WorkPeriodPaymentService.js +++ b/src/services/WorkPeriodPaymentService.js @@ -12,10 +12,11 @@ const helper = require('../common/helper') const logger = require('../common/logger') const errors = require('../common/errors') const models = require('../models') -const { WorkPeriodPaymentStatus } = require('../../app-constants') +const { PaymentStatus, WorkPeriodPaymentStatus } = require('../../app-constants') const { searchResourceBookings } = require('./ResourceBookingService') const WorkPeriodPayment = models.WorkPeriodPayment +const WorkPeriod = models.WorkPeriod const esClient = helper.getESClient() /** @@ -25,7 +26,7 @@ const esClient = helper.getESClient() * @param {Object} currentUser the user who perform this operation. * @returns {undefined} */ -async function _checkUserPermissionForCRUWorkPeriodPayment (currentUser) { +function _checkUserPermissionForCRUWorkPeriodPayment (currentUser) { if (!currentUser.hasManagePermission && !currentUser.isMachine) { throw new errors.ForbiddenError('You are not allowed to perform this action!') } @@ -43,7 +44,7 @@ async function _createSingleWorkPeriodPayment (workPeriodPayment, createdBy) { // get billingAccountId from corresponding resource booking const correspondingResourceBooking = await helper.ensureResourceBookingById(correspondingWorkPeriod.resourceBookingId) - return _createSingleWorkPeriodPaymentWithWorkPeriodAndResourceBooking(workPeriodPayment, createdBy, correspondingWorkPeriod, correspondingResourceBooking) + return _createSingleWorkPeriodPaymentWithWorkPeriodAndResourceBooking(workPeriodPayment, createdBy, correspondingWorkPeriod.toJSON(), correspondingResourceBooking.toJSON()) } /** @@ -55,47 +56,32 @@ async function _createSingleWorkPeriodPayment (workPeriodPayment, createdBy) { * @returns {Object} the created workPeriodPayment */ async function _createSingleWorkPeriodPaymentWithWorkPeriodAndResourceBooking (workPeriodPayment, createdBy, correspondingWorkPeriod, correspondingResourceBooking) { - if (!correspondingResourceBooking.billingAccountId) { - throw new errors.ConflictError(`id: ${correspondingWorkPeriod.resourceBookingId} "ResourceBooking" Billing account is not assigned to the resource booking`) + if (_.isNil(correspondingResourceBooking.billingAccountId)) { + throw new errors.ConflictError(`id: ${correspondingResourceBooking.id} "ResourceBooking" Billing account is not assigned to the resource booking`) } workPeriodPayment.billingAccountId = correspondingResourceBooking.billingAccountId + if (_.isNil(correspondingResourceBooking.memberRate)) { + throw new errors.ConflictError(`Can't find a member rate in ResourceBooking: ${correspondingResourceBooking.id} to calculate the amount`) + } + if (correspondingResourceBooking.memberRate <= 0) { + throw new errors.ConflictError(`Can't process payment with member rate: ${correspondingResourceBooking.memberRate}. It must be higher than 0`) + } + workPeriodPayment.memberRate = correspondingResourceBooking.memberRate + const maxPossibleDays = correspondingWorkPeriod.daysWorked - correspondingWorkPeriod.daysPaid + if (workPeriodPayment.days > maxPossibleDays) { + throw new errors.BadRequestError(`Days cannot be more than not paid days which is ${maxPossibleDays}`) + } + if (maxPossibleDays <= 0) { + throw new errors.ConflictError(`There are no days to pay for WorkPeriod: ${correspondingWorkPeriod.id}`) + } + workPeriodPayment.days = _.defaultTo(workPeriodPayment.days, maxPossibleDays) + workPeriodPayment.amount = _.round(workPeriodPayment.memberRate * workPeriodPayment.days / 5, 2) + workPeriodPayment.customerRate = _.defaultTo(correspondingResourceBooking.customerRate, null) workPeriodPayment.id = uuid.v4() workPeriodPayment.status = WorkPeriodPaymentStatus.SCHEDULED workPeriodPayment.createdBy = createdBy - // set workPeriodPayment amount - if (_.isNil(workPeriodPayment.amount)) { - const memberRate = correspondingWorkPeriod.memberRate || correspondingResourceBooking.memberRate - if (_.isNil(memberRate)) { - throw new errors.BadRequestError(`Can't find a member rate in work period: ${workPeriodPayment.workPeriodId} to calculate the amount`) - } - let daysWorked = 0 - if (correspondingWorkPeriod.daysWorked) { - daysWorked = correspondingWorkPeriod.daysWorked - } else { - const matchDW = _.find(helper.extractWorkPeriods(correspondingResourceBooking.startDate, correspondingResourceBooking.endDate), { startDate: correspondingWorkPeriod.startDate }) - if (matchDW) { - daysWorked = matchDW.daysWorked - } - } - if (daysWorked === 0) { - workPeriodPayment.amount = 0 - } else { - workPeriodPayment.amount = _.round(memberRate * daysWorked / 5, 2) - } - } - - let created = null - try { - created = await WorkPeriodPayment.create(workPeriodPayment) - } catch (err) { - if (!_.isUndefined(err.original)) { - throw new errors.BadRequestError(err.original.detail) - } else { - throw err - } - } - + const created = await WorkPeriodPayment.create(workPeriodPayment) await helper.postEvent(config.TAAS_WORK_PERIOD_PAYMENT_CREATE_TOPIC, created.toJSON(), { key: `workPeriodPayment.billingAccountId:${workPeriodPayment.billingAccountId}` }) return created.dataValues } @@ -109,7 +95,7 @@ async function _createSingleWorkPeriodPaymentWithWorkPeriodAndResourceBooking (w */ async function getWorkPeriodPayment (currentUser, id, fromDb = false) { // check user permission - await _checkUserPermissionForCRUWorkPeriodPayment(currentUser) + _checkUserPermissionForCRUWorkPeriodPayment(currentUser) if (!fromDb) { try { const resourceBooking = await esClient.search({ @@ -173,7 +159,7 @@ getWorkPeriodPayment.schema = Joi.object().keys({ */ async function createWorkPeriodPayment (currentUser, workPeriodPayment) { // check permission - await _checkUserPermissionForCRUWorkPeriodPayment(currentUser) + _checkUserPermissionForCRUWorkPeriodPayment(currentUser) const createdBy = await helper.getUserId(currentUser.userId) if (_.isArray(workPeriodPayment)) { @@ -194,7 +180,7 @@ async function createWorkPeriodPayment (currentUser, workPeriodPayment) { const singleCreateWorkPeriodPaymentSchema = Joi.object().keys({ workPeriodId: Joi.string().uuid().required(), - amount: Joi.number().greater(0).allow(null) + days: Joi.number().integer().min(1).max(5) }) createWorkPeriodPayment.schema = Joi.object().keys({ currentUser: Joi.object().required(), @@ -213,27 +199,29 @@ createWorkPeriodPayment.schema = Joi.object().keys({ */ async function updateWorkPeriodPayment (currentUser, id, data) { // check permission - await _checkUserPermissionForCRUWorkPeriodPayment(currentUser) + _checkUserPermissionForCRUWorkPeriodPayment(currentUser) - if (data.workPeriodId) { - // ensure work period exists - await helper.ensureWorkPeriodById(data.workPeriodId) - } const workPeriodPayment = await WorkPeriodPayment.findById(id) const oldValue = workPeriodPayment.toJSON() - - data.updatedBy = await helper.getUserId(currentUser.userId) - let updated = null - try { - updated = await workPeriodPayment.update(data) - } catch (err) { - if (!_.isUndefined(err.original)) { - throw new errors.BadRequestError(err.original.detail) - } else { - throw err + if (oldValue.status === data.status) { + return oldValue + } + if (data.status === 'cancelled' && oldValue.status === 'in-progress') { + throw new errors.BadRequestError('You cannot cancel a WorkPeriodPayment which is in-progress') + } + if (data.status === 'scheduled') { + if (oldValue.status !== 'failed') { + throw new errors.BadRequestError(`You cannot schedule a WorkPeriodPayment which is ${oldValue.status}`) + } + const workPeriod = WorkPeriod.findById(workPeriodPayment.workPeriodId) + // we con't check if paymentStatus is 'completed' + // because paymentStatus can be in-progress when daysWorked = daysPaid + if (workPeriod.daysWorked === workPeriod.daysPaid) { + throw new errors.BadRequestError('There is no available daysWorked to schedule a payment') } } - + data.updatedBy = await helper.getUserId(currentUser.userId) + const updated = await workPeriodPayment.update(data) await helper.postEvent(config.TAAS_WORK_PERIOD_PAYMENT_UPDATE_TOPIC, updated.toJSON(), { oldValue: oldValue, key: `workPeriodPayment.billingAccountId:${updated.billingAccountId}` }) return updated.dataValues } @@ -253,31 +241,8 @@ partiallyUpdateWorkPeriodPayment.schema = Joi.object().keys({ currentUser: Joi.object().required(), id: Joi.string().uuid().required(), data: Joi.object().keys({ - workPeriodId: Joi.string().uuid(), - amount: Joi.number().greater(0).allow(null), - status: Joi.workPeriodPaymentStatus() - }).required() -}).required() - -/** - * Fully update workPeriodPayment by id - * @param {Object} currentUser the user who perform this operation - * @param {String} id the workPeriodPayment id - * @param {Object} data the data to be updated - * @returns {Object} the updated workPeriodPayment - */ -async function fullyUpdateWorkPeriodPayment (currentUser, id, data) { - return updateWorkPeriodPayment(currentUser, id, data) -} - -fullyUpdateWorkPeriodPayment.schema = Joi.object().keys({ - currentUser: Joi.object().required(), - id: Joi.string().uuid().required(), - data: Joi.object().keys({ - workPeriodId: Joi.string().uuid().required(), - amount: Joi.number().greater(0).allow(null), - status: Joi.workPeriodPaymentStatus() - }).required() + status: Joi.workPeriodPaymentUpdateStatus() + }).min(1).required() }).required() /** @@ -289,7 +254,7 @@ fullyUpdateWorkPeriodPayment.schema = Joi.object().keys({ */ async function searchWorkPeriodPayments (currentUser, criteria, options = { returnAll: false }) { // check user permission - await _checkUserPermissionForCRUWorkPeriodPayment(currentUser) + _checkUserPermissionForCRUWorkPeriodPayment(currentUser) if ((typeof criteria.workPeriodIds) === 'string') { criteria.workPeriodIds = criteria.workPeriodIds.trim().split(',').map(workPeriodIdRaw => { @@ -416,12 +381,14 @@ searchWorkPeriodPayments.schema = Joi.object().keys({ */ async function createQueryWorkPeriodPayments (currentUser, criteria) { // check permission - await _checkUserPermissionForCRUWorkPeriodPayment(currentUser) + _checkUserPermissionForCRUWorkPeriodPayment(currentUser) const createdBy = await helper.getUserId(currentUser.userId) const query = criteria.query - + if ((typeof query['workPeriods.paymentStatus']) === 'string') { + query['workPeriods.paymentStatus'] = query['workPeriods.paymentStatus'].trim().split(',').map(ps => Joi.attempt({ paymentStatus: ps.trim() }, Joi.object().keys({ paymentStatus: Joi.string().valid(PaymentStatus.PENDING, PaymentStatus.PARTIALLY_COMPLETED, PaymentStatus.FAILED) })).paymentStatus) + } const fields = _.join(_.uniq(_.concat( - ['id', 'billingAccountId', 'memberRate', 'startDate', 'endDate', 'workPeriods.id', 'workPeriods.resourceBookingId', 'workPeriods.memberRate', 'workPeriods.daysWorked', 'workPeriods.startDate'], + ['id', 'billingAccountId', 'memberRate', 'customerRate', 'workPeriods.id', 'workPeriods.resourceBookingId', 'workPeriods.daysWorked', 'workPeriods.daysPaid'], _.map(_.keys(query), k => k === 'projectIds' ? 'projectId' : k)) ), ',') const searchResult = await searchResourceBookings(currentUser, _.extend({ fields, page: 1 }, query), { returnAll: true }) @@ -459,7 +426,7 @@ createQueryWorkPeriodPayments.schema = Joi.object().keys({ ), 'workPeriods.paymentStatus': Joi.alternatives( Joi.string(), - Joi.array().items(Joi.paymentStatus()) + Joi.array().items(Joi.string().valid(PaymentStatus.PENDING, PaymentStatus.PARTIALLY_COMPLETED, PaymentStatus.FAILED)) ), 'workPeriods.startDate': Joi.date().format('YYYY-MM-DD'), 'workPeriods.endDate': Joi.date().format('YYYY-MM-DD'), @@ -473,6 +440,5 @@ module.exports = { createWorkPeriodPayment, createQueryWorkPeriodPayments, partiallyUpdateWorkPeriodPayment, - fullyUpdateWorkPeriodPayment, searchWorkPeriodPayments } diff --git a/src/services/WorkPeriodService.js b/src/services/WorkPeriodService.js index 648d2477..af4855da 100644 --- a/src/services/WorkPeriodService.js +++ b/src/services/WorkPeriodService.js @@ -97,8 +97,8 @@ function _getWorkPeriodFilteringFields (currentUser) { withPayments: false } if (!currentUser.hasManagePermission && !currentUser.isMachine) { - queryOpt.excludeES.push('workPeriods.memberRate') - queryOpt.excludeDB.push('memberRate') + queryOpt.excludeES.push('workPeriods.paymentTotal') + queryOpt.excludeDB.push('paymentTotal') } if (currentUser.hasManagePermission || _checkUserScopesForGetPayments(currentUser)) { queryOpt.withPayments = true @@ -205,13 +205,10 @@ getWorkPeriod.schema = Joi.object().keys({ /** * Create workPeriod - * @param {Object} currentUser the user who perform this operation * @param {Object} workPeriod the workPeriod to be created * @returns {Object} the created workPeriod */ -async function createWorkPeriod (currentUser, workPeriod) { - // check permission - await _checkUserPermissionForWriteWorkPeriod(currentUser) +async function createWorkPeriod (workPeriod) { // If one of the dates are missing then auto-calculate it _autoCalculateDates(workPeriod) @@ -222,7 +219,7 @@ async function createWorkPeriod (currentUser, workPeriod) { workPeriod.userHandle = user.handle workPeriod.id = uuid.v4() - workPeriod.createdBy = await helper.getUserId(currentUser.userId) + workPeriod.createdBy = config.m2m.M2M_AUDIT_USER_ID let created = null try { @@ -240,14 +237,13 @@ async function createWorkPeriod (currentUser, workPeriod) { } createWorkPeriod.schema = Joi.object().keys({ - currentUser: Joi.object().required(), workPeriod: Joi.object().keys({ resourceBookingId: Joi.string().uuid().required(), startDate: Joi.workPeriodStartDate(), endDate: Joi.workPeriodEndDate(), - daysWorked: Joi.number().integer().min(0).allow(null), - memberRate: Joi.number().allow(null), - customerRate: Joi.number().allow(null), + daysWorked: Joi.number().integer().min(0).max(5).required(), + daysPaid: Joi.number().default(0).forbidden(), + paymentTotal: Joi.number().default(0).forbidden(), paymentStatus: Joi.paymentStatus().required() }).required() }).required() @@ -263,33 +259,30 @@ async function updateWorkPeriod (currentUser, id, data) { // check permission await _checkUserPermissionForWriteWorkPeriod(currentUser) - const workPeriod = await WorkPeriod.findById(id) + const workPeriod = await WorkPeriod.findById(id, { withPayments: true }) const oldValue = workPeriod.toJSON() - - // if resourceBookingId is provided then update projectId and userHandle - if (data.resourceBookingId) { - const resourceBooking = await helper.ensureResourceBookingById(data.resourceBookingId) // ensure resource booking exists - data.projectId = resourceBooking.projectId - - const user = await helper.ensureUserById(resourceBooking.userId) // ensure user exists - data.userHandle = user.handle + if (oldValue.daysWorked === data.daysWorked) { + return oldValue } - // If one of the dates are missing then auto-calculate it - _autoCalculateDates(data) - - data.updatedBy = await helper.getUserId(currentUser.userId) - let updated = null - try { - updated = await workPeriod.update(data) - } catch (err) { - if (!_.isUndefined(err.original)) { - throw new errors.BadRequestError(err.original.detail) - } else { - throw err - } + if (data.daysWorked < oldValue.daysPaid) { + throw new errors.BadRequestError(`Cannot update daysWorked (${data.daysWorked}) to the value less than daysPaid (${oldValue.daysPaid})`) } - - await helper.postEvent(config.TAAS_WORK_PERIOD_UPDATE_TOPIC, updated.toJSON(), { oldValue: oldValue, key: `resourceBooking.id:${data.resourceBookingId}` }) + const resourceBooking = await helper.ensureResourceBookingById(oldValue.resourceBookingId) + const weeks = helper.extractWorkPeriods(resourceBooking.startDate, resourceBooking.endDate) + if (_.isEmpty(weeks)) { + throw new errors.ConflictError('Resource booking has missing dates') + } + const thisWeek = _.find(weeks, ['startDate', oldValue.startDate]) + if (_.isNil(thisWeek)) { + throw new errors.ConflictError('Work Period dates are not compatible with Resource Booking dates') + } + if (thisWeek.daysWorked < data.daysWorked) { + throw new errors.BadRequestError(`Maximum allowed daysWorked is (${thisWeek.daysWorked})`) + } + data.paymentStatus = helper.calculateWorkPeriodPaymentStatus(_.assign({}, oldValue, data)) + data.updatedBy = await helper.getUserId(currentUser.userId) + const updated = await workPeriod.update(data) + await helper.postEvent(config.TAAS_WORK_PERIOD_UPDATE_TOPIC, updated.toJSON(), { oldValue: oldValue, key: `resourceBooking.id:${updated.resourceBookingId}` }) return updated.dataValues } @@ -308,68 +301,32 @@ partiallyUpdateWorkPeriod.schema = Joi.object().keys({ currentUser: Joi.object().required(), id: Joi.string().uuid().required(), data: Joi.object().keys({ - resourceBookingId: Joi.string().uuid(), - startDate: Joi.workPeriodStartDate(), - endDate: Joi.workPeriodEndDateOptional(), - daysWorked: Joi.number().integer().min(0).allow(null), - memberRate: Joi.number().allow(null), - customerRate: Joi.number().allow(null), - paymentStatus: Joi.paymentStatus() - }).required() -}).required() - -/** - * Fully update workPeriod by id - * @param {Object} currentUser the user who perform this operation - * @param {String} id the workPeriod id - * @param {Object} data the data to be updated - * @returns {Object} the updated workPeriod - */ -async function fullyUpdateWorkPeriod (currentUser, id, data) { - return updateWorkPeriod(currentUser, id, data) -} - -fullyUpdateWorkPeriod.schema = Joi.object().keys({ - currentUser: Joi.object().required(), - id: Joi.string().uuid().required(), - data: Joi.object().keys({ - resourceBookingId: Joi.string().uuid().required(), - startDate: Joi.workPeriodStartDate(), - endDate: Joi.workPeriodEndDate(), - daysWorked: Joi.number().integer().min(0).allow(null).default(null), - memberRate: Joi.number().allow(null).default(null), - customerRate: Joi.number().allow(null).default(null), - paymentStatus: Joi.paymentStatus().required() - }).required() + daysWorked: Joi.number().integer().min(0).max(5) + }).required().min(1) }).required() /** * Delete workPeriod by id - * @params {Object} currentUser the user who perform this operation - * @params {String} id the workPeriod id + * @param {String} id the workPeriod id */ -async function deleteWorkPeriod (currentUser, id) { - // check permission - if (!currentUser.hasManagePermission && !currentUser.isMachine) { - throw new errors.ForbiddenError('You are not allowed to perform this action!') - } - +async function deleteWorkPeriod (id) { const workPeriod = await WorkPeriod.findById(id, { withPayments: true }) - if (_.includes(['completed', 'partially-completed'], workPeriod.paymentStatus)) { - throw new errors.BadRequestError("Can't delete WorkPeriod with paymentStatus completed or partially-completed") + if (_.includes([constants.PaymentStatus.COMPLETED, constants.PaymentStatus.PARTIALLY_COMPLETED, constants.PaymentStatus.IN_PROGRESS], workPeriod.paymentStatus)) { + throw new errors.BadRequestError(`Can't delete WorkPeriod with paymentStatus ${constants.PaymentStatus.COMPLETED}, ${constants.PaymentStatus.PARTIALLY_COMPLETED}, or ${constants.PaymentStatus.IN_PROGRESS}`) + } + if (_.some(workPeriod.payments, payment => [constants.WorkPeriodPaymentStatus.COMPLETED, constants.WorkPeriodPaymentStatus.IN_PROGRESS, constants.WorkPeriodPaymentStatus.SCHEDULED].indexOf(payment.status) !== -1)) { + throw new errors.BadRequestError(`Can't delete WorkPeriod if any associated WorkPeriodsPayment has status ${constants.WorkPeriodPaymentStatus.COMPLETED}, ${constants.WorkPeriodPaymentStatus.SCHEDULED} or ${constants.WorkPeriodPaymentStatus.IN_PROGRESS}`) } await models.WorkPeriodPayment.destroy({ where: { workPeriodId: id } }) - await Promise.all(workPeriod.payments.map(({ id, billingAccountId }) => helper.postEvent(config.TAAS_WORK_PERIOD_PAYMENT_DELETE_TOPIC, { id }, { key: `workPeriodPayment.billingAccountId:${billingAccountId}` }))) await workPeriod.destroy() await helper.postEvent(config.TAAS_WORK_PERIOD_DELETE_TOPIC, { id }, { key: `resourceBooking.id:${workPeriod.resourceBookingId}` }) } deleteWorkPeriod.schema = Joi.object().keys({ - currentUser: Joi.object().required(), id: Joi.string().uuid().required() }).required() @@ -558,7 +515,6 @@ module.exports = { getWorkPeriod, createWorkPeriod, partiallyUpdateWorkPeriod, - fullyUpdateWorkPeriod, deleteWorkPeriod, searchWorkPeriods } diff --git a/test/unit/ResourceBookingService.test.js b/test/unit/ResourceBookingService.test.js index 7b52bde2..97335d86 100644 --- a/test/unit/ResourceBookingService.test.js +++ b/test/unit/ResourceBookingService.test.js @@ -9,6 +9,7 @@ const commonData = require('./common/CommonData') const testData = require('./common/ResourceBookingData') const helper = require('../../src/common/helper') const errors = require('../../src/common/errors') +const _ = require('lodash') const busApiClient = helper.getBusApiClient() const ResourceBooking = models.ResourceBooking const WorkPeriod = models.WorkPeriod @@ -49,11 +50,11 @@ describe('resourceBooking service test', () => { expect(stubCreateWorkPeriodService.callCount).to.eq(6) expect(stubUpdateWorkPeriodService.callCount).to.eq(0) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) - expect(stubCreateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) - expect(stubCreateWorkPeriodService.getCall(1).args[1]).to.deep.eq(data.workPeriod.request[1]) - expect(stubCreateWorkPeriodService.getCall(2).args[1]).to.deep.eq(data.workPeriod.request[2]) - expect(stubCreateWorkPeriodService.getCall(3).args[1]).to.deep.eq(data.workPeriod.request[3]) - expect(stubCreateWorkPeriodService.getCall(4).args[1]).to.deep.eq(data.workPeriod.request[4]) + expect(stubCreateWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0]) + expect(stubCreateWorkPeriodService.getCall(1).args[0]).to.deep.eq(data.workPeriod.request[1]) + expect(stubCreateWorkPeriodService.getCall(2).args[0]).to.deep.eq(data.workPeriod.request[2]) + expect(stubCreateWorkPeriodService.getCall(3).args[0]).to.deep.eq(data.workPeriod.request[3]) + expect(stubCreateWorkPeriodService.getCall(4).args[0]).to.deep.eq(data.workPeriod.request[4]) }) it('T02:Create resource booking start Sunday end Saturday', async () => { const data = testData.T02 @@ -69,7 +70,7 @@ describe('resourceBooking service test', () => { expect(stubCreateWorkPeriodService.callCount).to.eq(1) expect(stubUpdateWorkPeriodService.callCount).to.eq(0) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) - expect(stubCreateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) + expect(stubCreateWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0]) }) it('T03:Create resource booking without startDate', async () => { const data = testData.T03 @@ -131,12 +132,15 @@ describe('resourceBooking service test', () => { }) }) describe('Update resource booking successfully', () => { - it('T06:Update resource booking dates and do not cause work period change', async () => { + it('T06:Update resource booking dates and do not cause work period create/delete', async () => { const data = testData.T06 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -145,15 +149,20 @@ describe('resourceBooking service test', () => { expect(stubPostEvent.calledOnce).to.be.true expect(stubWorkPeriodFindAll.called).to.be.true expect(stubCreateWorkPeriodService.callCount).to.eq(0) - expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(1) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[0].data) }) it('T07:Update resource booking dates and cause work period creation - 1', async () => { const data = testData.T07 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -162,16 +171,21 @@ describe('resourceBooking service test', () => { expect(stubPostEvent.calledOnce).to.be.true expect(stubWorkPeriodFindAll.called).to.be.true expect(stubCreateWorkPeriodService.callCount).to.eq(1) - expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(1) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) - expect(stubCreateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) + expect(stubCreateWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].data) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[1].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[1].data) }) it('T08:Update resource booking dates and cause work period creation - 2', async () => { const data = testData.T08 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -182,14 +196,17 @@ describe('resourceBooking service test', () => { expect(stubCreateWorkPeriodService.callCount).to.eq(1) expect(stubUpdateWorkPeriodService.callCount).to.eq(0) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) - expect(stubCreateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) + expect(stubCreateWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].data) }) it('T09:Update resource booking startDate and cause work period to be deleted', async () => { const data = testData.T09 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -198,16 +215,21 @@ describe('resourceBooking service test', () => { expect(stubPostEvent.calledOnce).to.be.true expect(stubWorkPeriodFindAll.called).to.be.true expect(stubCreateWorkPeriodService.callCount).to.eq(0) - expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(1) expect(stubDeleteWorkPeriodService.callCount).to.eq(1) - expect(stubDeleteWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) + expect(stubDeleteWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[1].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[1].data) }) it('T10:Update resource booking endDate and cause work period to be deleted', async () => { const data = testData.T10 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -216,16 +238,21 @@ describe('resourceBooking service test', () => { expect(stubPostEvent.calledOnce).to.be.true expect(stubWorkPeriodFindAll.called).to.be.true expect(stubCreateWorkPeriodService.callCount).to.eq(0) - expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(1) expect(stubDeleteWorkPeriodService.callCount).to.eq(1) - expect(stubDeleteWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) + expect(stubDeleteWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[1].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[1].data) }) it('T11:Update resource booking dates and cause work period daysWorked to change', async () => { const data = testData.T11 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -234,17 +261,22 @@ describe('resourceBooking service test', () => { expect(stubPostEvent.calledOnce).to.be.true expect(stubWorkPeriodFindAll.called).to.be.true expect(stubCreateWorkPeriodService.callCount).to.eq(0) - expect(stubUpdateWorkPeriodService.callCount).to.eq(1) + expect(stubUpdateWorkPeriodService.callCount).to.eq(2) expect(stubDeleteWorkPeriodService.callCount).to.eq(0) - expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) - expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[1]) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[0].data) + expect(stubUpdateWorkPeriodService.getCall(1).args[1]).to.deep.eq(data.workPeriod.request[1].id) + expect(stubUpdateWorkPeriodService.getCall(1).args[2]).to.deep.eq(data.workPeriod.request[1].data) }) it('T12:Update resource booking dates and cause delete, update, create work period operations', async () => { const data = testData.T12 const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) @@ -255,10 +287,10 @@ describe('resourceBooking service test', () => { expect(stubCreateWorkPeriodService.callCount).to.eq(1) expect(stubUpdateWorkPeriodService.callCount).to.eq(1) expect(stubDeleteWorkPeriodService.callCount).to.eq(1) - expect(stubDeleteWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) - expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[1]) - expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[2]) - expect(stubCreateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[3]) + expect(stubDeleteWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[1].id) + expect(stubUpdateWorkPeriodService.getCall(0).args[2]).to.deep.eq(data.workPeriod.request[1].data) + expect(stubCreateWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[2].data) }) }) describe('Update resource booking unsuccessfully', () => { @@ -267,7 +299,10 @@ describe('resourceBooking service test', () => { const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) let error @@ -290,7 +325,10 @@ describe('resourceBooking service test', () => { const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) let error @@ -315,7 +353,10 @@ describe('resourceBooking service test', () => { const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) await service.deleteResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id) @@ -325,8 +366,8 @@ describe('resourceBooking service test', () => { expect(stubCreateWorkPeriodService.callCount).to.eq(0) expect(stubUpdateWorkPeriodService.callCount).to.eq(0) expect(stubDeleteWorkPeriodService.callCount).to.eq(2) - expect(stubDeleteWorkPeriodService.getCall(0).args[1]).to.deep.eq(data.workPeriod.request[0]) - expect(stubDeleteWorkPeriodService.getCall(1).args[1]).to.deep.eq(data.workPeriod.request[1]) + expect(stubDeleteWorkPeriodService.getCall(0).args[0]).to.deep.eq(data.workPeriod.request[0].id) + expect(stubDeleteWorkPeriodService.getCall(1).args[0]).to.deep.eq(data.workPeriod.request[1].id) }) }) describe('Delete resource booking unsuccessfully', () => { @@ -335,7 +376,10 @@ describe('resourceBooking service test', () => { const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { return data.resourceBooking.value }) - const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async (criteria) => { + if (criteria.raw) { + return _.map(data.workPeriod.response, wp => wp.toJSON()) + } return data.workPeriod.response }) let error @@ -579,4 +623,59 @@ describe('resourceBooking service test', () => { expect(error.message).to.eq(data.error.message) }) }) + describe('Update resource booking dates to null', () => { + it('T36:Should not allow setting dates to null if both dates are not null', async () => { + const data = testData.T36 + const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { + return data.resourceBooking.value + }) + let error + try { + await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) + } catch (err) { + error = err + } + expect(error.httpStatus).to.eq(data.error.httpStatus) + expect(error.message).to.eq(data.error.message) + expect(stubResourceBookingFindById.calledOnce).to.be.true + expect(stubPostEvent.notCalled).to.be.true + expect(stubCreateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubDeleteWorkPeriodService.callCount).to.eq(0) + }) + it('T37:Should allow setting dates to null if one of the dates is null', async () => { + const data = testData.T37 + const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { + return data.resourceBooking.value + }) + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + return data.workPeriod.response + }) + const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) + expect(entity).to.deep.eql(data.resourceBooking.response.toJSON()) + expect(stubResourceBookingFindById.calledOnce).to.be.true + expect(stubPostEvent.calledOnce).to.be.true + expect(stubWorkPeriodFindAll.called).to.be.true + expect(stubCreateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubDeleteWorkPeriodService.callCount).to.eq(0) + }) + it('T38:Should allow setting dates to null if both dates are null', async () => { + const data = testData.T38 + const stubResourceBookingFindById = sinon.stub(ResourceBooking, 'findById').callsFake(async () => { + return data.resourceBooking.value + }) + const stubWorkPeriodFindAll = sinon.stub(WorkPeriod, 'findAll').callsFake(async () => { + return data.workPeriod.response + }) + const entity = await service.partiallyUpdateResourceBooking(commonData.currentUser, data.resourceBooking.value.dataValues.id, data.resourceBooking.request) + expect(entity).to.deep.eql(data.resourceBooking.response.toJSON()) + expect(stubResourceBookingFindById.calledOnce).to.be.true + expect(stubPostEvent.calledOnce).to.be.true + expect(stubWorkPeriodFindAll.called).to.be.true + expect(stubCreateWorkPeriodService.callCount).to.eq(0) + expect(stubUpdateWorkPeriodService.callCount).to.eq(0) + expect(stubDeleteWorkPeriodService.callCount).to.eq(0) + }) + }) }) diff --git a/test/unit/WorkPeriodPaymentService.test.js b/test/unit/WorkPeriodPaymentService.test.js index ecc11186..0b5a8aca 100644 --- a/test/unit/WorkPeriodPaymentService.test.js +++ b/test/unit/WorkPeriodPaymentService.test.js @@ -1,6 +1,4 @@ /* eslint-disable no-unused-expressions */ - -// const _ = require('lodash') const expect = require('chai').expect const sinon = require('sinon') const models = require('../../src/models') @@ -8,7 +6,6 @@ const service = require('../../src/services/WorkPeriodPaymentService') const commonData = require('./common/CommonData') const testData = require('./common/WorkPeriodPaymentData') const helper = require('../../src/common/helper') -// const esClient = helper.getESClient() const busApiClient = helper.getBusApiClient() describe('workPeriod service test', () => { beforeEach(() => { @@ -19,7 +16,7 @@ describe('workPeriod service test', () => { sinon.restore() }) - describe('create work period test', () => { + describe('create work period payment test', () => { let stubGetUserId let stubEnsureWorkPeriodById let stubEnsureResourceBookingById @@ -33,22 +30,21 @@ describe('workPeriod service test', () => { }) it('create work period success', async () => { + const stubWorkPeriodFindById = sinon.stub(models.WorkPeriod, 'findOne').callsFake(async () => testData.workPeriodPayment01.workPeriodWithPayments) + const stubUpdateWorkPeriod = sinon.stub(testData.workPeriodPayment01.workPeriodWithPayments, 'update').callsFake(async () => testData.workPeriodPayment01.workPeriodUpdateResponse) const response = await service.createWorkPeriodPayment(commonData.currentUser, testData.workPeriodPayment01.request) expect(stubGetUserId.calledOnce).to.be.true expect(stubEnsureWorkPeriodById.calledOnce).to.be.true expect(stubEnsureResourceBookingById.calledOnce).to.be.true expect(stubCreateWorkPeriodPayment.calledOnce).to.be.true + expect(stubWorkPeriodFindById.calledOnce).to.be.true + expect(stubUpdateWorkPeriod.calledOnce).to.be.true expect(response).to.eql(testData.workPeriodPayment01.response.dataValues) - }) - - it('create work period success - billingAccountId is set', async () => { - await service.createWorkPeriodPayment(commonData.currentUser, testData.workPeriodPayment01.request) - expect(stubCreateWorkPeriodPayment.calledOnce).to.be.true + expect(stubUpdateWorkPeriod.getCall(0).args[0]).to.deep.eq(testData.workPeriodPayment01.workPeriodUpdateRequest) expect(stubCreateWorkPeriodPayment.args[0][0]).to.include({ billingAccountId: testData.workPeriodPayment01.ensureResourceBookingByIdResponse.billingAccountId }) }) - it('fail to create work period if corresponding resource booking does not have bill account', async () => { stubEnsureResourceBookingById.restore() sinon.stub(helper, 'ensureResourceBookingById').callsFake(async () => testData.workPeriodPayment01.ensureResourceBookingByIdResponse02) diff --git a/test/unit/common/ResourceBookingData.js b/test/unit/common/ResourceBookingData.js index 78732e91..67cfbd9e 100644 --- a/test/unit/common/ResourceBookingData.js +++ b/test/unit/common/ResourceBookingData.js @@ -34,43 +34,43 @@ const T01 = { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-03-28', endDate: '2021-04-03', - daysWorked: null, - paymentStatus: 'pending' + daysWorked: 0, + paymentStatus: 'no-days' }, { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-04-04', endDate: '2021-04-10', - daysWorked: null, + daysWorked: 5, paymentStatus: 'pending' }, { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-04-11', endDate: '2021-04-17', - daysWorked: null, + daysWorked: 5, paymentStatus: 'pending' }, { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-04-18', endDate: '2021-04-24', - daysWorked: null, + daysWorked: 5, paymentStatus: 'pending' }, { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-04-25', endDate: '2021-05-01', - daysWorked: null, + daysWorked: 5, paymentStatus: 'pending' }, { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-05-02', endDate: '2021-05-08', - daysWorked: null, - paymentStatus: 'pending' + daysWorked: 0, + paymentStatus: 'no-days' }] } } @@ -111,7 +111,7 @@ const T02 = { resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', startDate: '2021-04-11', endDate: '2021-04-17', - daysWorked: null, + daysWorked: 5, paymentStatus: 'pending' }] } @@ -242,21 +242,30 @@ const T06 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' - }] + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 5, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T06.workPeriod.response[0].dataValues + }], + request: [ + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + data: { daysWorked: 3 } + } + ] } } T06.resourceBooking.value.toJSON = () => T06.resourceBooking.value.dataValues @@ -305,28 +314,39 @@ const T07 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 5, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T07.workPeriod.response[0].dataValues }], request: [ { - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: null, - paymentStatus: 'pending' + data: { + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 0, + paymentStatus: 'no-days' + } + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + data: { + daysWorked: 4 + } } ] } @@ -377,28 +397,33 @@ const T08 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 5, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T08.workPeriod.response[0].dataValues }], request: [ { - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - startDate: '2021-04-18', - endDate: '2021-04-24', - daysWorked: null, - paymentStatus: 'pending' + data: { + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + startDate: '2021-04-18', + endDate: '2021-04-24', + daysWorked: 0, + paymentStatus: 'no-days' + } } ] } @@ -449,38 +474,52 @@ const T09 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 0, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'no-days', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T09.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 5, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T09.workPeriod.response[1].dataValues }], request: [ - '10faf505-d0e3-4d13-a817-7f1319625e90' + { + id: '10faf505-d0e3-4d13-a817-7f1319625e90' + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + data: { + daysWorked: 4 + } + } ] } } @@ -530,38 +569,52 @@ const T10 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 0, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'no-days', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T10.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: null, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 5, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T10.workPeriod.response[1].dataValues }], request: [ - '10faf505-d0e3-4d13-a817-7f1319625e91' + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91' + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + data: { + daysWorked: 2 + } + } ] } } @@ -611,39 +664,51 @@ const T11 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 0, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 0, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'no-days', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T11.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 3, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 3, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T11.workPeriod.response[1].dataValues }], request: [ - '10faf505-d0e3-4d13-a817-7f1319625e91', - { daysWorked: 2 } + { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + data: { daysWorked: 2 } + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + data: { daysWorked: 2 } + } ] } } @@ -693,46 +758,58 @@ const T12 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T12.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'partially-completed', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 4, + daysPaid: 1, + paymentTotal: 2.65, + paymentStatus: 'partially-completed', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T12.workPeriod.response[1].dataValues }], request: [ - '10faf505-d0e3-4d13-a817-7f1319625e90', - '10faf505-d0e3-4d13-a817-7f1319625e91', - { daysWorked: 3 }, { - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - startDate: '2021-04-18', - endDate: '2021-04-24', - daysWorked: null, - paymentStatus: 'pending' + id: '10faf505-d0e3-4d13-a817-7f1319625e90' + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + data: { daysWorked: 3 } + }, + { + data: { + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + startDate: '2021-04-18', + endDate: '2021-04-24', + daysWorked: 5, + paymentStatus: 'pending' + } } ] } @@ -766,39 +843,45 @@ const T13 = { error: { httpStatus: 400, message: `WorkPeriods with id of 10faf505-d0e3-4d13-a817-7f1319625e91 - has completed or partially-completed payment status.` + has completed, partially-completed or in-progress payment status.` }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T13.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'completed', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 4, + daysPaid: 4, + paymentTotal: 10.59, + paymentStatus: 'completed', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T13.workPeriod.response[1].dataValues }] } } @@ -830,39 +913,45 @@ const T14 = { error: { httpStatus: 400, message: `WorkPeriods with id of 10faf505-d0e3-4d13-a817-7f1319625e91 - has completed or partially-completed payment status.` + has completed, partially-completed or in-progress payment status.` }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T14.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'completed', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 4, + daysPaid: 4, + paymentTotal: 10.59, + paymentStatus: 'completed', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T14.workPeriod.response[1].dataValues }] } } @@ -889,37 +978,50 @@ const T15 = { }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T15.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T15.workPeriod.response[1].dataValues }], - request: ['10faf505-d0e3-4d13-a817-7f1319625e90', '10faf505-d0e3-4d13-a817-7f1319625e91'] + request: [ + { + id: '10faf505-d0e3-4d13-a817-7f1319625e90' + }, + { + id: '10faf505-d0e3-4d13-a817-7f1319625e91' + } + ] } } T15.resourceBooking.value.toJSON = () => T15.resourceBooking.value.dataValues @@ -947,39 +1049,45 @@ const T16 = { error: { httpStatus: 400, message: `WorkPeriods with id of 10faf505-d0e3-4d13-a817-7f1319625e91 - has completed or partially-completed payment status.` + has completed, partially-completed or in-progress payment status.` }, workPeriod: { response: [{ - id: '10faf505-d0e3-4d13-a817-7f1319625e90', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-04', - endDate: '2021-04-10', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'pending', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e90', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-04', + endDate: '2021-04-10', + daysWorked: 4, + daysPaid: 0, + paymentTotal: 0, + paymentStatus: 'pending', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T16.workPeriod.response[0].dataValues }, { - id: '10faf505-d0e3-4d13-a817-7f1319625e91', - resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', - userHandle: 'pshah_manager', - projectId: 21, - startDate: '2021-04-11', - endDate: '2021-04-17', - daysWorked: 4, - memberRate: null, - customerRate: null, - paymentStatus: 'completed', - createdBy: '00000000-0000-0000-0000-000000000000', - updatedBy: null, - createdAt: '2021-04-10T22:25:08.289Z', - updatedAt: '2021-04-10T22:25:08.289Z' + dataValues: { + id: '10faf505-d0e3-4d13-a817-7f1319625e91', + resourceBookingId: '520bb632-a02a-415e-9857-93b2ecbf7d60', + userHandle: 'pshah_manager', + projectId: 21, + startDate: '2021-04-11', + endDate: '2021-04-17', + daysWorked: 4, + daysPaid: 4, + paymentTotal: 10.59, + paymentStatus: 'completed', + createdBy: '00000000-0000-0000-0000-000000000000', + updatedBy: null, + createdAt: '2021-04-10T22:25:08.289Z', + updatedAt: '2021-04-10T22:25:08.289Z' + }, + toJSON: () => T16.workPeriod.response[1].dataValues }] } } @@ -1047,7 +1155,7 @@ const T20 = { }, error: { httpStatus: 403, - message: 'You don\'t have access to view memberRate' + message: 'You don\'t have access to view memberRate and paymentTotal' } } const T21 = { @@ -1290,7 +1398,7 @@ const T27 = { }, error: { httpStatus: 403, - message: 'You don\'t have access to view memberRate' + message: 'You don\'t have access to view memberRate and paymentTotal' } } const T28 = { @@ -1351,6 +1459,132 @@ const T35 = { message: 'Can not filter or sort by some field which is not included in fields' } } +const T36 = { + resourceBooking: { + value: { + dataValues: { + id: '520bb632-a02a-415e-9857-93b2ecbf7d60', + projectId: 21, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '6093e58c-683d-4022-8482-5515e8345016', + startDate: '2021-04-05', + endDate: '2021-04-17', + memberRate: 13.23, + customerRate: 13, + rateType: 'hourly', + createdAt: '2020-10-09T04:24:01.048Z', + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + status: 'sourcing', + billingAccountId: 68800079 + } + }, + request: { + startDate: '2021-04-05', + endDate: null + } + }, + error: { + httpStatus: 400, + message: 'You cannot remove start or end date if both are already set for Resource Booking.' + } +} +T36.resourceBooking.value.toJSON = () => T36.resourceBooking.value.dataValues +const T37 = { + resourceBooking: { + value: { + dataValues: { + id: '520bb632-a02a-415e-9857-93b2ecbf7d60', + projectId: 21, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '6093e58c-683d-4022-8482-5515e8345016', + startDate: null, + endDate: '2021-04-17', + memberRate: 13.23, + customerRate: 13, + rateType: 'hourly', + createdAt: '2020-10-09T04:24:01.048Z', + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + status: 'sourcing', + billingAccountId: 68800079 + } + }, + request: { + startDate: null, + endDate: null + }, + response: { + dataValues: { + id: '520bb632-a02a-415e-9857-93b2ecbf7d60', + projectId: 21, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '6093e58c-683d-4022-8482-5515e8345016', + startDate: null, + endDate: null, + memberRate: 13.23, + customerRate: 13, + rateType: 'hourly', + createdAt: '2020-10-09T04:24:01.048Z', + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + status: 'sourcing', + billingAccountId: 68800079 + } + } + }, + workPeriod: { + response: [] + } +} +T37.resourceBooking.value.toJSON = () => T37.resourceBooking.value.dataValues +T37.resourceBooking.value.update = () => T37.resourceBooking.response +T37.resourceBooking.response.toJSON = () => T37.resourceBooking.response.dataValues +const T38 = { + resourceBooking: { + value: { + dataValues: { + id: '520bb632-a02a-415e-9857-93b2ecbf7d60', + projectId: 21, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '6093e58c-683d-4022-8482-5515e8345016', + startDate: null, + endDate: null, + memberRate: 13.23, + customerRate: 13, + rateType: 'hourly', + createdAt: '2020-10-09T04:24:01.048Z', + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + status: 'sourcing', + billingAccountId: 68800079 + } + }, + request: { + startDate: null, + endDate: null + }, + response: { + dataValues: { + id: '520bb632-a02a-415e-9857-93b2ecbf7d60', + projectId: 21, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '6093e58c-683d-4022-8482-5515e8345016', + startDate: null, + endDate: null, + memberRate: 13.23, + customerRate: 13, + rateType: 'hourly', + createdAt: '2020-10-09T04:24:01.048Z', + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + status: 'sourcing', + billingAccountId: 68800079 + } + } + }, + workPeriod: { + response: [] + } +} +T38.resourceBooking.value.toJSON = () => T38.resourceBooking.value.dataValues +T38.resourceBooking.value.update = () => T38.resourceBooking.response +T38.resourceBooking.response.toJSON = () => T38.resourceBooking.response.dataValues module.exports = { T01, T02, @@ -1386,5 +1620,8 @@ module.exports = { T32, T33, T34, - T35 + T35, + T36, + T37, + T38 } diff --git a/test/unit/common/WorkPeriodPaymentData.js b/test/unit/common/WorkPeriodPaymentData.js index 6e321b62..67322137 100644 --- a/test/unit/common/WorkPeriodPaymentData.js +++ b/test/unit/common/WorkPeriodPaymentData.js @@ -1,16 +1,18 @@ const workPeriodPayment01 = { request: { - workPeriodId: '467b4df7-ced4-41b9-9710-b83808cddaf4', - amount: 600 + workPeriodId: '467b4df7-ced4-41b9-9710-b83808cddaf4' }, response: { dataValues: { workPeriodId: '467b4df7-ced4-41b9-9710-b83808cddaf4', amount: 600, status: 'scheduled', + days: 3, + memberRate: 13.23, + customerRate: 13, id: '01971e6f-0f09-4a2a-bc2e-2adac0f00622', challengeId: '00000000-0000-0000-0000-000000000000', - createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + createdBy: '79a39efd-91af-494a-b0f6-62310495effd', updatedAt: '2021-04-21T12:58:07.535Z', createdAt: '2021-04-21T12:58:07.535Z', updatedBy: null @@ -18,23 +20,150 @@ const workPeriodPayment01 = { }, getUserIdResponse: '79a39efd-91af-494a-b0f6-62310495effd', ensureWorkPeriodByIdResponse: { - projectId: 111, userHandle: 'pshah_manager', - endDate: '2021-03-13' + updatedBy: null, + endDate: '2020-10-31', + daysPaid: 2, + resourceBookingId: '8694a939-45fe-482e-bee2-3b530acf4139', + daysWorked: 5, + createdAt: '2021-06-13T18:21:52.564Z', + createdBy: '00000000-0000-0000-0000-000000000000', + paymentTotal: 5.29, + id: '467b4df7-ced4-41b9-9710-b83808cddaf4', + projectId: 17234, + startDate: '2020-10-25', + paymentStatus: 'partially-completed', + updatedAt: '2021-06-13T18:25:08.492Z' + }, + workPeriodWithPayments: { + userHandle: 'pshah_manager', + updatedBy: null, + endDate: '2020-10-31', + daysPaid: 2, + resourceBookingId: '8694a939-45fe-482e-bee2-3b530acf4139', + daysWorked: 5, + createdAt: '2021-06-13T18:21:52.564Z', + createdBy: '00000000-0000-0000-0000-000000000000', + paymentTotal: 5.29, + id: '467b4df7-ced4-41b9-9710-b83808cddaf4', + projectId: 17234, + startDate: '2020-10-25', + paymentStatus: 'partially-completed', + updatedAt: '2021-06-13T18:25:08.492Z', + payments: [ + { + amount: 5.29, + updatedBy: null, + billingAccountId: 80000071, + workPeriodId: '467b4df7-ced4-41b9-9710-b83808cddaf4', + createdAt: '2021-06-13T18:22:10.258Z', + challengeId: '00000000-0000-0000-0000-000000000000', + memberRate: 13.23, + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + customerRate: 13, + days: 2, + statusDetails: null, + id: '2a30b5a1-3558-4795-b516-d03cb098fc0f', + status: 'completed', + updatedAt: '2021-06-13T18:25:08.445Z' + }, + { + amount: 7.31, + updatedBy: null, + billingAccountId: 80000071, + workPeriodId: '467b4df7-ced4-41b9-9710-b83808cddaf4', + createdAt: '2021-06-13T18:22:10.258Z', + challengeId: '00000000-0000-0000-0000-000000000000', + memberRate: 13.23, + createdBy: '79a39efd-91af-494a-b0f6-62310495effd', + customerRate: 13, + days: 3, + statusDetails: null, + id: '01971e6f-0f09-4a2a-bc2e-2adac0f00622', + status: 'scheduled', + updatedAt: '2021-06-13T18:25:08.445Z' + } + ] }, ensureResourceBookingByIdResponse: { - billingAccountId: 68800079 + updatedBy: null, + endDate: '2020-10-27', + billingAccountId: 80000071, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '13c1fcd2-7bbb-4623-8643-ef025dac4c88', + rateType: 'hourly', + createdAt: '2021-06-13T18:21:48.474Z', + memberRate: 13.23, + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + customerRate: 13, + id: '8694a939-45fe-482e-bee2-3b530acf4139', + projectId: 17234, + startDate: '2020-09-27', + status: 'placed', + updatedAt: '2021-06-13T18:21:48.474Z' + }, + workPeriodUpdateResponse: { + userHandle: 'pshah_manager', + updatedBy: null, + endDate: '2020-10-31', + daysPaid: 5, + resourceBookingId: '8694a939-45fe-482e-bee2-3b530acf4139', + daysWorked: 5, + createdAt: '2021-06-13T18:21:52.564Z', + createdBy: '00000000-0000-0000-0000-000000000000', + paymentTotal: 12.6, + id: '467b4df7-ced4-41b9-9710-b83808cddaf4', + projectId: 17234, + startDate: '2020-10-25', + paymentStatus: 'in-progress', + updatedAt: '2021-06-13T18:25:08.492Z' + }, + workPeriodUpdateRequest: { + daysPaid: 5, + paymentTotal: 12.6, + paymentStatus: 'in-progress' + }, + ensureResourceBookingByIdResponse02: { + updatedBy: null, + endDate: '2020-10-27', + billingAccountId: null, + userId: 'a55fe1bc-1754-45fa-9adc-cf3d6d7c377a', + jobId: '13c1fcd2-7bbb-4623-8643-ef025dac4c88', + rateType: 'hourly', + createdAt: '2021-06-13T18:21:48.474Z', + memberRate: 13.23, + createdBy: '57646ff9-1cd3-4d3c-88ba-eb09a395366c', + customerRate: 13, + id: '8694a939-45fe-482e-bee2-3b530acf4139', + projectId: 17234, + startDate: '2020-09-27', + status: 'placed', + updatedAt: '2021-06-13T18:21:48.474Z' }, - ensureResourceBookingByIdResponse02: {}, createPaymentResponse: { id: 'c65f0cbf-b197-423d-91cc-db6e3bad9075' } } workPeriodPayment01.response.toJSON = function () { - return workPeriodPayment01.response + return workPeriodPayment01.response.dataValues +} +workPeriodPayment01.ensureWorkPeriodByIdResponse.toJSON = function () { + return workPeriodPayment01.ensureWorkPeriodByIdResponse +} +workPeriodPayment01.ensureResourceBookingByIdResponse.toJSON = function () { + return workPeriodPayment01.ensureResourceBookingByIdResponse +} +workPeriodPayment01.workPeriodWithPayments.toJSON = function () { + return workPeriodPayment01.workPeriodWithPayments +} +workPeriodPayment01.workPeriodWithPayments.update = function () {} +workPeriodPayment01.workPeriodUpdateResponse.toJSON = function () { + return workPeriodPayment01.workPeriodUpdateResponse +} +workPeriodPayment01.ensureResourceBookingByIdResponse02.toJSON = function () { + return workPeriodPayment01.ensureResourceBookingByIdResponse02 } - module.exports = { workPeriodPayment01 }