Compare commits

...

1295 Commits

Author SHA1 Message Date
Dillon Ngo 0ce65323e2 Merge branch 'vapor/production' into vapor/staging 2026-05-27 15:15:20 +08:00
Dillon Ngo 5ca007ab28 Fix YD API integration issue reported by Zhy Mei 2026-05-26 22:50:54 +08:00
Dillon Ngo f190997634 Show reference info on order page > Received Parcels section requested by Kanisha 2026-05-13 11:09:34 +08:00
Dillon Ngo 5dd8a70677 Fix a 504 Endpoint request timed out error at customer payment-and-billing page with storage invoice 2026-05-01 12:07:33 +08:00
Dillon Ngo 9dbb6a8b49 Fix a 504 Endpoint request timed out error at customer payment-and-billing page with storage invoice 2026-05-01 11:49:31 +08:00
Dillon Ngo 812da07f63 Fix a 504 Endpoint request timed out error at customer payment-and-billing page with storage invoice 2026-05-01 10:34:25 +08:00
Dillon Ngo 130aa78dfe Fix a 504 Endpoint request timed out error at customer payment-and-billing page with storage invoice 2026-05-01 10:13:38 +08:00
Dillon Ngo f820ba578f Fx to resolve a 504 Endpoint request timed out error on loading packages details on order page 2026-04-24 17:48:41 +08:00
Dillon Ngo 961f8acf65 Fx to resolve a 504 Endpoint request timed out error on loading packages details on order page 2026-04-24 15:53:58 +08:00
Dillon Ngo 9a2a5d797c Fx to resolve a 504 Endpoint request timed out error on loading packages details on order page 2026-04-24 15:38:22 +08:00
Dillon Ngo 743662af9e Temporary undo a previous fix to resolve a 504 Endpoint request timed out error 2026-04-24 10:26:57 +08:00
Dillon Ngo 1ba98379bf Temporary fix some yd integration api not showing reported by Zhy Mei 2026-04-14 23:07:50 +08:00
Dillon Ngo 0f18556667 Temporary fix some yd integration api not showing reported by Zhy Mei 2026-04-14 22:49:49 +08:00
Dillon Ngo 27b4dee1e3 Fix Jenkins Deployment issue 2026-04-10 13:08:44 +08:00
Dillon Ngo 3e982f5351 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 13:00:08 +08:00
Dillon Ngo b17fe23652 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 12:30:04 +08:00
Dillon Ngo 191bd161f3 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 12:17:27 +08:00
Dillon Ngo 6b8a61877e Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 11:37:36 +08:00
Dillon Ngo 9730fa79e4 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 11:22:48 +08:00
Dillon Ngo 009c064002 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 11:11:40 +08:00
Dillon Ngo 6be228e7fd Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 10:11:19 +08:00
Dillon Ngo fd52aa6b01 Fix missing E-Invoice no. in invoices's pdf summary 2026-04-10 09:50:22 +08:00
Dillon Ngo de4c09fb07 Update tests 2026-04-06 11:26:16 +08:00
Dillon Ngo adb81ebfe9 Minor UI update 2026-03-26 11:04:45 +08:00
Dillon Ngo 8d11ff6b7f Update: laravel 8 to 12, php 7.3 to php 8.3, Jenkinsfile, Unit/Feature testing, vapor 2026-03-25 07:51:49 +08:00
Dillon Ngo 4c5945ba51 Merge branch 'dillon/146-izyim-ui-update' into vapor/staging 2026-03-19 02:10:37 +08:00
Dillon Ngo 76cc4296a3 Minor UI update 2026-03-19 01:56:23 +08:00
Dillon Ngo 90f485f84b Update to use cheaper claude model 2026-03-18 09:27:34 +08:00
Dillon Ngo 1cc3581800 Enhancement to allow admin to delete package safely with immediate pull again from YD api 2026-03-17 16:30:33 +08:00
Dillon Ngo e3b4da8cab Merge branch 'dillon/143-fix-invoice-transaction-details-inaccurate' into vapor/staging 2026-03-16 23:05:25 +08:00
Dillon Ngo 7dfa7b0220 Update Jenkinsfile 2026-03-16 22:52:12 +08:00
Dillon Ngo 27204bca13 Emergency fix invoice transaction details inaccurate 2026-03-16 22:28:59 +08:00
Edmond Lang fdbd25576f Merge branch 'rename-qr-warehouse-prefix' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2026-03-10 15:32:01 +08:00
Edmond Lang b735462321 rename qr warehouse prefix 2026-03-10 15:31:07 +08:00
Dillon Ngo db2d55146b Merge branch 'dillon/141-fix-customer-payment-and-billing-page-not-loaded' into vapor/staging 2026-03-07 00:58:05 +08:00
Dillon Ngo 8b2ef2acd4 FIx an issue reported by Eileen, a customer payment and billing page not loading 2026-03-07 00:46:09 +08:00
Dillon Ngo 0a6a63391a Merge branch 'dillon/138-fix-generate-summary-invoice-issue' into vapor/staging 2026-02-23 03:23:16 +08:00
Dillon Ngo f5f278fb77 Merge branch 'dillon/138-fix-generate-summary-invoice-issue' into vapor/production 2026-02-23 03:22:58 +08:00
Dillon Ngo 8afa6a496e Minor update on UX 2026-02-23 03:22:47 +08:00
Dillon Ngo a207e8fc88 Merge branch 'dillon/140-group-payment-dissapear' into vapor/staging 2026-02-18 23:06:59 +08:00
Dillon Ngo 03a7ed5785 Added missing environment variable into .env.example 2026-02-18 23:06:18 +08:00
Dillon Ngo b51617efef Merge branch 'dillon/140-group-payment-dissapear' into vapor/staging 2026-02-18 21:19:30 +08:00
Dillon Ngo efe5ccecea Fix a problem reported by Joanne about group payment invoices not appearing properly 2026-02-12 16:05:33 +08:00
Dillon Ngo 7faeec6ef7 Fix a problem reported by Joanne about group payment invoices not appearing properly 2026-02-12 15:44:05 +08:00
Dillon Ngo 5c2d92c143 Merge branch 'dillon/138-fix-generate-summary-invoice-issue' into vapor/staging 2026-02-06 16:12:55 +08:00
Dillon Ngo 20e7e19bc6 Merge branch 'dillon/138-fix-generate-summary-invoice-issue' into vapor/production 2026-02-06 15:56:56 +08:00
Dillon Ngo 151447c573 Emergency DB issue Restore 2026-02-06 15:53:59 +08:00
Dillon Ngo a21614ba32 Emergency DB issue Restore 2026-02-06 15:32:21 +08:00
Dillon Ngo d99cb103ce Fix an issue reported by Eileen not able to generate summary invoice for multiple pending payment shipping invoices 2026-02-06 14:32:44 +08:00
Dillon Ngo 4c92ac5a83 Fix an issue reported by Eileen not able to generate summary invoice for multiple pending payment shipping invoices 2026-02-06 14:30:07 +08:00
Edmond Lang 1c291134a1 admin move order 2026-01-25 23:39:44 +08:00
Edmond Lang 98a93feea9 Merge branch 'admin-move-order' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2026-01-25 23:13:51 +08:00
Edmond Lang 66576b6eea no message 2026-01-25 23:13:09 +08:00
Dillon Ngo d1e39e35e2 Merge branch 'dillon/132-claude' into vapor/staging 2026-01-25 15:37:04 +08:00
Dillon Ngo 7be3614f96 New anthropic claude service to replace openai chatgpt 2026-01-25 15:31:00 +08:00
Dillon Ngo 9a1b33a413 Fix a problem reported by Eileen for an order with cbm calculation issue, removal of inline hardcode, use segment settings instead 2026-01-21 19:16:17 +08:00
Dillon Ngo 406b433852 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2026-01-19 10:57:08 +08:00
Dillon Ngo 70ad358e5d Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2026-01-19 10:56:48 +08:00
Dillon Ngo c8249b9276 E-Invoice - Allow admin to download all reports 2026-01-19 10:56:14 +08:00
Dillon Ngo 0484eabb0e Quick fix for group payment issue got stuck reported by enqi 2026-01-06 10:20:04 +08:00
Dillon Ngo 7a5cf5f2ce Quick fix for group payment issue got stuck reported by enqi 2026-01-06 10:08:37 +08:00
Dillon Ngo 6917a45267 Merge branch 'dillon/126-fix-tracking-page-issue' into vapor/staging 2025-12-17 13:08:32 +08:00
Dillon Ngo 49a31a743c Allow all admin role type to view tracking no 2025-12-17 12:52:47 +08:00
Dillon Ngo ec3d0c2ff5 Merge branch 'dillon/125-css-ui-update' into vapor/staging 2025-12-12 10:38:16 +08:00
Dillon Ngo f3d6521e2c CSS / UI Update 2025-12-09 11:01:49 +08:00
Dillon Ngo f7a9358202 Merge branch 'dillon/123-update-district-listing-ui-to-show-state-info' into vapor/production 2025-12-07 17:36:23 +08:00
Dillon Ngo db499bfecf Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 16:53:28 +08:00
Dillon Ngo 0538653bca Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 16:52:20 +08:00
Dillon Ngo 9147a4cfec Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 16:13:08 +08:00
Dillon Ngo a20f4ed9be Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 15:50:19 +08:00
Dillon Ngo d542a20f76 Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 15:36:39 +08:00
Dillon Ngo e706e278ac Merge branch 'dillon/123-update-district-listing-ui-to-show-state-info' into vapor/staging 2025-12-07 15:11:00 +08:00
Dillon Ngo 6d20c8d49e Fix district listing to display state info for clarity when 2 state share the same district name 2025-12-07 14:22:11 +08:00
Dillon Ngo 86deb2a6cb Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-12-05 08:09:54 +08:00
Dillon Ngo f02220fda8 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-12-05 08:08:51 +08:00
Dillon Ngo 2bf511a1cb E-Invoice - Fix Process E-Invoices button missed some orders left unprocessed 2025-12-05 08:08:33 +08:00
Dillon Ngo 4868583dcf Merge branch 'dillon/121-fix-wallet-with-extra-top-up' into vapor/staging 2025-12-02 16:03:59 +08:00
Dillon Ngo 4242777e7d Fix double wallet top up for group payment transaction problem 2025-12-02 16:03:32 +08:00
Dillon Ngo 714493689c Merge branch 'dillon/121-fix-wallet-with-extra-top-up' into vapor/staging 2025-12-02 12:23:58 +08:00
Dillon Ngo 65bd979b31 Fix double wallet top up for group payment transaction problem 2025-12-02 12:23:12 +08:00
Dillon Ngo 12e38b7648 Merge branch 'dillon/121-fix-wallet-with-extra-top-up' into vapor/staging 2025-11-28 12:08:16 +08:00
Dillon Ngo e0213108d2 Fix a broken link at wallet details page 2025-11-28 12:07:50 +08:00
Dillon Ngo 3917dece42 Merge branch 'dillon/119-fix-unsuccessful-group-payment' into vapor/staging 2025-11-19 09:29:51 +08:00
Dillon Ngo 71f50b646b Fix a unsucccessful group payment reported by Eileen 2025-11-19 09:19:37 +08:00
Dillon Ngo 2a662b42e0 Fix a unsucccessful group payment reported by Eileen 2025-11-17 21:06:03 +08:00
Dillon Ngo 024e0d666a Fix a unsucccessful group payment reported by Eileen 2025-11-17 20:47:47 +08:00
Dillon Ngo 9eeebf86e9 Merge branch 'dillon/118-fix-issue-invoice-generated' into vapor/staging 2025-11-17 19:50:26 +08:00
Dillon Ngo 37119344f3 Fix a problem on invoice generated has incorrect freight service charge (reported by Brian) 2025-11-17 19:48:56 +08:00
Dillon Ngo 2d5185cbdc Merge branch 'dillon/113-debug-yd-api-container-integration' into vapor/staging 2025-11-13 21:52:56 +08:00
Dillon Ngo 37cb4fca18 Fix an issue reported by Eileen on order tracking page drive info not support to appear 2025-11-13 21:37:24 +08:00
Dillon Ngo 0406faee54 Merge branch 'dillon/113-debug-yd-api-container-integration' into vapor/staging 2025-11-08 04:53:22 +08:00
Dillon Ngo 37e8bf4d9a Attempt to fix container integration from YD API with duplication 2025-11-08 04:52:19 +08:00
Dillon Ngo 17d6a9589b Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-11-06 23:47:04 +08:00
Dillon Ngo 0df85daf2e E-Invoice - Update 'Process E-Invoice' date range filtering target 2025-11-06 23:08:24 +08:00
Dillon Ngo 650cfba74a E-Invoice - Update 'Process E-Invoice' date range filtering target 2025-11-06 22:40:16 +08:00
Dillon Ngo 122cf9581a Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-24 14:13:38 +08:00
Dillon Ngo 7f94148ed9 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-24 13:37:07 +08:00
Dillon Ngo 539da4f551 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-24 13:35:47 +08:00
Dillon Ngo 7c8f5fe791 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-24 13:06:57 +08:00
Dillon Ngo 60c083a9cf E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-24 12:58:01 +08:00
Dillon Ngo 5b32fe9d6f E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-24 12:52:01 +08:00
Dillon Ngo 4c50816be9 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-24 12:46:20 +08:00
Dillon Ngo d315880067 E-Invoice - Fix some problem reported y Mira on exporting report 2025-10-24 12:34:56 +08:00
Dillon Ngo 1f7527c1e2 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-23 19:31:53 +08:00
Dillon Ngo 9cd2051cac E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 19:31:27 +08:00
Dillon Ngo 8c3e8fdeaf E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 19:18:48 +08:00
Dillon Ngo c31e7aaf37 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 19:06:41 +08:00
Dillon Ngo 5b6f419d9e E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 18:52:27 +08:00
Dillon Ngo c7f00a7ce2 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 18:17:56 +08:00
Dillon Ngo 35932e5351 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 18:04:13 +08:00
Dillon Ngo 012b88ee37 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 17:48:55 +08:00
Dillon Ngo b2b3962c1c Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-23 17:30:58 +08:00
Dillon Ngo 88869dcadb E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 17:30:15 +08:00
Dillon Ngo df1d80756a E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 17:10:57 +08:00
Dillon Ngo 066f5f52d5 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 16:54:44 +08:00
Dillon Ngo 4d76ffd545 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 16:15:17 +08:00
Dillon Ngo 58f62de2e8 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 16:03:12 +08:00
Dillon Ngo 773b30d224 E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 15:12:57 +08:00
Dillon Ngo 9a6cefebf1 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-23 15:10:33 +08:00
Dillon Ngo 74811f177c E-Invoice - Update Sales Invoice Report to have paid and unpaid invoices in the report 2025-10-23 15:09:50 +08:00
Dillon Ngo 0330364929 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-21 15:57:36 +08:00
Dillon Ngo 82de9ae6f9 E-Invoice - Update Sales Invoice Report 2025-10-21 15:57:15 +08:00
Dillon Ngo 9048510361 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-18 15:21:44 +08:00
Dillon Ngo 6cb27096f7 E-Invoice - New Report Export (Sales Invoice Report, unpaid) 2025-10-18 15:08:48 +08:00
Dillon Ngo 8e42ea722f Merge branch 'dillon/90-e-invoice-shipping-portal-e-1' into vapor/staging 2025-10-14 12:42:31 +08:00
Dillon Ngo 10660b8350 Merge branch 'dillon/90-e-invoice-shipping-portal-e-1' into vapor/production 2025-10-14 12:41:26 +08:00
Dillon Ngo 5c42d383d0 Merge branch 'dillon/90-e-invoice-shipping-portal-f' into dillon/90-e-invoice-shipping-portal-e-1 (Lost Tracked Task) 2025-10-14 12:40:40 +08:00
Dillon Ngo d3966e8b28 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-10-05 13:47:12 +08:00
Dillon Ngo 72135a46b3 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-10-05 12:24:48 +08:00
Dillon Ngo 6a4570442a E-Invoice - Amendment for storage invoice to generate E-Invoice 2025-10-05 12:12:45 +08:00
Edmond Lang 300f7b6642 fix bug: unexpected token "use" (View: /Users/edmondlang/Herd/shipping-portal/resources/views/pages/pdfs/shipping_invoices_sst_combined_v2.blade.php) 2025-10-03 16:41:36 +08:00
Dillon Ngo ace4375abd Merge branch 'dillon/109-fix-invoice-with-min-charge' into vapor/staging 2025-10-01 18:27:40 +08:00
Dillon Ngo c28ee64878 Fix a problem reported by Brian where minimum charge not suppose to be applied 2025-10-01 18:26:52 +08:00
Dillon Ngo ce6b47763c E-Invoice - Amendment for storage invoice to generate E-Invoice (partial completion) 2025-09-29 14:21:03 +08:00
Dillon Ngo 86392af0f2 Merge branch 'dillon/90-e-invoice-shipping-portal-f' into vapor/staging 2025-09-26 10:53:41 +08:00
Dillon Ngo 881dd71ef0 E-Invoice - Amendment for storage invoice to generate E-Invoice (partial completion) 2025-09-26 09:27:26 +08:00
Dillon Ngo beec9aef24 E-Invoice - Amendment for storage invoice to generate E-Invoice (partial completion) 2025-09-26 09:04:39 +08:00
Dillon Ngo fcd6f2d6a8 E-Invoice - Amendment for storage invoice to generate E-Invoice (partial completion) 2025-09-25 17:46:33 +08:00
Dillon Ngo ae15575b0a E-Invoice - Update einvoice template qr code appearance (code sync from Exchange) 2025-09-24 17:24:01 +08:00
Dillon Ngo 4a66578380 E-Invoice - New Report Export (11D - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR DEPOSIT ENTRY] - Update 2025-09-24 13:10:49 +08:00
Dillon Ngo ffbf6b0f9c E-Invoice - New Report Export (11D - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR DEPOSIT ENTRY] - Update 2025-09-24 08:09:49 +08:00
Dillon Ngo 1e4d2c8031 E-Invoice - New Report Export (11D - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR DEPOSIT ENTRY] - Update 2025-09-23 17:20:29 +08:00
Dillon Ngo 2122d18be5 E-Invoice - Update to Sales Invoice Report template ref column 2025-09-23 17:06:43 +08:00
Dillon Ngo 0e9ef67121 Merge branch 'dillon/90-e-invoice-shipping-portal-f' into vapor/production 2025-09-23 13:31:40 +08:00
Dillon Ngo 6e337f5d2d Merge branch 'dillon/90-e-invoice-shipping-portal-f' into vapor/staging 2025-09-23 13:21:26 +08:00
Dillon Ngo c2511e2467 E-Invoice - New Report Import (11R - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR RECEIVE PAYMENT]) 2025-09-22 11:35:48 +08:00
Dillon Ngo e663165654 E-Invoice - New Report Import (11R - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR RECEIVE PAYMENT]) 2025-09-22 11:21:39 +08:00
Dillon Ngo e80e52d04e E-Invoice - New Report Export (11R - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR RECEIVE PAYMENT]) 2025-09-22 09:17:01 +08:00
Dillon Ngo eed5559cbf E-Invoice - New Report Export (11D - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR DEPOSIT ENTRY] 2025-09-19 14:44:31 +08:00
Dillon Ngo 7fdb579ab8 E-Invoice - New Report Export (11D - IZYIM - RECEIVE PAYMENT (FULL PAYMENT) [AR DEPOSIT ENTRY] 2025-09-19 12:11:17 +08:00
Dillon Ngo 6c5c5a9d34 Merge branch 'dillon/90-e-invoice-shipping-portal-f' into dillon/90-e-invoice-shipping-portal-e-1 2025-09-18 12:46:40 +08:00
Dillon Ngo 8097196d8d Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-09-16 14:14:31 +08:00
Dillon Ngo 1d45a7aadf Remove redundant code 2025-09-16 14:04:03 +08:00
Dillon Ngo 0aff82e0e9 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-09-16 13:53:48 +08:00
Dillon Ngo 81474625eb Remove redundant code 2025-09-16 13:52:59 +08:00
Dillon Ngo 769becfc16 E-Invoice - Code sync from Exchange 2025-09-16 12:59:33 +08:00
Dillon Ngo 6d5e1336c9 Merge branch 'dillon/105-updated-storage-invoice-logic' into vapor/staging 2025-09-09 12:26:29 +08:00
Dillon Ngo 6ee296ef06 New updated business logic for storage invoice calculation 2025-09-09 12:25:54 +08:00
Dillon Ngo b763d2a83e Merge branch 'dillon/105-updated-storage-invoice-logic' into vapor/staging 2025-09-07 21:22:15 +08:00
Dillon Ngo e0e6e53e63 New updated business logic for storage invoice calculation 2025-09-07 21:20:15 +08:00
Dillon Ngo 9a90e8cf80 New updated business logic for storage invoice calculation 2025-09-06 15:13:12 +08:00
Dillon Ngo 11bbe370fa Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-09-02 05:21:41 +08:00
Dillon Ngo 4db8b24b22 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-09-02 05:19:39 +08:00
Dillon Ngo d5e008d4f3 E-Invoice - Reinstate some commented code 2025-09-02 05:09:39 +08:00
Dillon Ngo 7a6655c3d9 E-Invoice - Project 27, IZYIM - Sales Invoice - Batch process for E-Invoices 2025-09-02 04:56:44 +08:00
Dillon Ngo 7fbee7b047 E-Invoice - Project 27, IZYIM - Sales Invoice - Batch process for E-Invoices 2025-09-02 04:30:18 +08:00
Edmond Lang df5df0c938 Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2025-09-01 22:11:07 +08:00
Edmond Lang 2edd44a218 Update ExportsArrivedParcel -> so that the "/warehouse-list" Arrived Parcel is showing the same thing as the export 2025-09-01 22:10:49 +08:00
Edmond Lang a8d86eebd6 fix php error for HasParcelWithTransportBetweenDate 2025-09-01 22:00:13 +08:00
Edmond Lang aaa68a1938 Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2025-09-01 20:47:20 +08:00
Edmond Lang 6f2b374cbd Add Filters for "/warehouse-list" -> Arrived Parcel 2025-09-01 20:46:45 +08:00
Dillon Ngo 3fb7befd62 E-Invoice - Project 27, IZYIM - Sales Invoice - Import 2025-08-31 17:39:07 +08:00
Dillon Ngo 8607caa84f E-Invoice - Project 27, IZYIM - Sales Invoice - Import 2025-08-31 17:04:57 +08:00
Dillon Ngo 47d564ec09 E-Invoice - Project 27, IZYIM - Sales Invoice - Export 2025-08-30 18:11:27 +08:00
Dillon Ngo 8031db446e Merge branch 'vapor/production' into dillon/90-e-invoice-shipping-portal-e 2025-08-28 10:16:03 +08:00
Dillon Ngo 25e285e97d Merge branch 'dillon/102-fix-idenfication-verification-listing-not-showing' into vapor/staging 2025-08-19 01:17:01 +08:00
Dillon Ngo 62177bd3d0 Fix Identification verification listing for admin at dashboard not showing properly 2025-08-19 01:15:50 +08:00
Dillon Ngo 76512b107b Merge branch 'vapor/production' into dillon/90-e-invoice-shipping-portal-e 2025-08-19 01:07:33 +08:00
Dillon Ngo 0b1ccfe96e Merge branch 'dillon/100-cleanup' into vapor/staging 2025-08-18 01:33:49 +08:00
Dillon Ngo b8f284c2c0 Cleanup + Code Refactor 2025-08-16 10:39:45 +08:00
Dillon Ngo 5db1579c36 Cleanup + Code Refactor 2025-08-16 10:30:58 +08:00
Dillon Ngo 7615c3ef3e Merge branch 'vapor/production' into dillon/100-cleanup 2025-08-16 10:23:04 +08:00
Dillon Ngo d8f1262ec2 Cleanup + Code Refactor 2025-08-15 09:14:43 +08:00
Dillon Ngo 5b8893068c Fix a problem reported by Eileen of a group payment double charge problempayment through wallet 2025-08-14 04:12:54 +08:00
Dillon Ngo 73b5779702 Merge branch 'dillon/101-fix-shipping-portal-wallet-group-transaction-double-charge' into vapor/staging 2025-08-14 03:40:29 +08:00
Dillon Ngo 1810809113 Fix a problem reported by Eileen of a group payment double charge problempayment through wallet 2025-08-14 03:39:52 +08:00
Dillon Ngo 96e03106ee Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-08-11 12:13:42 +08:00
Dillon Ngo 9d4daeeb46 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-11 11:44:14 +08:00
Dillon Ngo 84e23ec80f Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-08-11 11:40:37 +08:00
Dillon Ngo 5b2e3a1828 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-11 11:39:45 +08:00
Dillon Ngo c52b577c19 Cleanup + Code Refactor 2025-08-11 04:59:58 +08:00
Dillon Ngo 8f6443d536 Merge branch 'dillon/90-e-invoice-shipping-portal-e-2' into vapor/production 2025-08-09 23:23:18 +08:00
Dillon Ngo 41ccd9dcd1 Merge branch 'dillon/90-e-invoice-shipping-portal-e-2' into vapor/staging 2025-08-09 22:36:07 +08:00
Dillon Ngo 5414be594d Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 21:16:05 +08:00
Dillon Ngo 0625c37cdc Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 20:30:42 +08:00
Dillon Ngo bdc45282a4 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 20:12:37 +08:00
Dillon Ngo a716a7a38b Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 19:55:05 +08:00
Dillon Ngo b3d904f3c8 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 19:16:29 +08:00
Dillon Ngo d8f3f50bb0 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 18:44:31 +08:00
Dillon Ngo 6d26f690c0 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 18:10:53 +08:00
Dillon Ngo f061b5eb86 Debug an old 504 problem at payment-and-billing page > pending payment tab with no data 2025-08-09 17:35:05 +08:00
Dillon Ngo e83e8aa5c8 Merge branch 'dillon/90-e-invoice-shipping-portal-b-debug-1' into dillon/90-e-invoice-shipping-portal-e-2 2025-08-09 17:24:43 +08:00
Dillon Ngo b6e4bbd94c Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-08-08 22:21:03 +08:00
Dillon Ngo 456f57aadc Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-08-08 22:20:37 +08:00
Dillon Ngo ca8e69b17a E-Invoice - State list to only show Malaysia states 2025-08-08 22:08:13 +08:00
Edmond Lang 73219ae057 Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2025-08-06 21:44:13 +08:00
Edmond Lang d99566a431 sin yee's request: add email for debtor's export 2025-08-06 21:43:45 +08:00
Dillon Ngo 842616f28b Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/staging 2025-08-05 19:48:53 +08:00
Dillon Ngo 6ce38e5751 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-08-05 19:48:05 +08:00
Dillon Ngo 8564667c62 Fix a problem reported by Eileen where storage invoice has negative charges 2025-08-05 19:47:42 +08:00
Edmond Lang 06a0795f72 Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging 2025-08-05 17:27:28 +08:00
Edmond Lang 7da665ca5b Fix: negative storage fee issue 2025-08-05 17:27:04 +08:00
Edmond Lang 2cee63789b Fix: negative storage fee issue 2025-08-05 17:14:50 +08:00
Dillon Ngo 8fbd377965 E-Invoice - Emergency fix error reported by Eileen pending approval list at payment & billing page not showing anything 2025-08-04 17:25:04 +08:00
Dillon Ngo 11ac78881c Merge branch 'dillon/90-e-invoice-shipping-portal-f' into vapor/production 2025-07-31 23:57:30 +08:00
Dillon Ngo c6efb9a2b2 Merge branch 'dillon/90-e-invoice-shipping-portal-f' into vapor/staging 2025-07-31 23:43:39 +08:00
Dillon Ngo cc49336a4d Merge branch 'dillon/90-e-invoice-shipping-portal-b-2' into vapor/production 2025-07-30 22:11:37 +08:00
Dillon Ngo 2bc21eec16 Merge branch 'dillon/90-e-invoice-shipping-portal-b-2' into vapor/staging 2025-07-30 22:01:56 +08:00
Dillon Ngo 1380d99109 E-Invoice - Project 27: Import Tax Entity, Customers Data Report 2025-07-30 21:44:55 +08:00
Edmond Lang 42e6e82df8 if billing address is null, when update e invoice details, add billing address 2025-07-24 21:49:24 +08:00
Dillon Ngo 7cac5b937f E-Invoice - IZYIM DOC DELIVERY - Part 2 (updated business logic) 2025-07-24 17:55:30 +08:00
Dillon Ngo 812f16a191 E-Invoice - IZYIM DOC DELIVERY - Part 2 (updated business logic) 2025-07-24 17:47:44 +08:00
Dillon Ngo 1073b6484c Merge branch 'dillon/90-e-invoice-shipping-portal-e' into dillon/90-e-invoice-shipping-portal-b-2 2025-07-24 16:46:15 +08:00
Dillon Ngo 549bf98725 E-Invoice - New request from Anitha billing address should follow einvoice address if exist at Pending Invoice tab at payment and billing page 2025-07-24 06:18:14 +08:00
Dillon Ngo e3afc2b008 Fix Paid Group Invoices 504 error 2025-07-09 01:19:02 +08:00
Dillon Ngo d0decc6c7b Merge branch 'vapor/production' into dillon/90-e-invoice-shipping-portal-e 2025-07-09 00:11:32 +08:00
Dillon Ngo 312b467564 Paid Group Invoices 504 error debug 2025-07-08 23:32:16 +08:00
Dillon Ngo 7adf03cf06 E-Invoice - IZYIM DOC DELIVERY - Part 2 - debug 2025-07-08 13:21:19 +08:00
Dillon Ngo 018c3eb755 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-08 02:42:43 +08:00
Dillon Ngo b8707fbb0d Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-08 02:42:25 +08:00
Dillon Ngo 134e0d86ea E-Invoice - Disable auto generate E-Invoice 2025-07-08 02:42:05 +08:00
Dillon Ngo 3d70a42758 E-Invoice - IZYIM DOC DELIVERY - Part 2 (updated business logic) 2025-07-08 02:39:20 +08:00
Dillon Ngo 9ef56454a0 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-07 23:30:03 +08:00
Dillon Ngo ea1c447fa1 Fix a UI problem reported by Joanne for clarity 2025-07-07 23:29:49 +08:00
Dillon Ngo 79679fe2e0 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-07 23:15:28 +08:00
Dillon Ngo 5c1a4536f6 Fix a problem reported by Yien where admin cannot approve an invoice 2025-07-07 23:15:13 +08:00
Dillon Ngo 345c8d24ca E-Invoice - IZYIM DOC DELIVERY - Part 2 2025-07-07 05:36:50 +08:00
Dillon Ngo d986787c4c Merge branch 'dillon/90-e-invoice-shipping-portal-e-1' into dillon/90-e-invoice-shipping-portal-b-2 2025-07-06 19:31:16 +08:00
Dillon Ngo 3281625e92 Looked into a 504 error order show page 2025-07-06 03:15:52 +08:00
Dillon Ngo 71e9a479d9 Looked into a 504 error order show page 2025-07-06 01:58:16 +08:00
Dillon Ngo 5fef38a04b Looked into a 504 error order show page 2025-07-05 16:01:42 +08:00
Dillon Ngo bf22b86a02 Looked into a 504 error order show page 2025-07-05 14:52:50 +08:00
Dillon Ngo 3b0738219f E-Invoice - Fix a problem with normal invoice shown to user opted in for einvoice 2025-07-05 01:58:24 +08:00
Dillon Ngo 18434903ac Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-04 00:13:34 +08:00
Dillon Ngo c2d51fc502 E-Invoice - Hide 'Change Billing Address' button when user already opt in for e-invoice 2025-07-04 00:11:24 +08:00
Dillon Ngo be0d10416b Merge branch 'dillon/90-e-invoice-shipping-portal-b' into vapor/production 2025-07-03 13:53:09 +08:00
Dillon Ngo 9cc80e6965 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into dillon/90-e-invoice-shipping-portal-b-2 2025-07-03 06:24:10 +08:00
Dillon Ngo 9991524a2e Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-03 06:17:03 +08:00
Dillon Ngo 7808d0d5ae Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-03 06:16:12 +08:00
Dillon Ngo 3d7d571370 E-Invoice -
Allow SSM Registration / Identification Card number to be upda
ted without a document upload mainly for old customer
2025-07-02 19:02:14 +08:00
Dillon Ngo 955b454630 E-Invoice -
Allow SSM Registration / Identification Card number to be upda
ted without a document upload mainly for old customer
2025-07-02 18:54:24 +08:00
Dillon Ngo f45ea797d6 E-Invoice -
Allow SSM Registration / Identification Card number to be upda
ted without a document upload mainly for old customer
2025-07-02 18:40:46 +08:00
Dillon Ngo efd734bbdb Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-07-02 00:48:32 +08:00
Dillon Ngo 0c849ee302 E-Invoice - New request to allow user to change of mi
nd when filling up einvoice info form to opt out when they already opt in for e-invoice
2025-07-02 00:13:02 +08:00
Edmond Lang 9c9d4fe594 update menu icon 2025-07-01 12:37:09 +08:00
Dillon Ngo 167216c26f Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-06-30 23:48:46 +08:00
Dillon Ngo d97796d885 E-Invoice - Disable maintenance page for normal user 2025-06-30 23:33:05 +08:00
Dillon Ngo 2bd66f6786 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-06-30 15:46:33 +08:00
Dillon Ngo c64f6f5da5 E-Invoice - Sin Yee requestion for ability for admin to edit SSM Registration and Identification Card 2025-06-30 15:46:09 +08:00
Dillon Ngo da7843c5df E-Invoice - Sin Yee requestion for ability for admin to edit SSM Registration and Identification Card 2025-06-30 00:45:41 +08:00
Dillon Ngo 2463e419c8 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-06-29 17:53:18 +08:00
Dillon Ngo 2cbee23234 E-Invoice - Debug Pending Payment at /payment-and-billing no data (undo) 2025-06-29 17:52:07 +08:00
Dillon Ngo dca9682c59 E-Invoice - Debug Pending Payment at /payment-and-billing no data (undo) 2025-06-29 17:38:52 +08:00
Dillon Ngo b417ba074e E-Invoice - Sin Yee request for einvoice postcode need to able to input starting with 0, e.g. 02600 2025-06-29 16:22:15 +08:00
Edmond Lang 5767ab1853 add new menu "E-Invoice Guideline" - open in new tab 2025-06-28 23:41:03 +08:00
Dillon Ngo a7aad5373b E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 19:51:52 +08:00
Dillon Ngo cad314d6a7 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 19:25:57 +08:00
Dillon Ngo 137dfe0669 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 17:14:33 +08:00
Dillon Ngo 52b839c741 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 16:32:22 +08:00
Dillon Ngo d8ee9f1e67 Merge branch 'dillon/90-e-invoice-shipping-portal-e' into vapor/production 2025-06-28 16:13:14 +08:00
Dillon Ngo 620b9651a3 Merge branch 'dillon/90-e-invoice-shipping-portal-a' into dillon/90-e-invoice-shipping-portal-e 2025-06-28 16:11:54 +08:00
Dillon Ngo c37ed89a73 E-Invoice - Minor amendment requested by Harry on TIN length validation 2025-06-28 15:57:09 +08:00
Dillon Ngo f56548efa7 E-Invoice - Minor amendment requested by Harry on TIN length validation 2025-06-28 15:30:16 +08:00
Dillon Ngo 679bb9978a E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 13:49:32 +08:00
Dillon Ngo 2c6b8ac7ea Merge branch 'dillon/90-e-invoice-shipping-portal-a' into dillon/90-e-invoice-shipping-portal-b-debug-1 2025-06-28 13:46:44 +08:00
Dillon Ngo 9b7a5a6f1e Merge branch 'dillon/90-e-invoice-shipping-portal-a' into dillon/90-e-invoice-shipping-portal-b 2025-06-28 13:46:19 +08:00
Dillon Ngo fbf5fb290e Merge branch 'dillon/90-e-invoice-shipping-portal-a' into vapor/production 2025-06-28 13:45:49 +08:00
Dillon Ngo 63902e9266 E-Invoice - Allow admin to update E-Invoice info on behalf of customer 2025-06-28 13:45:24 +08:00
Dillon Ngo 1a318ead7e E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 13:35:42 +08:00
Dillon Ngo bd8b212f6f E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 12:49:18 +08:00
Dillon Ngo 59fbdfa789 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 12:27:52 +08:00
Dillon Ngo 2bd96075cc E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 12:14:20 +08:00
Dillon Ngo c046a533d8 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 11:35:02 +08:00
Dillon Ngo 8e6c70c67b E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 11:14:44 +08:00
Dillon Ngo 878e69fdb0 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 11:00:34 +08:00
Dillon Ngo e047632de0 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 10:45:55 +08:00
Dillon Ngo 8d75da288a E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 10:32:48 +08:00
Dillon Ngo ab5a94cbc0 E-Invoice - Debug Pending Payment at /payment-and-billing no data 2025-06-28 10:16:48 +08:00
Edmond Lang 17d8c82cff update /export/all-customers-info-for-lark-system, fix duplications on customer connections - use the first one 2025-06-27 16:53:28 +08:00
Edmond Lang 8f80c7ac8c Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/production 2025-06-27 16:24:49 +08:00
Edmond Lang 9c09b1e01d update /export/all-customers-info-for-lark-system, fix duplications on customer connections - use the first one 2025-06-27 16:21:28 +08:00
Dillon Ngo 6911eba119 E-Invoice - Updated maintenance message 2025-06-27 12:52:05 +08:00
Dillon Ngo c564a8ed70 E-Invoice - Updated maintenance message 2025-06-27 12:46:18 +08:00
Dillon Ngo 273f81f9a8 E-Invoice - Updated maintenance message 2025-06-27 12:25:09 +08:00
Dillon Ngo ba1b287cbb E-Invoice - Minor UI update 2025-06-27 01:11:32 +08:00
Dillon Ngo 40d133aaab E-Invoice - Minor text display update 2025-06-27 00:43:41 +08:00
Dillon Ngo d52a52241c Merge branch 'dillon/90-e-invoice-shipping-portal-a' into dillon/90-e-invoice-shipping-portal-b 2025-06-27 00:40:19 +08:00
Dillon Ngo df9468d568 Merge branch 'dillon/90-e-invoice-shipping-portal-a' into vapor/production 2025-06-27 00:36:39 +08:00
Dillon Ngo 6d12f2d239 E-Invoice - Allow admin to view order without triggering rule checking 2025-06-27 00:34:14 +08:00
Dillon Ngo fe18d8bf5a Merge branch 'dillon/90-e-invoice-shipping-portal-a' into vapor/production 2025-06-27 00:26:57 +08:00
Dillon Ngo 3913d3c738 E-Invoice - Remove outdated code 2025-06-27 00:26:14 +08:00
Dillon Ngo be9df4afe3 Merge branch 'dillon/90-e-invoice-shipping-portal-a' into vapor/production 2025-06-27 00:07:06 +08:00
Dillon Ngo 82512bf4f6 E-Invoice - Sync some code fixes from Exchange to Shipping Portal 2025-06-26 23:13:17 +08:00
Dillon Ngo a9d4f3c839 E-Invo
ice - Maintenance notice for
normal user except admin
2025-06-26 20:04:11 +08:00
Dillon Ngo 218f0f8bca E-Invoice - IZYIM DOC DELIVERY 2025-06-26 18:29:15 +08:00
Edmond Lang 79db1dedc9 update /export/all-customers-info-for-lark-system, add is credit term customer 2025-06-26 17:45:13 +08:00
Edmond Lang 2aabd07ec4 update /export/all-customers-info-for-lark-system, add Debtor Code 2025-06-26 16:29:09 +08:00
Dillon Ngo 1d2eac806e E-Invoice - Initial commit main feature integration 2025-06-20 14:34:13 +08:00
Dillon Ngo 8d0fba2d21 E-Invoice - Initial commit main feature integration 2025-06-20 10:40:46 +08:00
Dillon Ngo b4c239f8a9 E-Invoice - Initial commit main feature integration 2025-06-20 10:00:26 +08:00
Dillon Ngo b3e8e5ea54 E-Invoice - Initial commit main feature integration 2025-06-20 09:41:17 +08:00
Edmond Lang ed4ec29d63 update /export/all-customers-info-for-lark-system 2025-06-13 00:44:03 +08:00
Edmond Lang ba5fd5f92d update /export/all-customers-info-for-lark-system 2025-06-13 00:36:23 +08:00
Edmond Lang e6028701db fix /export/all-customers-info-for-lark-system - handle json response 2025-06-12 23:53:47 +08:00
Edmond Lang fb2ca65168 add frontend for download /export/all-customers-info-for-lark-system 2025-06-12 23:31:09 +08:00
Edmond Lang 8ab9a0ba2d fix /export/all-customers-info-for-lark-system for php 7.4 issue 2025-06-12 23:03:38 +08:00
Edmond Lang 78ac0dbd8f test fix - {"message": "Endpoint request timed out"} 2025-06-12 22:48:58 +08:00
Edmond Lang e9c3af51c4 fix /export/all-customers-info-for-lark-system for php 7.4 issue 2025-06-12 22:35:10 +08:00
Edmond Lang d6cfd85aa2 add /export/all-customers-info-for-lark-system 2025-06-12 22:18:53 +08:00
Dillon Ngo 844527417a Quick fix problem reported by GaryHoo - IZYIM order order quantity is different 2025-05-27 20:04:42 +08:00
Dillon Ngo f725933f7e Quick fix problem reported by Yien - IZYIM unable to claim unclaimed packing list, after key in the correct order number and click confirm, there is no response 2025-05-27 19:37:44 +08:00
Dillon Ngo d5a5f9e730 UI/UX + syntax fix 2025-05-13 11:33:58 +08:00
Dillon Ngo 62f892dfd1 UI/UX + syntax fix 2025-05-13 04:34:58 +08:00
Dillon Ngo 82f5d4c2bc UI/UX + syntax fix 2025-05-13 04:09:36 +08:00
Dillon Ngo a1eebe7f65 UI/UX + syntax fix 2025-05-13 02:45:40 +08:00
Edmondlang 18bd36217b add function to add contact person 2025-05-06 11:16:06 +08:00
Dillon Ngo 772fd583b5 Quick patch for missing parcel from YD integration reported by Yan - case number 2 on 20250502 2025-05-02 21:21:50 +08:00
Dillon Ngo 57812656fd Quick patch for missing parcel from YD integration reported by Yan - case number 2 on 20250502 2025-05-02 21:02:51 +08:00
Dillon Ngo 3933728a19 Quick patch for missing parcel from YD integration reported by Yan - case number 2 on 20250502 2025-05-02 20:47:01 +08:00
Dillon Ngo 8ce8ed813a Quick patch for missing parcel from YD integration reported by Yan - using command 2025-05-01 18:56:12 +08:00
Dillon Ngo 50b2f00bdc Merge branch 'dillon/83-yd-order-tracking-query-ui' into vapor/production 2025-04-28 22:24:11 +08:00
Dillon Ngo 54c23c9f38 New UI to show YD Order Tracking infomation - Disable unit testing for production deployment 2025-04-28 22:23:53 +08:00
Dillon Ngo 15570de9fb Merge branch 'dillon/83-yd-order-tracking-query-ui' into vapor/production 2025-04-28 22:20:55 +08:00
Edmondlang b21cdba5ae upon payment completion, need to redirect to order.show instead of order.details 2025-04-28 16:05:54 +08:00
Edmondlang fe8395b250 Yien's request: remove the MXXXXXXXX below the order number? we shouldn't show it to customer 2025-04-25 10:28:18 +08:00
Dillon Ngo 61f01ed39b New UI to show YD Order Tracking infomation - Testing 2025-04-24 12:35:32 +08:00
Dillon Ngo 6e2b2e5f65 New UI to show YD Order Tracking infomation - Harry feedback update 2025-04-23 12:48:41 +08:00
Dillon Ngo b4b509b0d1 New UI to show YD Order Tracking infomation - Harry feedback update 2025-04-23 12:39:43 +08:00
Dillon Ngo 6bafc49a22 New UI to show YD Order Tracking infomation - Testing 2025-04-19 19:46:00 +08:00
Edmondlang 4e4bf96a07 revert exportGroupTransaction. Wrong updates 2025-04-18 10:18:30 +08:00
Edmondlang 2e9c3000a6 remove the time from the "Date" column
Request from Azril:

I’ve attached 3 files below:
AutoMapping Excel – downloaded from the Exchange Portal
Paid Invoice Excel – from the IzyIM Portal
Aging Report Excel – also from the IzyIM Portal
What we need from you is to remove the time from the "Date" column in each file. We only need the date value moving forward.
2025-04-17 18:31:38 +08:00
Dillon Ngo 3e4d52d2ff New UI to show YD Order Tracking infomation - fixes for feedback on 20250408 2025-04-16 22:17:20 +08:00
Dillon Ngo f25f5ebb41 New UI to show YD Order Tracking infomation - fixes for feedback on 20250408 2025-04-16 22:13:50 +08:00
Edmondlang 404758c851 fix bug : Error: ob_end_clean(): failed to delete buffer.
use AWSS3Helper if filesystemDriver = s3
2025-04-16 18:18:08 +08:00
Edmondlang f6d00383cb Safely clean output buffer only if it's started and not already cleaned 2025-04-16 14:40:07 +08:00
Edmondlang 33dfdde9a0 Error: ob_end_clean(): failed to delete buffer. No buffer to delete.
Fix: Safely clean output buffer if it exists
2025-04-16 10:56:21 +08:00
Edmondlang 9b1a5b633c code update for: add function to change mobile no 2025-04-15 20:13:50 +08:00
Edmondlang b0cd0cca4d remove the time from the "Date" column
Request from Azril:

I’ve attached 3 files below:
AutoMapping Excel – downloaded from the Exchange Portal
Paid Invoice Excel – from the IzyIM Portal
Aging Report Excel – also from the IzyIM Portal
What we need from you is to remove the time from the "Date" column in each file. We only need the date value moving forward.
2025-04-15 19:49:26 +08:00
Edmondlang c0e60e5d3b add function to change mobile no 2025-04-15 19:24:11 +08:00
Dillon Ngo d093b774c2 New UI to show YD Order Tracking infomation - Testing 2025-04-14 15:29:21 +08:00
Dillon Ngo 3fa4b498e9 New UI to show YD Order Tracking infomation - Testing 2025-04-14 15:14:44 +08:00
Dillon Ngo ccd06ff740 New UI to show YD Order Tracking infomation - Testing 2025-04-14 13:53:22 +08:00
Dillon Ngo c209f6e4ed New UI to show YD Order Tracking infomation - Testing 2025-04-14 12:58:00 +08:00
Dillon Ngo f4d8ece23f New UI to show YD Order Tracking infomation - Testing 2025-04-14 12:44:50 +08:00
Dillon Ngo 215e4c72d3 New UI to show YD Order Tracking infomation - Testing 2025-04-14 12:20:54 +08:00
Dillon Ngo 386f5740f4 New UI to show YD Order Tracking infomation - Testing 2025-04-14 10:20:09 +08:00
Dillon Ngo 78c43fd7a4 New UI to show YD Order Tracking infomation - Testing 2025-04-14 10:05:45 +08:00
edmondlang d076892176 invoice date in the order payment section is wrong. It should be created_at date 2025-04-09 17:21:52 +08:00
Dillon Ngo 06b9695528 New UI to show YD Order Tracking infomation - Testing 2025-04-03 09:58:01 +08:00
Dillon Ngo 0a54f46b91 New UI to show YD Order Tracking infomation - Testing 2025-04-03 09:49:58 +08:00
Dillon Ngo 83b3d0c725 New UI to show YD Order Tracking infomation - Testing 2025-04-03 09:42:13 +08:00
Dillon Ngo de7331547c New UI to show YD Order Tracking infomation - Testing 2025-04-03 09:38:17 +08:00
Dillon Ngo 4daaac476d New UI to show YD Order Tracking infomation - Testing 2025-04-03 09:26:05 +08:00
Dillon Ngo fbf036d4b8 New UI to show YD Order Tracking infomation 2025-04-03 08:02:18 +08:00
Dillon Ngo 055e720e9f New UI to show YD Order Tracking infomation 2025-04-03 07:18:31 +08:00
Dillon Ngo 5a0b2d5a86 New UI to show YD Order Tracking infomation 2025-03-25 07:02:01 +08:00
Dillon Ngo 8f6f9893bb New UI to show YD Order Tracking infomation 2025-03-25 06:57:50 +08:00
Dillon Ngo 3255020f11 New UI to show YD Order Tracking infomation 2025-03-25 06:54:44 +08:00
Dillon Ngo 8c16277c6c New UI to show YD Order Tracking infomation 2025-03-25 06:36:32 +08:00
Dillon Ngo 87aeb0ae59 New UI to show YD Order Tracking infomation 2025-03-25 06:28:10 +08:00
Dillon Ngo 76b14cd667 New UI to show YD Order Tracking infomation 2025-03-25 06:24:43 +08:00
Dillon Ngo 6affa86c92 Quick patch for missing YD integration - using web route 2025-03-25 03:59:43 +08:00
Dillon Ngo a8c4661b2d New UI to show YD Order Tracking infomation 2025-03-24 06:40:55 +08:00
Dillon Ngo acb42ef3ab New UI to show YD Order Tracking infomation 2025-03-24 05:48:00 +08:00
Dillon Ngo 21f1a14e6f New UI to show YD Order Tracking infomation 2025-03-24 05:20:53 +08:00
Dillon Ngo d5a9e3923e New UI to show YD Order Tracking infomation 2025-03-22 11:39:31 +08:00
Dillon Ngo 7416aa00ac Quick patch for missing YD integration - using web route 2025-03-21 09:21:01 +08:00
Dillon Ngo 437765bdbb Quick patch for missing YD integration - using web route 2025-03-19 09:01:05 +08:00
Dillon Ngo 9c7ed93a54 Quick patch for missing YD integration 2025-03-18 12:31:02 +08:00
edmondlang a3b08a7c11 fix bug error web "/container/billing/{month}/{year}" 2025-02-17 17:43:52 +08:00
edmondlang e3bc918bd8 add new segment - No Extra Centimeter Charged 2025-02-14 00:30:53 +08:00
Dillon Ngo a23a632b87 Debug approve payment problem 2025-02-01 21:31:32 +08:00
Dillon Ngo 651092aa65 Debug approve payment problem 2025-02-01 21:09:44 +08:00
Dillon Ngo fe79d5bcef Debug approve payment problem 2025-02-01 19:01:24 +08:00
Dillon Ngo 6ea7517187 Debug approve payment problem 2025-02-01 18:45:05 +08:00
Dillon Ngo 4e68eefe4d Debug approve payment problem 2025-02-01 18:21:03 +08:00
Dillon Ngo 48fc02f2d2 Debug approve payment problem 2025-02-01 18:00:12 +08:00
Dillon Ngo 942c94c821 Debug approve payment problem 2025-02-01 02:20:10 +08:00
Dillon Ngo bfb76bc512 Debug approve payment problem 2025-02-01 02:00:07 +08:00
Dillon Ngo 8e3cdef4e1 Debug approve payment problem 2025-02-01 01:04:15 +08:00
Dillon Ngo c798d96238 Debug approve payment problem 2025-02-01 00:40:52 +08:00
Dillon Ngo 64d1b91fa3 Debug approve payment problem 2025-01-31 23:51:15 +08:00
Dillon Ngo 2ff63c8d0d Debug approve payment problem 2025-01-31 23:26:52 +08:00
Dillon Ngo b57a7cb2bb Debug approve payment problem 2025-01-31 23:07:20 +08:00
Dillon Ngo bf5c5574d6 Debug approve payment problem 2025-01-31 22:34:45 +08:00
Dillon Ngo 74a1f2af4c Debug approve payment problem 2025-01-31 22:11:03 +08:00
Dillon Ngo 95d230d64f Debug approve payment problem 2025-01-31 21:58:16 +08:00
Dillon Ngo 88564c661f Debug approve payment problem 2025-01-31 21:33:14 +08:00
edmondlang 6ce7f7dc91 add Google Tag Manager (GTM) so that the chat daddy code can work 2025-01-21 13:08:14 +08:00
edmondlang b91a8635d5 disable crisp 2025-01-21 12:36:19 +08:00
edmondlang 236b3769f8 add more district in seeder 2025-01-21 12:35:16 +08:00
edmondlang 3c4a19d4be update order Resource 2024-12-17 18:03:43 +08:00
edmondlang 269fbcbd66 revert logging for UpdateDoFromYDPortalProcessor response 2024-12-16 14:33:32 +08:00
edmondlang 603a67c770 add created_at for ExportsSegmentCustomers 2024-12-16 13:16:32 +08:00
edmondlang bb0832b8b0 add logging for UpdateDoFromYDPortalProcessor response 2024-12-16 12:22:29 +08:00
Dillon Ngo 8276fef3e1 YD API - Added logs for debugging 2024-12-15 09:46:54 +08:00
edmondlang aa4fcae07e update export segment customers 2024-12-13 20:34:32 +08:00
edmondlang 05adf091a8 update export segment customers 2024-12-13 20:00:07 +08:00
edmondlang b5e5e88a6a export segment customers 2024-12-13 18:41:11 +08:00
Dillon Ngo 32bad3bf07 Data patch for order already PAID, but still showing unpaid 2024-12-11 02:19:48 +08:00
edmondlang 1508fb5f1a add new advertisement - Tax Refund Service 2024-11-29 20:46:14 +08:00
edmondlang 70a2bdec48 change all 'Tax Rebate' to 'Tax Refund' 2024-11-26 19:05:01 +08:00
Dillon Ngo f5df0c9f1f Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/production 2024-11-26 15:58:51 +08:00
Dillon Ngo e50bab014d Laravel Vapor - Fix a problem where packages not updating correct status 2024-11-26 15:58:31 +08:00
edmondlang 1933787fc3 addd function to revert identification document approval 2024-11-21 14:46:22 +08:00
Dillon Ngo 5535f13aff Merge branch 'dillon/34.8a-enhancement' into vapor/production 2024-11-18 20:56:19 +08:00
Dillon Ngo 3a2131a04d Laravel Vapor - Enhancement to prevent customer from underpay when a payment transaction include storage invoice(s) 2024-11-17 13:51:54 +08:00
Dillon Ngo c8e8c9cb0e Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/production 2024-11-16 15:49:18 +08:00
Dillon Ngo 0e617f5ce2 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-16 15:49:00 +08:00
Dillon Ngo ccb77ce56c Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/production 2024-11-16 14:29:21 +08:00
Dillon Ngo 8f8c3ca660 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-16 14:28:43 +08:00
Dillon Ngo 922718f7c2 Laravel Vapor - Enhancement to prevent customer from underpay when a payment transaction include storage invoice(s) 2024-11-16 09:17:15 +08:00
Dillon Ngo 54e6041fe5 Laravel Vapor - Enhancement to prevent customer from underpay when a payment transaction include storage invoice(s) 2024-11-15 18:34:08 +08:00
Dillon Ngo 141f1ed9d5 Laravel Vapor - Enhancement to prevent customer from underpay when a payment transaction include storage invoice(s) 2024-11-15 09:17:16 +08:00
Dillon Ngo 61d7ad22e7 Laravel Vapor - Enhancement to prevent customer from underpay when a transaction also invoice storage invoices 2024-11-14 14:03:29 +08:00
Dillon Ngo 798bf4e70e Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/production 2024-11-14 12:02:24 +08:00
Dillon Ngo aa833f7a9f Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-14 11:48:26 +08:00
Dillon Ngo 8dd3fbf97a Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/production 2024-11-13 21:38:36 +08:00
Dillon Ngo 63e1b767fc Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-13 21:37:20 +08:00
Dillon Ngo 60ff1c5130 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-13 21:36:56 +08:00
Dillon Ngo 22aac2df04 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-13 10:54:17 +08:00
edmondlang 33d65be53b tax rebate feedback:
1. add the word "退税“ behind the order number as requested by YD
2. the word "供应商” should change to “联络人”
3, Tax Rebate Refund only applicable on GZ warehouse. YW and FS warehouse cannot do Tax Rebate. Can you block or disallow the tax rebate section for this both warehouse ?
4. It will be good if a delete button can be implemented in the Created Tax Rebate QR code, so customer can remove them if they created wrongly
2024-11-13 00:18:16 +08:00
Dillon Ngo d2f6f4e8a1 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-12 17:45:01 +08:00
Dillon Ngo 299c384cb2 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-12 13:48:06 +08:00
Dillon Ngo be171f550b Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-12 12:18:07 +08:00
Dillon Ngo 8295b80f73 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-11-12 09:24:09 +08:00
Dillon Ngo 67969c63d3 Laravel Vapor - Logs output minor amendments (code sync with Exchange) 2024-11-12 09:05:45 +08:00
Dillon Ngo 2074c8661a Laravel Vapor - Remove comments 2024-11-12 08:01:59 +08:00
Dillon Ngo 9518928b7d Laravel Vapor - Remove comments 2024-11-12 07:59:38 +08:00
Dillon Ngo 634a39b1ea Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-11-11 15:08:14 +08:00
Dillon Ngo 5808fd0b2f Laravel Vapor - Fix missing info with order packages where in China Warehoue 2024-11-11 15:06:30 +08:00
Dillon Ngo d7ce1df29b Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-11 15:01:31 +08:00
Dillon Ngo eac3f31351 Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-11 14:48:05 +08:00
Dillon Ngo 95a9cba32d Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-11 13:22:28 +08:00
Dillon Ngo 26812f723a Laravel Vapor - YD API integration code rewrite to fix eta/etd 2024-11-11 12:48:52 +08:00
edmondlang 0734447937 fix bug - /orders search component not working 2024-11-06 18:38:48 +08:00
Dillon Ngo e3f57fffd6 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-11-05 04:21:27 +08:00
Dillon Ngo b4bc441a5b Laravel Vapor - Update custom logs retention period (sync code from Exchange) 2024-11-05 04:09:08 +08:00
Dillon Ngo d678440032 Laravel Vapor - Update custom logs retention period (sync code from Exchange) 2024-11-05 03:28:17 +08:00
edmondlang 4f95520826 Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/production 2024-11-04 16:46:22 +08:00
edmondlang 33a271a54c fix bug - /orders search component not working 2024-11-04 16:45:59 +08:00
Dillon Ngo 3e3728a089 Laravel Vapor - move certain environment variables to source code vapor YAML file 2024-11-02 07:04:29 +08:00
Dillon Ngo dc8a1b0325 Merge branch 'dillon/34.8a-enhancement' into vapor/production 2024-11-02 06:08:31 +08:00
edmondlang 4a6e5f7130 fix bug create order add address extra fields 2024-11-01 17:27:55 +08:00
Dillon Ngo 6b78ca3d46 Laravel Vapor - move certain environment variables to source code vapor YAML file 2024-11-01 11:18:47 +08:00
Dillon Ngo 38612253d0 Laravel Vapor - move certain environment variables to source code vapor YAML file 2024-11-01 11:00:41 +08:00
Dillon Ngo 2fccdf4f7e Laravel Vapor - Enhancement to prevent customer from underpay when a transaction also invoice storage invoices 2024-11-01 10:05:16 +08:00
edmondlang 56d48598df deploy tax rebate QR and address extra fields 2024-10-31 18:13:10 +08:00
edmondlang 4f77da822b Merge branch 'vapor-address-extra-fields' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/production 2024-10-31 18:05:50 +08:00
edmondlang cf6fd2dad9 Merge branch 'vapor/tax-rebate-qr' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/production 2024-10-31 18:05:35 +08:00
Dillon Ngo 6cb1ec82f3 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-30 12:42:36 +08:00
Dillon Ngo 733b9cdfcc Laravel Vapor - sync code from Exchange date filter for reports download at /downloads page 2024-10-30 12:24:50 +08:00
Dillon Ngo 4a2860449f Laravel Vapor - Enhancement to prevent customer from underpay when a transaction also invoice storage invoices 2024-10-30 10:02:18 +08:00
Dillon Ngo 6fbea32761 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-23 03:06:31 +08:00
Dillon Ngo 50624b3d75 Laravel Vapor - Debug YD API call 2024-10-23 03:06:24 +08:00
Dillon Ngo dddbeb2ebd Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-23 01:37:26 +08:00
Dillon Ngo 22714a2763 Laravel Vapor - Debug YD API call 2024-10-23 01:37:01 +08:00
edmondlang bc2c9610ee update tax rebate qr 2024-10-22 23:50:44 +08:00
edmondlang 3dc234321c update tax rebate qr 2024-10-22 23:29:51 +08:00
edmondlang 4a65031aa3 tax rebate qr 2024-10-22 22:58:06 +08:00
Dillon Ngo 4dd30b29c0 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-19 03:17:35 +08:00
Dillon Ngo ac6211cf5f Laravel Vapor - FIx a problem where order page not showing any thing 2024-10-19 03:17:20 +08:00
Dillon Ngo 65a622cd7b Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-19 02:07:24 +08:00
Dillon Ngo bba600725e Laravel Vapor - Data patch for underpay group payments 2024-10-19 01:07:58 +08:00
Dillon Ngo 4fa80a2a88 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-18 12:15:49 +08:00
Dillon Ngo 64f52f2c11 Laravel Vapor - FIx a problem where order page not showing any thing 2024-10-18 12:15:35 +08:00
Dillon Ngo 72c1b2fb2e Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-16 03:52:39 +08:00
Dillon Ngo b4f5328a21 Laravel Vapor - Minor typo error amendment 2024-10-16 03:23:05 +08:00
Dillon Ngo 7aee324294 Merge branch 'dillon/34.8-jenkins-vapor' into vapor/production 2024-10-16 01:51:40 +08:00
Dillon Ngo 7930e45393 Laravel Vapor - Update new RDS endpoint 2024-10-16 01:51:18 +08:00
Dillon Ngo 052dc4e5a0 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-16 01:21:43 +08:00
edmondlang 32bd000195 update address extra fields 2024-10-16 00:45:25 +08:00
edmondlang 29477c179e remove logging 2024-10-15 01:05:44 +08:00
edmondlang d5265c1254 update address extra fields 2024-10-15 01:01:31 +08:00
edmondlang f44497e50c address extra fields 2024-10-14 14:16:33 +08:00
Dillon Ngo 450d2c15f9 Laravel Vapor - Update new RDS Instance endpoint 2024-10-13 16:28:52 +08:00
Dillon Ngo 7b6ed51ce8 Laravel Vapor - New website under maintenance page 2024-10-12 23:50:22 +08:00
Dillon Ngo 30d99b8d79 Laravel Vapor - New website under maintenance page 2024-10-12 23:22:01 +08:00
edmondlang 7b0e271459 admin update new email for user 2024-10-12 15:23:12 +08:00
Dillon Ngo e6db981d5e Laravel Vapor - New UI for admin to download reports 2024-10-12 14:58:41 +08:00
Dillon Ngo d4e008380b Laravel Vapor - New UI for admin to download reports 2024-10-12 14:44:15 +08:00
edmondlang bb08f5d872 admin update new email for user 2024-10-12 01:48:58 +08:00
Dillon Ngo 5b45d42aaa Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-10 18:13:24 +08:00
Dillon Ngo f1c7323a1d Laravel Vapor - New UI for admin to download reports 2024-10-10 17:30:27 +08:00
Dillon Ngo e8a17af3a6 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-10 17:10:03 +08:00
Dillon Ngo c67ca30100 Laravel Vapor - New UI for admin to download reports 2024-10-10 17:06:50 +08:00
Dillon Ngo 21ec1a582a Laravel Vapor - Fix a problem at container show page showing blank 2024-10-10 16:46:31 +08:00
Dillon Ngo 0b8aea4b60 Laravel Vapor - New UI for admin to download reports 2024-10-10 16:31:08 +08:00
Dillon Ngo 92cf194c07 Laravel Vapor - Fix another 504 issue when searching for container 2024-10-09 15:04:42 +08:00
Dillon Ngo 74ec1c949b Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-09 13:13:53 +08:00
Dillon Ngo 497666e582 Laravel Vapor - New schedule tasks and commands for token expiration for new user and password reset 2024-10-09 13:13:28 +08:00
Dillon Ngo 7953de1f7d Laravel Vapor - New schedule tasks and commands for token expiration for new user and password reset 2024-10-09 12:52:25 +08:00
Dillon Ngo dcca295c52 Laravel Vapor - New schedule tasks and commands for token expiration for new user and password reset 2024-10-09 12:22:50 +08:00
Dillon Ngo 283be0b8a4 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-08 20:07:11 +08:00
Dillon Ngo 3ac466f412 Laravel Vapor - Fix another 504 issue when searching for container 2024-10-08 19:49:30 +08:00
Dillon Ngo 87ffaa5b0d Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-08 18:13:29 +08:00
Dillon Ngo b5122e97c1 Laravel Vapor - Fix another 504 issue when searching for container 2024-10-08 17:57:03 +08:00
Dillon Ngo 940341a2be Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-08 17:33:31 +08:00
Dillon Ngo a956d4ac4c Laravel Vapor - Fix another 504 issue when searching for container 2024-10-08 17:33:10 +08:00
Dillon Ngo 4892555211 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-08 17:06:03 +08:00
Dillon Ngo a95f62b59a Laravel Vapor - Fix another 504 issue when searching for container 2024-10-08 16:52:03 +08:00
Dillon Ngo 821291f16f Laravel Vapor - Fix another 504 issue when searching for container 2024-10-08 16:06:24 +08:00
Dillon Ngo 0a7d93b034 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-08 00:23:33 +08:00
Dillon Ngo 2a9478f89a Laravel Vapor - Emergency fix cannot reset password 2024-10-08 00:22:39 +08:00
Dillon Ngo 58a4dabf09 Laravel Vapor - Commented out logs 2024-10-07 21:34:54 +08:00
Dillon Ngo 033b6a4c26 Laravel Vapor - Debug 2024-10-07 21:32:50 +08:00
Dillon Ngo 712d122d4a Laravel Vapor - Debug 2024-10-07 20:57:59 +08:00
Dillon Ngo e5498cffb8 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-05 14:46:04 +08:00
Dillon Ngo fc1f9f9f7e Laravel Vapor - New UI for admin to download reports 2024-10-05 14:32:54 +08:00
Dillon Ngo 077e719e69 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-05 14:15:45 +08:00
Dillon Ngo 1f1fb7d79a Laravel Vapor - Fix a problem with deployment 2024-10-05 14:14:59 +08:00
Dillon Ngo d0e2e17169 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-05 13:50:37 +08:00
Dillon Ngo bd8e30493f Laravel Vapor - New UI for admin to download reports 2024-10-05 13:34:21 +08:00
Dillon Ngo ff790885ab Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-04 02:56:36 +08:00
Dillon Ngo 7fc4324645 Laravel Vapor - New UI for admin to download reports 2024-10-04 02:56:07 +08:00
Dillon Ngo 69a898f7ee Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-04 02:38:22 +08:00
Dillon Ngo abad3cd591 Laravel Vapor - New UI for admin to download reports 2024-10-04 02:37:46 +08:00
Dillon Ngo 0e6d1b7633 Laravel Vapor - New UI for admin to download reports 2024-10-04 02:13:41 +08:00
Dillon Ngo 91576d9f7b Laravel Vapor - New UI for admin to download reports 2024-10-04 02:03:06 +08:00
Dillon Ngo 1606bc7426 Laravel Vapor - New UI for admin to download reports 2024-10-04 01:55:26 +08:00
Dillon Ngo 1f8351486f Laravel Vapor - New UI for admin to download reports 2024-10-04 01:50:00 +08:00
Dillon Ngo 9299c11131 Laravel Vapor - New UI for admin to download reports 2024-10-04 01:29:26 +08:00
Dillon Ngo 91b00baa07 Laravel Vapor - New UI for admin to download reports 2024-10-04 01:15:01 +08:00
Dillon Ngo 7d3e0c486f Laravel Vapor - New UI for admin to download reports 2024-10-04 00:41:10 +08:00
Dillon Ngo 87cf25a2f3 Laravel Vapor - New UI for admin to download reports 2024-10-04 00:20:54 +08:00
Dillon Ngo c3c9421e19 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-03 23:37:02 +08:00
Dillon Ngo e21804ceca Laravel Vapor - Fix a problem with deployment 2024-10-03 23:36:51 +08:00
Dillon Ngo d4ba2a2c43 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-03 23:29:16 +08:00
Dillon Ngo 38cdd37aea Laravel Vapor - New UI for admin to download reports 2024-10-03 22:41:35 +08:00
Dillon Ngo 5f6670ad91 Laravel Vapor - Fix a problem with deployment 2024-10-03 16:55:32 +08:00
Dillon Ngo 5799da5ae1 Laravel Vapor - Fix a problem with deployment 2024-10-03 16:37:08 +08:00
Dillon Ngo cd05d1bed3 Laravel Vapor - Fix a problem with deployment 2024-10-03 13:43:05 +08:00
Dillon Ngo 5753c63248 Laravel Vapor - Fix a problem with deployment 2024-10-03 13:09:51 +08:00
Dillon Ngo c01d5c993c Laravel Vapor - Fix a problem with deployment 2024-10-03 13:01:17 +08:00
Dillon Ngo 2c24c469f5 Laravel Vapor - Fix a problem with deployment 2024-10-03 12:54:20 +08:00
Dillon Ngo a18377df9f Laravel Vapor - Fix a problem with deployment 2024-10-03 12:24:01 +08:00
Dillon Ngo a99d19721c Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-03 12:02:44 +08:00
Dillon Ngo 753141ea81 Laravel Vapor - Fix a prolem when storage invoice is regenerated, storage invoices from other transactions of the same order gets deleted 2024-10-03 11:04:29 +08:00
Dillon Ngo 8a421e845e Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-02 10:03:53 +08:00
Dillon Ngo b26ed17008 Laraval Vapor - Look into Shipping Invoice kept regenerating even after user paid 2024-10-02 10:03:28 +08:00
Dillon Ngo 24fb998e4d Laravel Vapor - Making sure code meant for laravel vapor can run locally without any problem with default settings 2024-10-01 16:47:06 +08:00
Dillon Ngo 8459a784d0 Laravel Vapor - Making sure code meant for laravel vapor can run locally without any problem with default settings 2024-10-01 16:41:14 +08:00
Dillon Ngo c71827662c Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-10-01 16:13:39 +08:00
Dillon Ngo 3d98495f89 Laravel Vapor - Get rid of an error from logs: Trying to get property 'owner' of non-object 2024-10-01 15:54:32 +08:00
Dillon Ngo cb8a61947a Laravel Vapor - Disable vue polling component 2024-09-30 20:02:03 +08:00
Dillon Ngo 9b22be40b9 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-30 18:34:50 +08:00
Dillon Ngo c3b6247330 Laravel Vapor - Reinstate a UI for ssearching customer by eamil address that was not working for a long time 2024-09-30 18:34:23 +08:00
Dillon Ngo 0bb65a4061 Laravel Vapor - Reinstate a UI for ssearching customer by eamil address that was not working for a long time 2024-09-30 18:19:53 +08:00
Dillon Ngo cf9352487f Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-28 11:28:07 +08:00
Dillon Ngo 726f17aefe Laravel Vapor - Code Refactoring to use one component only and to make download work at local machine 2024-09-28 11:09:22 +08:00
Dillon Ngo 42de5881ee Laravel Vapor - Code Refactoring to use one component only and to make download work at local machine 2024-09-28 10:52:40 +08:00
Dillon Ngo 9fba6c9580 Laravel Vapor - Code Refactoring to use one component only and to make download work at local machine 2024-09-28 10:34:49 +08:00
Dillon Ngo 0c1d88a2df Laravel Vapor - Code Refactoring to use one component only and to make download work at local machine 2024-09-28 10:28:50 +08:00
Dillon Ngo dbfeaf2783 Laravel Vapor - Fix a problem with storage invoice does not show in pages other than page 1 in admin payment and billing page 2024-09-28 08:02:38 +08:00
Dillon Ngo b06dc438f5 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-28 08:01:40 +08:00
Dillon Ngo ccde9763f7 Laravel Vapor - Fix a problem with storage invoice does not show in pages other than page 1 in admin payment and billing page 2024-09-28 07:33:53 +08:00
Dillon Ngo 19be4b2a05 Laravel Vapor - Fix a problem with storage invoice does not show in pages other than page 1 in admin payment and billing page 2024-09-28 07:17:31 +08:00
Dillon Ngo f4cdc301d7 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-26 15:50:33 +08:00
Dillon Ngo 46d6e09fff Laravel Vapor - Fix a problem reported by Yien about missing ETD, ETA 2024-09-26 14:57:20 +08:00
Dillon Ngo 7d79abd023 Laravel Vapor - Code Refactoring 2024-09-26 14:05:15 +08:00
Dillon Ngo 4a4c6d6e99 Laravel Vapor - Code Refactoring 2024-09-26 13:52:13 +08:00
Dillon Ngo bdadd18a17 Laravel Vapor - Code Refactoring 2024-09-26 13:48:28 +08:00
Dillon Ngo 03d5c29ae1 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-26 11:10:15 +08:00
Dillon Ngo 99db37a67c Laravel Vapor - Fix a problem (kills all other running http request) when open a new tab to trigger download 2024-09-26 10:46:26 +08:00
Dillon Ngo a2f110b491 Laravel Vapor, Laravel Vapor - New download button to download on-hold-packing-list 2024-09-26 10:26:17 +08:00
Dillon Ngo 997c14d00e Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-26 09:29:23 +08:00
Dillon Ngo aacd953a82 Laravel Vapor - Update YD API schedule task frequency 2024-09-26 09:29:13 +08:00
Dillon Ngo 08aa383b91 Laravel Vapor - Housekeeping 2024-09-26 06:58:44 +08:00
Dillon Ngo d20cc1bc7b Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-26 06:54:04 +08:00
Dillon Ngo c4bbff232d Laravel Vapor - Housekeeping 2024-09-26 06:53:50 +08:00
Dillon Ngo b0a96441c4 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-26 06:23:15 +08:00
Dillon Ngo 3e888c7c08 Laravel Vapor - Fix missing packages summary info on customer page 2024-09-26 06:09:29 +08:00
Dillon Ngo dc484becc8 Laravel Vapor - Fix missing packages summary info on customer page 2024-09-26 05:59:12 +08:00
Dillon Ngo eda8b7eeba Laravel Vapor - Fix missing packages summary info on customer page 2024-09-25 20:50:25 +08:00
Dillon Ngo 71313491fe Laravel Vapor - Fix missing packages summary info on customer page 2024-09-25 20:17:24 +08:00
Dillon Ngo 0a42bc525a Laravel Vapor - Fix missing packages summary info on customer page 2024-09-25 20:02:20 +08:00
Dillon Ngo a6860de6f7 Laravel Vapor - Fix missing packages summary info on customer page 2024-09-25 19:20:09 +08:00
Dillon Ngo 01051dbdd4 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-25 16:49:34 +08:00
Dillon Ngo f0813b03c8 Laravel Vapor - code refactoring for Issue 13 2024-09-25 16:49:15 +08:00
Dillon Ngo ba86c2e903 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-25 15:09:29 +08:00
Dillon Ngo eb1d5423d8 Laravel Vapor - Convert /export/on-hold-packing-list into protected route like API + Disable direct dispatch of UpdatePerfexCRMPrelude job at PackingListToPerfexCRMProcessor 2024-09-25 14:33:12 +08:00
Dillon Ngo da2ff03c94 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-25 10:18:03 +08:00
Dillon Ngo 259eca063f Laravel Vapor - New download button to download on-hold-packing-list 2024-09-25 10:16:19 +08:00
Dillon Ngo a9f63ce137 Laravel Vapor - code refactoring for Issue 13 2024-09-25 09:57:08 +08:00
Dillon Ngo b83f62b703 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-25 09:28:36 +08:00
Dillon Ngo 428bf85043 Laravel Vapor - New download button to download on-hold-packing-list 2024-09-25 09:15:13 +08:00
Dillon Ngo ec8e2de45e Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-24 18:12:53 +08:00
Dillon Ngo 15f463c556 Laravel Vapor - Solve a missing information with received parcels on order page reported by Yien, rewrite front end component retrieve data 2024-09-24 18:12:43 +08:00
Dillon Ngo 14e3c4fac0 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-24 17:44:08 +08:00
Dillon Ngo f2833be359 Laravel Vapor - Solve a missing information with received parcels on order page reported by Yien, rewrite front end component retrieve data 2024-09-24 17:43:59 +08:00
Dillon Ngo 927f0f5980 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-24 17:21:09 +08:00
Dillon Ngo 430fe0456b Laravel Vapor - Solve a missing information with received parcels on order page reported by Yien, rewrite front end component retrieve data 2024-09-24 17:04:33 +08:00
Dillon Ngo 5a07ec7bba Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-23 15:33:35 +08:00
Dillon Ngo 9cb7d992ab Laravel Vapor - Fix an error: Trying to get property 'owner' of non-objec 2024-09-23 15:33:18 +08:00
Dillon Ngo e14aa4f9eb Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-23 14:11:57 +08:00
Dillon Ngo 040588c8ba Laravel Vapor - Fix 504 error 2024-09-23 14:01:01 +08:00
Dillon Ngo 02c0cc2d63 Laravel Vapor - Fix 504 error 2024-09-23 13:43:57 +08:00
Dillon Ngo c75866f958 Laravel Vapor - Fix 504 error 2024-09-23 13:29:51 +08:00
Dillon Ngo 9288f1e9f2 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-22 03:12:35 +08:00
Dillon Ngo eb68f1c394 Laravel Vapor - look into price increase for storage invoice 2024-09-22 02:55:49 +08:00
Dillon Ngo 5790f5a7a3 Laravel Vapor - look into price increase for storage invoice 2024-09-22 01:28:04 +08:00
Dillon Ngo 34b692fb4d Laravel Vapor - look into price increase for storage invoice 2024-09-21 23:48:50 +08:00
Dillon Ngo ee3de039fb Laravel Vapor - look into price increase for storage invoice 2024-09-21 23:28:42 +08:00
Dillon Ngo f293a975ed Laravel Vapor - look into price increase for storage invoice 2024-09-21 23:02:24 +08:00
Dillon Ngo d4f02cdafe Laravel Vapor - Code refactoring 2024-09-21 22:20:03 +08:00
Dillon Ngo 5d8d57e399 Laravel Vapor - Code refactoring 2024-09-21 13:15:05 +08:00
Dillon Ngo 608c9284dd Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-20 08:40:42 +08:00
Dillon Ngo 3a97b5e26d Laravel Vapor - Debugging 504 error 2024-09-20 08:22:47 +08:00
Dillon Ngo cca188eefd Laravel Vapor - Debugging 504 error 2024-09-20 07:26:48 +08:00
Dillon Ngo 5401b38638 Laravel Vapor - Debugging 504 error 2024-09-20 06:56:35 +08:00
Dillon Ngo 5bf7acad6b Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-20 01:46:49 +08:00
Dillon Ngo d61d58a51a Laravel Vapor - New table and command to handle delayed jobs 2024-09-20 01:46:38 +08:00
Dillon Ngo 8b7d2041ed Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 12:49:58 +08:00
Dillon Ngo 4d7e9dcd66 Laravel Vapor - Fix a null error 2024-09-19 12:37:07 +08:00
Dillon Ngo 6647ad6ffc Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 10:45:06 +08:00
Dillon Ngo 8795e116f0 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 10:44:56 +08:00
Dillon Ngo 0927bf4f00 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 10:29:55 +08:00
Dillon Ngo c8ca6d7f6f Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 10:29:43 +08:00
Dillon Ngo 2a25eb18ae Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 10:16:03 +08:00
Dillon Ngo ea569b437b Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 10:15:31 +08:00
Dillon Ngo 0386c224b1 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 10:13:52 +08:00
Dillon Ngo 457952cd44 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 09:34:28 +08:00
Dillon Ngo c19c44bfbe Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 08:54:11 +08:00
Dillon Ngo fed40d8384 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 08:38:13 +08:00
Dillon Ngo 49b5d142d9 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 08:18:41 +08:00
Dillon Ngo cd36f5b435 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 08:06:22 +08:00
Dillon Ngo 7170719203 Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 07:42:18 +08:00
Dillon Ngo f6bc88f553 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 07:42:10 +08:00
Dillon Ngo 10c13446df Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 07:25:57 +08:00
Dillon Ngo e18ff9215a Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 07:25:32 +08:00
Dillon Ngo 4456ddcb6b Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 06:38:22 +08:00
Dillon Ngo c0fc26bd0a Merge branch 'dillon/34.7-jenkins-vapor' into vapor/production 2024-09-19 05:10:36 +08:00
Dillon Ngo 639b0ffe4a Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 04:55:06 +08:00
Dillon Ngo c0ff60c5e7 Laravel Vapor - New table and command to handle delayed jobs 2024-09-19 04:49:31 +08:00
Dillon Ngo 2b6727cadc Laravel Vapor - Show stack trace when enabled through environment variables 2024-09-15 22:40:28 +08:00
Dillon Ngo 4adc3a65be Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-15 17:27:31 +08:00
Dillon Ngo 53b8764a61 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-15 17:27:23 +08:00
Dillon Ngo 2d3d0f3a58 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-15 16:47:45 +08:00
Dillon Ngo a2e65a2ba5 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-15 16:47:30 +08:00
Dillon Ngo 01db290102 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 20:57:18 +08:00
Dillon Ngo 18e31994c0 Laravel Vapor - Deployment day to production, solve an error captured in logs 2024-09-14 20:57:05 +08:00
Dillon Ngo 0bf1ffbd7a Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 13:30:47 +08:00
Dillon Ngo 5fe17db78a Laravel Vapor - Deployment day to production, solve an error in fixing billplz callback failed 2024-09-14 13:30:38 +08:00
Dillon Ngo 252c9c915e Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 13:12:45 +08:00
Dillon Ngo 2a6858d243 Laravel Vapor - Deployment day to production, solve an error in YD API query + error in fixing billplz callback failed 2024-09-14 13:12:37 +08:00
Dillon Ngo 00f6e95bae Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 12:34:07 +08:00
Dillon Ngo ab48489b6e Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 12:33:57 +08:00
Dillon Ngo 146aab2978 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 12:13:59 +08:00
Dillon Ngo 2b529fa986 Laravel Vapor - Deployment day to production, debug billplz failed callback fix 2024-09-14 12:13:47 +08:00
Dillon Ngo cc9c4600f2 Laravel Vapor - Deployment day to production, solve 504 Endpoint request timed out error 2024-09-14 11:52:52 +08:00
Dillon Ngo cdc6ee1839 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 09:43:39 +08:00
Dillon Ngo 537a6b0b33 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 09:43:22 +08:00
Dillon Ngo f7a22c2977 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 08:08:10 +08:00
Dillon Ngo 33341feb0e Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 08:08:02 +08:00
Dillon Ngo bdae6643c9 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 07:55:40 +08:00
Dillon Ngo 91fa3e08cd Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 07:55:27 +08:00
Dillon Ngo 5d6c86d651 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 07:37:54 +08:00
Dillon Ngo 44e124dfa3 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 07:37:47 +08:00
Dillon Ngo 2c4a2ea942 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 06:58:31 +08:00
Dillon Ngo a6d032050c Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 06:58:23 +08:00
Dillon Ngo ef7cc68121 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 06:58:02 +08:00
Dillon Ngo 57ec8c2b36 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 06:32:52 +08:00
Dillon Ngo 92d5ae0c76 Laravel Vapor - Deployment day to production, enable the rest of schedule tasks for production via commands 2024-09-14 06:32:19 +08:00
Dillon Ngo 1d6cd2a104 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 06:08:47 +08:00
Dillon Ngo 9516721ff5 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 06:08:37 +08:00
Dillon Ngo 7f8597a79e Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 05:45:38 +08:00
Dillon Ngo 9782ac6fda Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 05:45:29 +08:00
Dillon Ngo d259df9796 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 05:17:11 +08:00
Dillon Ngo b117730619 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 05:17:01 +08:00
Dillon Ngo 2f8502c92e Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 04:53:01 +08:00
Dillon Ngo e933470c17 Laravel Vapor - Deployment day to production, solve an error in YD API query 2024-09-14 04:52:46 +08:00
Dillon Ngo cc5fc19f24 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 04:09:14 +08:00
Dillon Ngo d93ee2462c Laravel Vapor - Deployment day to production, enable YD API query for a full run 2024-09-14 04:04:21 +08:00
Dillon Ngo 5279cc11c4 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 03:36:30 +08:00
Dillon Ngo a8cac0a121 Laravel Vapor - Deployment day to production, enable YD API query for a full run 2024-09-14 03:36:15 +08:00
Dillon Ngo 53d3afff72 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 03:17:42 +08:00
Dillon Ngo 78b36dab9d Laravel Vapor - Deployment day to production, Fix some undetected merge conflict 2024-09-14 03:17:26 +08:00
Dillon Ngo 40e6eee6d9 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 02:53:22 +08:00
Dillon Ngo 28dd444c0a Laravel Vapor - Deployment day to production, Update production domain 2 2024-09-14 02:53:05 +08:00
Dillon Ngo b2dea50fc0 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 01:53:31 +08:00
Dillon Ngo 0f04cec170 Laravel Vapor - Deployment day to production, Update production domain 1 2024-09-14 01:53:14 +08:00
Dillon Ngo 58efaddf7d Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-14 01:29:52 +08:00
Dillon Ngo 9882e5e75d Laravel Vapor - Deployment day to production, Update custom log channel retention period for production only 2024-09-14 01:23:17 +08:00
Dillon Ngo 11a5757303 Laravel Vapor - Deployment day to production YD API Testing 2024-09-14 01:07:50 +08:00
Dillon Ngo 3c6d1ec03b Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-12 22:48:52 +08:00
Dillon Ngo 2e871cd42f Laravel Vapor - New index for packages table 2024-09-12 22:36:03 +08:00
Dillon Ngo 643a903351 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-12 00:45:54 +08:00
Dillon Ngo b01159e47a Laravel Vapor - Update vapor.yml for production environment 2024-09-12 00:45:42 +08:00
Dillon Ngo b8474a2aff Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-12 00:20:18 +08:00
Dillon Ngo cf1e1b7cd4 Laravel Vapor - Debugging 504 error 2024-09-12 00:20:03 +08:00
Dillon Ngo 7234ebe67a Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-12 00:07:01 +08:00
Dillon Ngo 7658b8f72f Laravel Vapor - Debugging 504 error 2024-09-11 23:54:52 +08:00
Dillon Ngo 2cce3597f6 Laravel Vapor - Debugging 504 error 2024-09-11 23:32:53 +08:00
Dillon Ngo 8027bffdd8 Laravel Vapor - Debugging 504 error 2024-09-11 23:12:14 +08:00
Dillon Ngo 78ea976c72 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-11 06:56:38 +08:00
Dillon Ngo 3d0bdd70d5 Laravel Vapor - New Index for order table 2024-09-11 06:51:46 +08:00
Dillon Ngo ae03b75699 Merge branch 'dillon/34.6-jenkins-vapor' into vapor/production 2024-09-11 05:20:06 +08:00
Dillon Ngo 1dab162293 Laravel Vapor - new component to trigger and open download in new browser tab 2024-09-11 04:23:24 +08:00
Dillon Ngo 8df0b60c6a Laravel Vapor - new component to trigger and open download in new browser tab 2024-09-09 21:36:31 +08:00
Dillon Ngo db457fc63e Laravel Vapor - new component to trigger and open download in new browser tab 2024-09-09 21:24:53 +08:00
Dillon Ngo 9557496794 Laravel Vapor - Solve a probem with url encoding related to group payment 2024-09-09 18:06:04 +08:00
Dillon Ngo 638c4b233f Laravel Vapor - Update AWS RDS database 2024-09-08 02:10:26 +08:00
Dillon Ngo 108481f85a Laravel Vapor - Change AWS RDS database 2024-09-07 17:29:42 +08:00
Dillon Ngo 2b068d16cf Testing of new domain cief-malaysia.com in addition to the current existing izyim.com 2024-09-04 14:09:01 +08:00
Dillon Ngo 573a60c790 Laravel Vapor - Code refactor for YD API cron job 2024-09-04 13:21:57 +08:00
Dillon Ngo 9f7a40e0f8 Laravel Vapor - fill in latest changes of code from master branch 2024-09-04 13:01:52 +08:00
Dillon Ngo 1073fbfa4d Laravel Vapor - Sync V2 Commands with updates from latest changes in V1 Commands 2024-09-03 17:27:53 +08:00
Dillon Ngo 9c499b3874 Merge branch 'master' into dillon/34.6-jenkins-vapor 2024-09-03 16:06:33 +08:00
edmondlang b7c6c13bde fix payment-and-billing vue console error 2024-09-01 19:58:51 +08:00
edmondlang 01d666d92a fix payment-and-billing vue console error 2024-09-01 19:48:44 +08:00
Dillon Ngo 774f4f8d63 Laravel Vapor - Code refactor for YD API cron job 2024-08-29 15:14:21 +08:00
Dillon Ngo cfb5b32419 Laravel Vapor - Code refactor for YD API cron job - testing 2024-08-28 20:35:24 +08:00
Dillon Ngo 65d3af39ea Laravel Vapor - Code refactor for YD API cron job - testing 2024-08-28 20:20:59 +08:00
Dillon Ngo 0c0d5a1707 Laravel Vapor - Code refactor for YD API cron job - testing 2024-08-28 20:00:48 +08:00
Dillon Ngo 2023df9442 Laravel Vapor - Code refactor for YD API cron job - testing 2024-08-28 19:34:49 +08:00
Dillon Ngo c9935bfac7 Laravel Vapor - Code refactor for YD API cron job - testing 2024-08-28 19:02:08 +08:00
Dillon Ngo 389fae377b Laravel Vapor - Look into logs in different channel in cloudwatch 2024-08-28 18:27:02 +08:00
Dillon Ngo 64bccf7bad Get latest from V1 of YD API processor from master branch 2024-08-28 17:45:03 +08:00
Dillon Ngo 0e816337fc escape single quote in the gitCommitMessage that cause problem in deployment through Jenkins 2024-08-23 14:12:47 +08:00
Dillon Ngo b3973b52d1 Merge branch 'dillon/46.15-onhold-list-anomaly-fix' into 'master'
Data patch for a problem reported about an item not suppose to appear in ...

See merge request CIEFWorldwideSdnBhd/shipping-portal!236
2024-08-17 00:41:10 +00:00
Dillon Ngo 694876c31f Data patch for a problem reported about an item not suppose to appear in export/on-hold-packing-list 2024-08-17 08:39:19 +08:00
edmondlang 499782bbec update /export/aging-list, add 'is credit term customer' column 2024-08-04 00:39:15 +08:00
edmondlang f3eca3dd89 Export Group Transactions CSV 2024-08-03 23:04:47 +08:00
Aqqil Azman 9c4c472a40 fix wrong decimal round off 2024-08-01 09:37:22 +08:00
Aqqil Azman a67afdc0ff changed decimal points to 2 2024-08-01 09:34:14 +08:00
edmondlang b30cdaba84 fix export/aging-list, it has duplicated rows due to unnecessary joins 2024-07-26 00:58:49 +08:00
Dillon Ngo 9ac0ca45be Merge branch 'dillon/46.14-data-patch' into 'master'
Data patch for storage invoice

See merge request CIEFWorldwideSdnBhd/shipping-portal!235
2024-07-22 23:07:16 +00:00
Dillon Ngo 3fe98b24a4 Data patch for storage invoice 2024-07-23 07:06:34 +08:00
Dillon Ngo 7e7e43ee9c Merge branch 'dillon/46.14-data-patch' into 'master'
Data patch for storage invoice

See merge request CIEFWorldwideSdnBhd/shipping-portal!234
2024-07-22 23:00:09 +00:00
Dillon Ngo 39892a0938 Data patch for storage invoice 2024-07-23 06:58:10 +08:00
edmondlang 0ffe81d1cf update call wac webhook 2024-07-19 00:35:38 +08:00
edmondlang 5fd6e6a528 update call wac webhook 2024-07-19 00:28:51 +08:00
edmondlang 09ede52ecf update call wac webhook 2024-07-18 23:59:23 +08:00
edmondlang e5d6f3f581 wac webhook 2024-07-18 23:11:04 +08:00
edmondlang aa65b333c8 update permits reminder 2024-07-17 18:13:50 +08:00
edmondlang 656c50e047 update permits reminder 2024-07-17 18:11:34 +08:00
edmondlang 275157b243 update permits reminder 2024-07-17 17:49:33 +08:00
edmondlang 0c9ffd2bf7 call wac webhook 2024-07-06 11:24:54 +08:00
edmondlang d4dcae155d add command to fix missing packinglist 2024-07-03 12:56:16 +08:00
edmondlang bad8cadb3a remove edmond email from permits reminder 2024-07-02 21:12:52 +08:00
edmondlang 3af32cc6e7 remove command fix missing packinglist 2024-07-02 20:57:27 +08:00
edmondlang 34bab6a45c fix missing packinglist 2024-07-02 20:52:06 +08:00
edmondlang dd1eae1ea2 fix missing packinglist 2024-07-02 13:02:16 +08:00
Dillon Ngo 195e899751 Laravel Vapor - Code refactor for YD API cron job 2024-07-01 16:42:24 +08:00
Dillon Ngo b46bfb38bf Merge branch 'dillon/62.3-fixes' into 'master'
Quick fix on https://izyim.cief-malaysia.com/order/show/245904319

See merge request CIEFWorldwideSdnBhd/shipping-portal!233
2024-07-01 07:01:20 +00:00
Dillon Ngo 19c4ee4fda Quick fix 2024-07-01 15:00:14 +08:00
Dillon Ngo 6710a2caf2 Laravel Vapor - Code refactor for YD API cron job 2024-07-01 14:41:27 +08:00
Dillon Ngo 5491047fe1 Laravel Vapor - Code refactor for YD API cron job 2024-07-01 14:21:23 +08:00
Dillon Ngo b2e4e67085 Laravel Vapor - Code refactor for YD API cron job 2024-07-01 13:59:01 +08:00
Omair Saleh 13f13c7a0e export based on payment date 2024-07-01 13:46:12 +08:00
Omair Saleh ffa63f611b export based on payment date 2024-07-01 13:42:12 +08:00
Omair Saleh 82675ab80c export based on payment date 2024-07-01 13:40:14 +08:00
Omair Saleh aac04c4135 export based on payment date 2024-07-01 13:17:22 +08:00
Dillon Ngo 49989fd154 Laravel Vapor - Renamed a file to fit its purpose 2024-07-01 13:14:41 +08:00
Omair Saleh 56dca799f8 export based on payment date 2024-07-01 13:13:57 +08:00
Omair Saleh 42d8f811c6 export based on payment date 2024-07-01 13:13:15 +08:00
Omair Saleh 030136fd03 Merge remote-tracking branch 'origin/master' 2024-07-01 12:57:42 +08:00
Omair Saleh c8b6e271e3 export based on payment date 2024-07-01 12:57:23 +08:00
Dillon Ngo 151f9dc7bc Laravel Vapor - Convert a section component into polling component because of request timed out (error 504), debugging 2024-07-01 12:31:18 +08:00
Dillon Ngo d41889f84a Laravel Vapor - Convert a section component into polling component because of request timed out (error 504), debugging 2024-07-01 11:24:54 +08:00
Dillon Ngo 6a20acbb40 Laravel Vapor - New indexes through migration 2024-07-01 11:00:32 +08:00
Dillon Ngo f93997b858 Merge branch 'dillon/62.2-benchmarking-yd-api-cron-job' into 'master'
Benchmark cron job for YD API call

See merge request CIEFWorldwideSdnBhd/shipping-portal!232
2024-06-29 07:33:25 +00:00
Dillon Ngo 6fbc23d7c4 Benchmark cron job for YD API call 2024-06-29 15:32:32 +08:00
Dillon Ngo e0a264d58f Merge branch 'dillon/62.2-benchmarking-yd-api-cron-job' into 'master'
Benchmark cron job for YD API call

See merge request CIEFWorldwideSdnBhd/shipping-portal!231
2024-06-29 06:01:54 +00:00
Dillon Ngo fec20b0947 Benchmark cron job for YD API call 2024-06-29 14:01:13 +08:00
Dillon Ngo 0bf61d93c5 Merge branch 'dillon/62.2-benchmarking-yd-api-cron-job' into 'master'
Benchmark cron job for YD API call

See merge request CIEFWorldwideSdnBhd/shipping-portal!230
2024-06-29 03:21:24 +00:00
Dillon Ngo bea24fb48e Benchmark cron job for YD API call 2024-06-29 11:19:55 +08:00
Dillon Ngo ccdc0b4b0f Laravel Vapor - Convert a section component into polling component because of request timed out (error 504), debugging 2024-06-27 11:55:10 +08:00
Dillon Ngo c402f672c3 Laravel Vapor - Convert a section component into polling component because of request timed out (error 504), debugging 2024-06-27 09:37:57 +08:00
Dillon Ngo 8fe1f3261f Laravel Vapor - Convert a section component into polling component because of request timed out (error 504) 2024-06-27 08:56:09 +08:00
edmondlang 17a4522f50 add transaction counter 2024-06-26 23:52:25 +08:00
edmondlang dfedb99c13 fix bug: customer pay full amount but payment cant go through due to rounding up issue 2024-06-26 23:43:40 +08:00
edmondlang 669cac9bd4 fix-approved-payment-failed-group 2024-06-26 13:47:58 +08:00
edmondlang d7625aece7 update group-transaction-with-completed-payments 2024-06-26 13:07:30 +08:00
edmondlang a36c5c3063 show group-transaction-with-completed-payments 2024-06-26 12:47:44 +08:00
Dillon Ngo 493bb3512c Laravel Vapor - converted some components to do job polling because of Error 504 Endpoint request timed out 2024-06-25 13:49:05 +08:00
Dillon Ngo 073b69608a Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 16:48:58 +08:00
Dillon Ngo f0d8b18715 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 15:48:38 +08:00
Dillon Ngo 29ad0a0464 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 15:23:18 +08:00
Dillon Ngo 5eca74579d Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 14:02:54 +08:00
Dillon Ngo 84010579f2 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 13:48:48 +08:00
Dillon Ngo 8a36fb05b5 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 13:24:02 +08:00
Dillon Ngo bd7014fd7a Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 13:01:59 +08:00
Dillon Ngo 9806543d07 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 12:49:53 +08:00
Dillon Ngo d63decd446 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 12:34:56 +08:00
Dillon Ngo c05c0a83b4 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 12:05:12 +08:00
Dillon Ngo 05102576d8 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 11:25:11 +08:00
Dillon Ngo 88a6e546a8 Export pdf file from Laravel Vapor through S3 bucket (debug problem cannot download) 2024-06-24 11:11:16 +08:00
Dillon Ngo a14d9dbe27 Laraval Vapor - Update development and staging environment to use a duplicated production bucket for the purpose of testing 2024-06-23 20:45:07 +08:00
Dillon Ngo 63316212ec Export pdf file from Laravel Vapor through S3 bucket (code sync from exchange-2.0) 2024-06-23 20:20:27 +08:00
Dillon Ngo 746d4254c5 Merge branch 'dillon/34.4-jenkins-vapor' into dillon/34.5-jenkins-vapor 2024-06-22 12:59:01 +08:00
Dillon Ngo d81b07f758 Remove code no longer in used 2024-06-20 16:31:33 +08:00
Dillon Ngo eb2d17b73f Export pdf file from Laravel Vapor through S3 bucket (code sync from exchange-2.0) 2024-06-20 16:24:01 +08:00
Dillon Ngo 6a621029e6 Export pdf file from Laravel Vapor through S3 bucket (code sync from exchange-2.0) 2024-06-20 15:25:54 +08:00
Dillon Ngo 06e36bb754 Export pdf file from Laravel Vapor through S3 bucket (code sync from exchange-2.0) 2024-06-18 12:22:46 +08:00
Dillon Ngo cef88f8274 Export excel file from Laravel Vapor through S3 bucket (code sync from exchange-2.0) 2024-06-18 10:28:29 +08:00
Dillon Ngo fd75da5778 Merge branch 'dillon/51.5-vue-store-update' into 'master'
A minor fix to not allow non-admin user to see admin data by navigating to the...

See merge request CIEFWorldwideSdnBhd/shipping-portal!229
2024-06-17 00:58:05 +00:00
Dillon Ngo b593605c72 A minor fix to not allow non-admin user to see admin data by navigating to the url /payment-and-billing-2 2024-06-17 08:51:09 +08:00
Dillon Ngo 8d75012390 Merge branch 'dillon/62.1-fixes' into 'master'
Reinstate original code after data patch

See merge request CIEFWorldwideSdnBhd/shipping-portal!228
2024-06-16 06:14:47 +00:00
Dillon Ngo 2d98757c1c Data patch meant to fix a group payment with group id 609 and transaction id 16803 that got stuck after making paying 2024-06-16 14:13:09 +08:00
Dillon Ngo b329f232f2 Merge branch 'dillon/62.1-fixes' into 'master'
Data patch meant to fix a group payment with group id 609 and transaction id...

See merge request CIEFWorldwideSdnBhd/shipping-portal!227
2024-06-16 06:06:54 +00:00
Dillon Ngo 713922d2ee Data patch meant to fix a group payment with group id 609 and transaction id 16803 that got stuck after making paying 2024-06-16 14:04:16 +08:00
Dillon Ngo 74d11f8305 Merge branch 'dillon/62.1-fixes' into 'master'
Fix a rounding problem in group payment which will result in goods cannot be...

See merge request CIEFWorldwideSdnBhd/shipping-portal!226
2024-06-14 21:58:25 +00:00
Dillon Ngo ea920717a1 Fix a rounding problem in group payment which will result in goods cannot be released through CallbackBillplzLogic 2024-06-15 05:56:23 +08:00
Dillon Ngo e1b49f6be0 Merge branch 'dillon/46.13-missing-payment-proof-feature' into 'master'
Restore missing payment proof feature

See merge request CIEFWorldwideSdnBhd/shipping-portal!224
2024-06-14 21:45:15 +00:00
edmondlang 1be405ca93 fix error message in admin dashbaord 2024-06-13 23:47:43 +08:00
Dillon Ngo e63e3e707f 'Your Payment Proof' feature missing for order with storage invoices through group payment 2024-06-09 12:44:19 +08:00
Dillon Ngo aeaec32dcb 'Your Payment Proof' feature missing for order with storage invoices through group payment 2024-06-09 12:16:18 +08:00
Dillon Ngo b000c25e66 'Your Payment Proof' feature missing for order with storage invoices through group payment 2024-06-09 12:00:19 +08:00
edmondlang 1e9af59b91 test gtag 2024-06-07 17:40:48 +08:00
edmondlang a392b8a5eb test ga4 2024-06-07 17:35:57 +08:00
edmondlang 30edc3eaba updates RescheduleContainerLogic delete all the previous container transport schedule, then create a new one 2024-05-30 23:08:05 +08:00
edmondlang b0eca18343 show packinglist reference for admin only 2024-05-27 00:53:48 +08:00
Dillon Ngo d78b83054e Laravel Vapor - Sync code a fix from Exchange, a get request should not have a body 2024-05-26 19:52:26 +08:00
Dillon Ngo 808f327318 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-26 17:11:14 +08:00
Dillon Ngo 88e1b43f19 Merge branch 'dillon/46.11-warehouse-storage-related-fixes' into 'master'
Inserted logs for monitoring warehouse storage charges

See merge request CIEFWorldwideSdnBhd/shipping-portal!223
2024-05-26 08:58:20 +00:00
Dillon Ngo 849b69b31a Fix a UI/UX problem at admin page when updating permits document at /settings page 2024-05-26 03:34:24 +08:00
Dillon Ngo bd849d3b70 Attempt to fix a UI/UX problem 2024-05-26 03:13:29 +08:00
Dillon Ngo 8cb21fc4f1 Laravel Vapor - Testing of sending email with file attached 2024-05-25 13:08:20 +08:00
Dillon Ngo 21485c7db7 Laravel Vapor - Testing of sending email with file attached 2024-05-25 12:34:33 +08:00
Dillon Ngo 4628b14a0b Laravel Vapor - New V2 command to do housekeeping at S3 Bucket 2024-05-25 12:16:37 +08:00
Dillon Ngo f176c82980 Laravel Vapor - Added comment 2024-05-25 02:41:32 +08:00
Dillon Ngo 4cf6825e42 Laravel Vapor - Debug Endpoint request timed out 2024-05-24 23:21:17 +08:00
omair saleh fc9f6d6dde Merge branch 'fulfilment-banner' into 'master'
fix segment requried contact bug

See merge request CIEFWorldwideSdnBhd/shipping-portal!222
2024-05-24 06:52:53 +00:00
Jia Sheng 141dab15b6 fix segment requried contact bug 2024-05-23 11:44:18 +08:00
Dillon Ngo 32a7228370 Laravel Vapor - Debug Endpoint request timed out 2024-05-21 10:38:58 +08:00
Dillon Ngo a4d98aa31a Laravel Vapor - Debug Endpoint request timed out 2024-05-21 10:20:56 +08:00
Dillon Ngo f779e563a6 Laravel Vapor - Debug Endpoint request timed out 2024-05-21 10:19:36 +08:00
Dillon Ngo e7e2b1eac2 Laravel Vapor - Debug Endpoint request timed out 2024-05-21 10:02:51 +08:00
Dillon Ngo 5410fefc1f Laravel Vapor - Debug Endpoint request timed out 2024-05-21 09:39:20 +08:00
Dillon Ngo b514ea15a1 Laravel Vapor - Debug Endpoint request timed out 2024-05-21 08:46:19 +08:00
edmondlang c9ac435e37 update confirmation message 2024-05-21 01:33:24 +08:00
edmondlang 6d01bdfb60 Merge branch 'fulfilment-banner' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2024-05-21 01:27:47 +08:00
edmondlang e2dc83e441 add segments in the menu bar. 2024-05-21 01:26:09 +08:00
Jia Sheng e9daadaf60 not interested confirmation 2024-05-21 01:25:14 +08:00
edmondlang 7cace7e800 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into fulfilment-banner 2024-05-21 00:54:21 +08:00
Jia Sheng 64fa56c02f fulfilment banner flow update, segment user index list 2024-05-20 22:51:22 +08:00
Dillon Ngo 93f3a6343a Laravel Vapor - Debug Endpoint request timed out 2024-05-20 19:46:33 +08:00
Dillon Ngo 7c66eb657e Laravel Vapor - Debug Endpoint request timed out 2024-05-20 19:18:53 +08:00
Dillon Ngo 96ccdcd3da Laravel Vapor - Debug Endpoint request timed out 2024-05-20 18:58:30 +08:00
Dillon Ngo f37cae406a Laravel Vapor - Debug Endpoint request timed out 2024-05-20 18:22:46 +08:00
Dillon Ngo be87fc6b1c Laravel Vapor - Debug Endpoint request timed out 2024-05-20 05:00:11 +08:00
Dillon Ngo 6c64195a73 Laravel Vapor - Debug Endpoint request timed out 2024-05-20 04:35:40 +08:00
Dillon Ngo 431c2829fe Laravel Vapor - Debug Endpoint request timed out 2024-05-20 03:48:36 +08:00
Dillon Ngo 0a3f09032e Laravel Vapor - Debug Endpoint request timed out 2024-05-20 03:43:32 +08:00
Dillon Ngo 3f962e774d Merge branch 'dillon/51.5-vue-store-update' into 'master'
Vue Polling - Fix minor typo error

See merge request CIEFWorldwideSdnBhd/shipping-portal!221
2024-05-19 19:14:56 +00:00
Dillon Ngo 4ba2144f02 Vue Polling - Fix minor typo error 2024-05-20 02:28:49 +08:00
Dillon Ngo 867e2455b3 Laravel Vapor - Debug Endpoint request timed out 2024-05-20 01:39:36 +08:00
Dillon Ngo b74257477b Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-20 00:26:53 +08:00
Dillon Ngo 69f2b384cf Merge branch 'dillon/51.5-vue-store-update' into 'master'
Vue Polling - Refactor code to use vuex

See merge request CIEFWorldwideSdnBhd/shipping-portal!220
2024-05-19 16:06:00 +00:00
Dillon Ngo 3f3d2d1177 Merge branch 'dillon/51.5-vue-store-update' into dillon/34.4-jenkins-vapor 2024-05-19 23:49:14 +08:00
Dillon Ngo f1a35299e6 Vue Polling - Remove unnecessary code 2024-05-19 23:48:40 +08:00
Dillon Ngo b15866ea16 Vue Polling - Remove comments in code 2024-05-19 23:47:00 +08:00
Dillon Ngo 706e9552a5 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 23:32:30 +08:00
Dillon Ngo dbeb4f9f04 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 23:25:58 +08:00
Dillon Ngo f23db32429 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 23:23:10 +08:00
Dillon Ngo 40fb3f986e Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 22:51:04 +08:00
Dillon Ngo 1e2faa0872 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 07:17:44 +08:00
Dillon Ngo 17698c276f Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 06:47:49 +08:00
Dillon Ngo 2fa2d444a4 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 06:26:08 +08:00
Dillon Ngo 484ca246b0 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 06:08:28 +08:00
Dillon Ngo ea1d32ee01 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 05:45:36 +08:00
Dillon Ngo 874dc2942a Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 05:16:57 +08:00
Dillon Ngo 185245f3eb Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 04:55:42 +08:00
Dillon Ngo 3b2e2216c1 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 04:32:57 +08:00
Dillon Ngo 68dad00c2d Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 04:21:32 +08:00
Dillon Ngo 1bcc345293 Laravel Vapor - Look into logs in different channel in cloudwatch 2024-05-19 03:34:52 +08:00
Dillon Ngo d6d11cb7d0 Laravel Vapor - Debug Endpoint request timed out 2024-05-19 01:31:55 +08:00
Dillon Ngo 670de560ed Laravel Vapor - Debug Endpoint request timed out 2024-05-18 23:42:50 +08:00
Dillon Ngo 50042aae4e Laravel Vapor - Debug Endpoint request timed out 2024-05-18 23:23:22 +08:00
Dillon Ngo 7480f54f84 Laravel Vapor - Debug Endpoint request timed out 2024-05-18 22:55:40 +08:00
Dillon Ngo e986247efb Laravel Vapor - Debug Endpoint request timed out 2024-05-18 22:40:01 +08:00
Dillon Ngo 81b0efea1c Laravel Vapor - Debug Endpoint request timed out 2024-05-18 22:37:23 +08:00
Dillon Ngo 82fc7b4455 Laravel Vapor - Debug Endpoint request timed out 2024-05-18 22:07:08 +08:00
Dillon Ngo 1d8d98e4d7 Laravel Vapor - Debug Endpoint request timed out 2024-05-18 21:40:06 +08:00
Dillon Ngo 29547b2915 Laravel Vapor - test reading data from S3 Bucket with production duplicated storage files 2024-05-18 20:33:53 +08:00
Dillon Ngo ae74e72a96 Laravel Vapor - Debug Endpoint request timed out 2024-05-18 20:20:06 +08:00
Dillon Ngo b90918c465 Laravel Vapor - test vue polling with refactor code from branch 51.5 2024-05-18 19:09:19 +08:00
Dillon Ngo d7f08fd9e5 Merge branch 'dillon/51.5-vue-store-update' into dillon/34.3-jenkins-vapor 2024-05-18 18:56:30 +08:00
Dillon Ngo bd42f7213a Vue Polling - Refactor code to use vuex 2024-05-18 18:55:21 +08:00
Dillon Ngo c4a1cd4ab4 Laravel Vapor - test reading data from S3 Bucket with production duplicated storage files 2024-05-17 18:12:31 +08:00
Dillon Ngo d563fa3cb2 Laravel Vapor - test reading data from S3 Bucket with production duplicated storage files 2024-05-17 17:38:20 +08:00
Dillon Ngo 13835b43c1 Laravel Vapor - test reading data from YD API 2024-05-17 17:02:51 +08:00
Dillon Ngo 39de1fbdf0 Laravel Vapor - test uploading an excel file to S3 bucket 2024-05-17 14:22:26 +08:00
Dillon Ngo f7c2b7d5e9 Laravel Vapor - test uploading a excel file 2024-05-16 22:31:25 +08:00
Dillon Ngo 80bd8668c1 Laravel Vapor - test uploading a excel file 2024-05-16 22:00:43 +08:00
Dillon Ngo e8367c18bf Laravel Vapor - test uploading a excel file 2024-05-16 21:49:22 +08:00
Dillon Ngo b08c1159f3 Laravel Vapor - test uploading a excel file 2024-05-16 21:23:48 +08:00
Dillon Ngo 3fa9d532f8 Laravel Vapor - test downloading a status assets 2024-05-16 20:57:10 +08:00
Dillon Ngo 914ad2a8f1 Laravel Vapor - test attaching a file from S3 in an email 2024-05-16 19:52:16 +08:00
Dillon Ngo f96fcdbcb4 Laravel Vapor - test attaching a file from S3 in an email 2024-05-16 19:38:19 +08:00
Dillon Ngo a3ff963cc9 Laravel Vapor - test attaching a file from S3 in an email 2024-05-16 19:20:54 +08:00
Dillon Ngo 8355c81f20 Laravel Vapor - test attaching a file from S3 in an email 2024-05-16 02:33:23 +08:00
Dillon Ngo 9265cd494a Laravel Vapor - test attaching a file from S3 in an email 2024-05-16 01:28:43 +08:00
Dillon Ngo 83bd2a06a0 Merge branch 'master' into dillon/34.3-jenkins-vapor 2024-05-16 01:06:52 +08:00
Dillon Ngo 600fe91da0 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 17:07:19 +08:00
Dillon Ngo 496fc09f03 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 16:48:51 +08:00
Dillon Ngo 4cb7a09ea4 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 16:20:45 +08:00
Dillon Ngo b3850f1b6e Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 15:39:39 +08:00
Dillon Ngo 9f57335363 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 04:31:25 +08:00
Dillon Ngo 5f53f7110c Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 04:11:26 +08:00
Dillon Ngo ab4a83dc50 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 03:51:33 +08:00
Dillon Ngo 3b3d8f011f Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 02:39:57 +08:00
Dillon Ngo 09c099d0a4 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 02:21:02 +08:00
Dillon Ngo fc479b4420 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 01:41:08 +08:00
Dillon Ngo 7f80d2d9c5 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 01:23:14 +08:00
Dillon Ngo 0de92ded68 Laravel Vapor - test read from database export excel file to S3 bucket through a command 2024-05-15 01:03:46 +08:00
jiasheng224 2d92b1a8ab fulfilment banner module 2024-05-08 18:30:12 +08:00
Dillon Ngo 06e3049e50 Debugging 2024-05-08 03:03:58 +08:00
Dillon Ngo b0fa73a12b Debugging 2024-05-08 01:52:51 +08:00
Dillon Ngo 5d66761465 Merge branch 'dillon/60-shipping-portal-fixes' into 'master'
Deleted a file that should no longer be used

See merge request CIEFWorldwideSdnBhd/shipping-portal!219
2024-05-07 16:53:13 +00:00
Dillon Ngo 1ac4615c99 Delete a file that should no longer be used 2024-05-08 00:52:33 +08:00
Dillon Ngo 590960b5fd Merge branch 'dillon/60-shipping-portal-fixes' into 'master'
Move a file that should no longer be used (deprecated)

See merge request CIEFWorldwideSdnBhd/shipping-portal!218
2024-05-07 16:50:42 +00:00
Dillon Ngo 5f24f58480 Move a file that should no longer be used 2024-05-08 00:48:15 +08:00
edmondlang 4dec576aa0 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2024-05-08 00:31:22 +08:00
edmondlang 4a41c89024 fix MappableTransactionWithDetailsResource.php 2024-05-08 00:30:01 +08:00
Dillon Ngo a0997a4649 Merge branch 'dillon/60-shipping-portal-fixes' into 'master'
Fix a problem with inefficient query discovered from Laravel Vapor integration (payment and billing page, pending payment tab)

See merge request CIEFWorldwideSdnBhd/shipping-portal!217
2024-05-07 16:27:55 +00:00
Dillon Ngo b90dae882e Fix a problem with inefficient query discovered from Laravel Vapor integration 2024-05-08 00:26:12 +08:00
edmondlang f361a7e185 fix MappableTransactionWithDetailsResource.php 2024-05-08 00:24:22 +08:00
Dillon Ngo 29619625d1 Merge branch 'dillon/46.11-warehouse-storage-related-fixes' into 'master'
Fix multipe interface user experience (UX) problem originally reported by Yien

See merge request CIEFWorldwideSdnBhd/shipping-portal!216
2024-05-07 16:15:11 +00:00
Dillon Ngo 1705b5c2e5 Fix a front end UX problem reported by Yien 2024-05-06 13:19:23 +08:00
Dillon Ngo 1813783d87 Merge branch 'dillon/60-shipping-portal-fixes' into 'master'
Fix emails cannot be sent with attachment

See merge request CIEFWorldwideSdnBhd/shipping-portal!215
2024-05-04 09:53:01 +00:00
Dillon Ngo 46a0e670ba Fix emails cannot be sent with attachment 2024-05-04 17:51:57 +08:00
Dillon Ngo dbf537e050 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 16:59:59 +08:00
Dillon Ngo 916b0c3051 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 16:54:20 +08:00
Dillon Ngo 28e3e15b16 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 16:39:14 +08:00
Dillon Ngo 59a75cbb79 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 16:21:29 +08:00
Dillon Ngo 0b1fd84b49 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 16:06:03 +08:00
Dillon Ngo 3b454890d8 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-03 15:23:05 +08:00
Dillon Ngo 1784dd9003 Merge branch 'master' into dillon/34.2-jenkins-vapor 2024-05-02 11:31:41 +08:00
Dillon Ngo f56cb39822 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-05-01 09:54:56 +08:00
Dillon Ngo a7c03d7fb2 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-04-30 12:56:53 +08:00
Dillon Ngo eb9f77f620 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-04-30 12:37:40 +08:00
Dillon Ngo 849935aee3 Laravel Vapor - code amendment for changing local storage to AWS S3 storage (code sync from exchange-2.0) 2024-04-30 11:52:41 +08:00
Omair Saleh dcec8cb33b update payment export itemization 2024-04-18 02:27:35 +08:00
Omair Saleh 75037f6192 update payment export itemization 2024-04-18 02:22:30 +08:00
Omair Saleh 675324081b update payment export itemization 2024-04-18 02:21:30 +08:00
Omair Saleh a959e83f5b update payment export itemization 2024-04-18 02:19:05 +08:00
Omair Saleh 2802e3c366 update payment export itemization 2024-04-18 02:17:43 +08:00
Omair Saleh aac2a0666a update payment export itemization 2024-04-18 02:16:13 +08:00
Omair Saleh 19efba4b89 update payment export itemization 2024-04-18 02:13:43 +08:00
Omair Saleh 7d70c800db update payment export itemization 2024-04-18 02:12:55 +08:00
Omair Saleh 863dc94dad Revert "Revert "Merge branch 'dillon/58-shipping-portal-sst' into 'master'""
This reverts commit a49920973e.
2024-04-18 02:09:16 +08:00
Omair Saleh 98e45e27e3 update payment export itemization 2024-04-18 02:04:56 +08:00
Omair Saleh df2916594b remove invoice date adjuster 2024-04-18 01:14:39 +08:00
Omair Saleh a49920973e Revert "Merge branch 'dillon/58-shipping-portal-sst' into 'master'"
This reverts commit 7cd376a9b5, reversing
changes made to 6176135f85.
2024-04-16 13:21:07 +08:00
Omair Saleh d129f8f6bd clear wrong date invoice from april to march 2024-04-16 13:17:23 +08:00
Omair Saleh 55a82e52a4 Merge remote-tracking branch 'origin/master' 2024-04-16 13:02:53 +08:00
Omair Saleh 1d4ac80b8f change sst invoice format 2024-04-16 13:02:40 +08:00
omair saleh 7cd376a9b5 Merge branch 'dillon/58-shipping-portal-sst' into 'master'
Dillon/58 shipping portal sst

See merge request CIEFWorldwideSdnBhd/shipping-portal!213
2024-04-16 04:51:39 +00:00
Omair Saleh c7e3091f9b change sst invoice format 2024-04-16 12:49:46 +08:00
Omair Saleh 28feba2ae9 change sst invoice format 2024-04-16 12:39:44 +08:00
edmondlang 6176135f85 fix qr api issue 2024-04-10 23:17:05 +08:00
edmondlang 5f529965da Merge branch 'qr-api-issue' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2024-04-10 22:27:29 +08:00
edmondlang 924f4f2ace fix qr api issue 2024-04-10 22:27:09 +08:00
edmondlang 6369282b38 update qr code config 2024-04-10 18:22:11 +08:00
jiasheng224 1991cf2c57 fix qr api issue 2024-04-09 17:42:10 +08:00
jiasheng224 5f5bbe0c8c update wallet balance when credit or debit to wallet balance 2024-04-09 16:58:12 +08:00
Dillon Ngo a809aec9a7 SST Impelemtation 2024-04-07 10:22:12 +08:00
Dillon Ngo 68ce8373e9 SST Impelemtation 2024-04-07 09:27:09 +08:00
Omair Saleh e5347f56b7 change bank in details 2024-04-04 08:22:47 +08:00
Omair Saleh 6673a44137 fix invoice date for april 2024-04-03 12:22:32 +08:00
Omair Saleh 4d3345f613 Merge remote-tracking branch 'origin/master' 2024-04-03 12:17:54 +08:00
Omair Saleh 60b8657773 fix invoice date for april 2024-04-03 12:17:40 +08:00
edmondlang 9f7a8d0d4b hide deletePaidGroupTransaction 2024-03-31 23:12:38 +08:00
edmondlang a87ab6c27f logging delete paid group transaction 2024-03-31 21:41:42 +08:00
edmondlang 462a4776cd delete paid group transaction 2024-03-31 17:36:12 +08:00
edmondlang 7e029c5610 delete paid group transaction 2024-03-30 00:49:55 +08:00
edmondlang 0719285286 show all extra payments from customer 2024-03-29 00:59:30 +08:00
edmondlang 64400d1524 fix ExportsCustomersWalletTransactionHistory 2024-03-29 00:06:22 +08:00
edmondlang be0279f56b fix ExportsCustomersWalletTransactionHistory 2024-03-29 00:02:13 +08:00
Dillon Ngo e15170bc7f Merge branch 'dillon/46.9-warehouse-storage-charges-fixes' into 'master'
Multiple fixes related to storage invoices

See merge request CIEFWorldwideSdnBhd/shipping-portal!212
2024-03-26 00:44:33 +00:00
Dillon Ngo 59f527aee7 Enable back manual payment that was temporary disable at order page for invoices with storage fee 2024-03-26 08:10:34 +08:00
Dillon Ngo bfdf96b4a1 Remove comments in code 2024-03-24 19:19:44 +08:00
Dillon Ngo 894248e33c Laravel Vapor - Version 2 of Commands 2024-03-21 16:29:13 +08:00
Dillon Ngo cee24a8bf9 Setup priority queue with AWS SQS 2024-03-21 15:36:00 +08:00
Dillon Ngo 09553025dc Setup priority queue with AWS SQS 2024-03-21 14:50:24 +08:00
Dillon Ngo 52934899e8 Setup priority queue with AWS SQS 2024-03-21 14:19:55 +08:00
Dillon Ngo c607eb8895 Setup priority queue with AWS SQS 2024-03-21 13:49:14 +08:00
Dillon Ngo ac1d63a2cb Setup priority queue with AWS SQS 2024-03-21 13:21:04 +08:00
Dillon Ngo 4ce92aca27 Debug Jenkinsfile 2024-03-19 19:43:14 +08:00
Dillon Ngo ddcc55ed5c Debug Jenkinsfile 2024-03-19 19:32:05 +08:00
Dillon Ngo 35ebb9aed9 Debug Jenkinsfile 2024-03-19 19:22:05 +08:00
Dillon Ngo b8b72ff2d4 Debug Jenkinsfile 2024-03-19 19:20:15 +08:00
Dillon Ngo cfa277bbb0 Debug Jenkinsfile 2024-03-19 19:15:01 +08:00
Dillon Ngo 4470a685af Update vapor.yml to setup new sqs for priority queues setup 2024-03-19 17:10:29 +08:00
Dillon Ngo 640fa3b738 Merge branch 'master' into dillon/34.1-jenkins-vapor 2024-03-19 16:53:26 +08:00
Dillon Ngo d7aa248972 Merge branch 'dillon/55-billplz-fix' into 'master'
Update info log location for vue polling related stuff + perfexcrm integration

See merge request CIEFWorldwideSdnBhd/shipping-portal!211
2024-03-18 12:17:11 +00:00
Dillon Ngo 8e4ff6093e Update info log location for VuePolling JobResourceNotFoundException and PerfexCRM 2024-03-18 14:06:30 +08:00
Dillon Ngo 584169e173 Update info log location for VuePolling JobResourceNotFoundException and PerfexCRM 2024-03-18 13:54:09 +08:00
Dillon Ngo 1679d1ecf4 Fix a problem of unsuccessful payment when shipping invoice is paid first before storage invoice appear 2024-03-16 15:49:02 +08:00
Dillon Ngo 7ca48e9638 Fix a problem in info display inaccurate in payment history for manual payment 2024-03-16 15:17:28 +08:00
Dillon Ngo 14278a888a Merge branch 'dillon/55-billplz-fix' into 'master'
Long term solution to prevent customer making payment to a shipping invoice...

See merge request CIEFWorldwideSdnBhd/shipping-portal!210
2024-03-16 05:52:58 +00:00
Dillon Ngo 5de2554d63 Fix a problem with storage invoice checking when a payment related transaction is deleted at order page 2024-03-15 03:33:58 +08:00
edmondlang 033a835fce update SendPermitsReminderEmails logging 2024-03-14 12:48:25 +08:00
edmondlang 66ddb5da23 update send permits reminder 2024-03-14 12:46:47 +08:00
Dillon Ngo 65782ebf8a Long term solution to prevent customer making payment to a shipping invoice when there is a ongoing dispute 2024-03-14 12:43:58 +08:00
Dillon Ngo 96a089df16 Long term solution to prevent customer making payment to a shipping invoice when there is a ongoing dispute 2024-03-14 12:32:03 +08:00
edmondlang f95545a985 update container remark in order page 2024-03-13 00:20:39 +08:00
edmondlang 9e8685bd02 update container remark in order page 2024-03-13 00:02:52 +08:00
edmondlang 1224735ba8 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2024-03-12 23:52:22 +08:00
edmondlang 11e2390059 update container and container remarks 2024-03-12 23:52:07 +08:00
Dillon Ngo c280da36d7 Merge branch 'dillon/55-billplz-fix' into 'master'
Fix a problem reported by Yien where order shipping invoice pending payment despite payment made

See merge request CIEFWorldwideSdnBhd/shipping-portal!209
2024-03-12 06:32:13 +00:00
Dillon Ngo 27529e90ca Fix a problem reported by Yien where order shipping invoice pending payment despite payment made 2024-03-12 14:20:19 +08:00
Dillon Ngo 2e9b0f918c Merge branch 'dillon/46.8-warehouse-storage-charges-fixes' into 'master'
Change log location, 404 page

See merge request CIEFWorldwideSdnBhd/shipping-portal!208
2024-03-09 13:26:32 +00:00
Dillon Ngo 5565d0b39b Update log location JobResourceNotFoundException 2024-03-09 21:17:49 +08:00
Dillon Ngo f1b8c6a556 When a pending verification group payment is deleted, do not display the group with no payment transaction(group payment) 2024-03-09 02:20:34 +08:00
Dillon Ngo 6d210d3713 Fix a problem with deleting a pending verification group payment at order page 2024-03-09 02:16:32 +08:00
Dillon Ngo 5dd2df02fd Hide 'Make Payment' button when there is a group payment pending verification from Admin 2024-03-09 01:22:13 +08:00
Dillon Ngo b207b11336 Fix missing group payment info on order page 2024-03-08 23:53:54 +08:00
Dillon Ngo ffd95ee1cc Fix missing group payment info on order page 2024-03-08 23:31:37 +08:00
Dillon Ngo 73b3995367 Merge branch 'dillon/46.9-warehouse-storage-charges-fixes' into 'master'
Temporary disable manual payment at order page for invoices with storage fee

See merge request CIEFWorldwideSdnBhd/shipping-portal!207
2024-03-08 13:12:33 +00:00
Dillon Ngo 45a2544b9d Temporary disable manual payment at order page for invoices with storage fee 2024-03-08 20:43:38 +08:00
Dillon Ngo 252636a7df Fix 404 exception caught at production laravel logs 2024-03-08 08:46:05 +08:00
Dillon Ngo 3e679fef23 Merge branch 'dillon/46.8-warehouse-storage-charges-fixes' into 'master'
UI Update (Payment and Billing 2 page) on Admin view to see shipping invoices...

See merge request CIEFWorldwideSdnBhd/shipping-portal!206
2024-03-03 11:16:07 +00:00
Dillon Ngo 758498f486 Fix a duplication problem in Pending Payment listing as a result of storage invoices 2024-03-02 14:09:06 +08:00
Dillon Ngo b55e32aece Fix missing container info at admin payment and billing page 2024-03-02 13:26:46 +08:00
Dillon Ngo 00bf7c0cf4 Fix when customer isCreditTerm is updated, waive storage invoices instead of deleting it 2024-03-01 11:47:21 +08:00
edmondlang 24a4d269b3 add edmond in the permits reminder email 2024-03-01 11:27:46 +08:00
Dillon Ngo f191979a53 Hide 'Your Payment Proof' at the order page when does not need to appear 2024-02-29 22:28:18 +08:00
Dillon Ngo c9998029b0 Fix a non functioning group payment delete at order page meant for shipping invoice with storage invoice 2024-02-29 21:10:37 +08:00
Dillon Ngo a442c78156 Refresh page after a payment transaction is suspended/deleted 2024-02-29 17:19:17 +08:00
Dillon Ngo 03c5ced77b Remove code no longer necessary - isBackDoorCheck flag 2024-02-29 16:32:37 +08:00
Dillon Ngo 5c6418cb1f When customer isCreditTerm status is updated to true, all existing storage invoices that is not paid but approve will be deleted 2024-02-29 16:30:57 +08:00
edmondlang 5e636862bb check if the address district name is null 2024-02-27 21:31:14 +08:00
Dillon Ngo e97cbfa618 Fix a problem with missing paid storage invoice when customer credit term status is updated 2024-02-26 16:36:43 +08:00
Dillon Ngo a448172521 UI Update (Payment and Billing 2 page) on Admin view to see shipping invoices with storage invoices on Pending Payment tab and Paid Invoice tab 2024-02-26 16:35:17 +08:00
Dillon Ngo 72ac055ec5 Merge branch 'dillon/46.6-warehouse-storage-charges-fixes' into 'master'
UI Update (Payment and Billing page) on Admin view to see shipping invoices...

See merge request CIEFWorldwideSdnBhd/shipping-portal!205
2024-02-25 07:44:39 +00:00
Dillon Ngo 09383a45a6 UI Update (Payment and Billing page) on Admin view to see shipping invoices with storage invoices on Pending Payment tab and Paid Invoice tab 2024-02-25 15:44:03 +08:00
Dillon Ngo bb1540116c Merge branch 'dillon/46.6-warehouse-storage-charges-fixes' into 'master'
UI Update (Payment and Billing page) on Admin view to see shipping invoices...

See merge request CIEFWorldwideSdnBhd/shipping-portal!204
2024-02-25 07:28:15 +00:00
Dillon Ngo 141062a7bf Fix storage invoice not allow to be regenerated if not yet pay 2024-02-25 15:21:04 +08:00
Dillon Ngo 4179706e04 UI Update (Payment and Billing page) on Admin view to see shipping invoices with storage invoices on Pending Payment tab and Paid Invoice tab 2024-02-25 14:26:54 +08:00
Dillon Ngo eaa21beb83 UI Update (Payment and Billing page) on Admin view to see shipping invoices with storage invoices on Pending Payment tab and Paid Invoice tab 2024-02-25 14:04:19 +08:00
Dillon Ngo 1acc02eb93 UI Update (Payment and Billing page) on Admin view to see shipping invoices with storage invoices on Pending Payment tab and Paid Invoice tab 2024-02-25 13:52:22 +08:00
Dillon Ngo 1f2959a5d2 Merge branch 'dillon/46.7-warehouse-storage-charges-fixes' into dillon/46.6-warehouse-storage-charges-fixes 2024-02-25 13:15:49 +08:00
Dillon Ngo 9b7b7068e1 Merge branch 'dillon/46.5-warehouse-storage-charges-fixes' into dillon/46.6-warehouse-storage-charges-fixes 2024-02-25 13:15:35 +08:00
Dillon Ngo 41e1c346f6 Rename a component 2024-02-25 13:13:09 +08:00
Dillon Ngo 74e9b23f91 Merge branch 'dillon/46.7-warehouse-storage-charges-fixes' into 'master'
Create a regenerate storage invoice feature to debug problem in reading and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!203
2024-02-24 03:49:50 +00:00
Dillon Ngo f949877a7f Create a regenerate storage invoice feature to debug problem in reading and downloading storage invoice 2024-02-24 11:40:51 +08:00
Dillon Ngo 1e876dd103 Merge branch 'dillon/46.7-warehouse-storage-charges-fixes' into 'master'
Create a regenerate storage invoice feature to debug problem in reading and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!202
2024-02-24 03:20:17 +00:00
Dillon Ngo 3d79d0f5e5 Merge branch 'dillon/46.5-warehouse-storage-charges-fixes' into 'master'
User interface to allow admin to update company whether is a credit term...

See merge request CIEFWorldwideSdnBhd/shipping-portal!201
2024-02-24 03:17:12 +00:00
Dillon Ngo 2dc037c8fd Create a regenerate storage invoice feature to debug problem in reading and downloading storage invoice 2024-02-24 11:08:19 +08:00
Dillon Ngo aaae8bcafa Create a regenerate storage invoice feature to debug problem in reading and downloading storage invoice 2024-02-24 10:48:26 +08:00
Dillon Ngo b66dfa8649 Implement authorization module for update customer credit term status 2024-02-24 10:08:24 +08:00
Dillon Ngo 2689296a2c Implement authorization module for update customer credit term status 2024-02-23 11:09:30 +08:00
Dillon Ngo 62191c2711 Undo a changes made on previous commit 2024-02-23 10:49:09 +08:00
Dillon Ngo 02cb21bd5a User interface to allow admin to update company whether is a credit term customer for warehoue storage charges 2024-02-18 10:10:57 +08:00
Dillon Ngo 78573db17d User interface to allow admin to update company whether is a credit term customer for warehoue storage charges 2024-02-18 10:00:35 +08:00
Dillon Ngo af1b6ac373 Merge branch 'dillon/46.4-warehouse-storage-charges' into 'master'
User interface to allow admin to waive warehouse storage invoice transaction

See merge request CIEFWorldwideSdnBhd/shipping-portal!200
2024-02-15 13:47:31 +00:00
Dillon Ngo d807e5d4fd User interface to allow admin to waive warehouse storage invoice transaction 2024-02-15 21:21:08 +08:00
Dillon Ngo c427ae42a0 User interface to allow admin to waive warehouse storage invoice transaction 2024-02-15 21:18:02 +08:00
Dillon Ngo 8a7a4ce38a User interface to allow admin to waive warehouse storage invoice transaction 2024-02-15 21:01:50 +08:00
Dillon Ngo 1b6fe7445e User interface to allow admin to waive warehouse storage invoice transaction 2024-02-15 20:45:32 +08:00
Dillon Ngo 7b2d0c4e2b Merge branch 'dillon/51.4-explore-multiple-queues' into 'master'
Vue Polling - Explore multiple laravel queue with priority settings

See merge request CIEFWorldwideSdnBhd/shipping-portal!199
2024-02-13 23:36:24 +00:00
Dillon Ngo 1bcad555a0 Second high priority queue through database 2024-02-13 22:06:38 +08:00
Dillon Ngo 2973547e76 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Vue Polling - Solve a problem where query of packing list with contaienrs and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!198
2024-02-08 10:43:44 +00:00
Dillon Ngo 0b415e2e33 Vue Polling - Solve a problem where query of packing list with contaienrs and packages data is taking too long to complete + pagination problem 2024-02-08 18:41:57 +08:00
edmondlang 1110838e35 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into permits-reminder 2024-02-06 10:55:32 +08:00
edmondlang 9d87987488 code update - permits reminder - send email only at production 2024-02-06 10:55:19 +08:00
Omair Saleh 4c0984c9b8 fix container reschedule component 2024-02-05 15:08:51 +08:00
Omair Saleh 5517f16684 fix container reschedule component 2024-02-05 13:24:25 +08:00
Omair Saleh 4b967981dd fix container reschedule component 2024-02-05 12:56:30 +08:00
Omair Saleh e63b959714 fix container reschedule component 2024-02-05 12:52:07 +08:00
Omair Saleh a1751f274d Merge remote-tracking branch 'origin/master' 2024-02-05 12:48:54 +08:00
Omair Saleh ef6538feca fix container reschedule component 2024-02-05 12:47:51 +08:00
edmondlang de61d9a9fd add anitha email for premits reminder 2024-01-30 12:41:51 +08:00
edmondlang 2c1b857255 update permits reminder view 2024-01-30 12:37:34 +08:00
edmondlang 5b4a3507a3 add cron job to send permits reminder at daily 9.30 am 2024-01-30 00:48:23 +08:00
edmondlang 3d6543e467 add sample file 2024-01-30 00:42:21 +08:00
edmondlang 006a327a5f Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into permits-reminder 2024-01-30 00:34:51 +08:00
edmondlang 295e6454b1 add cron job command to send permits reminder 2024-01-30 00:34:39 +08:00
edmondlang f389efa6af add permits edit 2024-01-30 00:07:31 +08:00
Dillon Ngo f83c89b5f3 Second high priority queue through database 2024-01-26 04:03:06 +08:00
Dillon Ngo 4ea3132334 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Vue Polling - Solve a problem where query of packing list with contaienrs and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!197
2024-01-25 19:19:45 +00:00
Dillon Ngo 8fc3ac1b55 Vue Polling - Solve a problem where query of packing list with contaienrs and packages data is taking too long to complete 2024-01-26 03:18:58 +08:00
Dillon Ngo ed252e630b Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Vue Polling - Solve a problem where query of packing list with contaienrs and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!196
2024-01-25 18:21:17 +00:00
Dillon Ngo b6c9c8843d Vue Polling - Solve a problem where query of packing list with contaienrs and packages data is taking too long to complete 2024-01-26 02:19:31 +08:00
Dillon Ngo d80e996d02 Merge branch 'dillon/46.4-warehouse-storage-charges' into 'master'
Implement a solution to selectively waived a selected storage invoice

See merge request CIEFWorldwideSdnBhd/shipping-portal!195
2024-01-25 13:47:10 +00:00
Dillon Ngo 064ee3e41a Implement a solution to selectively waived a selected storage invoice 2024-01-24 06:50:18 +08:00
Dillon Ngo 3bda84dac5 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Vue Polling - Solve a problem where query of packing list with contaienrs and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!194
2024-01-21 14:49:24 +00:00
Dillon Ngo e2b378e197 Vue Polling - Solve a problem where query of packing list with contaienrs and packages data is taking too long to complete 2024-01-21 22:48:48 +08:00
Dillon Ngo 0f2e1297e1 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Vue Polling - Solve a problem where query of packing list with contaienrs and...

See merge request CIEFWorldwideSdnBhd/shipping-portal!193
2024-01-21 14:35:45 +00:00
Dillon Ngo d034a285fc Vue Polling - Solve a problem where query of packing list with contaienrs and packages data is taking too long to complete 2024-01-21 22:31:16 +08:00
Dillon Ngo ee94943d00 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Experimental solution (Vue Polling) to solve an AWS API Gateway problem limitation for Laravel Vapor in the event of a emergency rollback to Google

See merge request CIEFWorldwideSdnBhd/shipping-portal!192
2024-01-21 02:54:47 +00:00
Dillon Ngo a9e89a45bd Experimental solution (Vue Polling) to solve an AWS API Gateway problem limitation for Laravel Vapor in the event of a emergency rollback to Google 2024-01-21 10:53:23 +08:00
Dillon Ngo f6b10b5763 Merge branch 'dillon/51.3-vue-polling-experimental' into 'master'
Experimental solution (Vue Polling) to solve an AWS API Gateway problem limitation for Laravel Vapor in the event of a emergency rollback to Google

See merge request CIEFWorldwideSdnBhd/shipping-portal!191
2024-01-21 02:32:55 +00:00
Dillon Ngo 9b9057ea81 Experimental solution (Vue Polling) to solve an AWS API Gateway problem limitation for Laravel Vapor in the event of a emergency rollback to Google 2024-01-21 10:31:39 +08:00
Dillon Ngo 33d2d02cb0 Merge branch 'dillon/51-vue-polling-experimental-2' into 'master'
Undo Experimental solution (Vue Polling)

See merge request CIEFWorldwideSdnBhd/shipping-portal!190
2024-01-20 19:16:33 +00:00
Dillon Ngo e5be6eaceb Undo Experimental solution (Vue Polling) 2024-01-21 03:15:46 +08:00
edmondlang a545e6bad6 add bill_no in transaction details page 2024-01-17 17:19:37 +08:00
edmondlang b64b25ff05 code update 2024-01-17 17:06:31 +08:00
edmondlang d1426c7f05 all api and ui to create permits reminder 2024-01-17 00:43:17 +08:00
edmondlang 3375934651 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into permits-reminder
# Conflicts:
#	routes/api.php
2024-01-16 21:16:11 +08:00
edmondlang c79f58d246 permits reminder first commit 2024-01-16 21:15:29 +08:00
Dillon Ngo ee17ac0b0c Merge branch 'dillon/51-vue-polling-experimental-2' into 'master'
Experimental solution (Vue Polling) to solve an AWS API Gateway problem limitation for Laravel Vapor in the event of a emergency rollback to Google

See merge request CIEFWorldwideSdnBhd/shipping-portal!189
2024-01-15 16:43:45 +00:00
Dillon Ngo 26742a7335 Merge branch 'dillon/46.3.1-warehouse-storage-charges-fixes' into 'master'
Fix a problem with manual payment options not available when paying for invoices with warehouse storage charges

See merge request CIEFWorldwideSdnBhd/shipping-portal!188
2024-01-15 16:28:47 +00:00
Dillon Ngo 0e822ff1dd UI/UX amendment for order page when paying with storage invoice 2024-01-15 08:38:13 +08:00
Dillon Ngo 085b8b349f UI/UX amendment for order page when paying with storage invoice 2024-01-15 06:41:41 +08:00
edmondlang c1164397e8 fix errors diplaying in console in settings - warehouse 2024-01-14 22:56:45 +08:00
Dillon Ngo 3c16253795 Fix manual payment not showing in single order page when storage invoice is present 2024-01-14 09:33:31 +08:00
edmondlang 18a201611e add bind key for postcode array 2024-01-11 17:50:43 +08:00
edmondlang 7e754a9c7b add search postcode 2024-01-11 17:37:01 +08:00
edmondlang beb200fd6a Merge branch 'steve/account-mapping' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2024-01-11 10:59:40 +08:00
Steve Ng f0cb7828c3 invoice date for shipping portal when export invoice to autocount 2024-01-10 19:10:21 +08:00
Dillon Ngo 1956a4095d Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2024-01-08 17:49:42 +08:00
Dillon Ngo 71559701f4 Merge branch 'dillon/46.3-warehouse-storage-charges-fixes' into 'master'
Fix attempt on storage invoice pdf not able to be downloaded by user

See merge request CIEFWorldwideSdnBhd/shipping-portal!187
2024-01-05 21:55:59 +00:00
Dillon Ngo 9ceba30680 Fix attempt on storage invoice pdf not able to be downloaded by user 2024-01-06 05:53:59 +08:00
Dillon Ngo 3b2d06ed8f Fix attempt on storage invoice pdf not able to be downloaded by user 2024-01-06 05:52:55 +08:00
Dillon Ngo 81e04e9cb0 Fix attempt on storage invoice pdf not able to be downloaded by user 2024-01-06 05:52:26 +08:00
Dillon Ngo 286ca64413 Merge branch 'dillon/46.3-warehouse-storage-charges-fixes' into 'master'
Fix attempt on storage invoice pdf not able to be downloaded by user

See merge request CIEFWorldwideSdnBhd/shipping-portal!186
2024-01-05 21:11:33 +00:00
Dillon Ngo 51a96812fd Fix attempt on storage invoice pdf not able to be downloaded by user 2024-01-06 05:10:50 +08:00
Dillon Ngo 07459b9a1b Merge branch 'dillon/46.3-warehouse-storage-charges-fixes' into 'master'
Fix attempt on storage invoice pdf not able to be downloaded by user

See merge request CIEFWorldwideSdnBhd/shipping-portal!185
2024-01-05 21:08:00 +00:00
Dillon Ngo ee69f9123c Fix attempt on storage invoice pdf not able to be downloaded by user 2024-01-06 05:05:59 +08:00
Steve Ng 7a2ed92147 change posting date to invoice date for shipping portal when export invoice to autocount 2024-01-05 11:10:42 +08:00
Dillon Ngo 894481591d Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2024-01-04 13:52:11 +08:00
Dillon Ngo 359eba36e3 Laravel Vapor - Attempt to solve random downloading of 0KB pdf files when using docker 2024-01-04 03:38:32 +08:00
Dillon Ngo 8a99ceda4c Merge branch 'dillon/51-vue-polling-experimental-2' into dillon/34-jenkins-vapor 2024-01-04 03:03:17 +08:00
Dillon Ngo e5580c2abd Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2024-01-04 02:50:55 +08:00
Dillon Ngo 47ee304da1 Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2024-01-04 02:10:04 +08:00
Steve Ng 6427e2996f change posting date to invoice date for shipping portal when export invoice to autocount 2024-01-03 09:05:07 +08:00
Dillon Ngo c81863811e Merge branch 'dillon/51-vue-polling-experimental-2' into dillon/34-jenkins-vapor 2024-01-03 05:40:16 +08:00
Dillon Ngo f54aae5dc9 Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2024-01-03 05:39:43 +08:00
Dillon Ngo bbf61b757d Laravel Vapor - Version 2 of Commands, fix syntax inaccurate 2024-01-02 03:07:04 +08:00
Dillon Ngo f05bd50991 Laravel Vapor - Change to use private repository with Amazon Elastic Container Registry 2024-01-01 05:00:21 +08:00
Dillon Ngo 4504bf5eb0 Laravel Vapor - Change to use private repository with Amazon Elastic Container Registry 2024-01-01 04:52:23 +08:00
Dillon Ngo 9ecf0e5c9e Laravel Vapor - Change to use private repository with Amazon Elastic Container Registry 2024-01-01 04:48:17 +08:00
Dillon Ngo 2c5b9e55c5 Laravel Vapor - Change to use private repository with Amazon Elastic Container Registry 2024-01-01 04:19:01 +08:00
Dillon Ngo 9b61470d95 Laravel Vapor - Change to use private repository with Amazon Elastic Container Registry 2024-01-01 04:14:24 +08:00
Dillon Ngo ac3f4ce71f Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 22:15:36 +08:00
Dillon Ngo 1c9ce1510d Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 21:48:29 +08:00
Dillon Ngo 318995e42b Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 21:28:05 +08:00
Dillon Ngo 5a3e015b6d Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 21:08:45 +08:00
Dillon Ngo 3021ed49cd Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 05:15:08 +08:00
Dillon Ngo 45151688c9 Laravel Vapor - Test run command to do housekeeping as part of deployment process 2023-12-31 05:04:47 +08:00
Dillon Ngo 97dc8d7b68 Laravel Vapor - Fix error 400 with any api call (long term solution) 2023-12-30 19:27:05 +08:00
Dillon Ngo bfa5cee44e Merge branch 'dillon/51-vue-polling-experimental-2' into dillon/34-jenkins-vapor 2023-12-30 19:14:02 +08:00
Dillon Ngo f0ef9a5602 Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2023-12-30 19:13:40 +08:00
Dillon Ngo 6ad2427989 Laravel Vapor - Fix error 400 with any api call 2023-12-30 00:28:29 +08:00
Dillon Ngo 783b7d2b91 Laravel Vapor - Fix error 400 with any api call 2023-12-30 00:12:09 +08:00
Dillon Ngo e8f5a803a6 Laravel Vapor - Sync code from exchange, dynamic path upload of documents to S3 bucket 2023-12-29 23:15:59 +08:00
Dillon Ngo 6e3286c29a Laravel Vapor - Undo Api Gateway version 2 2023-12-28 15:06:11 +08:00
Dillon Ngo 6d029e3fde Laravel Vapor - Reinstate Api Gateway version 2 2023-12-28 14:58:26 +08:00
Dillon Ngo 3ab0224094 Laravel Vapor - Reinstate Api Gateway version 2 2023-12-28 14:41:34 +08:00
Dillon Ngo b0d40591b8 Laravel Vapor - Undo Api Gateway version 2 2023-12-28 14:06:53 +08:00
Dillon Ngo 5e2b011aca Laravel Vapor - Fix missing static images 2023-12-28 13:44:01 +08:00
Dillon Ngo 1facf73c05 Laravel Vapor - Fix missing static images 2023-12-28 13:13:37 +08:00
Dillon Ngo 9882f6f634 Version 2 of Commands for Laravel Vapor 2023-12-28 02:39:22 +08:00
Dillon Ngo 69c26af01b Version 2 of Commands for Laravel Vapor 2023-12-28 02:14:17 +08:00
Dillon Ngo 2ae3ac1c59 Version 2 of Commands for Laravel Vapor 2023-12-28 02:09:42 +08:00
Dillon Ngo 52acd4c69d Version 2 of Commands for Laravel Vapor 2023-12-28 01:58:49 +08:00
Dillon Ngo c80c59aadf testing schedule tasks 2023-12-26 19:39:47 +08:00
Dillon Ngo 921f500fcd Trigger deployment 2023-12-26 04:37:24 +08:00
Dillon Ngo 3880dbd616 Merge branch 'dillon/51-vue-polling-experimental-2' into dillon/34-jenkins-vapor 2023-12-26 04:22:11 +08:00
Dillon Ngo 4d682c2ac6 Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2023-12-26 04:21:46 +08:00
Dillon Ngo add6de3410 Merge branch 'dillon/51-vue-polling-experimental-2' into dillon/34-jenkins-vapor 2023-12-24 22:05:57 +08:00
Dillon Ngo 8ea00e0383 Proof of concept - Vue Polling - Performance Improvement and tweaking for better user experience 2023-12-24 21:59:41 +08:00
Dillon Ngo 12da4b4e60 testing multiple queue in sqs 2023-12-23 03:40:16 +08:00
Dillon Ngo 0ab6d2f38e testing multiple queue in sqs 2023-12-23 03:30:34 +08:00
Dillon Ngo c0368bfd19 testing multiple queue in sqs 2023-12-23 03:20:32 +08:00
Dillon Ngo eab11fa7f2 testing multiple queue in sqs 2023-12-23 02:50:27 +08:00
Dillon Ngo 328d61d044 testing multiple queue in sqs 2023-12-23 02:25:06 +08:00
Dillon Ngo ce76544ac1 testing multiple queue in sqs 2023-12-23 02:10:08 +08:00
Dillon Ngo 1d49d25f98 testing multiple queue in sqs 2023-12-23 01:56:21 +08:00
Dillon Ngo 570b6e53cc testing multiple queue in sqs 2023-12-23 01:31:41 +08:00
Dillon Ngo 7b6da3d13a Set api gateway to version 2 to see if there is any performance improvement + new certificate for ap-southeast-1 2023-12-22 16:11:45 +08:00
Dillon Ngo e0805a9601 Merge branch 'dillon/46-warehouse-storage-charges-2-merge-conflict' into 'master'
Emergency fix problem with group payment (reported by Eileen)

See merge request CIEFWorldwideSdnBhd/shipping-portal!184
2023-12-20 18:19:08 +00:00
Dillon Ngo 6f36c4b7ee Emergency fix problem with group payment (reported by Eileen) 2023-12-21 02:17:04 +08:00
Dillon Ngo 87194794f2 Merge branch 'dillon/46-warehouse-storage-charges-2-merge-conflict' into 'master'
Emergency fix problem with group payment (reported by Eileen)

See merge request CIEFWorldwideSdnBhd/shipping-portal!183
2023-12-20 16:06:34 +00:00
Dillon Ngo b4eca67a2f Emergency fix problem with group payment (reported by Eileen) 2023-12-20 23:58:56 +08:00
Dillon Ngo 1770b06498 Merge branch 'dillon/46-warehouse-storage-charges-2-merge-conflict' into 'master'
Emergency fix problem with group payment (reported by Eileen)

See merge request CIEFWorldwideSdnBhd/shipping-portal!182
2023-12-20 12:58:32 +00:00
Dillon Ngo 5c9fd6e2a6 Emergency fix problem with group payment (reported by Eileen) 2023-12-20 20:52:24 +08:00
Dillon Ngo 28aabea1cf Set api gateway to version 2 to see if there is any performance improvement 2023-12-20 18:50:11 +08:00
Dillon Ngo a840c8b172 Increase memory to see if there is any performance improvement 2023-12-20 18:26:19 +08:00
Dillon Ngo 2bff13537d Increase memory to see if there is any performance improvement 2023-12-20 18:11:00 +08:00
Dillon Ngo b4477c5925 Increase memory to see if there is any performance improvement 2023-12-20 17:40:17 +08:00
Dillon Ngo ede9712513 Debug 2023-12-20 17:18:25 +08:00
Dillon Ngo 7157ce169a Fix typo 2023-12-20 16:22:28 +08:00
Dillon Ngo 937b70530c Merge branch 'dillon/51-vue-polling-experimental-1' into dillon/34-jenkins-vapor 2023-12-20 15:07:10 +08:00
Dillon Ngo 18df1c0c7b Proof of concept - Vue Polling a workaround for AWS API Gateway limitation 2023-12-20 14:47:56 +08:00
Dillon Ngo 96796850b6 Merge branch 'dillon/51-vue-polling-experimental-1' into dillon/34-jenkins-vapor 2023-12-17 17:25:06 +08:00
Dillon Ngo 359c103d01 Code sync from Exchange 2023-12-17 17:23:04 +08:00
Dillon Ngo bb79903eb9 Setup development.portal.izyim.com 2023-12-16 20:30:10 +08:00
Dillon Ngo c7644b5f25 Setup dev.portal.izyim.com 2023-12-16 20:10:48 +08:00
Dillon Ngo 9f601a2ce1 Setup dev.portal.izyim.com 2023-12-16 20:03:10 +08:00
Dillon Ngo ffef6356f9 Setup dev.portal.izyim.com 2023-12-16 19:57:17 +08:00
Dillon Ngo ed7a636a18 Merge branch 'dillon/46-warehouse-storage-charges-2-merge-conflict' into 'master'
Fix a typo error

See merge request CIEFWorldwideSdnBhd/shipping-portal!181
2023-12-11 17:08:06 +00:00
Dillon Ngo 19bd548127 Fix a typo error 2023-12-12 01:07:06 +08:00
Dillon Ngo 55ac8064b1 Merge branch 'dillon/46-warehouse-storage-charges-2-merge-conflict' into 'master'
Warehouse Storage Charges - Effective From 11/12/2023 onwards

See merge request CIEFWorldwideSdnBhd/shipping-portal!180
2023-12-11 13:36:41 +00:00
Dillon Ngo e7279ec4d0 Merge branch 'master' into dillon/46-warehouse-storage-charges-2-merge-conflict 2023-12-11 21:29:06 +08:00
Dillon Ngo fe458f78a1 Merge branch 'dillon/34-jenkins-vapor' into vapor/production 2023-12-11 00:14:15 +08:00
Dillon Ngo 826d7288a0 Trigerring deployment 2023-12-10 23:39:42 +08:00
Dillon Ngo a7d4299897 Fix a typo error 2023-12-10 22:59:49 +08:00
Dillon Ngo 2b507d1006 Fix a typo error 2023-12-10 22:56:05 +08:00
Dillon Ngo 782a5c33ad Merge branch 'dillon/48-feedback-form-improvement' into 'master'
Update title for public feedback form page requested by Omair

See merge request CIEFWorldwideSdnBhd/shipping-portal!179
2023-12-09 04:54:15 +00:00
Dillon Ngo 6d3a2d9259 Update title for public feedback form page requested by Omair 2023-12-09 12:50:12 +08:00
Dillon Ngo 730b3d439a Merge branch 'dillon/48-feedback-form-improvement' into 'master'
Feedback form improvement

See merge request CIEFWorldwideSdnBhd/shipping-portal!178
2023-12-08 12:23:51 +00:00
Dillon Ngo 6b09d5facc Minor update on question text 2023-12-08 13:41:00 +08:00
Dillon Ngo 138a4f1cf6 Deleted some lines of codes 2023-12-07 17:17:39 +08:00
Dillon Ngo b54d897060 Remove <br> from payment transaction exported to excel file 2023-12-07 16:50:05 +08:00
Dillon Ngo c12959b4a8 Deleted some lines of codes 2023-12-07 16:44:06 +08:00
Dillon Ngo f94f380c16 Deleted some lines of codes 2023-12-07 16:42:52 +08:00
Dillon Ngo f46ec19f01 Update effective date for warehouse storage charges + commands to check for storage invoices 2023-12-07 16:35:51 +08:00
Omair Saleh c7a6a5b020 remove the 2 days delay for the ETA 2023-12-06 16:42:22 +08:00
Omair Saleh 8f64769214 remove the 2 days delay for the ETA 2023-12-06 16:38:57 +08:00
Dillon Ngo cb74228a68 Fix a problem reported by Yien where storage invoice number of days kept updated even though storage invoice already paid 2023-12-05 13:19:45 +08:00
Dillon Ngo b22cc0f7e3 Yien requested for some text description in invoice to be updated 2023-11-30 16:00:43 +08:00
Dillon Ngo 2e8ba4f630 Fix an error to export payment transaction in excel file 2023-11-30 13:56:35 +08:00
Dillon Ngo e987838d5a Fix 2 problem with generating storage invoice and export payment transaction in excel by date range 2023-11-30 13:36:38 +08:00
Omair Saleh 4c532deb4d debug yd address update 2023-11-28 22:44:36 +08:00
edmondlang 12f05b7aa6 add paymentUnknownOrderLog 2023-11-28 22:15:36 +08:00
Dillon Ngo 48fa67ae8c Fix a problem with starting date should be done on arrival date of goods to china warehouse 2023-11-27 19:29:13 +08:00
Dillon Ngo 1e9e94b581 Fix a problem with starting date should be done on arrival date of goods to china warehouse 2023-11-27 19:20:45 +08:00
Dillon Ngo 67653b60fb Fix a problem with starting date should be done on arrival date of goods to china warehouse 2023-11-27 19:14:32 +08:00
Dillon Ngo 4cf18d42ed Jenkinsfile update to cater for Multibranch deployment through Jenkins + staging.portal.izyim.com setup 2023-11-27 12:17:44 +08:00
Dillon Ngo 1f11ad0a09 Jenkinsfile update to cater for Multibranch deployment through Jenkins + staging.portal.izyim.com setup 2023-11-27 12:01:30 +08:00
Dillon Ngo c95b82520a Jenkinsfile update to cater for Multibranch deployment through Jenkins + staging.portal.izyim.com setup 2023-11-27 11:48:47 +08:00
Dillon Ngo 7435ad9c4a Jenkinsfile update to cater for Multibranch deployment through Jenkins + staging.portal.izyim.com setup 2023-11-27 11:46:21 +08:00
Dillon Ngo 26fffb8af1 Fix decimal number to lengthy 2023-11-27 09:35:34 +08:00
edmondlang 5cdbc09c5b update packinglist measurement - add order number 2023-11-26 23:45:32 +08:00
edmondlang c9877bb53e update packinglist measurement - change from order number to packinglist number 2023-11-26 22:21:02 +08:00
edmondlang 0bf84fa7b1 update combined invoice and packinglist measurement 2023-11-26 22:01:02 +08:00
Dillon Ngo fb0c74d645 Handling of dispute for warehouse storage fee 2023-11-24 13:44:28 +08:00
Dillon Ngo 53293f26d6 Amendment for Yien to do testing at dev environment 2023-11-24 02:29:05 +08:00
Dillon Ngo 56fe5520ad Amendment for Yien to do testing at dev environment 2023-11-24 00:33:07 +08:00
Dillon Ngo f06019d2b5 Update domain to production.portal.izyim.com 2023-11-22 15:08:40 +08:00
Dillon Ngo 4c9235cc53 Fix a tiny spelling mistake 2023-11-22 03:22:39 +08:00
Dillon Ngo babd492caa Questions should have order by just like answers 2023-11-22 03:14:36 +08:00
Dillon Ngo 3d1d1cce11 Fix feedback answer text not displaying correctly at admin dashboard 2023-11-21 19:41:30 +08:00
Dillon Ngo 820d96858f Feedback Form Improvement 2023-11-21 19:29:40 +08:00
Dillon Ngo 058ba592bf Merge branch 'dillon/48-feedback-form-improvement' into 'master'
Quick fix for feedback form entries cannot be downloaded

See merge request CIEFWorldwideSdnBhd/shipping-portal!177
2023-11-21 08:41:54 +00:00
Dillon Ngo d950ee3d68 Quick fix for feedback form entries cannot be downloaded 2023-11-21 16:34:32 +08:00
Dillon Ngo 61c801e216 Fix storage invoice with outdated info 2023-11-17 14:43:22 +08:00
Dillon Ngo 6f0acec390 Rename file, function + disable delete function for expired group payment 2023-11-17 14:16:02 +08:00
Dillon Ngo 76e3668563 20231109 Meeting Feedback 1 Fixes for warehouse storage charges 2023-11-16 22:40:26 +08:00
Dillon Ngo ce94dd1393 Fix for invoice status update using common function 2023-11-09 12:08:43 +08:00
Dillon Ngo c1ea087c58 Fix for storage invoice get to be generated even when the packingList not yet have APPROVED status 2023-11-09 08:34:03 +08:00
Dillon Ngo 8595d0987f Typo fix 2023-11-04 17:12:42 +08:00
Dillon Ngo 48d0460eef Debug billplz callback 2023-11-04 16:41:23 +08:00
Dillon Ngo 06751fdc78 New Warehouse Storage Fee 2023-11-04 14:58:50 +08:00
edmondlang da6ec00dbd cleanup 2023-10-27 16:13:43 +08:00
edmondlang 412dbd64d5 fix-payment-status-updated-but-failed-update-invoice 2023-10-27 16:12:31 +08:00
edmondlang 496df549f6 remove code 2023-10-27 10:10:02 +08:00
edmondlang 97eaefa45a regenerate single invoice 2023-10-27 09:16:23 +08:00
edmondlang 68c9e0451a update admin geenrate invoice view 2023-10-27 08:55:54 +08:00
Dillon Ngo b5bcd5c553 Quick test on dev server 2023-10-27 04:18:39 +08:00
JiaSheng 671c7a54fb fix delivery order in shipping invoice 2023-10-26 22:31:10 +08:00
edmondlang 2a28183426 hide wallet result not found 2023-10-24 01:04:41 +08:00
edmondlang 0ebea79750 Merge branch 'wallet-new-feature' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2023-10-24 00:51:16 +08:00
edmondlang a701242646 fix wallet audit 2023-10-24 00:49:07 +08:00
edmondlang 4bdeae997d Merge branch 'wallet-audit' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2023-10-23 23:54:19 +08:00
edmondlang 36809f34cc Merge branch 'steve/aging-listing' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2023-10-23 23:53:35 +08:00
edmondlang 032171bb18 update aging listing 2023-10-23 23:53:10 +08:00
JiaSheng d41bd3db39 fix bug when packing list is deleted 2023-10-23 22:00:31 +08:00
JiaSheng 56bba0eaaf wallet pagination, export 2023-10-22 23:46:09 +08:00
Dillon Ngo 52d9a6de14 Test deployment 2023-10-21 07:56:50 +08:00
Dillon Ngo 50c4ff7388 Fix error from Jenkins deployment 2023-10-21 07:18:56 +08:00
Dillon Ngo a50a0961bf Test deployment 2023-10-21 07:04:46 +08:00
edmondlang af8444e0d9 Merge branch 'wallet-audit' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal 2023-10-20 16:30:33 +08:00
edmondlang b2a7d1f73d update group payment 2023-10-20 16:26:18 +08:00
edmondlang 9d2ff3fafa update cash payment method 2023-10-20 16:22:19 +08:00
edmondlang 487d07e28c update design for approve payment 2023-10-20 16:02:04 +08:00
edmondlang 4176e09ea3 fix bug upload receipt modal not showing 2023-10-20 15:46:59 +08:00
edmondlang c44bf46a42 update web route for active wallet 2023-10-20 15:14:29 +08:00
edmondlang e687dd2b9a deletes payment 2023-10-19 22:54:21 +08:00
edmondlang 59951c4efd updater delete group transaction 2023-10-19 22:02:14 +08:00
edmondlang c00a4712a0 revert 2023-10-19 21:41:48 +08:00
edmondlang 1bb07e9402 revert 2023-10-19 21:38:24 +08:00
edmondlang 683bdec1f7 revert 2023-10-19 21:27:19 +08:00
edmondlang ee53a9438a temporary show all invoice 2023-10-19 21:25:44 +08:00
edmondlang 2e2087f16e temporary show all invoice 2023-10-19 21:23:15 +08:00
edmondlang 998b0b4da5 update delete group transaction 2023-10-19 20:48:22 +08:00
edmondlang dcf5c2e455 show billplz failed callback command 2023-10-19 20:14:59 +08:00
edmondlang 156b1dee07 update logic, for group payment, wallet must be credited first, then make group payment 2023-10-19 13:50:59 +08:00
edmondlang 544d7907c3 Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into wallet-audit 2023-10-19 13:43:53 +08:00
edmondlang 5b77f7baa6 add group payment in top up history 2023-10-19 11:44:25 +08:00
Jia Sheng Lee b33016aac4 only super admin can use the manual transfer for group payment 2023-10-18 15:28:12 +08:00
Jia Sheng Lee 2788e349ae manual transfer for admin to upload for bulk invoice payment 2023-10-18 15:06:46 +08:00
Steve Ng 04af87f640 csv download aging report 2023-10-18 08:48:30 +08:00
edmondlang 5b190d5334 revert ExportPendingArrangementPackingListV2Controller 2023-10-16 13:48:58 +08:00
Dillon Ngo 8f32769656 Merge branch 'dillon/44-quick-undo' into 'master'
Quick undo experimental security check

See merge request CIEFWorldwideSdnBhd/shipping-portal!176
2023-10-16 05:33:40 +00:00
Jia Sheng Lee 2d175f4acc recalculate wallet balance 2023-10-14 15:57:22 +08:00
Jia Sheng Lee 782aed06e4 add callback processor 2023-10-09 13:51:15 +08:00
Dillon 5208c654ad Jenkins Vapor initial commit 2023-09-26 20:35:53 +08:00
Dillon 883afbe04f Jenkins Vapor initial commit 2023-09-26 20:27:20 +08:00
Dillon 16c45a36d2 Jenkins Vapor initial commit 2023-09-26 20:24:15 +08:00
865 changed files with 47387 additions and 3585 deletions
+15 -1
View File
@@ -39,7 +39,7 @@ MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_BUCKET=shipping-portal-localhost
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
@@ -59,3 +59,17 @@ YD_API_CODE=''
PERFEXCRM_BASE_URL=""
PERFEXCRM_API_KEY=""
PERFEXCRM_IS_ENABLED="false"
VAPOR_ENV=local
LARAVEL_VAPOR_ENABLED=false
COMMANDS_V2_ENABLED=false
STORAGE_FEE_LAUNCH_DATE="2023-12-11 00:00:00"
SST_START_DATE="2024-04-01 00:00:00"
E_INVOICE_START_DATE="2025-07-01 00:00:00"
MAINTENANCE_MESSAGE_TITLE="We'll be back online on 00:00 1/7/2025"
MAINTENANCE_MESSAGE="Sorry for the inconvenience but we're performing some maintenance at the moment."
OPENAI_API_KEY=""
ANTHROPIC_API_KEY=""
+12
View File
@@ -0,0 +1,12 @@
APP_NAME=Laravel
APP_ENV=testing
APP_KEY=base64:I9qXyDlm7GVu/e47+YGzLB00fA/FMA2/hMPEhqu8pUQ=
JWT_SECRET=9j7f7vUWEzxUBjLYcQimZp5wmxHEglcjU3beog26qC4pQKENZSpfWQfv065tjZrZ
DB_CONNECTION=mysql
DB_HOST=172.18.0.3
DB_PORT=3306
DB_DATABASE=ci_test_shipping_portal
DB_USERNAME=ci
DB_PASSWORD=bi9y@T8r
+7 -1
View File
@@ -6,6 +6,7 @@
**/.idea/
.env
.env.backup
.env.testing.example
.phpunit.result.cache
Homestead.json
Homestead.yaml
@@ -21,7 +22,12 @@ gox.iml
rebuild_docker.sh
docker/*
db/*
package-lock.json
public/*
/public/*
storage/framework/laravel-excel/*
.vapor/
.env.production
.env.staging
.env.development
docz/*
.phpunit.cache/
+37
View File
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Site Under Maintenance</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
text-align: center;
padding: 50px;
}
.content {
background: white;
padding: 20px;
border-radius: 10px;
display: inline-block;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
</style>
<script>
setInterval(function() {
window.location.href = "/";
}, 60000); // 60000 ms = 1 minute, 300000 ms = 5 minutes
</script>
</head>
<body>
<div class="content">
<h1>We'll be back soon!</h1>
<p>Sorry for the inconvenience but we're performing some maintenance at the moment. We'll be back online shortly!</p>
<p>&mdash; CIEF IZYIM</p>
<a href="/" class="btn">Go Back Home</a>
</div>
</body>
</html>
Vendored
+181
View File
@@ -0,0 +1,181 @@
// Webhook + Gitlab git pull + Vapor
// def payload = readJSON text: "${payload}"
// String userName = payload.user_name
// String userEmail = payload.user_email
// String httpUrl = payload.project.http_url
pipeline {
agent {
docker {
args '--network ci-net --group-add 992 -v /var/run/docker.sock:/var/run/docker.sock'
image '303644228504.dkr.ecr.ap-southeast-1.amazonaws.com/jenkins-pipeline-agent-php-8.3:latest'
registryCredentialsId "ecr:ap-southeast-1:aws-ec2-instance-iam-role"
registryUrl "https://303644228504.dkr.ecr.ap-southeast-1.amazonaws.com"
}
}
environment {
HOME = '.'
// DB_CONNECTION = 'mysql'
// DB_DATABASE = 'portal_development'
// APP_ENV = 'testing'
}
stages {
stage('Download source code from Git') {
steps {
script{
currentBuild.description = 'Step 1 of 6 Completed'
println("GIT GIT_BRANCH: " + GIT_BRANCH)
switch(GIT_BRANCH) {
case "vapor/production":
case "vapor/staging":
case "vapor/development":
case "vapor/test":
git(
url: 'https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git',
credentialsId: 'gitlab-jenkins-localhost',
branch: GIT_BRANCH
)
break
case "origin/dillon/34-jenkins-vapor":
git(
url: 'https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git',
credentialsId: 'gitlab-jenkins-localhost',
branch: 'dillon/34-jenkins-vapor'
)
break
}
currentBuild.description = 'Step 2 of 6 Completed'
}
}
}
stage('Install') {
steps {
sh 'composer update'
script{
currentBuild.description = 'Step 3 of 6 Completed'
}
}
}
stage('Tests') {
steps {
// sh 'vendor/bin/phpunit tests/Unit'
// withCredentials([
// usernamePassword(
// credentialsId: 'shipping-portal-dev-db-credential',
// usernameVariable: 'DB_USERNAME',
// passwordVariable: 'DB_PASSWORD'
// ),
// string(credentialsId: 'shipping-portal-dev-db-host', variable: 'DB_HOST')
// ]) {
// sh 'vendor/bin/phpunit --filter ListOrderTrackingLogicTest'
// }
sh '''
set -e
export APP_ENV=testing
# export APP_KEY=$(php -r "echo 'base64:'.base64_encode(random_bytes(32));")
# export JWT_SECRET=$(php -r "echo bin2hex(random_bytes(32));")
# Show which PHP binary is used
which php
php -v
# List PHP modules to confirm pdo_mysql
php -m | grep pdo_mysql || echo "pdo_mysql not loaded"
# Show DB environment variables
echo "DB_CONNECTION=$DB_CONNECTION"
echo "DB_HOST=$DB_HOST"
echo "DB_PORT=$DB_PORT"
echo "DB_DATABASE=$DB_DATABASE"
echo "DB_USERNAME=$DB_USERNAME"
# Do NOT echo password in logs
php artisan migrate:fresh --force
vendor/bin/phpunit -c phpunit.ci.xml --group ok_to_run
'''
script {
currentBuild.description = 'Step 4 of 6 Completed'
}
}
}
stage('Deploy') {
steps {
script{
String gitCommitMessage = getCommitMessage()
println("GIT CommitMessage: " + gitCommitMessage)
println("GIT GIT_BRANCH: " + GIT_BRANCH)
switch(GIT_BRANCH) {
case "vapor/production":
sh "vendor/bin/vapor deploy production --message='${gitCommitMessage}'"
break
case "vapor/staging":
sh "vendor/bin/vapor deploy staging --message='${gitCommitMessage}'"
break
case "vapor/development":
sh "vendor/bin/vapor deploy development --message='${gitCommitMessage}'"
break
case "vapor/test":
sh "vendor/bin/vapor deploy test --message='${gitCommitMessage}'"
break
case "origin/dillon/34-jenkins-vapor":
sh "vendor/bin/vapor deploy development --message='${gitCommitMessage}'"
break
}
currentBuild.description = 'Step 5 of 6 Completed'
}
}
}
stage('Cleanup') {
steps {
script {
try {
sh '''
echo "Starting Docker cleanup..."
# Remove stopped containers
docker container prune -f
# Remove unused networks
docker network prune -f
# Remove unused images
docker image prune -a -f
# Remove unused build cache
docker builder prune -f
echo "Docker cleanup completed."
docker system df
'''
} catch (Exception e) {
echo "Error during cleanup: ${e.message}"
}
currentBuild.description = 'Step 6 of 6 Completed'
}
}
}
}
}
@NonCPS
String getCommitMessage(){
commitMessage = " "
for ( changeLogSet in currentBuild.changeSets){
for (entry in changeLogSet.getItems()){
commitMessage = entry.msg
}
}
commitMessage = commitMessage.replace("'", "`")
return commitMessage
}
@@ -0,0 +1,14 @@
<?php
namespace App\Classes\Exceptions;
use App\Classes\ValueObjects\Constants\HttpStatus;
final class CriteriaNotFulfilledException extends ServiceApiException {
public function __construct(?string $message = null) {
parent::__construct(
$message ?? 'One or more required criteria were not fulfilled.',
HttpStatus::VALIDATION_FAILED
);
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Classes\Exceptions;
use App\Classes\ValueObjects\Constants\HttpStatus;
final class JobResourceNotFoundException extends ServiceApiException {
public function __construct(?string $message = null) {
parent::__construct($message ?? 'Unable to find the requested resource', HttpStatus::RESOURCE_NOT_FOUND);
}
}
+48
View File
@@ -0,0 +1,48 @@
<?php
namespace App\Classes\General;
use Illuminate\Support\Facades\Storage;
use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\Exportable;
class AWSS3Helper
{
/**
* @param string $exportFileName
* @param Exportable $exportableObject
* @return string
*/
static function S3Exportable($exportFileName, $exportableObject){
//Step 1: Upload to S3
$filePathForS3 = 'temp/' . $exportFileName;
$exportableObject->store($filePathForS3, 's3');
//Step 2: Return temporary URL from S3
$temporaryUrl = Storage::disk('s3')->temporaryUrl(
$filePathForS3,
Carbon::now()->addMinutes(10)
);
return $temporaryUrl;
}
/**
* @param string $exportFileName
* @param string|resource $contents
* @return string
*/
static function S3PDF($exportFileName, $contents){
//Step 1: Upload to S3
$filePathForS3 = 'temp/' . $exportFileName;
Storage::disk('s3')->put($filePathForS3, $contents);
//Step 2: Return temporary URL from S3
$temporaryUrl = Storage::disk('s3')->temporaryUrl(
$filePathForS3,
Carbon::now()->addMinutes(10)
);
return $temporaryUrl;
}
}
@@ -15,6 +15,9 @@ use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Support\Facades\DB;
use App\Classes\Exceptions\JobResourceNotFoundException;
use App\Classes\General\LogHelper;
use Illuminate\Support\Facades\Log;
abstract class AbstractControllerLogic
{
@@ -62,6 +65,19 @@ abstract class AbstractControllerLogic
return $response;
} catch (ErrorException|GeneralExceptions|TypeError $exception){
if ($exception instanceof JobResourceNotFoundException) {
LogHelper::channel('vue_polling')->info(sprintf(
"Uncaught exception '%s' with message '%s' in %s:%d",
get_class($exception),
$exception->getMessage(),
$exception->getTrace()[0]['file'],
$exception->getTrace()[0]['line']
));
}
else{
Log::error($exception);
}
return (new ApiResponseObject($this->getNotificationTitle().' failed', $exception->getMessage(),
!in_array($exception->getCode(), [0, 42000]) ? $exception->getCode() : HttpStatus::SERVER_ERROR))->handler();
@@ -6,6 +6,8 @@ namespace App\Classes\General\Eloquent;
use App\Classes\Exceptions\ResourceNotFoundException;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use App\Classes\Exceptions\JobResourceNotFoundException;
abstract class AbstractFetchRecord extends AbstractGetRecord
{
@@ -26,12 +28,18 @@ abstract class AbstractFetchRecord extends AbstractGetRecord
* @return Model
* @throws ResourceNotFoundException
*/
public function getResults(Builder $query): Model {
public function getResults(Builder $query, array $param = []): Model {
if(!$query->exists()){
throw new ResourceNotFoundException('Unable to find any record based on the criteria provided');
$table = $query->getModel()->getTable();
if($table ==='job_results'){
throw new JobResourceNotFoundException('Unable to find any job based on the criteria provided');
}
else{
throw new ResourceNotFoundException('Unable to find any record based on the criteria provided');
}
}
return $query->first();
}
}
}
@@ -19,22 +19,29 @@ abstract class AbstractGetRecord
/**
* @return Collection
*/
private function getQueryFilters(){
private function getQueryFilters()
{
return $this->filters->except(self::DECORATION_FILTERS);
}
/**
* @return Collection
*/
public function getDecorationFilters(){
public function getDecorationFilters()
{
return $this->filters->only(self::DECORATION_FILTERS);
}
/**
* @param null|string $json
* @param null|string|array $json
* @return array
*/
public function deserializeFilters(?string $json): array {
public function deserializeFilters($json): array
{
if (is_array($json)) {
return $json;
}
return $json !== null ? collect(json_decode($json))->toArray() : [];
}
@@ -50,9 +57,10 @@ abstract class AbstractGetRecord
* @param array $filters
* @return mixed
*/
public function handler(array $filters){
public function handler(array $filters, array $params = [])
{
$this->filters = collect($filters);
return $this->getResults($this->applyFiltersToQuery());
return $this->getResults($this->applyFiltersToQuery(), $params);
}
@@ -65,6 +73,6 @@ abstract class AbstractGetRecord
* @param Builder $query
* @return mixed
*/
abstract function getResults(Builder $query);
abstract function getResults(Builder $query, array $params = []);
}
}
@@ -16,11 +16,10 @@ abstract class AbstractListRecord extends AbstractGetRecord
* @return mixed
* @throws MalformedRequestException
*/
public function execute(array $filters = []){
public function execute(array $filters = [], array $param = []){
try{
return $this->handler($filters);
return $this->handler($filters, $param);
} catch (QueryException $exception){
throw new MalformedRequestException('Unable to fetch the list of records due to unexpected error');
@@ -32,7 +31,7 @@ abstract class AbstractListRecord extends AbstractGetRecord
* @param Builder $query
* @return mixed
*/
public function getResults(Builder $query) {
public function getResults(Builder $query, array $param = []) {
$filters = $this->getDecorationFilters();
if($filters->has('order_by')){
@@ -44,8 +43,12 @@ abstract class AbstractListRecord extends AbstractGetRecord
}
//dd($query->toSql());
return $filters->has('per_page') ? $query->paginate($filters->get('per_page')) : $query->get();
if(!empty($param)){
return $filters->has('per_page') ? $query->paginate($filters->get('per_page'), ['*'], 'page', $param['page']) : $query->get(); //page data from query parameters e.g ?page=1
}
else{
return $filters->has('per_page') ? $query->paginate($filters->get('per_page')) : $query->get();
}
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class CompanySegmentsIn implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->whereHas('companyModules', function ($module) use ($value) {
$module->whereHas('connections', function ($connection) use ($value) {
$connection->whereHas('connectionSegments', function ($segment) use ($value) {
$segment->whereIn('segment_id', $value);
});
});
});
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
class CreatedAfterOrEqual implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
$table = $builder->getModel()->getTable();
$startDate = Carbon::createFromFormat('d-m-Y', $value)->startOfDay();
return $builder->where("{$table}.created_at", '>=', $startDate);
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
class CreatedBeforeOrEqual implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
$table = $builder->getModel()->getTable();
$endDate = Carbon::createFromFormat('d-m-Y', $value)->endOfDay();
return $builder->where("{$table}.created_at", '<=', $endDate);
}
}
@@ -17,4 +17,4 @@ class HasInvoiceStatusIn implements Filter
$query->where('type', 1)->whereIn('status', $value);
});
}
}
}
@@ -0,0 +1,38 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Log;
class HasParcelWithTransportBetweenDate implements Filter
{
public static function apply(Builder $builder, $value)
{
if (is_string($value)) {
$value = json_decode($value, true) ?? [];
}
$startDate = Carbon::make(data_get($value, 'start_date'));
$endDate = Carbon::make(data_get($value, 'end_date'));
$start = $startDate ? $startDate->startOfDay() : null;
$end = $endDate ? $endDate->endOfDay() : null;
if (!$start && !$end) return $builder;
if ($start && $end && $start->gt($end)) [$start, $end] = [$end, $start];
return $builder->whereHas('transports', function (Builder $q) use ($start, $end) {
if ($start && $end && $start->isSameDay($end)) {
return $q->whereDate('drop_date', $start->toDateString());
}
if ($start && $end) {
return $q->whereBetween('drop_date', [$start, $end]);
}
return $start
? $q->where('drop_date', '>=', $start)
: $q->where('drop_date', '<=', $end);
});
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class JobId implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('job_id', $value);
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class MarkingIn implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->whereHas('companyModules', function ($module) use ($value) {
$module->whereHas('connections', function ($connection) use ($value) {
$connection->whereIn('invitee_reference', $value);
});
});
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class OrderByIdDesc implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->orderBy('id', 'desc');
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class OrderByUpdatedAtDesc implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->orderBy('updated_at', 'desc');
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class OrderTrackingId implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('order_tracking_id', $value);
}
}
@@ -14,7 +14,8 @@ class OwnerId implements Filter
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('owner_id', $value);
$table = $builder->getModel()->getTable();
return $builder->where("{$table}.owner_id", $value);
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class OwnerType implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
$table = $builder->getModel()->getTable();
return $builder->where("{$table}.owner_type", $value);
}
}
@@ -0,0 +1,67 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\SegmentConstants;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\PackingList;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
class PackingListLimitOneByTypeOrderedByInvoiceDate implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->select('packing_lists.*')->join('transactions', function($join){
$join->on('transactions.owner_id', '=', 'packing_lists.id');
$join->where('transactions.owner_type', '=', PackingList::class);
$join->where('transactions.status', '=', ApprovalStatus::APPROVED);
$join->whereNull('transactions.deleted_at');
$join->whereRaw('(transactions.type <> 16 OR transactions.id = (
SELECT id FROM transactions WHERE owner_id = packing_lists.id AND type = 16 LIMIT 1
))');
})->orderBy('transactions.updated_at', 'DESC');
//Original with problem
// return $builder->select('packing_lists.*')->join('transactions', function($join){
// $join->on('transactions.owner_id', '=', 'packing_lists.id');
// $join->where('transactions.owner_type', '=', PackingList::class);
// $join->where('transactions.status', '=', ApprovalStatus::APPROVED);
// $join->whereNull('transactions.deleted_at');
// $join->whereRaw('(transactions.type <> 16 OR transactions.id = (
// SELECT id FROM transactions WHERE owner_id = packing_lists.id AND type = 16 LIMIT 1
// ))');
// })->orderBy('transactions.updated_at', 'DESC');
//Attempt 1
// return $builder->with(['transactions' => function ($query) {
// $query->where('status', ApprovalStatus::APPROVED)
// ->whereNull('deleted_at')
// ->whereRaw('(
// transactions.type <> 16 OR transactions.id = (
// SELECT id FROM transactions AS t2
// WHERE t2.owner_id = transactions.owner_id
// AND t2.owner_type = ?
// AND t2.type = 16
// LIMIT 1
// )
// )', [PackingList::class])
// ->orderBy('updated_at', 'DESC');
// }]);
//Attempt 2
// return $builder->with(['transactions' => function ($query) {
// $query->where('status', ApprovalStatus::APPROVED)
// ->where('type', '<>', 16 )
// ->whereNull('deleted_at')
// ->orderBy('updated_at', 'DESC');
// }]);
}
}
@@ -23,6 +23,7 @@ class PackingListOrderedByInvoiceDate implements Filter
$join->on('transactions.owner_id', '=', 'packing_lists.id');
$join->where('transactions.owner_type', '=', PackingList::class);
$join->where('transactions.status', '=', ApprovalStatus::APPROVED);
$join->whereNull('transactions.deleted_at');
})->orderBy('transactions.updated_at', 'DESC');
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class PostcodeLike implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('postcode', 'LIKE', '%'.$value.'%');
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class RequestSignature implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('request_signature', $value);
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class ResultNotNull implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->whereNotNull('result');
}
}
@@ -14,7 +14,8 @@ class StatusIn implements Filter
*/
public static function apply(Builder $builder, $value)
{
return $builder->whereIn('status', $value);
$table = $builder->getModel()->getTable();
return $builder->whereIn("{$table}.status", $value);
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class TrackingNo implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('tracking_no', $value)
->where(function ($query) {
$query->whereNotNull('tracking_english')
->orWhereNotNull('remark_english');
});
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class TypeNotIn implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->whereNotIn('type', $value);
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Builder;
class WithAgingColumn implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
$today = Carbon::now();
return $builder->select('packing_lists.*')
->addSelect(DB::raw("DATEDIFF('$today', transactions.updated_at) as days_over_duedate"))
->addSelect(DB::raw("CASE
WHEN DATEDIFF('$today', transactions.updated_at) <= 0 THEN 0
WHEN DATEDIFF('$today', transactions.updated_at) > 0 AND DATEDIFF('$today', transactions.updated_at) <= 30 THEN 1
WHEN DATEDIFF('$today', transactions.updated_at) > 30 AND DATEDIFF('$today', transactions.updated_at) <= 60 THEN 2
WHEN DATEDIFF('$today', transactions.updated_at) > 60 AND DATEDIFF('$today', transactions.updated_at) <= 90 THEN 3
ELSE 4
END AS due_date_number"));
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Log;
class WithContainersPackages implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
// Log::info('WithContainersPackages: '.$value);
// return $builder->with(['containers', 'packages']);
return null;
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class WithOrderReferenceLike implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->join('transactions as t2', 't2.payment_reference', '=', 'transactions.bill_no')
->join('transactions as t3', 't3.id', '=', 't2.owner_id')
->join('packing_lists', 'packing_lists.id', '=', 't3.owner_id')
->join('orders', function ($join) use ($value) {
$join->on('orders.id', '=', 'packing_lists.owner_id')
->where('orders.reference', 'LIKE', '%'.$value.'%');
})
->addSelect(['transactions.*', 't2.id as paymentTransactionId', 't3.id as invoiceTransactionId', 'packing_lists.id as packingListId', 'orders.reference as orderReference']);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class WithTrashed implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->withTrashed();
}
}
+20 -4
View File
@@ -3,6 +3,8 @@ namespace App\Classes\General;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Storage;
use Carbon\Carbon;
class ExcelHandel
{
@@ -67,9 +69,23 @@ class ExcelHandel
public static function generateExcel($path = '', $exceldata = '', $filename = '', $extension = '')
{
$file_info = [];
$file = \Storage::disk('public')->put('excels/' . $path . '/' . $filename . '.' . $extension, $exceldata);
$file_info['original']['file'] = storage_path('app/public/excels/' . $path . '/' . $filename . '.' . $extension);
$filesystemDriver = Storage::getDefaultDriver();
if($filesystemDriver === 's3'){
$filePathForS3 = 'public/excels/' . $path . '/' . $filename . '.' . $extension;
Storage::disk('s3')->put($filePathForS3, $exceldata);
$temporaryUrl = Storage::disk('s3')->temporaryUrl(
$filePathForS3,
Carbon::now()->addMinutes(10)
);
$file_info['original']['file'] = $temporaryUrl; //REMINDER: This is a path to AWS S3 URL (HTTPS) as a public anonymous user, NOT an internal system path
}
else{
$file = Storage::disk('public')->put('excels/' . $path . '/' . $filename . '.' . $extension, $exceldata);
$file_info['original']['file'] = storage_path('app/public/excels/' . $path . '/' . $filename . '.' . $extension);
}
return $file_info;
}
@@ -84,4 +100,4 @@ class ExcelHandel
return true;
}
}
}
+84
View File
@@ -2,6 +2,7 @@
namespace App\Classes\General;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Log;
@@ -40,4 +41,87 @@ class Helper
}
}
}
/**
* @param ResourceCollection $collection
* @return array
*/
static function collectionResponse(ResourceCollection $collection){
return json_decode($collection->response()->getContent(), true);
}
/**
* @param null|string $json
* @return array
*/
static function deserializeFilters(?string $json): array {
return $json !== null ? collect(json_decode($json))->toArray() : [];
}
public static function getLHDNStateCodeByName($name)
{
$path = resource_path('data/lhdn/StateCodes.json');
if (!file_exists($path)) {
return null;
}
$json = file_get_contents($path);
$data = json_decode($json, true);
if (!is_array($data)) {
return null;
}
$name = strtolower(trim($name));
// Step 1: Try exact match
foreach ($data as $item) {
if (
isset($item['State']) &&
strtolower(trim($item['State'])) === $name
) {
return $item['Code'] ?? null;
}
}
// Step 2: Try partial match
foreach ($data as $item) {
if (
isset($item['State']) &&
str_contains(strtolower($item['State']), $name)
) {
return $item['Code'] ?? null;
}
}
return null;
}
public static function getLHDNMsicDescriptionByCode($code)
{
$path = resource_path('data/lhdn/MSICSubCategoryCodes.json');
if (!file_exists($path)) {
return null;
}
$json = file_get_contents($path);
$data = json_decode($json, true);
if (!is_array($data)) {
return null;
}
foreach ($data as $item) {
if (
isset($item['Code']) &&
$item['Code'] === $code
) {
return $item['Description'] ?? null;
}
}
return null;
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Classes\General\Interfaces;
use Illuminate\Database\Eloquent\Relations\MorphMany;
interface KeyValueInterface
{
public function attributesKVP(): morphMany;
}
+1 -1
View File
@@ -10,4 +10,4 @@ interface Steppable
public function steps(): morphMany;
}
}
+66
View File
@@ -0,0 +1,66 @@
<?php
namespace App\Classes\General;
use Illuminate\Support\Facades\Log;
class LogHelper
{
private String $channelName;
public static function channel($channelName): self
{
$logHelper = new self;
$logHelper->channelName = $channelName;
return $logHelper;
}
public function info($message)
{
$envVar = env('LARAVEL_VAPOR_ENABLED');
$isLocal = env('VAPOR_ENV') === 'local';
if($envVar)
{
Log::info("Info: {$message} channelName {$this->channelName}, envVar {$envVar}");
}
if ($envVar && !$isLocal) {
Log::channel($this->channelName.'_vapor')->info($message);
}
else{
Log::channel($this->channelName)->info($message);
}
}
public function warning($message)
{
$envVar = env('LARAVEL_VAPOR_ENABLED');
$isLocal = env('VAPOR_ENV') === 'local';
if($envVar)
{
Log::info("Warning: {$message} channelName {$this->channelName}, envVar {$envVar}");
}
if ($envVar && !$isLocal) {
Log::channel($this->channelName . '_vapor')->warning($message);
} else {
Log::channel($this->channelName)->warning($message);
}
}
public function error($message)
{
$envVar = env('LARAVEL_VAPOR_ENABLED');
$isLocal = env('VAPOR_ENV') === 'local';
if($envVar)
{
Log::info("Error: {$message} channelName {$this->channelName}, envVar {$envVar}");
}
if ($envVar && !$isLocal) {
Log::channel($this->channelName . '_vapor')->error($message);
} else {
Log::channel($this->channelName)->error($message);
}
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Classes\General;
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
class UrlHelper {
public static function getRouteParametersFromUrl($url) {
$parsedUrl = parse_url($url);
$path = $parsedUrl['path'];
$routes = Route::getRoutes();
foreach ($routes as $route) {
$request = Request::create($path, 'GET');
$route->bind($request);
if ($route->matches($request)) {
return $route->parameters();
}
}
return [];
}
}
@@ -0,0 +1,46 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use App\Classes\Modules\Transactions\Processors\ApproveShippingInvoiceTransactionProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Exception;
class ApproveInvoiceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Approve Invoice Command.');
$start = new Carbon();
$invoices = Transaction::where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::PENDING_SUBMISSION)->get();
foreach ($invoices as $invoice) {
$packingList = $invoice->owner;
$order = $packingList->owner;
try {
(App()->make(ApproveShippingInvoiceTransactionProcessor::class))->execute($packingList);
Log::info('Invoice Approved for reference ' . $order->reference . '.');
} catch (Exception $exception) {
Log::info('Failed to Approve invoice for reference ' . $order->reference . '. Exception: ' . $exception->getMessage());
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Approve Invoice Command. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,53 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class AuditBillplzInvoiceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Audit Billplz Invoice.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$transactions = Transaction::where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::COMPLETED)->whereHas('transactions', function($query){
return $query->where('type', TransactionType::PAYMENT)->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY)->where('status', ApprovalStatus::REJECTED);
})->get();
$totalTransactions = count($transactions);
$counter = 1;
$totalAmount = 0;
foreach ($transactions as $transaction){
$payment_transaction = $transaction->transactions->sortByDesc('created_at')->first();
if ($payment_transaction->status === ApprovalStatus::REJECTED) {
Log::info($counter . ' of ' . $totalTransactions . '. Order Marking: '. $payment_transaction->owner->owner->owner->reference . '. Transaction Id: '. $payment_transaction->id . '. Invoice Id: '. $transaction->id . ' - Date: '.$payment_transaction->created_at->format('d-m-Y').' - Amount: '. $payment_transaction->amount);
$totalAmount += $transaction->amount;
$counter++;
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Audit Billplz Invoice. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
}
}
@@ -0,0 +1,55 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class AuditBillplzPaymentV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Audit Billplz Payment.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$transactions = Transaction::where('type', TransactionType::PAYMENT)->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY)->whereIn('status', [ApprovalStatus::COMPLETED, ApprovalStatus::APPROVED])->get();
$totalTransactions = count($transactions);
$counter = 1;
$totalAmount = 0;
foreach ($transactions as $transaction){
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$transaction->payment_reference);
if($response->successful()){
$data = $response->json();
if($data['paid']){
} else {
$totalAmount += $transaction->amount;
Log::info($counter . ' of ' . $totalTransactions . '. Order: '. $transaction->owner->owner->owner->reference . ' - Date: '.$transaction->owner->created_at->format('d-m-Y').' - Amount: '. $transaction->amount);
}
}else{
Log::info("billplz error</br>");
}
$counter++;
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Audit Billplz Payment. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
}
}
@@ -0,0 +1,64 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\PackingLists\Services\ListsPackingLists;
use App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Models\Order;
use Exception;
use Illuminate\Support\Facades\Log;
class AutoGenerateInvoiceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Auto generate invoice.');
$start = new Carbon();
$packingLists = (App()->make(ListsPackingLists::class))->execute(['does_not_have_transaction_type' => 1, 'type' => 2]);
if (count($packingLists)) {
foreach ($packingLists as $packingList) {
$order = $packingList->owner;
if (!($order instanceof Order)) {
Log::info('Failed to generate invoice for reference' . $order->reference . '. It is not an instance of Order.');
continue;
}
$companyModule = $order->companyModule;
$billingAddress = $companyModule->addresses()->where('type', \App\Classes\ValueObjects\Constants\AddressType::BILLING)->first();
$deliveryAddress = $order->addresses()->where('status', ApprovalStatus::APPROVED)->first();
$postCodes = \App\Models\SegmentConstant::whereIn('reference', ['CENTER_POSTCODE', 'OUTSTATION_POSTCODE'])->get()->pluck('value')->flatten();
if (!!$billingAddress && in_array($deliveryAddress->postcode, $postCodes->toArray())) {
try {
(App()->make(CreateInvoiceTransactionProcessor::class))->execute($packingList);
Log::info('Invoice generated for reference ' . $order->reference . '.');
} catch (Exception $exception) {
Log::info('Failed to generate invoice for reference ' . $order->reference . '. Exception: ' . $exception->getMessage());
}
}
else{
Log::info('Failed to generate invoice for reference ' . $order->reference . '. Billing Address is not defined / Postcode area is not defined.');
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Auto generate invoice. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,63 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class CheckDeletedInvoiceButPaidV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Check all deleted invoice but has completed payment.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$totalAmount = 0;
$softDeletedTransactions = Transaction::onlyTrashed()->where('type', TransactionType::SHIPPING_INVOICE)->whereHas('transactions', function (Builder $query) {
$query->where('type', TransactionType::PAYMENT)->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY);
})->get();
foreach ($softDeletedTransactions as $invoice) {
$invoice_payments = $invoice->transactions()->payments()->get();
foreach($invoice_payments as $invoice_payment) {
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$invoice_payment->payment_reference);
if($response->successful()){
$data = $response->json();
$orderReference = $invoice->owner->owner->reference ?? null;
if($data['paid']){
Log::info('Invoice id: ' . $invoice->id. '. Payment id: ' . $invoice_payment->id . '. Order: ' . $orderReference);
} else {
}
}else{
Log::info("billplz error</br>");
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Check all deleted invoice but has completed payment. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
}
}
@@ -0,0 +1,48 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Transactions\Services\ListsGroups;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Models\Order;
use Illuminate\Support\Facades\Log;
class CheckStorageInvoicesGroupTransactionsV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Check all pending group payment with storage invoice is valid.');
$start = new Carbon();
$newfilters['order_by_updated_at_desc'] = true;
$newfilters['status_in'] = [0, 1];
$groups = (App()->make(ListsGroups::class))->execute($newfilters);
foreach ($groups as $group){
Log::info('CheckForStorageInvoiceByTransactions group: '.json_encode($group));
foreach ($group->groupTransactions as $groupTransaction) {
$invoice = $groupTransaction->transaction;
$packingList = $invoice->owner()->first();
if($packingList){
$order = $packingList->owner()->first();
if($order instanceof Order){
$storages = (App()->make(CheckStorageInvoiceTransactionProcessor::class))->executeOrder($order);
}
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Check all pending group payment with storage invoice is valid. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,45 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Orders\Services\ListsOrders;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Classes\ValueObjects\Constants\OrderType;
use Illuminate\Support\Facades\Log;
class CheckStorageInvoicesOrdersV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Check all orders for storage invoice.');
$start = new Carbon();
$orders = (App()->make(ListsOrders::class))->execute(['with_parcels' => true, 'type_in' => [OrderType::SHARED_CONTAINER, OrderType::DEDICATED_CONTAINER]]);
$count = 0;
foreach ($orders as $order){
try{
$storages = (App()->make(CheckStorageInvoiceTransactionProcessor::class))->executeOrder($order);
$count = $count + 1;
Log::info('Order '.$count);
}
catch(\Exception $ex){
Log::info('Exception '.$ex->getMessage());
break;
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Check all orders for storage invoice. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Orders\Services\ListsOrders;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Classes\ValueObjects\Constants\OrderType;
use Illuminate\Support\Facades\Log;
class CheckStorageInvoicesSingleOrderV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $order;
public function __construct($order)
{
$this->order = $order;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Check single order for storage invoice.');
$start = new Carbon();
try{
Log::info("Processing Order - ID: {$this->order->id}, Reference: {$this->order->reference}");
(App()->make(CheckStorageInvoiceTransactionProcessor::class))->executeOrder($this->order);
}
catch(\Exception $ex){
Log::info('Exception '.$ex->getMessage());
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Check single order for storage invoice. ElapsedTime: ' . $elapsedTime . '.');
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class DummyJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Dummy.');
$start = new Carbon();
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Dummy. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Billplzs\Processors\CallbackBillplzProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Models\Group;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class FixApprovedPaymentFailedGroupV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix all payment is approved or completed but group failed to be updated.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
// $this->outputArray = [];
$groups = Group::whereNotIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])
->whereHas('payment', function ($query) {
$query->whereIn('status', [2, 3]);
})->get();
foreach ($groups as $group) {
$transaction = $group->payment;
$response = Http::withBasicAuth(config('billplz.api_key') . ':', '')->get(config('billplz.base_url') . '/api/v3/bills/' . $transaction->payment_reference);
dump($transaction->payment_reference);
if ($response->successful()) {
$data = $response->json();
if ($data['paid']) {
$status = ApprovalStatus::PENDING_VERIFICATION;
if ($data['state'] === 'paid') {
$status = ApprovalStatus::APPROVED;
}
Log::info(Carbon::now() . ' : Fixing ' . $transaction->payment_reference);
(App()->make(CallbackBillplzProcessor::class))->execute($transaction, $status);
}
} else {
Log::info("billplz error");
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
// if ($groups) {
// $this->info(Carbon::now() . ' : Done . ElapsedTime: ' . $elapsedTime);
// }
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix all payment is approved or completed but group failed to be updated. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,67 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Billplzs\Processors\CallbackBillplzProcessor;
use App\Classes\Modules\Billplzs\Services\GetBillplzBill;
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor;
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class FixBillplzFailedCallbackPaymentV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $transactionId;
public function __construct(int $transactionId)
{
$this->transactionId = $transactionId;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix failled callback from billplz.');
$start = new Carbon();
$transaction = Transaction::where('id', $this->transactionId)->first();
Log::info('Billplz Url: '.config('billplz.base_url').'/api/v3/bills/'.$transaction->payment_reference);
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$transaction->payment_reference);
if($response->successful()){
$data = $response->json();
if($data['paid']) {
$status = ApprovalStatus::PENDING_VERIFICATION;
if($data['state'] === 'paid') {
$status = ApprovalStatus::APPROVED;
}
Log::info(Carbon::now() . ' : Fixing ' . $transaction->payment_reference);
(App()->make(CallbackBillplzProcessor::class))->execute($transaction, $status);
}
}
else{
Log::info("billplz error");
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix failled callback from billplz. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,56 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Container;
use App\Models\ContainerPackingList;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class FixDuplicateContainerReferenceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix Duplicate Container Reference.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$duplicatedContainers = Container::select('reference', DB::raw('COUNT(reference) as count'))
->groupBy('reference')
->having('count', '>', 1)
->get();
foreach ($duplicatedContainers as $duplicatedContainer) {
$containers = Container::where('reference', $duplicatedContainer->reference)->get();
$containers = $containers->sortByDesc(function ($container) {
return $container->packingLists->count();
});
$firstContainer = $containers->shift();
foreach ($containers as $container) {
$firstContainer->packingLists()->syncWithoutDetaching($container->packingLists);
$container->packingLists()->detach();
Log::info('Deleted container ' . $container->id);
$container->delete();
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix Duplicate Container Reference. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,52 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Orders\Services\FetchesOrder;
use App\Classes\Modules\Transactions\Processors\CreateStorageInvoiceDocTransactionFixProcessor;
use Illuminate\Support\Facades\Log;
class FixGroupPaymentProblemV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix Group Payment Problem.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
/*
$group = $this->fetchesGroup->execute(['id' => 325]);
$this->info('FixGroupPaymentProblem group: '.json_encode($group));
if ($group) {
foreach ($group->groupTransactions as $groupTransaction) {
$invoice = $groupTransaction->transaction;
$this->info('FixGroupPaymentProblem group: '.json_encode($invoice));
$pL = $invoice->owner;
$this->releaseGoodsToCustomerProcessor->execute($pL, $invoice);
}
}
*/
$order = (App()->make(FetchesOrder::class))->execute(['reference' => '729251424']);
$packingLists = $order->destinationWarehousePackages;
foreach ($packingLists as $packingList){
(App()->make(CreateStorageInvoiceDocTransactionFixProcessor::class))->execute($packingList, true);
dd(json_encode($packingList));
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix Group Payment Problem. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,62 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Jobs\DataTransferObjects\FixInvoiceV2CommandObject;
use App\Classes\Modules\Transactions\Processors\CreateShippingInvoiceTransactionDocProcessor;
use App\Classes\ValueObjects\Constants\DocumentType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\CompanyConnection;
use App\Models\Order;
use Illuminate\Support\Facades\Log;
class FixInvoiceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/** @var FixInvoiceV2CommandObject*/
private $fixInvoiceV2CommandObject;
/**
* FixInvoiceV2CommandJob constructor.
* @param FixInvoiceV2CommandObject $fixInvoiceV2CommandObject
*/
public function __construct(FixInvoiceV2CommandObject $fixInvoiceV2CommandObject)
{
$this->fixInvoiceV2CommandObject = $fixInvoiceV2CommandObject;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix invoice.');
$start = new Carbon();
$connection = CompanyConnection::where('invitee_reference', $this->fixInvoiceV2CommandObject->getMarking())->first();
$company_module_id = $connection->invitee->id;
$orders = Order::where('company_module_id', $company_module_id)->get();
foreach ($orders as $order){
$invoices = $order->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get();
foreach ($invoices as $invoice){
dump($invoice->id);
// $invoice->documents()->delete();
$invoice->documents()->where('document_type', DocumentType::SHIPPING_EINVOICE)->delete();
(App()->make(CreateShippingInvoiceTransactionDocProcessor::class))->execute($invoice);
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix invoice. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,40 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\PackingLists\Processors\FetchPackingListsFromYdPortalProcessor;
use Illuminate\Support\Facades\Log;
class FixMissingPackingListV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix Missing PackingList.');
$start = new Carbon();
$start_date = '2024-05-05';
$end_date = '2024-05-05';
$start = $start_date ? Carbon::parse($start_date) : null;
$end = $end_date ? Carbon::parse($end_date) : null;
if (!$start || !$end) {
return;
}
(App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end);
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix Missing PackingList. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,68 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\PackingList;
use Illuminate\Support\Facades\Log;
class FixPackingListV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix PackingList.');
$start = new Carbon();
$packingLists = PackingList::whereDoesntHave('packages')->get();
if ($packingLists->isNotEmpty()) {
$restoredPackagesCount = 0;
$restoredPackagesIds = [];
// Eager loading packages for all packing lists
$packingLists->load(['packages' => function ($query) {
$query->onlyTrashed();
}]);
foreach ($packingLists as $packingList) {
$deletedPackages = $packingList->packages->filter(function ($package) use ($restoredPackagesIds) {
// Filter out packages that have already been restored
return !in_array($package->id, $restoredPackagesIds);
});
if ($deletedPackages->isNotEmpty()) {
$groupedPackages = $deletedPackages->groupBy(function ($item) {
return $item->only(['type', 'description', 'width', 'height', 'length', 'weight', 'quantity']);
});
foreach ($groupedPackages as $group) {
$latestPackage = $group->sortByDesc('created_at')->first();
// Check if the package ID is already restored before attempting to restore it
if (!in_array($latestPackage->id, $restoredPackagesIds)) {
$latestPackage->restore();
Log::info('Package ID: ' . $latestPackage->id . ' has been restored');
$restoredPackagesCount++;
$restoredPackagesIds[] = $latestPackage->id;
}
}
}
}
Log::info('Restored Packages Count: ' . $restoredPackagesCount);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix PackingList. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,61 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Billplzs\Processors\CallbackBillplzProcessor;
use App\Classes\Modules\Documents\Services\ApprovesDocument;
use App\Classes\Modules\Documents\Services\RejectsDocument;
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Models\Group;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class FixPaymentApprovalTimedOutErrorV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Fix payment approval timed out error (status 504: Endpoint request timed out).');
$start = new Carbon();
$status= 'approve';
$transactionId = 23160;
$transaction = (App()->make(FetchesTransaction::class))->execute(['id' => $transactionId]);
$document = $transaction->documents()
->where('status', ApprovalStatus::PENDING_VERIFICATION)
->first();
Log::info("FixApprovedPaymentFailedGroupV2CommandJob document: ".json_encode($document));
if($status === 'approve') {
// (App()->make(ApprovesDocument::class))->execute($document);
$document->status = ApprovalStatus::APPROVED;
// $document->approver = Auth()->user()->id;
$document->approval_date = Carbon::now();
$document->save();
}
else {
(App()->make(RejectsDocument::class))->execute($document);
}
(App()->make(UpdatesTransactionStatus::class))->execute($transaction, $status === 'approve' ? ApprovalStatus::APPROVED : ApprovalStatus::REJECTED);
if ($status === 'approve') {
(App()->make(CallbackBillplzProcessor::class))->execute($transaction, ApprovalStatus::APPROVED);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Fix payment approval timed out error (status 504: Endpoint request timed out). ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,52 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class HouseKeepingS3FilesV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Housekeeping temporary files in S3 Bucket.');
$start = new Carbon();
$s3 = Storage::disk('s3');
$directories = [
'temp',
];
foreach ($directories as $directory) {
$startInner = Carbon::now();
Log::info(Carbon::now() . ' [HouseKeepingS3FilesV2] Start cleaning - ' . $directory);
$objects = $s3->allFiles($directory);
foreach ($objects as $object) {
$s3->delete($object);
Log::info('[HouseKeepingS3FilesV2] Deleted object: ' . $object);
}
Log::info('[HouseKeepingS3FilesV2] All files have been deleted.');
$endInner = Carbon::now();
$elapsedTime = $startInner->diff($endInner)->format('%H:%I:%S');
Log::info(Carbon::now() . ' [HouseKeepingS3FilesV2] Process ended. ElapsedTime: ' . $elapsedTime);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Housekeeping temporary files in S3 Bucket. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,38 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Accounts\Services\ExpiresEmailVerificationAttempt;
use App\Models\UserEmailVerification;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class NewUserRegistrationExpireCheckV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - New user email verification expiration check.');
$start = new Carbon();
$attempts = UserEmailVerification::active()->twoDaysOld()->get();
Log::info('NewUser Carbon now()->subHours(48): '. Carbon::now()->subHours(48));
Log::info('NewUser Attempts count: '.count($attempts));
foreach ($attempts as $attempt){
(new ExpiresEmailVerificationAttempt())->execute($attempt);
Log::info('NewUser Expired: '.$attempt->id.', '.$attempt->created_at);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - New user email verification expiration check. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,49 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Transactions\Processors\CreatePaymentTransactionProcessor;
use App\Classes\Modules\Transactions\Processors\ReleaseGoodsToCustomerProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Models\Group;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class OneTimeFixWalletGroupTransactionV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - This is a one time fix of unsuccessful group payment through wallet.');
$start = new Carbon();
$invoice_ids = [31493]; //31493
$invoices = Transaction::whereIn('id', $invoice_ids)->get();
foreach ($invoices as $invoice) {
if($invoice->status == ApprovalStatus::APPROVED){
$paymentTransaction = (App()->make(CreatePaymentTransactionProcessor::class))->execute($invoice, PaymentMethodType::WALLET, '', false);
if($paymentTransaction && $paymentTransaction->status == ApprovalStatus::APPROVED){
$pL = $invoice->owner;
(App()->make(ReleaseGoodsToCustomerProcessor::class))->execute($pL, $invoice);
}
}
}
$group = Group::where('id', 1569)->first(); //1569
$group->status = ApprovalStatus::APPROVED;
$group->save();
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - This is a one time fix of unsuccessful group payment through wallet. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Billplzs\Processors\CallbackBillplzProcessor;
use App\Classes\Modules\Billplzs\Processors\CallbackBillplzDataPatchProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class OneTimeTransactionFixBillplzFailedCbV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - One time fix failled callback from billplz.');
$start = new Carbon();
//Transaction fix with this one time fix command: 15205, 16803, 17310, 22008, 6770
//This transaction, 16803 has approve payment but not its owner, shipping invoice
$transactions = Transaction::whereIn('id', [22008, 6770])->get();
foreach ($transactions as $transaction){
if($transaction){
Log::info(Carbon::now() . ' : '.$transaction->id);
$status = ApprovalStatus::APPROVED;
(App()->make(CallbackBillplzProcessor::class))->execute($transaction, $status);
// (App()->make(CallbackBillplzDataPatchProcessor::class))->execute($transaction, $status);
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - One time fix failled callback from billplz. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,38 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Accounts\Services\ExpiresPasswordReset;
use App\Models\PasswordReset;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class PasswordResetTokenExpirationV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Password reset token expiration check.');
$start = new Carbon();
$attempts = PasswordReset::active()->oneDayOld()->get();
Log::info('PasswordReset Carbon now()->subHours(24): '. Carbon::now()->subHours(24));
Log::info('PasswordReset Attempts count: '.count($attempts));
foreach ($attempts as $attempt){
(new ExpiresPasswordReset())->execute($attempt);
Log::info('PasswordReset Expired: '.$attempt->id.', '.$attempt->created_at);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Password reset token expiration check. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,90 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Accounts\DataTransferObjects\KeyValuePairObject;
use App\Classes\Modules\Accounts\Services\CreatesKeyValuePair;
use App\Classes\Modules\Accounts\Services\UpdatesKeyValuePair;
use App\Classes\ValueObjects\Constants\KVPKey;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\KeyValuePair;
use Illuminate\Support\Facades\Log;
class ProcessPaymentReportV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/** @var array */
private $details;
/**
* ProcessPaymentReportV2CommandJob constructor.
* @param array $details
*/
public function __construct(array $details)
{
$this->details = $details;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Processing single record from 11R - RECEIVE PAYMENT (FULL PAYMENT) [AR RECEIVE PAYMENT] Import.');
$start = new Carbon();
$docNo = $this->details['docno'] ?? null;
$docDate = $this->details['docdate'] ?? null;
$debtorCode = $this->details['debtorcode'] ?? null;
$description = $this->details['description'] ?? null;
$paymentMethod = $this->details['paymentmethod'] ?? null;
$paymentAmt = $this->details['paymentamt'] ?? null;
$knockOffDocNo = $this->details['knockoffdocno'] ?? null;
Log::info("Processing Payment Report:", [
'DocNo' => $docNo,
'DocDate' => $docDate,
'DebtorCode' => $debtorCode,
'Description' => $description,
'PaymentMethod' => $paymentMethod,
'PaymentAmt' => $paymentAmt,
'KnockOffDocNo' => $knockOffDocNo,
]);
if($knockOffDocNo){
$kvp = KeyValuePair::where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->where('value', $knockOffDocNo)->first();
if($kvp){
$transaction = $kvp->owner;
if($transaction){
if($docNo != "" && $docNo != "<<New>>"){
$this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_DOCNO_OFFICIAL_RECEIPT, $docNo);
}
// if($eInvoiceValidationLink){
// $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink);
// }
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Processing single record from 11R - RECEIVE PAYMENT (FULL PAYMENT) [AR RECEIVE PAYMENT] Import. ElapsedTime: ' . $elapsedTime . '.');
}
private function updateOrCreateKeyValuePair($booking, $key, $value)
{
$keyValuePairObject = new KeyValuePairObject($key, $value);
$metadata = $booking->attributesKVP()->where('key', $key)->first();
if ($metadata) {
(App()->make(UpdatesKeyValuePair::class))->execute($metadata, $keyValuePairObject);
} else {
(App()->make(CreatesKeyValuePair::class))->execute($booking, $keyValuePairObject);
}
}
}
@@ -0,0 +1,131 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Accounts\DataTransferObjects\KeyValuePairObject;
use App\Classes\Modules\Accounts\Services\CreatesKeyValuePair;
use App\Classes\Modules\Accounts\Services\UpdatesKeyValuePair;
use App\Classes\ValueObjects\Constants\KVPKey;
use App\Classes\ValueObjects\Constants\TransactionType;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Order;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class ProcessSalesInvoiceReportV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/** @var array */
private $details;
/**
* ProcessSalesInvoiceReportV2CommandJob constructor.
* @param array $details
*/
public function __construct(array $details)
{
$this->details = $details;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Processing single record for E-Invoice from Sales Invoice Report Import.');
$start = new Carbon();
$docNo = $this->details['docno'] ?? null;
$docDate = $this->details['docdate'] ?? null;
$debtorCode = $this->details['debtorcode'] ?? null;
$ref = $this->details['ref'] ?? null;
$shipInfo = $this->details['shipinfo'] ?? null;
$accNo = $this->details['accno'] ?? null;
$detailDescription = $this->details['detaildescription'] ?? null;
$furtherDescription = $this->details['furtherdescription'] ?? null;
$classification = $this->details['classification'] ?? null;
$projNo = $this->details['projno'] ?? null;
$deptNo = $this->details['deptno'] ?? null;
$qty = $this->details['qty'] ?? null;
$unitPrice = $this->details['unitprice'] ?? null;
$taxCode = $this->details['taxcode'] ?? null;
$taxableAmt = $this->details['taxableamt'] ?? null;
$taxRate = $this->details['taxrate'] ?? null;
$submitEinvoice = $this->details['submiteinvoice'] ?? null;
$consolidatedEinvoice = $this->details['consolidatedeinvoice'] ?? null;
$eInvoiceValidationLink = $this->details['einvoicevalidationlink'] ?? null;
// Log for debugging
Log::info("Processing Sales Invoice Report:", [
'DocNo' => $docNo,
'DocDate' => $docDate,
'DebtorCode' => $debtorCode,
'Ref' => $ref,
'ShipInfo' => $shipInfo,
'AccNo' => $accNo,
'DetailDescription' => $detailDescription,
'FurtherDescription' => $furtherDescription,
'Classification' => $classification,
'ProjNo' => $projNo,
'DeptNo' => $deptNo,
'Qty' => $qty,
'UnitPrice' => $unitPrice,
'TaxCode' => $taxCode,
'TaxableAmt' => $taxableAmt,
'TaxRate' => $taxRate,
'SubmitEinvoice' => $submitEinvoice,
'ConsolidatedEinvoice' => $consolidatedEinvoice,
'EInvoiceValidationLink' => $eInvoiceValidationLink,
]);
// $order = Order::where('reference', $ref)->first();
// $transactions = $order->transactions()->whereIn('transactions.type', [TransactionType::SHIPPING_INVOICE, TransactionType::STORAGE_INVOICE])->get();
// $matchedTransaction = null;
// foreach ($transactions as $transaction) {
// $transactionDetails = $transaction->transactionDetails;
// foreach ($transactionDetails as $detail) {
// $detailName = str_replace('<br>', ' ', $detail->name);
// if (
// $detailName === $furtherDescription &&
// $detail->quantity == $qty &&
// $detail->price == $unitPrice
// ) {
// $matchedTransaction = $transaction;
// break 2;
// }
// }
// }
$matchedTransaction = Transaction::where('bill_no', $ref)->first();
if($matchedTransaction){
if($docNo != "" && $docNo != "<<New>>"){
$this->updateOrCreateKeyValuePair($matchedTransaction, KVPKey::AUTOCOUNT_DOCNO_INVOICE, $docNo);
}
if($eInvoiceValidationLink){
$this->updateOrCreateKeyValuePair($matchedTransaction, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink);
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Processing single record for E-Invoice from Sales Invoice Report Import. ElapsedTime: ' . $elapsedTime . '.');
}
private function updateOrCreateKeyValuePair($booking, $key, $value)
{
$keyValuePairObject = new KeyValuePairObject($key, $value);
$metadata = $booking->attributesKVP()->where('key', $key)->first();
if ($metadata) {
(App()->make(UpdatesKeyValuePair::class))->execute($metadata, $keyValuePairObject);
} else {
(App()->make(CreatesKeyValuePair::class))->execute($booking, $keyValuePairObject);
}
}
}
@@ -0,0 +1,72 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Transactions\Processors\CreateShippingEInvoiceDocProcessor;
use App\Classes\Modules\Transactions\Processors\CreateStorageEInvoiceDocProcessor;
use App\Classes\ValueObjects\Constants\DocumentType;
use App\Classes\ValueObjects\Constants\KVPKey;
use App\Classes\ValueObjects\Constants\TransactionType;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class ProcessTransactionForEInvoiceV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/** @var Transaction */
private $transaction;
/**
* ProcessTransactionForEInvoiceV2CommandJob constructor.
* @param Transaction $transaction
*/
public function __construct(Transaction $transaction)
{
$this->transaction = $transaction;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Processing single transaction for E-Invoice.');
$start = new Carbon();
$isGenerated = false;
$companyModule = $this->transaction->owner->owner->companyModule;
if($companyModule->company->e_invoice === 1){
$document = $this->transaction->documents()->where('document_type', DocumentType::SHIPPING_EINVOICE)->first();
$kvp = $this->transaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first();
if(!$document && $kvp && $this->transaction->type == TransactionType::SHIPPING_INVOICE){
(App()->make(CreateShippingEInvoiceDocProcessor::class))->execute($this->transaction);
$isGenerated = true;
}
else {
$document2 = $this->transaction->documents()->where('document_type', DocumentType::STORAGE_EINVOICE)->first();
$kvp2 = $this->transaction->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first();
if(!$document2 && $kvp2 && $this->transaction->type == TransactionType::STORAGE_INVOICE){
(App()->make(CreateStorageEInvoiceDocProcessor::class))->execute($this->transaction);
$isGenerated = true;
}
}
}
if(!$isGenerated){
Log::info("NO E-Invoice generated for transaction with id: " . $this->transaction->id . ', order: ' . $this->transaction->owner->owner->reference );
}
else{
Log::info("E-Invoice generated for transaction with id: " . $this->transaction->id . ', order: ' . $this->transaction->owner->owner->reference );
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Processing single transaction for E-Invoice. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,47 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Orders\Services\ListsOrders;
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
use App\Classes\Modules\Transactions\Processors\ReleaseGoodsToCustomerProcessor;
use App\Classes\ValueObjects\Constants\OrderType;
use Illuminate\Support\Facades\Log;
class ReleaseGoodsToCustomerV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $invoice;
public function __construct($invoice)
{
$this->invoice = $invoice;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Release goods to customer.');
$start = new Carbon();
try{
$obj = json_encode($this->invoice);
Log::info("Processing Order - ID: {$this->invoice->id}, invoice: {$obj}");
$pL = $this->invoice->owner;
(App()->make(ReleaseGoodsToCustomerProcessor::class))->execute($pL, $this->invoice);
}
catch(\Exception $ex){
Log::info('Exception '.$ex->getMessage());
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Release goods to customer. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Notifications\ShipmentDepartureEmail;
use App\Models\Order;
use App\Models\Container;
use Illuminate\Support\Facades\Log;
class SendContainerDepartureEmailV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Send Container Departure Email.');
$start = new Carbon();
$containers = Container::whereHas('transports', function ($transport){
return $transport->whereDate('dispatch_date', '=', Carbon::today());
})->get();
foreach ($containers as $container){
foreach ($container->packingLists as $packingList){
if(!($packingList->owner instanceof Order)) continue;
$user = $packingList->owner->companyModule->employees()->first();
if(app()->environment(['production'])) {
$user->notify(new ShipmentDepartureEmail($user, $packingList));
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Send Container Departure Email. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,68 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Notifications\PermitsReminderEmail;
use App\Models\PermitsReminder;
use App\Models\User;
use Illuminate\Support\Facades\Log;
class SendPermitsReminderEmailsV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Send Permits Reminders Email.');
$start = new Carbon();
$currentDateTime = now();
$startRange = $currentDateTime->subDays(3)->startOfDay();
$endRange = $currentDateTime->copy()->addDays(6)->endOfDay();
$reminders = PermitsReminder::whereDate('reminder_date', '>=', $startRange)
->whereDate('reminder_date', '<=', $endRange)
->orWhere('reminder_date', '<', now())
->pluck('model');
if ($reminders->isEmpty()) {
Log::info('No reminders expiring within the specified range.');
return;
}
Log::info($this->getTimeStamp() . 'Reminders: ' . $reminders->toJson());
$users = User::whereIn('email', $this->getEmailList())->get();
foreach ($users as $user) {
Log::info($this->getTimeStamp() . 'Reminder email sent to ' . $user->email);
if (app()->environment('production')) {
$user->notify(new PermitsReminderEmail($user, $reminders));
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Send Permits Reminders Email. ElapsedTime: ' . $elapsedTime . '.');
}
public function getTimeStamp()
{
return '[' . Carbon::now()->format('Y-m-d H:i:s') . '] - ';
}
protected function getEmailList(): array
{
return [
// 'edmond.wuiming2021@gmail.com',
'anithagurl96@gmail.com'
];
}
}
@@ -0,0 +1,57 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use App\Classes\Modules\Jobs\DataTransferObjects\ShowBillplzPaymentStatusV2CommandObject;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class ShowBillplzPaymentStatusV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/** @var ShowBillplzPaymentStatusV2CommandObject*/
private $showBillplzPaymentStatusV2CommandObject;
/**
* ShowBillplzPaymentStatusV2CommandJob constructor.
* @param ShowBillplzPaymentStatusV2CommandObject $showBillplzPaymentStatusV2CommandObject
*/
public function __construct(ShowBillplzPaymentStatusV2CommandObject $showBillplzPaymentStatusV2CommandObject)
{
$this->showBillplzPaymentStatusV2CommandObject = $showBillplzPaymentStatusV2CommandObject;
}
public function handle()
{
Log::info(Carbon::now() . ': Start job - Show Billplz payment status.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$billplz_id = $this->showBillplzPaymentStatusV2CommandObject->getBillplzId();
$billplz_id = explode(",", $billplz_id);
foreach ($billplz_id as $payment) {
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$payment);
if($response->successful()){
$data = $response->json();
dump($data);
}else{
Log::info("billplz error</br>");
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Show Billplz payment status. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,63 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class ShowFailediBllplzCallbackV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Show all failled callback from billplz.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
$transactions = Transaction::whereIn('type', [TransactionType::PAYMENT, TransactionType::TOP_UP, TransactionType::GROUP_PAYMENT])->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY)->whereNotIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get();
$totalTransactions = count($transactions);
if ($totalTransactions) {
Log::info(Carbon::now() . ' totalTransactions : ' . $totalTransactions);
}
$counter = 1;
$totalAmount = 0;
foreach ($transactions as $transaction){
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$transaction->payment_reference);
if($response->successful()){
$data = $response->json();
if($data['paid']){
dump($transaction->payment_reference);
dump($transaction->id);
}
}else{
Log::info("billplz error</br>");
}
$counter++;
}
// if ($totalTransactions) {
// Log::info(Carbon::now() . ' : Done Billplz Failled Callback. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
// }
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Show all failled callback from billplz. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
}
}
@@ -0,0 +1,82 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Order;
use App\Models\Transaction;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class ShowFixBillplzFailedCallbackPaymentV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Show Billplz Failled Callback.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
// $this->outputArray = [];
$approvalStatusArray = ApprovalStatus::APPROVAL_STATUS_ID;
$transactions = Transaction::where('type', TransactionType::PAYMENT)->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY)->whereNotIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get();
$totalTransactions = count($transactions);
$counter = 1;
$totalAmount = 0;
foreach ($transactions as $transaction){
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$transaction->payment_reference);
if($response->successful()){
$data = $response->json();
if($data['paid']){
$totalAmount += $transaction->amount;
$invoiceStatus = null;
switch($transaction->owner->status) {
case 3:
$invoiceStatus = 'Payment Completed';
break;
case 5:
$invoiceStatus = 'Dispute in progress';
break;
case 6:
$invoiceStatus = 'Cancelled Invoice';
break;
default:
$invoiceStatus = 'Pending Payment';
}
$order = $transaction->owner->owner->owner;
if(!$order instanceof Order) {
Log::info("Error transaction id:" . $transaction->id . 'Type: ' . get_class($order));
} else {
Log::info($counter . ' of ' . $totalTransactions . '. Order: '. $order->reference . ' - Date: '.$transaction->owner->created_at->format('d-m-Y').' - Amount: '. $transaction->amount . '. Status: ' . $approvalStatusArray[$transaction->status] . '. Invoice Status: ' . $invoiceStatus);
}
} else {
// $totalAmount += $transaction->amount;
// $this->appendToOutput($counter . ' of ' . $totalTransactions . '. Order: '. $transaction->owner->owner->owner->reference . ' - Date: '.$transaction->owner->created_at->format('d-m-Y').' - Amount: '. $transaction->amount);
}
}else{
Log::info("billplz error</br>");
}
$counter++;
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Show Billplz Failled Callback. ElapsedTime: ' . $elapsedTime . '. Total: ' . $totalAmount);
}
}
@@ -0,0 +1,88 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Classes\Modules\Billplzs\Services\GetBillplzBill;
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor;
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Transaction;
use Illuminate\Support\Facades\Log;
class SuccessUpdatePaymentStatusV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Success Updated Payment Status.');
$start = new Carbon();
// ini_set('memory_limit', '-1');
// $this->outputArray = [];
$approvalStatusArray = ApprovalStatus::APPROVAL_STATUS_ID;
$transactions = Transaction::where('type', TransactionType::PAYMENT)
->where('payment_method', PaymentMethodType::PAYMENT_GATEWAY)
->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])
->get();
foreach ($transactions as $payment) {
$invoice = $payment->owner ?? null;
if (!$invoice) {
Log::info('Payment has no owner. Payment ID: ' . $payment->id);
continue;
}
$packingList = $invoice->owner ?? null;
if (!$packingList) {
Log::info('Invoice has no owner. Invoice ID: ' . $invoice->id);
continue;
}
$order = $packingList->owner;
if (!$invoice) {
Log::info('PackingList has no owner. PackingList ID: ' . $packingList->id);
continue;
}
if ($invoice->status == ApprovalStatus::APPROVED) {
$totalPaidAmount = $invoice->transactions->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->sum('amount');
if(($invoice->amount - $totalPaidAmount) < 0.01) {
(App()->make(UpdatesTransactionStatus::class))->execute($invoice, ApprovalStatus::COMPLETED);
$packingList->status = ApprovalStatus::APPROVED;
$packingList->save();
if(app()->environment('production')){
(App()->make(UpdateDoFromVTPortalProcessor::class))->execute($packingList);
(App()->make(UpdateDoFromYDPortalProcessor::class))->execute($packingList);
}
dump('Updated invoice ' . $invoice->id . '. Order: '. $order->reference);
} else {
Log::info('Failed Update invoice ' . $invoice->id . ' because payment not enough. Invoice Amount: ' . $invoice->amount . ' . Paid Amount: ' . $totalPaidAmount . ' . Order: '. $order->reference);
}
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Success Updated Payment Status. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,59 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use App\Models\Container;
use App\Models\Order;
use App\Models\User;
use App\Classes\Notifications\ShipmentDepartureEmail;
class TestAttachingS3FileAndSendEmailV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Test to attach a file from S3 bucket and trigger an email send.');
$start = new Carbon();
$containers = Container::whereHas('transports', function ($transport){
return $transport->whereDate('dispatch_date', '<', Carbon::today())->whereDate('dispatch_date', '>', Carbon::now()->subdays(30));
})->get();
Log::info("[TESTING] total containers: " . count($containers));
$sent = false;
foreach ($containers as $container){
if($sent){
break;
}
foreach ($container->packingLists as $packingList){
if($sent){
break;
}
if(!($packingList->owner instanceof Order)) continue;
$user = $packingList->owner->companyModule->employees()->first();
$user = User::where('email', 'dillonngoweijoon@gmail.com')->first();
Log::info("[TESTING] user: " . json_encode($user));
Log::info("[TESTING] packingList: " . json_encode($packingList));
$user->notify(new ShipmentDepartureEmail($user, $packingList));
$sent = true;
}
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Test to attach a file from S3 bucket and trigger an email send. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,82 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use App\Classes\Modules\Exports\Services\ExportsNullDebtors;
use Illuminate\Support\Facades\Storage;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\BusinessType;
use App\Models\Company;
class TestExportExcelToS3BucketV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Test Export Excel File to S3 Bucket.');
$start = new Carbon();
Log::info('company 0');
$company = Company::where(function($query){
$query->whereNull('debtor')->orWhere('debtor', '');
})->get();
Log::info('company 1: ' . json_encode($company));
$company = Company::where(function($query){
$query->whereNull('debtor')->orWhere('debtor', '');
})->whereHas('companyModules', function($query){
$query->where('type', BusinessType::IMPORTER);
})->get();
Log::info('company 2: ' . json_encode($company));
$company = Company::where(function($query){
$query->whereNull('debtor')->orWhere('debtor', '');
})->whereHas('companyModules', function($query){
$query->where('type', BusinessType::IMPORTER);
})->whereHas('parcels', function ($query) {
$query->where('packages.status', ApprovalStatus::APPROVED);
})
->with(['companyModules', 'parcels'])
->get();
Log::info('company 3: ' . json_encode($company));
$company = Company::where(function($query){
$query->whereNull('debtor')->orWhere('debtor', '');
})->whereHas('companyModules', function($query){
$query->where('type', BusinessType::IMPORTER);
})->whereHas('parcels')->where('status', ApprovalStatus::APPROVED)->get();
Log::info('company 4: ' . json_encode($company));
$export = new ExportsNullDebtors();
$filesystemDriver = Storage::getDefaultDriver();
if ($filesystemDriver === 's3') {
$filePathForS3 = 'temp/nullDebtor.xlsx'; //documents/exports
$excelFile = $export->store($filePathForS3, 's3');
$temporaryUrl = Storage::disk('s3')->temporaryUrl(
$filePathForS3,
Carbon::now()->addMinutes(10)
);
Log::info('temporaryUrl: ' . $temporaryUrl);
}
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Test Export Excel File to S3 Bucket. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Classes\Jobs\Commands\V2;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use App\Classes\Modules\PackingLists\Processors\TestFetchPackingListsFromYdPortalProcessor;
class TestReadDataFromYDAPIV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info(Carbon::now() . ': Start job - Test to read data from YD API.');
$start = new Carbon();
(App()->make(TestFetchPackingListsFromYdPortalProcessor::class))->execute();
$end = new Carbon();
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
Log::info(Carbon::now() . ': End job - Test to read data from YD API. ElapsedTime: ' . $elapsedTime . '.');
}
}
@@ -0,0 +1,37 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\V2\FetchContainersFromYdPortalV2Processor;
use App\Classes\Modules\PackingLists\Processors\FetchContainersUpdatesFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\FetchDeliveryUpdatesFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
use App\Models\PackingList;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchContainersFromYdPortalV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $packingList;
public function __construct(PackingList $packingList)
{
$this->packingList = $packingList;
}
public function handle()
{
Log::info('Processing FetchContainersFromYdPortalV2CommandJob');
$processor = app(FetchContainersFromYdPortalV2Processor::class);
$processor->execute($this->packingList);
}
}
@@ -0,0 +1,36 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\FetchContainersFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\V2\FetchContainersUpdatesFromYdPortalV2Processor;
use App\Classes\Modules\PackingLists\Processors\FetchDeliveryUpdatesFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
use App\Models\Container;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchContainersUpdatesFromYdPortalV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $container;
public function __construct(Container $container)
{
$this->container = $container;
}
public function handle()
{
Log::info('Processing FetchContainersUpdatesFromYdPortalV2CommandJob');
$processor = app(FetchContainersUpdatesFromYdPortalV2Processor::class);
$processor->execute($this->container);
}
}
@@ -0,0 +1,36 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\FetchContainersFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\FetchContainersUpdatesFromYdPortalProcessor;
use App\Classes\Modules\PackingLists\Processors\V2\FetchDeliveryUpdatesFromYdPortalV2Processor;
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
use App\Models\PackingList;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchDeliveryUpdatesFromYdPortalV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $packingListId;
public function __construct(int $packingListId)
{
$this->packingListId = $packingListId;
}
public function handle()
{
Log::info('Processing FetchDeliveryUpdatesFromYdPortalV2CommandJob');
$processor = app(FetchDeliveryUpdatesFromYdPortalV2Processor::class);
$processor->execute($this->packingListId);
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\V2\FetchOrderListsFromYdPortalV2Processor;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchOrderListsFromYdPortalV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $startDate;
protected $endDate;
public function __construct(?Carbon $startDate, ?Carbon $endDate)
{
$this->startDate = $startDate;
$this->endDate = $endDate;
}
public function handle()
{
Log::info('Processing FetchOrderListsFromYdPortalV2CommandJob for start date: ' . $this->startDate. ', and end date: ' . $this->endDate);
$processor = app(FetchOrderListsFromYdPortalV2Processor::class);
$processor->execute($this->startDate, $this->endDate);
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\V2\FetchPackingListsFromYdPortalV2Processor;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchPackingListsFromYdPortalV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $startDate;
protected $endDate;
public function __construct(?Carbon $startDate, ?Carbon $endDate)
{
$this->startDate = $startDate;
$this->endDate = $endDate;
}
public function handle()
{
Log::info('Processing FetchPackingListsFromYdPortalV2CommandJob for start date: ' . $this->startDate. ', and end date: ' . $this->endDate);
$processor = app(FetchPackingListsFromYdPortalV2Processor::class);
$processor->execute($this->startDate, $this->endDate);
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\V2\FetchByTrakingNoYdPortalV2Processor;
use App\Models\PackingList;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchTrakingInfoYDByPackingListV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $packingList;
public function __construct(PackingList $packingList)
{
$this->packingList = $packingList;
}
public function handle()
{
Log::info('Processing FetchTrakingInfoYDByPackingListV2CommandJob');
$processor = app(FetchByTrakingNoYdPortalV2Processor::class);
$processor->execute($this->packingList);
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use App\Classes\Modules\PackingLists\Processors\V2\FetchByTrakingNoYdPortalV2Processor;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchTrakingInfoYDByTrackingNoV2CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $trackingNo;
public function __construct(string $trackingNo)
{
$this->trackingNo = $trackingNo;
}
public function handle()
{
Log::info('Processing FetchTrakingInfoYDByTrackingNoV2CommandJob');
$processor = app(FetchByTrakingNoYdPortalV2Processor::class);
$processor->processTrackingNo($this->trackingNo);
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Artisan;
class ProcessYDByTrakingNoDataV2Job implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $trackingNo;
public function __construct($trackingNo)
{
$this->trackingNo = $trackingNo;
}
public function handle()
{
Artisan::call('process-yd-by-traking-no-data-command', [
'trackingNo' => $this->trackingNo
]);
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Classes\Jobs\Commands\V2\YD;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Artisan;
class ProcessYDPortalDataV2Job implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $start;
protected $end;
public function __construct($start, $end)
{
$this->start = $start;
$this->end = $end;
}
public function handle()
{
Artisan::call('process-yd-portal-data-command', [
'start_date' => $this->start,
'end_date' => $this->end
]);
}
}
@@ -0,0 +1,32 @@
<?php
namespace App\Classes\Jobs\Commands\V3\YD;
use App\Classes\Modules\PackingLists\Processors\V3\FetchContainersUpdatesYdPortalV3Processor;
use App\Models\Container;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchContainersUpdatesYdPortalV3CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $container;
public function __construct(Container $container)
{
$this->container = $container;
}
public function handle()
{
Log::info('Processing FetchContainersUpdatesYdPortalV3CommandJob');
$processor = app(FetchContainersUpdatesYdPortalV3Processor::class);
$processor->execute($this->container);
}
}
@@ -0,0 +1,32 @@
<?php
namespace App\Classes\Jobs\Commands\V3\YD;
use App\Classes\Modules\PackingLists\Processors\V3\FetchContainersYdPortalV3Processor;
use App\Models\PackingList;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchContainersYdPortalV3CommandJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $packingList;
public function __construct(PackingList $packingList)
{
$this->packingList = $packingList;
}
public function handle()
{
Log::info('Processing FetchContainersYdPortalV3CommandJob');
$processor = app(FetchContainersYdPortalV3Processor::class);
$processor->execute($this->packingList);
}
}
@@ -13,6 +13,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class FetchOrdersFromYDPortalJob implements ShouldQueue
{
@@ -29,12 +30,17 @@ class FetchOrdersFromYDPortalJob implements ShouldQueue
*/
public function handle()
{
Log::info('FetchOrdersFromYDPortalJob starts');
Log::info('FetchPackingListsFromYdPortalProcessor starts');
(App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute();
Log::info('FetchContainersFromYdPortalProcessor starts');
(App()->make(FetchContainersFromYdPortalProcessor::class))->execute();
Log::info('FetchContainersUpdatesFromYdPortalProcessor starts');
(App()->make(FetchContainersUpdatesFromYdPortalProcessor::class))->execute();
Log::info('FetchDeliveryUpdatesFromYdPortalProcessor starts');
(App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute();
// (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();
Log::info('FetchOrdersFromYDPortalJob ends');
// (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Classes\Jobs;
use App\Classes\Modules\PackingLists\Processors\ListPackingListsJobProcessor;
use App\Classes\Modules\Jobs\DataTransferObjects\JobSubmissionObject;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class ListPackingListsJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $timeout = 900;
/** @var JobSubmissionObject */
private $jobSubmissionObject;
/**
* ListPackingListsJob constructor.
* @param JobSubmissionObject $JobSubmissionObject
*/
public function __construct(JobSubmissionObject $jobSubmissionObject)
{
$this->jobSubmissionObject = $jobSubmissionObject;
}
public function handle()
{
$rawPayload = $this->job->payload();
if(isset($rawPayload['data']['commandName'])){
$this->jobSubmissionObject->setJobCommandName($rawPayload['data']['commandName']);
}
if(isset($rawPayload['data']['command'])){
$this->jobSubmissionObject->setJobCommand($rawPayload['data']['command']);
}
$result = (App()->make(ListPackingListsJobProcessor::class))->execute($this->jobSubmissionObject);
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Classes\Jobs;
use App\Classes\Modules\Reports\Processors\MonthlyReportJobProcessor;
use App\Classes\Modules\Jobs\DataTransferObjects\JobSubmissionObject;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class MonthlyReportJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $timeout = 900;
/** @var JobSubmissionObject */
private $jobSubmissionObject;
/**
* MonthlyReportJob constructor.
* @param JobSubmissionObject $jobSubmissionObject
*/
public function __construct(JobSubmissionObject $jobSubmissionObject)
{
$this->jobSubmissionObject = $jobSubmissionObject;
}
public function handle()
{
$rawPayload = $this->job->payload();
if(isset($rawPayload['data']['commandName'])){
$this->jobSubmissionObject->setJobCommandName($rawPayload['data']['commandName']);
}
if(isset($rawPayload['data']['command'])){
$this->jobSubmissionObject->setJobCommand($rawPayload['data']['command']);
}
$result = (App()->make(MonthlyReportJobProcessor::class))->execute($this->jobSubmissionObject);
}
}
+3 -2
View File
@@ -20,6 +20,7 @@ use Illuminate\Queue\SerializesModels;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
use App\Classes\General\Helper;
use App\Classes\General\LogHelper;
class UpdatePerfexCRMInvoice implements ShouldQueue
{
@@ -47,7 +48,7 @@ class UpdatePerfexCRMInvoice implements ShouldQueue
$invoiceId = 0;
$invoiceStatus = 0;
$invoice = (App()->make(FetchesPerfexCRMInvoice::class))->execute($customer->userid,"INV-", $transaction->owner->bill_no);
Log::error('UpdatePerfexCRMInvoice debug bill_no: ' . $transaction->owner->bill_no . ', Project Id: ' . $this->updatePerfexCRMInvoiceObject->getProjectId());
LogHelper::channel('perfex_crm')->info('UpdatePerfexCRMInvoice debug bill_no: ' . $transaction->owner->bill_no . ', Project Id: ' . $this->updatePerfexCRMInvoiceObject->getProjectId());
if(is_null($invoice)){
$result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction->owner, $this->updatePerfexCRMInvoiceObject->getIsPaid());
@@ -55,7 +56,7 @@ class UpdatePerfexCRMInvoice implements ShouldQueue
$invoiceId = $result->payload['id'];
} else {
// Log::error(json_encode('UpdatePerfexCRMInvoice CreatePerfexCRMInvoiceProcessor failed'));
Helper::debugLogger('UpdatePerfexCRMInvoice CreatePerfexCRMInvoiceProcessor failed');
LogHelper::channel('perfex_crm')->info('UpdatePerfexCRMInvoice CreatePerfexCRMInvoiceProcessor failed');
}
}
else{
+8 -2
View File
@@ -32,12 +32,12 @@ class UpdatePerfexCRMPrelude implements ShouldQueue
/**
* UpdatePerfexCRMPrelude constructor.
* @param $packingList
* @param PackingList $packingList
* @param Transaction $transaction
* @param UpdatePerfexCRMObject $updatePerfexCRMObject
* @param bool|null $shouldCreateInvoice
*/
public function __construct($packingList, $transaction, UpdatePerfexCRMObject $updatePerfexCRMObject, ?bool $shouldCreateInvoice = false)
public function __construct(?PackingList $packingList, $transaction, UpdatePerfexCRMObject $updatePerfexCRMObject, ?bool $shouldCreateInvoice = false)
{
$this->packingList = $packingList;
$this->transaction = $transaction;
@@ -47,6 +47,12 @@ class UpdatePerfexCRMPrelude implements ShouldQueue
public function handle()
{
Log::info('UpdatePerfexCRMPrelude packingList: ' . json_encode($this->packingList));
if(env('APP_ENV') !== 'production'){
return;
}
if(is_null($this->packingList)){
$this->packingList = $this->transaction->owner->owner;
}
@@ -0,0 +1,87 @@
<?php
namespace App\Classes\Modules\Accounts\ControllersLogic;
use App\Classes\Exceptions\ResourceConflictException;
use App\Classes\Exceptions\ResourceNotFoundException;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor;
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Http\Resources\UserResource;
use App\Models\User;
use Illuminate\Database\QueryException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class AdminAddNewMemberLogic extends AbstractControllerLogic
{
public function notification(): array
{
return [
'title' => 'Admin Updated Email',
'message' => 'Successfully updated email'
];
}
/**
* @var AssignEmployeeProcessor
*/
private $assignEmployeeProcessor;
/**
* @var GenerateEmailVerificationAttemptProcessor
*/
private $generateEmailVerificationAttemptProcessor;
/**
* AddNewMemberLogic constructor.
* @param AssignEmployeeProcessor $assignEmployeeProcessor
* @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor
*/
public function __construct(AssignEmployeeProcessor $assignEmployeeProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor)
{
$this->assignEmployeeProcessor = $assignEmployeeProcessor;
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ResourceConflictException
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request): JsonResponse
{
Log::info($request->input('employeeId'));
try {
if (!$authUser = User::find($request->input('employeeId'))) {
throw new ResourceNotFoundException('User not found.');
}
$user = $authUser->replicate();
$user->email = $request->input('email');
$user->status = ApprovalStatus::PENDING_VERIFICATION;
$user->save();
} catch (QueryException $e) {
throw new ResourceConflictException('Email already exists.');
}
Log::info($request->input('email'));
if ($company = $authUser->companyModule()->first()) {
$this->assignEmployeeProcessor->execute(new EmploymentObject($company, $user));
}
$this->generateEmailVerificationAttemptProcessor->execute($user);
return $this->resourceResponse(new UserResource($user));
}
}
@@ -36,6 +36,8 @@ use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class CreateCustomerLogic extends AbstractControllerLogic
{
@@ -167,6 +169,19 @@ class CreateCustomerLogic extends AbstractControllerLogic
CreatePerfexCRMCustomer::dispatch($createLeadPerfexCRMObject);
}
if(app()->environment(['production'])){
// call wac webhook
$url = config('wagWebhookUrl.account_registration_url');
$payload = [
'name' => $request->input('name'),
'email' => $request->input('email'),
'phone' => $request->input('phone'),
'portal' => 'izyim'
];
$response = Http::post($url, $payload);
Log::channel('wac_webhook')->info('Register Account: ' . json_encode($response));
}
// $this->generateEmailVerificationAttemptProcessor->execute($user);
return $this->response($this->authenticationProcessor->execute($request));
@@ -77,11 +77,11 @@ class GeneratePasswordResetLogic extends AbstractControllerLogic
$attempt = $this->generatesPasswordReset->execute($user);
$this->passwordResetTokenExpiration::dispatch($attempt)->delay(now()->addHours(24));
// $this->passwordResetTokenExpiration::dispatch($attempt)->delay(now()->addHours(24)); //converted to schedule task
$this->sendResetPasswordEmail::dispatch($user, $attempt);
return $this->response(['email' => $object->getEmail()]);
}
}
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Classes\Modules\Accounts\DataTransferObjects;
use App\Classes\General\Interfaces\DataTransferObject;
class KeyValuePairObject implements DataTransferObject
{
/** @var string */
private $key;
/** @var string */
private $value;
/**
* KeyValuePairObject constructor.
* @param string $key
* @param string $value
*/
public function __construct(string $key, string $value)
{
$this->key = $key;
$this->value = $value;
}
/**
* @return string
*/
public function getKey(): string
{
return $this->key;
}
/**
* @return string
*/
public function getValue(): string
{
return $this->value;
}
}
@@ -50,7 +50,7 @@ class GenerateEmailVerificationAttemptProcessor
$attempt = $this->generatesEmailVerificationAttempt->execute($user);
$this->emailVerificationAttemptExpiration::dispatch($attempt)->delay(now()->addHours(48));
//$this->emailVerificationAttemptExpiration::dispatch($attempt)->delay(now()->addHours(48)); //converted to schedule task
$this->sendUserVerificationEmail::dispatch($user, $attempt);
@@ -0,0 +1,28 @@
<?php
namespace App\Classes\Modules\Accounts\Services;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\General\Interfaces\KeyValueInterface;
use App\Classes\Modules\Accounts\DataTransferObjects\KeyValuePairObject;
use App\Models\KeyValuePair;
class CreatesKeyValuePair extends AbstractUpdateRelationshipRecord
{
/**
* @param KeyValueInterface $kv
* @param KeyValuePairObject $object
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(KeyValueInterface $kv, KeyValuePairObject $object) {
$model = new KeyValuePair();
$model->key = $object->getKey();
$model->value = $object->getValue();
return $this->handler($kv->attributesKVP(), $model);
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Classes\Modules\Accounts\Services;
use App\Classes\General\Eloquent\AbstractDeleteRecord;
use App\Models\KeyValuePair;
class DeletesKeyValuePair extends AbstractDeleteRecord
{
/**
* @param KeyValuePair $model
* @return mixed
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(KeyValuePair $model) {
return $this->handler($model);
}
}

Some files were not shown because too many files have changed in this diff Show More