mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 20:44:19 +00:00
Compare commits
1 Commits
dev
..
debug-testing
| Author | SHA1 | Date | |
|---|---|---|---|
| 834ea52a4f |
+2
-8
@@ -10,9 +10,9 @@ LOG_LEVEL=debug
|
|||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=127.0.0.1
|
DB_HOST=127.0.0.1
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_DATABASE=shpping_portal
|
DB_DATABASE=laravel
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=root
|
DB_PASSWORD=
|
||||||
|
|
||||||
BROADCAST_DRIVER=log
|
BROADCAST_DRIVER=log
|
||||||
CACHE_DRIVER=file
|
CACHE_DRIVER=file
|
||||||
@@ -55,9 +55,3 @@ EXCHANGE_URL=https://dev.exchange.cief-malaysia.com/
|
|||||||
MIX_EXCHANGE_URL="${EXCHANGE_URL}"
|
MIX_EXCHANGE_URL="${EXCHANGE_URL}"
|
||||||
|
|
||||||
YD_API_CODE=''
|
YD_API_CODE=''
|
||||||
|
|
||||||
JWT_SECRET=Btj63iMEleEaww6Bb2IBECkxWn7YHPhhPFluAkg9DfcQik0qDRy6QW75ABGmPT2h
|
|
||||||
|
|
||||||
PERFEXCRM_BASE_URL=""
|
|
||||||
PERFEXCRM_API_KEY=""
|
|
||||||
PERFEXCRM_IS_ENABLED="false"
|
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
APP_NAME=Laravel
|
|
||||||
APP_ENV=local
|
|
||||||
APP_KEY=base64:rIar2fvNeRzQdvKOgLUg03detGDMx6ym2SYFRjawrAc=
|
|
||||||
APP_DEBUG=true
|
|
||||||
APP_URL=http://localhost
|
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
|
||||||
LOG_LEVEL=debug
|
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
|
||||||
DB_HOST=127.0.0.1
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=shpping_portal
|
|
||||||
DB_USERNAME=root
|
|
||||||
DB_PASSWORD=P@ssw0rd
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=log
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
FILESYSTEM_DRIVER=local
|
|
||||||
QUEUE_CONNECTION=sync
|
|
||||||
SESSION_DRIVER=file
|
|
||||||
SESSION_LIFETIME=120
|
|
||||||
|
|
||||||
MEMCACHED_HOST=127.0.0.1
|
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
MAIL_MAILER=smtp
|
|
||||||
MAIL_HOST=mailhog
|
|
||||||
MAIL_PORT=1025
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
MAIL_FROM_ADDRESS=null
|
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
AWS_USE_PATH_STYLE_ENDPOINT=false
|
|
||||||
|
|
||||||
PUSHER_APP_ID=
|
|
||||||
PUSHER_APP_KEY=
|
|
||||||
PUSHER_APP_SECRET=
|
|
||||||
PUSHER_APP_CLUSTER=mt1
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
UNITY_APP_URL="https://unity.izyim.com"
|
|
||||||
EXCHANGE_URL=https://dev.exchange.cief-malaysia.com/
|
|
||||||
MIX_EXCHANGE_URL="${EXCHANGE_URL}"
|
|
||||||
|
|
||||||
YD_API_CODE=''
|
|
||||||
|
|
||||||
JWT_SECRET=Btj63iMEleEaww6Bb2IBECkxWn7YHPhhPFluAkg9DfcQik0qDRy6QW75ABGmPT2h
|
|
||||||
+1
-2
@@ -2,8 +2,6 @@
|
|||||||
/public/hot
|
/public/hot
|
||||||
/public/storage
|
/public/storage
|
||||||
/storage/*.key
|
/storage/*.key
|
||||||
/tests/_output
|
|
||||||
/tests/_support
|
|
||||||
/vendor
|
/vendor
|
||||||
**/.idea/
|
**/.idea/
|
||||||
.env
|
.env
|
||||||
@@ -23,6 +21,7 @@ gox.iml
|
|||||||
rebuild_docker.sh
|
rebuild_docker.sh
|
||||||
docker/*
|
docker/*
|
||||||
db/*
|
db/*
|
||||||
|
docker-compose.yml
|
||||||
package-lock.json
|
package-lock.json
|
||||||
public/*
|
public/*
|
||||||
/public/*
|
/public/*
|
||||||
|
|||||||
-120
@@ -1,120 +0,0 @@
|
|||||||
image: php:7.4
|
|
||||||
stages:
|
|
||||||
- service_build
|
|
||||||
- node
|
|
||||||
- building_assets
|
|
||||||
- database
|
|
||||||
- unit_test
|
|
||||||
- acceptance_test
|
|
||||||
- code_quality
|
|
||||||
|
|
||||||
# Variables
|
|
||||||
variables:
|
|
||||||
MYSQL_ROOT_PASSWORD: root
|
|
||||||
MYSQL_USER: mysql_password
|
|
||||||
MYSQL_PASSWORD: mysql_password
|
|
||||||
MYSQL_DATABASE: shpping_portal
|
|
||||||
DB_HOST: mysql
|
|
||||||
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- apt-get update -yqq
|
|
||||||
- apt-get install -yqq
|
|
||||||
- apt-get install -y libonig-dev
|
|
||||||
- apt-get install -y libxml2-dev
|
|
||||||
- apt-get install -y libzip-dev
|
|
||||||
- apt-get install -y libgd-dev
|
|
||||||
- apt-get install -y libgd-dev
|
|
||||||
|
|
||||||
# Install PDO MySQL extension
|
|
||||||
- docker-php-ext-install pdo_mysql
|
|
||||||
|
|
||||||
#install php dependencies
|
|
||||||
- docker-php-ext-install mbstring xml zip gd
|
|
||||||
|
|
||||||
# Install composer package manager
|
|
||||||
- curl --location --output /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar
|
|
||||||
- chmod +x /usr/local/bin/composer
|
|
||||||
|
|
||||||
# Install MySQL client
|
|
||||||
- apt-get install -y default-mysql-client
|
|
||||||
|
|
||||||
#install node js
|
|
||||||
- apt-get update && apt-get install -y nodejs npm
|
|
||||||
|
|
||||||
#install gulp Js
|
|
||||||
- npm install -g gulp-cli
|
|
||||||
|
|
||||||
|
|
||||||
#jobs
|
|
||||||
|
|
||||||
#buld the backend
|
|
||||||
composer_php:
|
|
||||||
stage: service_build
|
|
||||||
script:
|
|
||||||
- composer install
|
|
||||||
- cp .env.example .env
|
|
||||||
- php artisan key:generate
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH =~ /.*/'
|
|
||||||
|
|
||||||
#build the UI
|
|
||||||
#node installation
|
|
||||||
npm:
|
|
||||||
stage: node
|
|
||||||
script:
|
|
||||||
- npm install # Install npm dependencies
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH =~ /.*/'
|
|
||||||
|
|
||||||
#building assets
|
|
||||||
building_assets:
|
|
||||||
stage: building_assets
|
|
||||||
# dependencies:
|
|
||||||
# - npm
|
|
||||||
script:
|
|
||||||
- npm install # Install npm dependencies
|
|
||||||
- gulp build # Build assets
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH =~ /.*/'
|
|
||||||
|
|
||||||
#mysql
|
|
||||||
database:
|
|
||||||
stage: database
|
|
||||||
services:
|
|
||||||
- name: mysql:8.0
|
|
||||||
command: [ "--default-authentication-plugin=mysql_native_password" ]
|
|
||||||
#dependencies:
|
|
||||||
# - composer_php
|
|
||||||
script:
|
|
||||||
- composer install
|
|
||||||
- cp .env.example .env
|
|
||||||
- php artisan key:generate
|
|
||||||
- php artisan migrate:fresh
|
|
||||||
- php artisan db:seed
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH =~ /.*/'
|
|
||||||
|
|
||||||
#mysql
|
|
||||||
#unit_test:
|
|
||||||
# stage: unit_test
|
|
||||||
# services:
|
|
||||||
# - name: mysql:8.0
|
|
||||||
# command: [ "--default-authentication-plugin=mysql_native_password" ]
|
|
||||||
#dependencies:
|
|
||||||
# - database
|
|
||||||
# script:
|
|
||||||
# - npm install # Install npm dependencies
|
|
||||||
# - gulp build # Build assets
|
|
||||||
# - composer install
|
|
||||||
# - cp .env.example .env
|
|
||||||
# - php artisan key:generate
|
|
||||||
# - php artisan migrate:fresh
|
|
||||||
# - php artisan db:seed
|
|
||||||
# - php artisan test
|
|
||||||
# rules:
|
|
||||||
# - if: '$CI_COMMIT_BRANCH =~ /.*/'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,39 +1,62 @@
|
|||||||
## Shipping portal documentation
|
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400"></a></p>
|
||||||
|
|
||||||
simple documentation on how to install, run, test, commit and deploy application
|
<p align="center">
|
||||||
|
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
|
||||||
|
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
|
||||||
|
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
|
||||||
|
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## creating and running unit tests
|
## About Laravel
|
||||||
|
|
||||||
Required Tools
|
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
|
||||||
|
|
||||||
- Chromium Driver / selenium
|
- [Simple, fast routing engine](https://laravel.com/docs/routing).
|
||||||
- add running and setting selenium on all OS if possible
|
- [Powerful dependency injection container](https://laravel.com/docs/container).
|
||||||
|
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
|
||||||
|
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
|
||||||
|
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
|
||||||
|
- [Robust background job processing](https://laravel.com/docs/queues).
|
||||||
|
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
|
||||||
|
|
||||||
Required Packages :
|
Laravel is accessible, powerful, and provides tools required for large, robust applications.
|
||||||
|
|
||||||
- laravel/legacy-factories
|
## Learning Laravel
|
||||||
|
|
||||||
- codeception/codeception
|
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
|
||||||
|
|
||||||
Or Simply Run
|
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
|
||||||
|
|
||||||
``Composer install``
|
## Laravel Sponsors
|
||||||
|
|
||||||
To create a unit test
|
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
|
||||||
|
|
||||||
``php artisan make test: Test Example --unit``
|
### Premium Partners
|
||||||
|
|
||||||
Running the tests :
|
- **[Vehikl](https://vehikl.com/)**
|
||||||
|
- **[Tighten Co.](https://tighten.co)**
|
||||||
|
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
|
||||||
|
- **[64 Robots](https://64robots.com)**
|
||||||
|
- **[Cubet Techno Labs](https://cubettech.com)**
|
||||||
|
- **[Cyber-Duck](https://cyber-duck.co.uk)**
|
||||||
|
- **[Many](https://www.many.co.uk)**
|
||||||
|
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
|
||||||
|
- **[DevSquad](https://devsquad.com)**
|
||||||
|
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
|
||||||
|
- **[OP.GG](https://op.gg)**
|
||||||
|
|
||||||
Running a single Test
|
## Contributing
|
||||||
|
|
||||||
`` php artisan test --filter Example``
|
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
|
||||||
|
|
||||||
Running Unit tests -
|
## Code of Conduct
|
||||||
|
|
||||||
`` php artisan test ``
|
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
|
||||||
|
|
||||||
Running Codeception tests -
|
## Security Vulnerabilities
|
||||||
|
|
||||||
``vendor/bin/codecept run``
|
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class AmountExceed implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('amount', '>', $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class AmountShort implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('amount', '<', $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class BillNo implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('bill_no', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class CreatedBefore implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('created_at', '<', Carbon::parse($value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class DoesNotHaveGroups implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->whereDoesntHave('groups');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class DoesNotHavePaymentStatusIn implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->whereDoesntHave('transactions', function (Builder $query) use($value) {
|
|
||||||
$query->where('type', TransactionType::PAYMENT)->whereIn('status', $value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -15,7 +15,7 @@ class DoesNotHaveTransactionType implements Filter
|
|||||||
public static function apply(Builder $builder, $value)
|
public static function apply(Builder $builder, $value)
|
||||||
{
|
{
|
||||||
return $builder->whereDoesntHave('transactions', function (Builder $query) use($value) {
|
return $builder->whereDoesntHave('transactions', function (Builder $query) use($value) {
|
||||||
$query->where('type', $value)->whereIn('status', [0,1,2,3,5]);
|
$query->where('type', $value);
|
||||||
})->whereHas('containers', function ($query){
|
})->whereHas('containers', function ($query){
|
||||||
return $query->whereDate('loading_date', '>=', Carbon::parse('20-09-2022'));
|
return $query->whereDate('loading_date', '>=', Carbon::parse('20-09-2022'));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class EmailLike implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('email', 'LIKE', '%'.$value.'%');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class HavePaymentStatusNotIn implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->whereHas('transactions', function (Builder $query) use($value) {
|
|
||||||
$query->where('type', TransactionType::PAYMENT)->whereNotIn('status', $value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class IdNext implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('id', '>', $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class NextMainQuestion implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('next_main_question', $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use App\Models\Order;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class OrderMarkingIn implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->whereHas('owner', function($query) use ($value) {
|
|
||||||
$query->where('reference', 'LIKE', '%' . $value . '%');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?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)
|
|
||||||
{
|
|
||||||
return $builder->where('owner_type', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class PaymentMethod implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('payment_method', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class QuestionId implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('question_id', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class QuestionNumber implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('question_number', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class QuestionnaireSetId implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('questionnaire_set_id', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class Receiver implements Filter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('receiver', '=', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\General\Eloquent\Filters;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class UserId implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Builder $builder
|
|
||||||
* @param $value
|
|
||||||
* @return Builder|mixed
|
|
||||||
*/
|
|
||||||
public static function apply(Builder $builder, $value)
|
|
||||||
{
|
|
||||||
return $builder->where('user_id', $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Classes\General;
|
namespace App\Classes\General;
|
||||||
|
|
||||||
|
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
|
|
||||||
class Helper
|
class Helper
|
||||||
{
|
{
|
||||||
@@ -24,21 +24,4 @@ class Helper
|
|||||||
return array_slice(get_class_methods($className), 1);
|
return array_slice(get_class_methods($className), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $log
|
|
||||||
* @return none
|
|
||||||
*/
|
|
||||||
static function debugLoggerForPerfexCRM($log){
|
|
||||||
if($log){
|
|
||||||
$message = $log['message'];
|
|
||||||
$substring = 'No data were found';
|
|
||||||
if (isset($message)) {
|
|
||||||
if (strpos($message, $substring) !== false) {
|
|
||||||
// Log::info('Message exist');
|
|
||||||
} else {
|
|
||||||
Log::info($log['message']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMLeadProcessor;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMLead;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMLead;
|
|
||||||
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\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject;
|
|
||||||
|
|
||||||
class CreatePerfexCRMCustomer implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var CreateLeadPerfexCRMObject */
|
|
||||||
private $createLeadPerfexCRMObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreatePerfexCRMCustomer constructor.
|
|
||||||
* @param CreateLeadPerfexCRMObject $createLeadPerfexCRMObject
|
|
||||||
*/
|
|
||||||
public function __construct(CreateLeadPerfexCRMObject $createLeadPerfexCRMObject)
|
|
||||||
{
|
|
||||||
$this->createLeadPerfexCRMObject = $createLeadPerfexCRMObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
$lead = (App()->make(FetchesPerfexCRMLead::class))->execute($this->createLeadPerfexCRMObject->getEmail());
|
|
||||||
if(!is_null($lead)){
|
|
||||||
(App()->make(UpdatesPerfexCRMLead::class))->execute($lead, $this->createLeadPerfexCRMObject->getCompanyReference());
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
(App()->make(CreatePerfexCRMLeadProcessor::class))->execute($this->createLeadPerfexCRMObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMInvoiceProcessor;
|
|
||||||
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;
|
|
||||||
|
|
||||||
class CreatePerfexCRMInvoice implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var Transaction $transaction*/
|
|
||||||
private $transaction;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreatePerfexCRMInvoice constructor.
|
|
||||||
* @param Transaction $transaction
|
|
||||||
*/
|
|
||||||
public function __construct(Transaction $transaction)
|
|
||||||
{
|
|
||||||
$this->transaction = $transaction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
(App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($this->transaction);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMTaskProcessor;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMLead;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateTaskPerfexCRMObject;
|
|
||||||
use Illuminate\Bus\Queueable;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
|
|
||||||
class CreatePerfexCRMSingleTask implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var FetchesPerfexCRMLead */
|
|
||||||
private $fetchesPerfexCRMLead;
|
|
||||||
|
|
||||||
/** @var CreateTaskPerfexCRMObject */
|
|
||||||
private $createTaskPerfexCRMObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreatePerfexCRMSingleTask constructor.
|
|
||||||
* @param CreateTaskPerfexCRMObject $createTaskPerfexCRMObject
|
|
||||||
*/
|
|
||||||
public function __construct(CreateTaskPerfexCRMObject $createTaskPerfexCRMObject)
|
|
||||||
{
|
|
||||||
$this->createTaskPerfexCRMObject = $createTaskPerfexCRMObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
$lead = (App()->make(FetchesPerfexCRMLead::class))->execute($this->createTaskPerfexCRMObject->getEmail());
|
|
||||||
if(!is_null($lead))
|
|
||||||
{
|
|
||||||
$this->createTaskPerfexCRMObject->setLeadId($lead->id);
|
|
||||||
(App()->make(CreatePerfexCRMTaskProcessor::class))->execute($this->createTaskPerfexCRMObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,12 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Classes\Jobs;
|
namespace App\Classes\Jobs;
|
||||||
|
|
||||||
use App\Classes\Modules\PackingLists\Processors\FetchContainersFromYdPortalProcessor;
|
|
||||||
use App\Classes\Modules\PackingLists\Processors\FetchContainersUpdatesFromYdPortalProcessor;
|
|
||||||
use App\Classes\Modules\PackingLists\Processors\FetchDeliveryUpdatesFromYdPortalProcessor;
|
|
||||||
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
|
use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor;
|
||||||
|
|
||||||
use App\Classes\Modules\PackingLists\Processors\FetchPackingListsFromYdPortalProcessor;
|
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
@@ -29,12 +25,8 @@ class FetchOrdersFromYDPortalJob implements ShouldQueue
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
(App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute();
|
|
||||||
(App()->make(FetchContainersFromYdPortalProcessor::class))->execute();
|
|
||||||
(App()->make(FetchContainersUpdatesFromYdPortalProcessor::class))->execute();
|
|
||||||
(App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute();
|
|
||||||
|
|
||||||
// (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();
|
(App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\UpdatePerfexCRMProcessor;
|
|
||||||
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\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMInvoiceObject;
|
|
||||||
|
|
||||||
class UpdatePerfexCRM implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRMObject */
|
|
||||||
private $updatePerfexCRMObject;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRMInvoice */
|
|
||||||
private $nextJob;
|
|
||||||
|
|
||||||
/** @var */
|
|
||||||
private $transaction;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdatePerfexCRM constructor.
|
|
||||||
* @param UpdatePerfexCRMObject $updatePerfexCRMObject
|
|
||||||
* @param UpdatePerfexCRMInvoice $nextJob
|
|
||||||
* @param $transaction
|
|
||||||
*/
|
|
||||||
public function __construct(UpdatePerfexCRMObject $updatePerfexCRMObject, $transaction, $nextJob)
|
|
||||||
{
|
|
||||||
$this->updatePerfexCRMObject = $updatePerfexCRMObject;
|
|
||||||
$this->nextJob = $nextJob;
|
|
||||||
$this->transaction = $transaction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
$result = (App()->make(UpdatePerfexCRMProcessor::class))->execute($this->updatePerfexCRMObject);
|
|
||||||
if($this->nextJob != null && $this->transaction != null){
|
|
||||||
$updatePerfexCRMInvoiceOject = new UpdatePerfexCRMInvoiceObject(
|
|
||||||
$this->updatePerfexCRMObject->getContactEmail(),
|
|
||||||
$result->projectId,
|
|
||||||
$this->transaction,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
/** @var UpdatePerfexCRMInvoice $nextJob */
|
|
||||||
$this->nextJob::dispatch($updatePerfexCRMInvoiceOject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMInvoiceProcessor;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMInvoicePayment;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMCustomer;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMInvoice;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMProject;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMInvoice;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMInvoiceObject;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\InvoicePaymentPerfexCRMObject;
|
|
||||||
use App\Classes\ValueObjects\Constants\PerfexCRMInvoiceStatus;
|
|
||||||
use App\Models\PackingList;
|
|
||||||
use App\Models\Transaction;
|
|
||||||
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 Carbon\Carbon;
|
|
||||||
|
|
||||||
use App\Classes\General\Helper;
|
|
||||||
|
|
||||||
class UpdatePerfexCRMInvoice implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRMInvoiceObject */
|
|
||||||
private $updatePerfexCRMInvoiceObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreatePerfexCRMSingleTask constructor.
|
|
||||||
* @param UpdatePerfexCRMInvoiceObject $createTaskPerfexCRMObject
|
|
||||||
*/
|
|
||||||
public function __construct(UpdatePerfexCRMInvoiceObject $updatePerfexCRMInvoiceObject)
|
|
||||||
{
|
|
||||||
$this->updatePerfexCRMInvoiceObject = $updatePerfexCRMInvoiceObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
//get the client id
|
|
||||||
$customer = (App()->make(FetchesPerfexCRMCustomer::class))->execute($this->updatePerfexCRMInvoiceObject->getEmail());
|
|
||||||
$transaction = $this->updatePerfexCRMInvoiceObject->getTransaction();
|
|
||||||
|
|
||||||
//get the invoice id
|
|
||||||
$invoiceId = 0;
|
|
||||||
$invoiceStatus = 0;
|
|
||||||
$invoice = (App()->make(FetchesPerfexCRMInvoice::class))->execute($customer->userid,"INV-", $transaction->owner->bill_no);
|
|
||||||
Log::error(json_encode('UpdatePerfexCRMInvoice debug $transaction->owner->bill_no: '.$transaction->owner->bill_no));
|
|
||||||
|
|
||||||
if(is_null($invoice)){
|
|
||||||
$result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction->owner, $this->updatePerfexCRMInvoiceObject->getIsPaid());
|
|
||||||
if ($result) {
|
|
||||||
$invoiceId = $result->payload['id'];
|
|
||||||
} else {
|
|
||||||
// Log::error(json_encode('UpdatePerfexCRMInvoice CreatePerfexCRMInvoiceProcessor failed'));
|
|
||||||
Helper::debugLoggerForPerfexCRM('UpdatePerfexCRMInvoice CreatePerfexCRMInvoiceProcessor failed');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
$invoiceId = $invoice->id;
|
|
||||||
$invoiceStatus = $invoice->status;
|
|
||||||
|
|
||||||
//This only run when invoice already exist and the invoice does not have a PAID status
|
|
||||||
if($invoiceStatus != PerfexCRMInvoiceStatus::PAID){
|
|
||||||
Log::error(json_encode('UpdatePerfexCRMInvoice debug $this->updatePerfexCRMInvoiceObject->getProjectId(): '.$this->updatePerfexCRMInvoiceObject->getProjectId()));
|
|
||||||
//update invoice
|
|
||||||
(App()->make(UpdatesPerfexCRMInvoice::class))->execute($invoice, $this->updatePerfexCRMInvoiceObject->getProjectId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//create invoice payment
|
|
||||||
if($invoiceId != 0 && $invoiceStatus != PerfexCRMInvoiceStatus::PAID){
|
|
||||||
|
|
||||||
$date = Carbon::parse($transaction->created_at)->format('Y-m-d');
|
|
||||||
|
|
||||||
$invoicePaymentPerfexCRMObject = new InvoicePaymentPerfexCRMObject(
|
|
||||||
$invoiceId,
|
|
||||||
"$transaction->amount",
|
|
||||||
$date,
|
|
||||||
1,
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
);
|
|
||||||
(App()->make(CreatesPerfexCRMInvoicePayment::class))->execute($invoicePaymentPerfexCRMObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function delay($delay)
|
|
||||||
{
|
|
||||||
// Add delay in seconds to the job
|
|
||||||
$this->delay = $delay;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Jobs;
|
|
||||||
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMInvoiceObject;
|
|
||||||
use App\Models\PackingList;
|
|
||||||
use App\Models\Transaction;
|
|
||||||
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 UpdatePerfexCRMPrelude implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/** @var */
|
|
||||||
private $packingList;
|
|
||||||
|
|
||||||
/** @var */
|
|
||||||
private $transaction;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRMObject */
|
|
||||||
private $updatePerfexCRMObject;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRM */
|
|
||||||
private $nextJob1;
|
|
||||||
|
|
||||||
/** @var UpdatePerfexCRMInvoice */
|
|
||||||
private $nextJob2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdatePerfexCRMPrelude constructor.
|
|
||||||
* @param $packingList
|
|
||||||
* @param $transaction
|
|
||||||
* @param UpdatePerfexCRMObject $updatePerfexCRMObject
|
|
||||||
* @param UpdatePerfexCRM $nextJob1
|
|
||||||
* @param UpdatePerfexCRMInvoice $nextJob2
|
|
||||||
*/
|
|
||||||
public function __construct($packingList, $transaction, UpdatePerfexCRMObject $updatePerfexCRMObject, $nextJob1, $nextJob2)
|
|
||||||
{
|
|
||||||
$this->packingList = $packingList;
|
|
||||||
$this->transaction = $transaction;
|
|
||||||
$this->updatePerfexCRMObject = $updatePerfexCRMObject;
|
|
||||||
$this->nextJob1 = $nextJob1;
|
|
||||||
$this->nextJob2 = $nextJob2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
if(is_null($this->packingList)){
|
|
||||||
$this->packingList = $this->transaction->owner->owner;
|
|
||||||
}
|
|
||||||
$amount = 0.00;
|
|
||||||
if(!is_null($this->transaction)){
|
|
||||||
$amount = $this->transaction->amount;
|
|
||||||
}
|
|
||||||
$data = [
|
|
||||||
'amount' => number_format($amount, 2, '.', ''),
|
|
||||||
'link_order' => config('app.url').'/order/show/'.$this->packingList->owner->reference,
|
|
||||||
'link_autocount_or' => 'https://docs.google.com/spreadsheets/d/1Q3rJBGQ9Bo04HZp5WR9zbLp7pIW2kfDYsabxG7JON-4/edit#gid=2013983170',
|
|
||||||
'link_perfex' => 'https://perfex.cief-malaysia.com/admin/projects/view/89',
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
$result = $this->replacePlaceholders($this->updatePerfexCRMObject->getTasks(), $data);
|
|
||||||
$this->updatePerfexCRMObject->setTasks($result);
|
|
||||||
/** @var UpdatePerfexCRM $nextJob1 */
|
|
||||||
/** @var UpdatePerfexCRMInvoice $nextJob2 */
|
|
||||||
$this->nextJob1::dispatch($this->updatePerfexCRMObject, $this->transaction, $this->nextJob2);
|
|
||||||
}
|
|
||||||
|
|
||||||
function replacePlaceholders($template, $data, $prefix = '')
|
|
||||||
{
|
|
||||||
foreach ($template as $key => $value) {
|
|
||||||
foreach ($data as $dataKey => $dataValue) {
|
|
||||||
if (is_array($dataValue)) {
|
|
||||||
$template[$key] = $this->replacePlaceholders($template[$key], $dataValue, $dataKey);
|
|
||||||
} else {
|
|
||||||
if ($prefix != '') {
|
|
||||||
$template[$key] = str_replace('{' .$prefix. "." .$dataKey . '}', $dataValue, $template[$key]);
|
|
||||||
} else {
|
|
||||||
$template[$key] = str_replace('{' . $dataKey . '}', $dataValue, $template[$key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $template;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -8,27 +8,23 @@ use App\Classes\General\Services\GeneratesInitials;
|
|||||||
use App\Classes\Modules\Accounts\Processors\AuthenticationProcessor;
|
use App\Classes\Modules\Accounts\Processors\AuthenticationProcessor;
|
||||||
use App\Classes\Modules\Accounts\Processors\CreateUserProcessor;
|
use App\Classes\Modules\Accounts\Processors\CreateUserProcessor;
|
||||||
use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor;
|
use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProcessor;
|
||||||
|
use App\Classes\Modules\Companies\DataTransferObjects\CompanyConnectionObject;
|
||||||
use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor;
|
use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor;
|
||||||
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
||||||
use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
use App\Classes\Modules\Companies\Processors\CreateCompanyModuleProcessor;
|
||||||
|
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
|
||||||
use App\Classes\Modules\Companies\Services\ApprovesCompanyConnection;
|
use App\Classes\Modules\Companies\Services\ApprovesCompanyConnection;
|
||||||
use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
|
use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
||||||
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMLeadProcessor;
|
|
||||||
use App\Classes\Modules\Documents\Processors\UploadIdentityDocumentProcessor;
|
|
||||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyConnectionObject;
|
|
||||||
use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject;
|
|
||||||
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
|
|
||||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
||||||
|
use App\Classes\Modules\Contacts\Processors\CreateContactProcessor;
|
||||||
|
use App\Classes\Modules\Documents\Processors\UploadIdentityDocumentProcessor;
|
||||||
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||||
use App\Classes\ValueObjects\Constants\RoleTypes;
|
use App\Classes\ValueObjects\Constants\RoleTypes;
|
||||||
|
|
||||||
use App\Classes\Jobs\CreatePerfexCRMCustomer;
|
|
||||||
|
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\CompanyModule;
|
use App\Models\CompanyModule;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
@@ -84,9 +80,6 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
|||||||
/** @var FetchesCompanyModule */
|
/** @var FetchesCompanyModule */
|
||||||
private $fetchesCompanyModule;
|
private $fetchesCompanyModule;
|
||||||
|
|
||||||
/** @var CreatePerfexCRMLeadProcessor */
|
|
||||||
private $createPerfexCRMLeadProcessor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CreateCustomerLogic constructor.
|
* CreateCustomerLogic constructor.
|
||||||
* @param CreateUserProcessor $createUserProcessor
|
* @param CreateUserProcessor $createUserProcessor
|
||||||
@@ -100,9 +93,8 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
|||||||
* @param AuthenticationProcessor $authenticationProcessor
|
* @param AuthenticationProcessor $authenticationProcessor
|
||||||
* @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor
|
* @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor
|
||||||
* @param FetchesCompanyModule $fetchesCompanyModule
|
* @param FetchesCompanyModule $fetchesCompanyModule
|
||||||
* @param CreatePerfexCRMLeadProcessor $createPerfexCRMLeadProcessor
|
|
||||||
*/
|
*/
|
||||||
public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreateContactProcessor $createContactProcessor, CreatesCompanyConnection $createsCompanyConnection, ApprovesCompanyConnection $approvesCompanyConnection, AssignEmployeeProcessor $assignEmployeeProcessor, UploadIdentityDocumentProcessor $uploadIdentityDocumentProcessor, AuthenticationProcessor $authenticationProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor, FetchesCompanyModule $fetchesCompanyModule, CreatePerfexCRMLeadProcessor $createPerfexCRMLeadProcessor)
|
public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, CreateCompanyModuleProcessor $createCompanyModuleProcessor, CreateContactProcessor $createContactProcessor, CreatesCompanyConnection $createsCompanyConnection, ApprovesCompanyConnection $approvesCompanyConnection, AssignEmployeeProcessor $assignEmployeeProcessor, UploadIdentityDocumentProcessor $uploadIdentityDocumentProcessor, AuthenticationProcessor $authenticationProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor, FetchesCompanyModule $fetchesCompanyModule)
|
||||||
{
|
{
|
||||||
$this->createUserProcessor = $createUserProcessor;
|
$this->createUserProcessor = $createUserProcessor;
|
||||||
$this->createCompanyProcessor = $createCompanyProcessor;
|
$this->createCompanyProcessor = $createCompanyProcessor;
|
||||||
@@ -115,7 +107,6 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
|||||||
$this->authenticationProcessor = $authenticationProcessor;
|
$this->authenticationProcessor = $authenticationProcessor;
|
||||||
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
|
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
|
||||||
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
||||||
$this->createPerfexCRMLeadProcessor = $createPerfexCRMLeadProcessor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -155,18 +146,6 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$this->uploadIdentityDocumentProcessor->execute($request, $company);
|
$this->uploadIdentityDocumentProcessor->execute($request, $company);
|
||||||
|
|
||||||
if(config('perfexcrm.is_enabled') == 'true'){
|
|
||||||
// $this->createPerfexCRMLeadProcessor->execute($request);
|
|
||||||
$createLeadPerfexCRMObject = new CreateLeadPerfexCRMObject(
|
|
||||||
$request->input('name'),
|
|
||||||
$request->input('email'),
|
|
||||||
$request->input('phone'),
|
|
||||||
$request->input('type') === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name'),
|
|
||||||
$connection->invitee_reference
|
|
||||||
);
|
|
||||||
CreatePerfexCRMCustomer::dispatch($createLeadPerfexCRMObject);
|
|
||||||
}
|
|
||||||
|
|
||||||
// $this->generateEmailVerificationAttemptProcessor->execute($user);
|
// $this->generateEmailVerificationAttemptProcessor->execute($user);
|
||||||
|
|
||||||
return $this->response($this->authenticationProcessor->execute($request));
|
return $this->response($this->authenticationProcessor->execute($request));
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace App\Classes\Modules\Accounts\ControllersLogic;
|
|||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Accounts\Services\UpdatesUserFullName;
|
use App\Classes\Modules\Accounts\Services\UpdatesUser;
|
||||||
use App\Classes\Modules\Accounts\Services\FetchesUser;
|
use App\Classes\Modules\Accounts\Services\FetchesUser;
|
||||||
use App\Classes\Modules\Accounts\Standards\Rules\CanUpdateUser;
|
use App\Classes\Modules\Accounts\Standards\Rules\CanUpdateUser;
|
||||||
use App\Classes\Modules\Accounts\DataTransferObjects\FullNameObject;
|
use App\Classes\Modules\Accounts\DataTransferObjects\FullNameObject;
|
||||||
@@ -29,8 +29,8 @@ class UpdateUserLogic extends AbstractControllerLogic
|
|||||||
/** @var CanUpdateUser */
|
/** @var CanUpdateUser */
|
||||||
private $canUpdateUser;
|
private $canUpdateUser;
|
||||||
|
|
||||||
/** @var UpdatesUserFullName */
|
/** @var UpdatesUser */
|
||||||
private $updatesUserFullName;
|
private $updatesUser;
|
||||||
|
|
||||||
/** @var FetchesUser */
|
/** @var FetchesUser */
|
||||||
private $fetchesUser;
|
private $fetchesUser;
|
||||||
@@ -38,13 +38,13 @@ class UpdateUserLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* UpdateAddressLogic constructor.
|
* UpdateAddressLogic constructor.
|
||||||
* @param CanUpdateUser $canUpdateUser
|
* @param CanUpdateUser $canUpdateUser
|
||||||
* @param UpdatesUserFullName $updatesUserFullName
|
* @param UpdatesUser $updatesUser
|
||||||
* @param FetchesUser $fetchesUSer
|
* @param FetchesUser $fetchesUSer
|
||||||
*/
|
*/
|
||||||
public function __construct(CanUpdateUser $canUpdateUser, UpdatesUserFullName $updatesUserFullName, FetchesUser $fetchesUser)
|
public function __construct(CanUpdateUser $canUpdateUser, UpdatesUser $updatesUser, FetchesUser $fetchesUser)
|
||||||
{
|
{
|
||||||
$this->canUpdateUser = $canUpdateUser;
|
$this->canUpdateUser = $canUpdateUser;
|
||||||
$this->updatesUserFullName = $updatesUserFullName;
|
$this->updatesUser = $updatesUser;
|
||||||
$this->fetchesUser = $fetchesUser;
|
$this->fetchesUser = $fetchesUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ class UpdateUserLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$query = $this->fetchesUser->execute(['id' => $request->route('id')]);
|
$query = $this->fetchesUser->execute(['id' => $request->route('id')]);
|
||||||
|
|
||||||
$query = $this->updatesUserFullName->execute($query, $object);
|
$query = $this->updatesUser->execute($query, $object);
|
||||||
|
|
||||||
return $this->resourceResponse(new UserResource($query));
|
return $this->resourceResponse(new UserResource($query));
|
||||||
|
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Accounts\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Accounts\Services\UpdatesUser;
|
|
||||||
use App\Classes\Modules\Accounts\Services\FetchesUser;
|
|
||||||
use App\Classes\Modules\Accounts\Standards\Rules\CanUpdateUser;
|
|
||||||
use App\Classes\Modules\Accounts\DataTransferObjects\FullNameObject;
|
|
||||||
use App\Classes\Modules\Accounts\DataTransferObjects\UserObject;
|
|
||||||
use App\Http\Resources\UserResource;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class UpdateUserRoleLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Updated Admin Role',
|
|
||||||
'message' => 'You have successfully updated the Admin Role'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanUpdateUser */
|
|
||||||
private $canUpdateUser;
|
|
||||||
|
|
||||||
/** @var UpdatesUser */
|
|
||||||
private $updatesUser;
|
|
||||||
|
|
||||||
/** @var FetchesUser */
|
|
||||||
private $fetchesUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdateAddressLogic constructor.
|
|
||||||
* @param CanUpdateUser $canUpdateUser
|
|
||||||
* @param UpdatesUser $updatesUser
|
|
||||||
* @param FetchesUser $fetchesUSer
|
|
||||||
*/
|
|
||||||
public function __construct(CanUpdateUser $canUpdateUser, UpdatesUser $updatesUser, FetchesUser $fetchesUser)
|
|
||||||
{
|
|
||||||
$this->canUpdateUser = $canUpdateUser;
|
|
||||||
$this->updatesUser = $updatesUser;
|
|
||||||
$this->fetchesUser = $fetchesUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$query = $this->fetchesUser->execute(['id' => $request->route('id')]);
|
|
||||||
|
|
||||||
$object = new UserObject($query->name, $request->input('type'));
|
|
||||||
|
|
||||||
$this->canUpdateUser->passes($object);
|
|
||||||
|
|
||||||
$query = $this->updatesUser->execute($query, $object);
|
|
||||||
|
|
||||||
return $this->resourceResponse(new UserResource($query));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Accounts\DataTransferObjects;
|
|
||||||
|
|
||||||
use App\Classes\General\Interfaces\DataTransferObject;
|
|
||||||
|
|
||||||
class UserObject implements DataTransferObject
|
|
||||||
{
|
|
||||||
/** @var string */
|
|
||||||
private $name;
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FullNameObject constructor.
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __construct(string $name, int $type)
|
|
||||||
{
|
|
||||||
$this->name = $name;
|
|
||||||
$this->type = $type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getName(): string
|
|
||||||
{
|
|
||||||
return $this->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getType(): int
|
|
||||||
{
|
|
||||||
return $this->type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
namespace App\Classes\Modules\Accounts\Services;
|
namespace App\Classes\Modules\Accounts\Services;
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||||
use App\Classes\Modules\Accounts\DataTransferObjects\UserObject;
|
use App\Classes\Modules\Accounts\DataTransferObjects\FullNameObject;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class UpdatesUser extends AbstractUpdateRecord
|
class UpdatesUser extends AbstractUpdateRecord
|
||||||
@@ -11,14 +11,13 @@ class UpdatesUser extends AbstractUpdateRecord
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param User $model
|
* @param User $model
|
||||||
* @param UserObject $object
|
* @param FullNameObject $object
|
||||||
* @return \Illuminate\Database\Eloquent\Model
|
* @return \Illuminate\Database\Eloquent\Model
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
*/
|
*/
|
||||||
public function execute(User $model, UserObject $object) {
|
public function execute(User $model, FullNameObject $object) {
|
||||||
|
|
||||||
$model->name = $object->getName();
|
$model->name = $object->getName();
|
||||||
$model->type = $object->getType();
|
|
||||||
return $this->handler($model);
|
return $this->handler($model);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Accounts\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
|
||||||
use App\Classes\Modules\Accounts\DataTransferObjects\FullNameObject;
|
|
||||||
use App\Models\User;
|
|
||||||
|
|
||||||
class UpdatesUserFullName extends AbstractUpdateRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param User $model
|
|
||||||
* @param FullNameObject $object
|
|
||||||
* @return \Illuminate\Database\Eloquent\Model
|
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
|
||||||
*/
|
|
||||||
public function execute(User $model, FullNameObject $object) {
|
|
||||||
|
|
||||||
$model->name = $object->getName();
|
|
||||||
return $this->handler($model);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,9 +3,6 @@
|
|||||||
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\General\Interfaces\Contactable;
|
use App\Classes\General\Interfaces\Contactable;
|
||||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
||||||
@@ -20,7 +17,6 @@ use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor;
|
|||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
use App\Http\Resources\AddressResource;
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -31,8 +27,7 @@ class CreateAddressLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Created Address',
|
'title' => 'Created Address',
|
||||||
'message' => 'You have successfully created a new Address'
|
'message' => 'You have successfully created a new Address'
|
||||||
@@ -79,11 +74,11 @@ class CreateAddressLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
||||||
@@ -95,22 +90,16 @@ class CreateAddressLogic extends AbstractControllerLogic
|
|||||||
/** @var Address $address */
|
/** @var Address $address */
|
||||||
$address = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
|
$address = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
|
||||||
|
|
||||||
if ($request->input('phone')) {
|
if($request->input('phone')){
|
||||||
$contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', '');
|
$contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', '');
|
||||||
$this->createContactProcessor->execute($contactObject, $address);
|
$this->createContactProcessor->execute($contactObject, $address);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->input('remark')) {
|
if($request->input('remark')){
|
||||||
$remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id);
|
$remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id);
|
||||||
$this->createRemarkProcessor->execute($address, $remarkObject);
|
$this->createRemarkProcessor->execute($address, $remarkObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return fractal()
|
|
||||||
->item($address, new AddressTransformer())
|
|
||||||
->parseIncludes('remark')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($address));
|
return $this->resourceResponse(new AddressResource($address));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,99 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanCreateAddress;
|
|
||||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
|
||||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
|
||||||
use App\Classes\ValueObjects\Constants\AddressType;
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
||||||
use App\Http\Resources\AddressResource;
|
|
||||||
use App\Models\Address;
|
|
||||||
use App\Models\CompanyModule;
|
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class CreateBillingAddressLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'title' => 'Created Billing Address',
|
|
||||||
'message' => 'You have successfully created a new Billing Address'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanCreateAddress */
|
|
||||||
private $canCreateAddress;
|
|
||||||
|
|
||||||
/** @var FetchesCompanyModule */
|
|
||||||
private $fetchesCompanyModule;
|
|
||||||
|
|
||||||
/** @var CreatesAddress */
|
|
||||||
private $createsAddress;
|
|
||||||
|
|
||||||
/** @var FetchesAddress */
|
|
||||||
private $fetchesAddress;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreateAddressLogic constructor.
|
|
||||||
* @param CanCreateAddress $canCreateAddress
|
|
||||||
* @param FetchesCompanyModule $fetchesCompanyModule
|
|
||||||
* @param CreatesAddress $createsAddress
|
|
||||||
* @param FetchesAddress $fetchesAddress
|
|
||||||
*/
|
|
||||||
public function __construct(CanCreateAddress $canCreateAddress, FetchesCompanyModule $fetchesCompanyModule, CreatesAddress $createsAddress, FetchesAddress $fetchesAddress)
|
|
||||||
{
|
|
||||||
$this->canCreateAddress = $canCreateAddress;
|
|
||||||
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
|
||||||
$this->createsAddress = $createsAddress;
|
|
||||||
$this->fetchesAddress = $fetchesAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws AccessForbiddenException
|
|
||||||
* @throws MalformedRequestException
|
|
||||||
* @throws RequestValidationException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request): JsonResponse
|
|
||||||
{
|
|
||||||
$companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
|
|
||||||
|
|
||||||
$billingAddressInputed = $this->fetchesAddress->execute(['id' => $request->input('billing_address_id')]);
|
|
||||||
|
|
||||||
if ($billingAddressInputed->type !== AddressType::BILLING || $billingAddressInputed->id !== $companyModule->addresses->where('type', AddressType::BILLING)->first()->id) {
|
|
||||||
// delete all current billing address
|
|
||||||
Address::where('owner_type', CompanyModule::class)->where('owner_id', $request->input('company_module_id'))->where('type', AddressType::BILLING)->delete();
|
|
||||||
|
|
||||||
// create new billing addrress
|
|
||||||
$billingAddress = new AddressObject($billingAddressInputed->street_one, $billingAddressInputed->street_two, $billingAddressInputed->country_id, $billingAddressInputed->state_id, $billingAddressInputed->district_id, $billingAddressInputed->postcode, AddressType::BILLING, ApprovalStatus::APPROVED, $billingAddressInputed->reference);
|
|
||||||
$this->canCreateAddress->passes($billingAddress);
|
|
||||||
$this->createsAddress->execute($companyModule, $billingAddress);
|
|
||||||
}
|
|
||||||
|
|
||||||
//load address with only owner address
|
|
||||||
|
|
||||||
/* return fractal()
|
|
||||||
->item($billingAddressInputed, new AddressTransformer())
|
|
||||||
->parseIncludes('Owner_address')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($billingAddressInputed));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -3,8 +3,6 @@
|
|||||||
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanFetchAddress;
|
use App\Classes\Modules\Addresses\Standards\Rules\CanFetchAddress;
|
||||||
@@ -19,8 +17,7 @@ class FetchAddressLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Address',
|
'title' => 'Retrieved Address',
|
||||||
'message' => 'You have successfully retrieved a Address'
|
'message' => 'You have successfully retrieved a Address'
|
||||||
@@ -48,22 +45,15 @@ class FetchAddressLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canFetchAddress->passes();
|
$this->canFetchAddress->passes();
|
||||||
|
|
||||||
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
|
||||||
|
|
||||||
|
|
||||||
//load address with no relationships
|
|
||||||
/* return fractal()
|
|
||||||
->item($address, new AddressTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($query));
|
return $this->resourceResponse(new AddressResource($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,10 @@
|
|||||||
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
namespace App\Classes\Modules\Addresses\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
||||||
use App\Http\Resources\AddressResource;
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -21,8 +17,7 @@ class ListAddressesLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Addresses',
|
'title' => 'Retrieved Addresses',
|
||||||
'message' => 'You have successfully retrieved a list of Addresses'
|
'message' => 'You have successfully retrieved a list of Addresses'
|
||||||
@@ -50,25 +45,17 @@ class ListAddressesLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->canListAddresses->passes();
|
$this->canListAddresses->passes();
|
||||||
|
|
||||||
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
|
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
|
||||||
|
|
||||||
//a collection of addresses with all incluides
|
|
||||||
/* return fractal()
|
|
||||||
->collection($query, new AddressTransformer)
|
|
||||||
->parseIncludes('Owner_address')
|
|
||||||
->parseIncludes('remark')
|
|
||||||
->parseIncludes('contact')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->collectionResponse(AddressResource::collection($query));
|
return $this->collectionResponse(AddressResource::collection($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
||||||
use App\Classes\Modules\Addresses\Services\ListsDistricts;
|
use App\Classes\Modules\Addresses\Services\ListsDistricts;
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
||||||
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Http\Resources\DistrictResource;
|
use App\Http\Resources\DistrictResource;
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
use App\Classes\Modules\Addresses\Services\ListsAddresses;
|
||||||
use App\Classes\Modules\Addresses\Services\ListsStates;
|
use App\Classes\Modules\Addresses\Services\ListsStates;
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
use App\Classes\Modules\Addresses\Standards\Rules\CanListAddresses;
|
||||||
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Http\Resources\StateResource;
|
use App\Http\Resources\StateResource;
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
|||||||
use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault;
|
use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault;
|
||||||
use App\Classes\Modules\Addresses\Services\SetsAddressToDefault;
|
use App\Classes\Modules\Addresses\Services\SetsAddressToDefault;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -34,7 +33,7 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
|
|||||||
/** @var ResetsAddressesDefault */
|
/** @var ResetsAddressesDefault */
|
||||||
private $resetsAddressesDefault;
|
private $resetsAddressesDefault;
|
||||||
|
|
||||||
/** @var SetsAddressToDefault */
|
/** @var SetsAddressToDefault*/
|
||||||
private $setsAddressToDefault;
|
private $setsAddressToDefault;
|
||||||
|
|
||||||
|
|
||||||
@@ -65,15 +64,7 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$this->resetsAddressesDefault->execute($address->owner, $address->type);
|
$this->resetsAddressesDefault->execute($address->owner, $address->type);
|
||||||
|
|
||||||
|
return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address)));
|
||||||
$setAddress = $this->setsAddressToDefault->execute($address);
|
|
||||||
//no relationships needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($setAddress, new AddressTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($address));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ use App\Classes\ValueObjects\Constants\AddressType;
|
|||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
use App\Http\Resources\AddressResource;
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -27,8 +26,7 @@ class UpdateAddressLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Updated Address',
|
'title' => 'Updated Address',
|
||||||
'message' => 'You have successfully updated the Address'
|
'message' => 'You have successfully updated the Address'
|
||||||
@@ -79,7 +77,7 @@ class UpdateAddressLogic extends AbstractControllerLogic
|
|||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
|
||||||
|
|
||||||
@@ -92,25 +90,18 @@ class UpdateAddressLogic extends AbstractControllerLogic
|
|||||||
/** @var Address $address */
|
/** @var Address $address */
|
||||||
$address = $this->updatesAddress->execute($address, $object);
|
$address = $this->updatesAddress->execute($address, $object);
|
||||||
|
|
||||||
$address->contacts()->delete();
|
$address->contacts()->delete(); $address->remarks()->delete();
|
||||||
$address->remarks()->delete();
|
|
||||||
|
|
||||||
if ($request->input('phone')) {
|
if($request->input('phone')){
|
||||||
$contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', '');
|
$contactObject = new ContactObject($request->input('person_in_charge'), $request->input('phone'), '', '');
|
||||||
$this->createContactProcessor->execute($contactObject, $address);
|
$this->createContactProcessor->execute($contactObject, $address);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->input('remark')) {
|
if($request->input('remark')){
|
||||||
$remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id);
|
$remarkObject = new RemarkObject($request->input('remark'), Auth()->user()->id);
|
||||||
$this->createRemarkProcessor->execute($address, $remarkObject);
|
$this->createRemarkProcessor->execute($address, $remarkObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
//only remark relationship needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($address, new AddressTransformer())
|
|
||||||
->parseIncludes('remark')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($address));
|
return $this->resourceResponse(new AddressResource($address));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use App\Classes\Modules\Announcements\Services\FetchesAnnouncement;
|
|||||||
use App\Classes\Modules\Announcements\Services\UpdatesAnnouncement;
|
use App\Classes\Modules\Announcements\Services\UpdatesAnnouncement;
|
||||||
|
|
||||||
use App\Http\Resources\AnnouncementResource;
|
use App\Http\Resources\AnnouncementResource;
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -66,8 +66,8 @@ class UpdateAnnouncementLogic extends AbstractControllerLogic
|
|||||||
$annoucement_object = new AnnouncementObject(
|
$annoucement_object = new AnnouncementObject(
|
||||||
$request->input('title'),
|
$request->input('title'),
|
||||||
$request->input('description'),
|
$request->input('description'),
|
||||||
Carbon::createFromFormat('d-m-Y', $request->input('starting_on'))->format('Y-m-d H:i:s'),
|
$request->input('starting_on'),
|
||||||
Carbon::createFromFormat('d-m-Y', $request->input('ending_on'))->format('Y-m-d H:i:s')
|
$request->input('ending_on')
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->canUpdateAnnouncement->passes($annoucement_object);
|
$this->canUpdateAnnouncement->passes($annoucement_object);
|
||||||
|
|||||||
@@ -4,24 +4,28 @@ namespace App\Classes\Modules\Billplzs\ControllersLogic;
|
|||||||
|
|
||||||
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
|
use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor;
|
||||||
use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor;
|
use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor;
|
||||||
|
use App\Classes\Modules\Wallets\DataTransferObjects\WalletObject;
|
||||||
|
use App\Classes\Modules\Wallets\Services\UpdatesWallet;
|
||||||
|
|
||||||
use App\Classes\Exceptions\ResourceNotFoundException;
|
use App\Classes\Exceptions\ResourceNotFoundException;
|
||||||
use App\Classes\Modules\Wallets\Services\UpdatesWalletBalance;
|
use App\Classes\Modules\Wallets\Services\UpdatesWalletBalance;
|
||||||
|
use App\Http\Resources\TransactionResource;
|
||||||
|
use App\Models\Booking;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Models\Wallet;
|
use App\Models\Wallet;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
use App\Classes\Exceptions\MalformedRequestException;
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
use App\Classes\Modules\Billplzs\Services\GetBillplzBill;
|
use App\Classes\Modules\Billplzs\Services\GetBillplzBill;
|
||||||
use App\Classes\Modules\Billplzs\DataTransferObjects\BillplzXSignatureObject;
|
use App\Classes\Modules\Billplzs\DataTransferObjects\BillplzXSignatureObject;
|
||||||
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
|
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
|
||||||
use App\Classes\Modules\Transactions\Processors\CreatePaymentTransactionProcessor;
|
|
||||||
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
|
use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus;
|
||||||
use App\Classes\ValueObjects\Constants\PaymentMethodType;
|
|
||||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
|
||||||
use App\Models\Group;
|
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class CallbackBillplzLogic
|
class CallbackBillplzLogic
|
||||||
{
|
{
|
||||||
@@ -40,12 +44,6 @@ class CallbackBillplzLogic
|
|||||||
/** @var UpdateDoFromYDPortalProcessor */
|
/** @var UpdateDoFromYDPortalProcessor */
|
||||||
private $updateDoFromYDPortalProcessor ;
|
private $updateDoFromYDPortalProcessor ;
|
||||||
|
|
||||||
/** @var UpdatesWalletBalance */
|
|
||||||
private $updatesWalletBalance;
|
|
||||||
|
|
||||||
/** @var CreatePaymentTransactionProcessor */
|
|
||||||
private $createPaymentTransactionProcessor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CallbackBillplzLogic constructor.
|
* CallbackBillplzLogic constructor.
|
||||||
* @param GetBillplzBill $getBillplzBill
|
* @param GetBillplzBill $getBillplzBill
|
||||||
@@ -53,17 +51,14 @@ class CallbackBillplzLogic
|
|||||||
* @param UpdatesTransactionStatus $updatesTransactionStatus
|
* @param UpdatesTransactionStatus $updatesTransactionStatus
|
||||||
* @param UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor
|
* @param UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor
|
||||||
* @param UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor
|
* @param UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor
|
||||||
* @param CreatePaymentTransactionProcessor $createPaymentTransactionProcessor
|
|
||||||
*/
|
*/
|
||||||
public function __construct(GetBillplzBill $getBillplzBill, FetchesTransaction $fetchesTransaction, UpdatesTransactionStatus $updatesTransactionStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor, UpdatesWalletBalance $updatesWalletBalance, CreatePaymentTransactionProcessor $createPaymentTransactionProcessor)
|
public function __construct(GetBillplzBill $getBillplzBill, FetchesTransaction $fetchesTransaction, UpdatesTransactionStatus $updatesTransactionStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor)
|
||||||
{
|
{
|
||||||
$this->getBillplzBill = $getBillplzBill;
|
$this->getBillplzBill = $getBillplzBill;
|
||||||
$this->fetchesTransaction = $fetchesTransaction;
|
$this->fetchesTransaction = $fetchesTransaction;
|
||||||
$this->updatesTransactionStatus = $updatesTransactionStatus;
|
$this->updatesTransactionStatus = $updatesTransactionStatus;
|
||||||
$this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor;
|
$this->updateDoFromVTPortalProcessor = $updateDoFromVTPortalProcessor;
|
||||||
$this->updateDoFromYDPortalProcessor = $updateDoFromYDPortalProcessor;
|
$this->updateDoFromYDPortalProcessor = $updateDoFromYDPortalProcessor;
|
||||||
$this->updatesWalletBalance = $updatesWalletBalance;
|
|
||||||
$this->createPaymentTransactionProcessor = $createPaymentTransactionProcessor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -106,51 +101,23 @@ class CallbackBillplzLogic
|
|||||||
$token = Auth::fromUser(User::find(1));
|
$token = Auth::fromUser(User::find(1));
|
||||||
$request->headers->set('Authorization', 'Bearer '.$token);
|
$request->headers->set('Authorization', 'Bearer '.$token);
|
||||||
|
|
||||||
// check if is wallet top up
|
$this->updatesTransactionStatus->execute($transaction, ApprovalStatus::APPROVED);
|
||||||
if($transaction->owner instanceof Wallet && $status === ApprovalStatus::APPROVED &&!in_array($transaction->status, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])) {
|
|
||||||
$this->updatesWalletBalance->execute($transaction->owner, $transaction->amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
// group payment
|
if(($invoice->amount - $transaction->amount) < 0.01) {
|
||||||
if ($transaction->type == TransactionType::GROUP_PAYMENT && $status === ApprovalStatus::APPROVED &&!in_array($transaction->status, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])) {
|
$this->updatesTransactionStatus->execute($invoice, ApprovalStatus::COMPLETED);
|
||||||
$group = Group::where('reference', $billplzXSignatureObject->getBillPlzId())->first();
|
|
||||||
|
|
||||||
foreach($group->groupTransactions as $groupTransaction) {
|
$packingList->status = ApprovalStatus::APPROVED;
|
||||||
$invoice = $groupTransaction->transaction;
|
$packingList->save();
|
||||||
$this->createPaymentTransactionProcessor->execute($invoice, PaymentMethodType::WALLET, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
$group->status = $status;
|
if(app()->environment('production')){
|
||||||
$group->save();
|
$this->updateDoFromVTPortalProcessor->execute($packingList);
|
||||||
}
|
$this->updateDoFromYDPortalProcessor->execute($packingList);
|
||||||
|
|
||||||
$this->updatesTransactionStatus->execute($transaction, $status);
|
|
||||||
|
|
||||||
if (!$transaction->owner instanceof Wallet) {
|
|
||||||
$totalPaidAmount = $invoice->transactions->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->sum('amount');
|
|
||||||
|
|
||||||
if(($invoice->amount - $totalPaidAmount) < 0.01) {
|
|
||||||
$this->updatesTransactionStatus->execute($invoice, ApprovalStatus::COMPLETED);
|
|
||||||
|
|
||||||
$packingList->status = ApprovalStatus::APPROVED;
|
|
||||||
$packingList->save();
|
|
||||||
|
|
||||||
if(app()->environment('production')){
|
|
||||||
$this->updateDoFromVTPortalProcessor->execute($packingList);
|
|
||||||
$this->updateDoFromYDPortalProcessor->execute($packingList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$company_module_marking = $transaction->owner->owner->connections? $transaction->owner->owner->connections->first()->invitee_reference: null;
|
|
||||||
|
|
||||||
if ($transaction->owner instanceof Wallet) {
|
|
||||||
$company_module_marking = $transaction->owner->owner->connections? $transaction->owner->owner->connections->first()->invitee_reference: null;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$company_module_marking = $order->companyModule->connections? $order->companyModule->connections->first()->invitee_reference: null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $request->method() === 'POST' ? true : view('pages.payments_redirect', ['marking' => $order->reference ?? null, 'company_module_marking' => $company_module_marking ?? null, 'transaction' => $transaction, 'status' => $status]);
|
return $request->method() === 'POST' ? true : view('pages.payments_redirect', ['marking' => $order->reference, 'transaction' => $transaction, 'status' => $status]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ namespace App\Classes\Modules\Billplzs\Services;
|
|||||||
|
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
use App\Classes\Exceptions\MalformedRequestException;
|
||||||
use Illuminate\Support\Facades\App;
|
|
||||||
|
|
||||||
class CreatesBillplzBill
|
class CreatesBillplzBill
|
||||||
{
|
{
|
||||||
@@ -26,7 +25,7 @@ class CreatesBillplzBill
|
|||||||
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->post(config('billplz.base_url').'/api/v3/bills', [
|
$response = Http::withBasicAuth(config('billplz.api_key').':', '')->post(config('billplz.base_url').'/api/v3/bills', [
|
||||||
'collection_id' => config('billplz.collection_id'),
|
'collection_id' => config('billplz.collection_id'),
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'email' => App::environment('production') ? $email : 'development@cief-malaysia.com',
|
'email' => $email,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
'amount' => $this->finalizeAmount($amount),
|
'amount' => $this->finalizeAmount($amount),
|
||||||
'redirect_url' => route('online_payment.redirect'),
|
'redirect_url' => route('online_payment.redirect'),
|
||||||
|
|||||||
@@ -3,16 +3,13 @@
|
|||||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
namespace App\Classes\Modules\Companies\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Companies\Services\ListsCompanies;
|
use App\Classes\Modules\Companies\Services\ListsCompanies;
|
||||||
use App\Classes\Modules\Companies\Standards\Rules\CanListCompanies;
|
use App\Classes\Modules\Companies\Standards\Rules\CanListCompanies;
|
||||||
use App\Transformers\CompanyTransformer;
|
use App\Http\Resources\CompanyResource;
|
||||||
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Spatie\Fractalistic\ArraySerializer;
|
|
||||||
|
|
||||||
class ListCompaniesLogic extends AbstractControllerLogic
|
class ListCompaniesLogic extends AbstractControllerLogic
|
||||||
{
|
{
|
||||||
@@ -48,24 +45,16 @@ class ListCompaniesLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request) : JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canListCompanies->passes();
|
$this->canListCompanies->passes();
|
||||||
|
|
||||||
$query = $this->listsCompanies->execute($this->listsCompanies->deserializeFilters($request->input('filters')));
|
$query = $this->listsCompanies->execute($this->listsCompanies->deserializeFilters($request->input('filters')));
|
||||||
// return $this->collectionResponse(CompanyResource::collection($query));
|
return $this->collectionResponse(CompanyResource::collection($query));
|
||||||
|
|
||||||
return fractal()
|
|
||||||
->parseIncludes(['owner'])
|
|
||||||
->collection($query, new CompanyTransformer(), "data")
|
|
||||||
->serializeWith(new ArraySerializer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,10 @@
|
|||||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
namespace App\Classes\Modules\Companies\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Companies\Services\ListsCompanyModules;
|
use App\Classes\Modules\Companies\Services\ListsCompanyModules;
|
||||||
use App\Classes\Modules\Companies\Standards\Rules\CanListCompanies;
|
use App\Classes\Modules\Companies\Standards\Rules\CanListCompanies;
|
||||||
use App\Http\Resources\CompanyModuleResource;
|
use App\Http\Resources\CompanyModuleResource;
|
||||||
use App\Transformers\CompanyTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -21,8 +17,7 @@ class ListCompanyModulesLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Company Moduels',
|
'title' => 'Retrieved Company Moduels',
|
||||||
'message' => 'You have successfully retrieved a list of Companies'
|
'message' => 'You have successfully retrieved a list of Companies'
|
||||||
@@ -50,26 +45,15 @@ class ListCompanyModulesLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canListCompanies->passes();
|
$this->canListCompanies->passes();
|
||||||
|
|
||||||
$query = $this->listsCompanyModules->execute($this->listsCompanyModules->deserializeFilters($request->input('filters')));
|
$query = $this->listsCompanyModules->execute($this->listsCompanyModules->deserializeFilters($request->input('filters')));
|
||||||
|
|
||||||
/*include all relationships*/
|
|
||||||
/* return fractal()
|
|
||||||
->collection($query, new CompanyTransformer)
|
|
||||||
->parseIncludes('company')
|
|
||||||
->parseIncludes('contact')
|
|
||||||
->parseIncludes('remarks')
|
|
||||||
->parseIncludes('address')
|
|
||||||
->parseIncludes('billingAddress')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->collectionResponse(CompanyModuleResource::collection($query));
|
return $this->collectionResponse(CompanyModuleResource::collection($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Companies\Services\UpdatesCompany;
|
|
||||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyModuleName;
|
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
|
||||||
use App\Classes\Modules\Companies\Standards\Rules\CanUpdateCompany;
|
|
||||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
|
|
||||||
use App\Classes\Modules\Companies\Services\UpdatesCompanyDebtor;
|
|
||||||
use App\Http\Resources\CompanyResource;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class UpdateCompanyNameAndDebtorLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Updated Company Name and Debtor',
|
|
||||||
'message' => 'You have successfully updated the Company'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanUpdateCompany */
|
|
||||||
private $canUpdateCompany;
|
|
||||||
|
|
||||||
/** @var UpdatesCompany */
|
|
||||||
private $updatesCompany;
|
|
||||||
|
|
||||||
/** @var FetchesCompany */
|
|
||||||
private $fetchesCompany;
|
|
||||||
|
|
||||||
/** @var UpdatesCompanyDebtor */
|
|
||||||
private $updatesCompanyDebtor;
|
|
||||||
|
|
||||||
/** @var UpdatesCompanyModuleName */
|
|
||||||
private $updatesCompanyModuleName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdateCompanyControllersLogic constructor.
|
|
||||||
* @param CanUpdateCompany $canUpdateCompany
|
|
||||||
* @param UpdatesCompany $updatesCompany
|
|
||||||
* @param FetchesCompany $fetchesCompany
|
|
||||||
* @param UpdatesCompanyDebtor $updatesCompanyDebtor
|
|
||||||
* @param UpdatesCompanyModuleName $updatesCompanyModuleName
|
|
||||||
*/
|
|
||||||
public function __construct(CanUpdateCompany $canUpdateCompany, UpdatesCompany $updatesCompany, FetchesCompany $fetchesCompany, UpdatesCompanyDebtor $updatesCompanyDebtor, UpdatesCompanyModuleName $updatesCompanyModuleName)
|
|
||||||
{
|
|
||||||
$this->canUpdateCompany = $canUpdateCompany;
|
|
||||||
$this->updatesCompany = $updatesCompany;
|
|
||||||
$this->fetchesCompany = $fetchesCompany;
|
|
||||||
$this->updatesCompanyDebtor = $updatesCompanyDebtor;
|
|
||||||
$this->updatesCompanyModuleName = $updatesCompanyModuleName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$object = new CompanyObject($request->input('name'), $request->input('reference'), $request->input('type'));
|
|
||||||
|
|
||||||
$this->canUpdateCompany->passes($object);
|
|
||||||
|
|
||||||
$query = $this->fetchesCompany->execute(['id' => $request->route('id')]);
|
|
||||||
|
|
||||||
$this->updatesCompanyModuleName->execute($query->companyModules()->first(), $object->getName());
|
|
||||||
|
|
||||||
$query = $this->updatesCompany->execute($query, $object);
|
|
||||||
|
|
||||||
if ($request->input('debtor') || $query->first()->debtor !== null) {
|
|
||||||
$this->updatesCompanyDebtor->execute($query, $request->input('debtor'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->resourceResponse(new CompanyResource($query));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Companies\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Companies\Services\UpdatesCompany;
|
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
|
||||||
use App\Classes\Modules\Companies\Standards\Rules\CanUpdateCompany;
|
|
||||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
|
|
||||||
use App\Http\Resources\CompanyResource;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class UpdateCompanyTypeLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Updated Company Type',
|
|
||||||
'message' => 'You have successfully updated the Company Tyoe'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanUpdateCompany */
|
|
||||||
private $canUpdateCompany;
|
|
||||||
|
|
||||||
/** @var UpdatesCompany */
|
|
||||||
private $updatesCompany;
|
|
||||||
|
|
||||||
/** @var FetchesCompany */
|
|
||||||
private $fetchesCompany;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdateCompanyControllersLogic constructor.
|
|
||||||
* @param CanUpdateCompany $canUpdateCompany
|
|
||||||
* @param UpdatesCompany $updatesCompany
|
|
||||||
* @param FetchesCompany $fetchesCompany
|
|
||||||
*/
|
|
||||||
public function __construct(CanUpdateCompany $canUpdateCompany, UpdatesCompany $updatesCompany, FetchesCompany $fetchesCompany)
|
|
||||||
{
|
|
||||||
$this->canUpdateCompany = $canUpdateCompany;
|
|
||||||
$this->updatesCompany = $updatesCompany;
|
|
||||||
$this->fetchesCompany = $fetchesCompany;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$query = $this->fetchesCompany->execute(['id' => $request->route('id')]);
|
|
||||||
|
|
||||||
$object = new CompanyObject($query->name, $query->reference, $request->input('type'));
|
|
||||||
|
|
||||||
$this->canUpdateCompany->passes($object);
|
|
||||||
|
|
||||||
$query = $this->updatesCompany->execute($query, $object);
|
|
||||||
|
|
||||||
return $this->resourceResponse(new CompanyResource($query));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Companies\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
|
||||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
|
|
||||||
use App\Models\Company;
|
|
||||||
|
|
||||||
class UpdatesCompanyDebtor extends AbstractUpdateRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Company $model
|
|
||||||
* @param CompanyObject $object
|
|
||||||
* @return \Illuminate\Database\Eloquent\Model
|
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
|
||||||
*/
|
|
||||||
public function execute(Company $model, ?string $debtor)
|
|
||||||
{
|
|
||||||
$model->debtor = $debtor;
|
|
||||||
|
|
||||||
return $this->handler($model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Contacts\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Contacts\Services\UpdatesContact;
|
|
||||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
|
||||||
use App\Classes\Modules\Contacts\Services\FetchesContact;
|
|
||||||
use App\Http\Resources\ContactResource;
|
|
||||||
use App\Transformers\ContactTransformer;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class UpdateContactLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Updated Contact',
|
|
||||||
'message' => 'You have successfully updated the Contact'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var UpdatesContact */
|
|
||||||
private $updatesContact;
|
|
||||||
|
|
||||||
/** @var FetchesContact */
|
|
||||||
private $fetchesContact;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdateContactLogic constructor.
|
|
||||||
* @param UpdatesContact $updatesContact
|
|
||||||
* @param FetchesContact $fetchesContact
|
|
||||||
*/
|
|
||||||
public function __construct(UpdatesContact $updatesContact, FetchesContact $fetchesContact)
|
|
||||||
{
|
|
||||||
$this->updatesContact = $updatesContact;
|
|
||||||
$this->fetchesContact = $fetchesContact;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$object = new ContactObject(
|
|
||||||
$request->input('reference'),
|
|
||||||
$request->input('phone'),
|
|
||||||
$request->input('email'),
|
|
||||||
$request->input('wechat_id')
|
|
||||||
);
|
|
||||||
|
|
||||||
// $this->canUpdateContact->passes($object);
|
|
||||||
|
|
||||||
$query = $this->fetchesContact->execute(['id' => $request->route('id')]);
|
|
||||||
|
|
||||||
$query = $this->updatesContact->execute($query, $object);
|
|
||||||
|
|
||||||
/*uniformity*/
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContactTransformer())
|
|
||||||
->parseIncludes('remark')
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContactResource($query));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Contacts\Services;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractFetchRecord;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use App\Models\Contact;
|
|
||||||
|
|
||||||
class FetchesContact extends AbstractFetchRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var Contact */
|
|
||||||
private $repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchesContact constructor.
|
|
||||||
* @param Contact $repository
|
|
||||||
*/
|
|
||||||
public function __construct(Contact $repository)
|
|
||||||
{
|
|
||||||
$this->repository = $repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Builder
|
|
||||||
*/
|
|
||||||
public function getRepository(): Builder
|
|
||||||
{
|
|
||||||
return $this->repository->newQuery();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Contacts\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
|
||||||
use App\Classes\Modules\Contacts\DataTransferObjects\ContactObject;
|
|
||||||
use App\Models\Contact;
|
|
||||||
|
|
||||||
class UpdatesContact extends AbstractUpdateRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Contact $model
|
|
||||||
* @return \Illuminate\Database\Eloquent\Model
|
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
|
||||||
*/
|
|
||||||
public function execute(Contact $model, ContactObject $object)
|
|
||||||
{
|
|
||||||
$model->reference = $object->getReference();
|
|
||||||
$model->phone = $object->getPhone();
|
|
||||||
$model->email = $object->getEmail();
|
|
||||||
$model->wechat_id = $object->getWechatId();
|
|
||||||
|
|
||||||
return $this->handler($model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,6 @@ use App\Classes\Modules\Orders\Services\CancelsOrder;
|
|||||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||||
use App\Http\Resources\DeliveryOrderResource;
|
use App\Http\Resources\DeliveryOrderResource;
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
use App\Transformers\DeliveryOrderTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -53,14 +52,6 @@ class CancelDeliveryOrderLogic extends AbstractControllerLogic
|
|||||||
/** @var Order $order */
|
/** @var Order $order */
|
||||||
$order = $this->fetchesOrder->execute(['id' => $request->route('id')]);
|
$order = $this->fetchesOrder->execute(['id' => $request->route('id')]);
|
||||||
|
|
||||||
$order = $this->cancelsOrder->execute($order);
|
|
||||||
|
|
||||||
//no relationship needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($order, new DeliveryOrderTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new DeliveryOrderResource($this->cancelsOrder->execute($order)));
|
return $this->resourceResponse(new DeliveryOrderResource($this->cancelsOrder->execute($order)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,12 +172,6 @@ class CreateDeliveryOrderLogic extends AbstractControllerLogic
|
|||||||
$packageObject = new PackageObject($request->input('packing_list.type'), $request->input('packing_list.description'), (float) 1, (float) 1, (float) 1, $request->input('packing_list.weight'), (float) $request->input('packing_list.quantity'), ApprovalStatus::APPROVED);
|
$packageObject = new PackageObject($request->input('packing_list.type'), $request->input('packing_list.description'), (float) 1, (float) 1, (float) 1, $request->input('packing_list.weight'), (float) $request->input('packing_list.quantity'), ApprovalStatus::APPROVED);
|
||||||
$this->createsPackage->execute($packageObject, $packingList);
|
$this->createsPackage->execute($packageObject, $packingList);
|
||||||
|
|
||||||
//add relationship to order
|
|
||||||
/* return fractal()
|
|
||||||
->item($order, new DeliveryOrderTransformer())
|
|
||||||
->parseIncludes(['sender_address', 'delivery_address', 'sender_address.contacts', 'delivery_address.contacts', 'sender_address.remarks', 'delivery_address.remarks', 'packing_list', 'packing_list.packages'])
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new DeliveryOrderResource($order));
|
return $this->resourceResponse(new DeliveryOrderResource($order));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,12 +48,6 @@ class ListOrdersLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$query = $this->listsOrders->execute(array_merge($this->listsOrders->deserializeFilters($request->input('filters')), ['with_parcels' => true, 'type_in' => [OrderType::LAST_MILE_DELIVERY]]));
|
$query = $this->listsOrders->execute(array_merge($this->listsOrders->deserializeFilters($request->input('filters')), ['with_parcels' => true, 'type_in' => [OrderType::LAST_MILE_DELIVERY]]));
|
||||||
|
|
||||||
|
|
||||||
//no relationship needed
|
|
||||||
/* return fractal()
|
|
||||||
->collection($query, new DeliveryOrderTransformer)
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->collectionResponse(DeliveryOrderResource::collection($query));
|
return $this->collectionResponse(DeliveryOrderResource::collection($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,21 +3,13 @@
|
|||||||
namespace App\Classes\Modules\Documents\ControllersLogic;
|
namespace App\Classes\Modules\Documents\ControllersLogic;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Documents\Services\ListsDocuments;
|
use App\Classes\Modules\Documents\Services\ListsDocuments;
|
||||||
use App\Classes\Modules\Documents\Standards\Rules\CanListDocuments;
|
use App\Classes\Modules\Documents\Standards\Rules\CanListDocuments;
|
||||||
use App\Http\Resources\DocumentResource;
|
use App\Http\Resources\DocumentResource;
|
||||||
use App\Models\Document;
|
|
||||||
use App\Transformers\DocumentTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use League\Fractal\Serializer\ArraySerializer;
|
|
||||||
use League\Fractal;
|
|
||||||
|
|
||||||
|
|
||||||
class ListDocumentLogic extends AbstractControllerLogic
|
class ListDocumentLogic extends AbstractControllerLogic
|
||||||
{
|
{
|
||||||
@@ -25,8 +17,7 @@ class ListDocumentLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Document',
|
'title' => 'Retrieved Document',
|
||||||
'message' => 'You have successfully retrieved a list of Document'
|
'message' => 'You have successfully retrieved a list of Document'
|
||||||
@@ -54,29 +45,19 @@ class ListDocumentLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->canListDocuments->passes();
|
$this->canListDocuments->passes();
|
||||||
|
|
||||||
$query = $this->listsDocuments->execute(array_merge($this->listsDocuments->deserializeFilters($request->input('filters')), ['with_owner' => true]));
|
$query = $this->listsDocuments->execute(array_merge($this->listsDocuments->deserializeFilters($request->input('filters')), ['with_owner' => true]));
|
||||||
|
|
||||||
$data = fractal()
|
return $this->collectionResponse(DocumentResource::collection($query));
|
||||||
->parseIncludes(['owner'])
|
|
||||||
->collection($query, new DocumentTransformer, "data")
|
|
||||||
->serializeWith(new ArraySerializer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Classes\Modules\Documents\DataTransferObjects;
|
namespace App\Classes\Modules\Documents\DataTransferObjects;
|
||||||
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\General\Interfaces\DataTransferObject;
|
use App\Classes\General\Interfaces\DataTransferObject;
|
||||||
use App\Classes\Modules\Documents\Services\ConvertsBase64ToFile;
|
use App\Classes\Modules\Documents\Services\ConvertsBase64ToFile;
|
||||||
|
|
||||||
@@ -69,7 +68,7 @@ class DocumentObject implements DataTransferObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
*/
|
*/
|
||||||
public function getFiles(): array
|
public function getFiles(): array
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Documents\Processors;
|
|
||||||
|
|
||||||
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
|
|
||||||
use App\Classes\Modules\Documents\Services\CreatesDocument;
|
|
||||||
use App\Classes\Modules\Documents\Services\CreatesFiles;
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
||||||
use App\Models\Document;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use App\Models\QAUserAnswerSelected;
|
|
||||||
|
|
||||||
class UploadDocumentForHelpMenuProcessor
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var CreatesDocument */
|
|
||||||
private $createsDocument;
|
|
||||||
|
|
||||||
/** @var CreatesFiles */
|
|
||||||
private $createsFiles;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UploadDocumentForHelpMenuProcessor constructor.
|
|
||||||
* @param CreatesDocument $createsDocument
|
|
||||||
* @param CreatesFiles $createsFiles
|
|
||||||
*/
|
|
||||||
public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFiles)
|
|
||||||
{
|
|
||||||
$this->createsDocument = $createsDocument;
|
|
||||||
$this->createsFiles = $createsFiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @param QAUserAnswerSelected qaUserAnswerSelected
|
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
|
||||||
*/
|
|
||||||
public function execute(Request $request, QAUserAnswerSelected $qaUserAnswerSelected) {
|
|
||||||
$object = new DocumentObject("HELP_MENU", $request->input('files'),
|
|
||||||
'123456', ApprovalStatus::PENDING_VERIFICATION, 'help_menu'); //cief todo: 123456 cannot be hardcoded
|
|
||||||
|
|
||||||
/** @var Document $document */
|
|
||||||
$document = $this->createsDocument->execute($qaUserAnswerSelected, $object);
|
|
||||||
|
|
||||||
$result = $this->createsFiles->execute($document, $object);
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -97,8 +97,7 @@ class ConvertsBase64ToFile
|
|||||||
* @return string
|
* @return string
|
||||||
* @throws MalformedRequestException
|
* @throws MalformedRequestException
|
||||||
*/
|
*/
|
||||||
private function generateFile(FileObject $file, string $suffix = ''): string
|
private function generateFile(FileObject $file, string $suffix = '') {
|
||||||
{
|
|
||||||
|
|
||||||
$filePath = $this->path.'/'.$file->getFileName().$suffix.'.'.$file->getExtension();
|
$filePath = $this->path.'/'.$file->getFileName().$suffix.'.'.$file->getExtension();
|
||||||
|
|
||||||
|
|||||||
@@ -1,108 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Exports\Services;
|
|
||||||
|
|
||||||
use App\Models\CompanyConnection;
|
|
||||||
use App\Models\Container;
|
|
||||||
use App\Models\Order;
|
|
||||||
use App\Models\Package;
|
|
||||||
use Maatwebsite\Excel\Concerns\Exportable;
|
|
||||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
||||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
class ExportsOrderSummaryByMarking implements FromCollection, WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize
|
|
||||||
{
|
|
||||||
|
|
||||||
use Exportable;
|
|
||||||
|
|
||||||
protected $customerMarking;
|
|
||||||
protected $dateFrom;
|
|
||||||
protected $dateTo;
|
|
||||||
|
|
||||||
public function headings(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'Date',
|
|
||||||
'Container',
|
|
||||||
'Order Marking',
|
|
||||||
'Packing List Reference',
|
|
||||||
'Description',
|
|
||||||
'Quantity',
|
|
||||||
'L (cm)',
|
|
||||||
'H (cm)',
|
|
||||||
'W (cm)',
|
|
||||||
'CBM'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setParameters($customerMarking, $dateFrom, $dateTo)
|
|
||||||
{
|
|
||||||
$this->customerMarking = $customerMarking;
|
|
||||||
$this->dateFrom = $dateFrom;
|
|
||||||
$this->dateTo = $dateTo;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Illuminate\Support\Collection|mixed
|
|
||||||
*/
|
|
||||||
public function collection()
|
|
||||||
{
|
|
||||||
$connection = CompanyConnection::where('invitee_reference', $this->customerMarking)->first();
|
|
||||||
|
|
||||||
$company_id = $connection->invitee->company->id;
|
|
||||||
$company_module_id = $connection->invitee->id;
|
|
||||||
$packagesArray = collect();
|
|
||||||
$orders = Order::where('company_module_id', $company_module_id);
|
|
||||||
|
|
||||||
if (isset($this->dateFrom) && isset($this->dateTo)) {
|
|
||||||
$from = Carbon::createFromFormat('d-m-Y', $this->dateFrom);
|
|
||||||
$to = Carbon::createFromFormat('d-m-Y', $this->dateTo);
|
|
||||||
$orders = $orders->whereBetween('created_at', [$from, $to]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$orders = $orders->get();
|
|
||||||
|
|
||||||
foreach ($orders as $order){
|
|
||||||
$packingLists = $order->packingLists;
|
|
||||||
foreach ($packingLists as $packingList){
|
|
||||||
if($packingList->packingLists->first()){
|
|
||||||
$packingList = $packingList->packingLists->first();
|
|
||||||
}
|
|
||||||
$packages = $packingList->packages;
|
|
||||||
foreach ($packages as $package){
|
|
||||||
$packagesArray->push($package);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $packagesArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Package $package
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function map($package): array
|
|
||||||
{
|
|
||||||
$packinglist = ($package->packingList()->first()->owner->owner_type == Order::class) ? $package->packingList()->first(): $package->packingList->owner;
|
|
||||||
$order = $packinglist->owner;
|
|
||||||
|
|
||||||
return [
|
|
||||||
Carbon::parse($package->created_at)->format('d-m-Y'),
|
|
||||||
'',
|
|
||||||
$order->reference,
|
|
||||||
$package->packingList->reference,
|
|
||||||
$package->description,
|
|
||||||
$package->quantity,
|
|
||||||
$package->length,
|
|
||||||
$package->height,
|
|
||||||
$package->width,
|
|
||||||
((($package->length / 100) * ($package->height / 100) * ($package->width / 100)) * $package->quantity)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -32,7 +32,6 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading
|
|||||||
'DocNo',
|
'DocNo',
|
||||||
'DocDate',
|
'DocDate',
|
||||||
'DebtorCode',
|
'DebtorCode',
|
||||||
'DebtorCode',
|
|
||||||
'ShipInfo',
|
'ShipInfo',
|
||||||
'AccNo',
|
'AccNo',
|
||||||
'DetailDescription',
|
'DetailDescription',
|
||||||
@@ -40,12 +39,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading
|
|||||||
'ProjNo',
|
'ProjNo',
|
||||||
'DeptNo',
|
'DeptNo',
|
||||||
'Qty',
|
'Qty',
|
||||||
'UnitPrice',
|
'UnitPrice'
|
||||||
// 'marking',
|
|
||||||
// 'contact person',
|
|
||||||
// 'contact number',
|
|
||||||
// 'link',
|
|
||||||
// 'amount'
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,15 +60,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading
|
|||||||
|
|
||||||
$query = Transaction::query();
|
$query = Transaction::query();
|
||||||
|
|
||||||
// paidInvoiceSection
|
$query->where('type', TransactionType::SHIPPING_INVOICE)->whereIn('status', [ApprovalStatus::COMPLETED]);
|
||||||
$approvalStatus = ApprovalStatus::COMPLETED;
|
|
||||||
|
|
||||||
if ($this->request->route('section') == 'pendingPaymentSection') {
|
|
||||||
// pendingPaymentSection
|
|
||||||
$approvalStatus = ApprovalStatus::APPROVED;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query->where('type', TransactionType::SHIPPING_INVOICE)->whereIn('status', [$approvalStatus]);
|
|
||||||
|
|
||||||
if($start_date && $end_date) {
|
if($start_date && $end_date) {
|
||||||
$query->whereBetween('updated_at', [
|
$query->whereBetween('updated_at', [
|
||||||
@@ -103,10 +89,6 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading
|
|||||||
$order = $transaction->owner->owner;
|
$order = $transaction->owner->owner;
|
||||||
$company = $order->companyModule->company;
|
$company = $order->companyModule->company;
|
||||||
$shippingTransactionDetails = $transaction->transactionDetails()->where('reference', 'SHIPPING_FEE')->first();
|
$shippingTransactionDetails = $transaction->transactionDetails()->where('reference', 'SHIPPING_FEE')->first();
|
||||||
$marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference;
|
|
||||||
$contact = $order->companyModule->company->contacts->first();
|
|
||||||
$userName = $order->companyModule->employees()->first();
|
|
||||||
$link = route('customer.payment-and-billing', $marking);
|
|
||||||
|
|
||||||
$furtherDescription = '';
|
$furtherDescription = '';
|
||||||
|
|
||||||
@@ -127,19 +109,13 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading
|
|||||||
$transaction->created_at->format('m/d/Y H:m'),
|
$transaction->created_at->format('m/d/Y H:m'),
|
||||||
$company->debtor,
|
$company->debtor,
|
||||||
$order->reference,
|
$order->reference,
|
||||||
$order->reference,
|
|
||||||
'500-0000',
|
'500-0000',
|
||||||
'X1 Freight Service Charge',
|
'X1 Freight Service Charge',
|
||||||
$furtherDescription,
|
$furtherDescription,
|
||||||
$container->reference,
|
$container->reference,
|
||||||
'CIEF',
|
'CIEF',
|
||||||
$shippingTransactionDetails->quantity,
|
$shippingTransactionDetails->quantity,
|
||||||
$shippingTransactionDetails->price,
|
$shippingTransactionDetails->price
|
||||||
// $marking,
|
|
||||||
// $contact ? $contact->phone : '',
|
|
||||||
// $userName->name,
|
|
||||||
// $link,
|
|
||||||
// $transaction->amount
|
|
||||||
];
|
];
|
||||||
return [
|
return [
|
||||||
'<<New>>',
|
'<<New>>',
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Exports\Services;
|
|
||||||
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
||||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
|
||||||
use App\Models\Order;
|
|
||||||
use Maatwebsite\Excel\Concerns\Exportable;
|
|
||||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
|
||||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
||||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
class ExportsWarehousePackingList implements FromQuery, WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize
|
|
||||||
{
|
|
||||||
|
|
||||||
use Exportable;
|
|
||||||
|
|
||||||
public function headings(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'Customer Marking',
|
|
||||||
'Order Number'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Illuminate\Support\Collection|mixed
|
|
||||||
*/
|
|
||||||
public function query()
|
|
||||||
{
|
|
||||||
return Order::whereHas('addresses', function($address) {
|
|
||||||
$address->where('status', ApprovalStatus::APPROVED);
|
|
||||||
})->whereHas('packingLists', function($packingLists) {
|
|
||||||
$packingLists->where('type', PackingListType::SHIPPING_PACKING_LIST)->whereDoesntHave('transports');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Order $order
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function map($order): array
|
|
||||||
{
|
|
||||||
$marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference;
|
|
||||||
|
|
||||||
return [
|
|
||||||
$marking,
|
|
||||||
$order->reference,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,187 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Groups\DataTransferObjects;
|
|
||||||
|
|
||||||
use App\Classes\General\Interfaces\DataTransferObject;
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
class GroupObject implements DataTransferObject
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $issuer;
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $receiver;
|
|
||||||
|
|
||||||
/** @var float */
|
|
||||||
private $amount;
|
|
||||||
|
|
||||||
/** @var float */
|
|
||||||
private $originalAmount;
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $currencyId;
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $originalCurrencyId;
|
|
||||||
|
|
||||||
/** @var float */
|
|
||||||
private $currencyRate;
|
|
||||||
|
|
||||||
/** @var float */
|
|
||||||
private $tax;
|
|
||||||
|
|
||||||
/** @var float */
|
|
||||||
private $serviceCharge;
|
|
||||||
|
|
||||||
/** @var int|null */
|
|
||||||
private $status;
|
|
||||||
|
|
||||||
/** @var string */
|
|
||||||
private $reference;
|
|
||||||
|
|
||||||
/** @var int */
|
|
||||||
private $paymentMethod;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* GroupObject constructor.
|
|
||||||
* @param int $issuer
|
|
||||||
* @param int $receiver
|
|
||||||
* @param float $amount
|
|
||||||
* @param float $originalAmount
|
|
||||||
* @param int $currencyId
|
|
||||||
* @param int $originalCurrencyId
|
|
||||||
* @param float $currencyRate
|
|
||||||
* @param float $tax
|
|
||||||
* @param float $serviceCharge
|
|
||||||
* @param string $reference
|
|
||||||
* @param int|null $status
|
|
||||||
* @param int $paymentMethod
|
|
||||||
*/
|
|
||||||
public function __construct(
|
|
||||||
int $issuer,
|
|
||||||
int $receiver,
|
|
||||||
float $amount,
|
|
||||||
float $originalAmount,
|
|
||||||
int $currencyId,
|
|
||||||
int $originalCurrencyId,
|
|
||||||
float $currencyRate,
|
|
||||||
float $tax,
|
|
||||||
float $serviceCharge,
|
|
||||||
int $paymentMethod,
|
|
||||||
?string $reference,
|
|
||||||
?int $status = ApprovalStatus::PENDING_SUBMISSION
|
|
||||||
)
|
|
||||||
{
|
|
||||||
$this->issuer = $issuer;
|
|
||||||
$this->receiver = $receiver;
|
|
||||||
$this->amount = $amount;
|
|
||||||
$this->originalAmount = $originalAmount;
|
|
||||||
$this->currencyId = $currencyId;
|
|
||||||
$this->originalCurrencyId = $originalCurrencyId;
|
|
||||||
$this->currencyRate = $currencyRate;
|
|
||||||
$this->tax = $tax;
|
|
||||||
$this->serviceCharge = $serviceCharge;
|
|
||||||
$this->paymentMethod = $paymentMethod;
|
|
||||||
$this->reference = $reference;
|
|
||||||
$this->status = $status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getIssuer(): int
|
|
||||||
{
|
|
||||||
return $this->issuer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getReceiver(): int
|
|
||||||
{
|
|
||||||
return $this->receiver;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function getAmount(): float
|
|
||||||
{
|
|
||||||
return $this->amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function getOriginalAmount(): float
|
|
||||||
{
|
|
||||||
return $this->originalAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getCurrencyId(): int
|
|
||||||
{
|
|
||||||
return $this->currencyId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getOriginalCurrencyId(): int
|
|
||||||
{
|
|
||||||
return $this->originalCurrencyId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function getCurrencyRate(): float
|
|
||||||
{
|
|
||||||
return $this->currencyRate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function getTax(): float
|
|
||||||
{
|
|
||||||
return $this->tax;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return float
|
|
||||||
*/
|
|
||||||
public function getServiceCharge(): float
|
|
||||||
{
|
|
||||||
return $this->serviceCharge;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getStatus(): ?int
|
|
||||||
{
|
|
||||||
return $this->status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string|null
|
|
||||||
*/
|
|
||||||
public function getReference(): ?string
|
|
||||||
{
|
|
||||||
return $this->reference;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getPaymentMethod(): int
|
|
||||||
{
|
|
||||||
return $this->paymentMethod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Groups\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
|
||||||
use App\Classes\Modules\Groups\DataTransferObjects\GroupObject;
|
|
||||||
use App\Models\Group;
|
|
||||||
|
|
||||||
class CreatesGroup extends AbstractUpdateRecord
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param GroupObject $object
|
|
||||||
* @return \Illuminate\Database\Eloquent\Model
|
|
||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
|
||||||
*/
|
|
||||||
public function execute(GroupObject $object) {
|
|
||||||
$model = new Group();
|
|
||||||
$model->issuer = $object->getIssuer();
|
|
||||||
$model->receiver = $object->getReceiver();
|
|
||||||
$model->amount = $object->getAmount();
|
|
||||||
$model->original_amount = $object->getOriginalAmount();
|
|
||||||
$model->currency_id = $object->getCurrencyId();
|
|
||||||
$model->original_currency_id = $object->getOriginalCurrencyId();
|
|
||||||
$model->currency_rate = $object->getCurrencyRate();
|
|
||||||
$model->tax = $object->getTax();
|
|
||||||
$model->service_charge = $object->getServiceCharge();
|
|
||||||
$model->status = $object->getStatus();
|
|
||||||
$model->reference = $object->getReference();
|
|
||||||
$model->payment_method = $object->getPaymentMethod();
|
|
||||||
|
|
||||||
return $this->handler($model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\HelpMenu\Standards\Rules\CanFetchHelpMenuQuestionList;
|
|
||||||
use App\Classes\Modules\HelpMenu\Processors\FetchFirstHelpMenuQuestionProcessor;
|
|
||||||
use App\Http\Resources\HelpMenuQuestionResource;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
|
|
||||||
class FetchHelpMenuQuestionLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Retrieved Help Menu First Question',
|
|
||||||
'message' => 'You have successfully retrieved a Help Menu First Question'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanFetchHelpMenuQuestionList */
|
|
||||||
private $canFetchHelpMenuQuestionList;
|
|
||||||
|
|
||||||
/** @var FetchFirstHelpMenuQuestionProcessor */
|
|
||||||
private $fetchFirstHelpMenuQuestionProcessor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchHelpMenuQuestionLogic constructor.
|
|
||||||
* @param CanFetchHelpMenuQuestionList $canFetchHelpMenuQuestionList
|
|
||||||
* @param FetchFirstHelpMenuQuestionProcessor $fetchFirstHelpMenuQuestionProcessor
|
|
||||||
*/
|
|
||||||
public function __construct(CanFetchHelpMenuQuestionList $canFetchHelpMenuQuestionList, FetchFirstHelpMenuQuestionProcessor $fetchFirstHelpMenuQuestionProcessor)
|
|
||||||
{
|
|
||||||
$this->canFetchHelpMenuQuestionList = $canFetchHelpMenuQuestionList;
|
|
||||||
$this->fetchFirstHelpMenuQuestionProcessor = $fetchFirstHelpMenuQuestionProcessor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$this->canFetchHelpMenuQuestionList->passes();
|
|
||||||
|
|
||||||
$userId = Auth::user()->id;
|
|
||||||
|
|
||||||
$query = $this->fetchFirstHelpMenuQuestionProcessor->execute($request);
|
|
||||||
|
|
||||||
return $this->resourceResponse(new HelpMenuQuestionResource($query, $userId));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\ControllersLogic;
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMSupportTicket;
|
|
||||||
use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMCustomer;
|
|
||||||
use App\Classes\Modules\HelpMenu\Standards\Rules\CanFetchHelpMenuQuestionList;
|
|
||||||
use App\Classes\Modules\HelpMenu\Processors\SaveHelpMenuAnswerProcessor;
|
|
||||||
use App\Classes\Modules\HelpMenu\Processors\DeleteHelpMenuAnswerProcessor;
|
|
||||||
use App\Classes\Modules\HelpMenu\Processors\FetchNextHelpMenuQuestionProcessor;
|
|
||||||
use App\Classes\Modules\HelpMenu\Processors\FetchFirstHelpMenuQuestionProcessor;
|
|
||||||
use App\Http\Resources\HelpMenuQuestionResource;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use App\Classes\ValueObjects\Constants\QAType;
|
|
||||||
|
|
||||||
class UpdateHelpMenuNextQuestionLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Retrieved Help Menu Next Question',
|
|
||||||
'message' => 'You have successfully retrieved a Help Menu Next Question'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanFetchHelpMenuQuestionList */
|
|
||||||
private $canFetchHelpMenuQuestionList;
|
|
||||||
|
|
||||||
/** @var SaveHelpMenuAnswerProcessor */
|
|
||||||
private $saveHelpMenuAnswerProcessor;
|
|
||||||
|
|
||||||
/** @var DeleteHelpMenuAnswerProcessor */
|
|
||||||
private $deleteHelpMenuAnswerProcessor;
|
|
||||||
|
|
||||||
/** @var FetchNextHelpMenuQuestionProcessor */
|
|
||||||
private $fetchNextHelpMenuQuestionProcessor;
|
|
||||||
|
|
||||||
/** @var FetchFirstHelpMenuQuestionProcessor */
|
|
||||||
private $fetchFirstHelpMenuQuestionProcessor;
|
|
||||||
|
|
||||||
/** @var CreatesPerfexCRMSupportTicket */
|
|
||||||
private $createsPerfexCRMSupportTicket;
|
|
||||||
|
|
||||||
/** @var FetchesPerfexCRMCustomer */
|
|
||||||
private $fetchesPerfexCRMCustomer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UpdateHelpMenuNextQuestionLogic constructor.
|
|
||||||
* @param CanFetchHelpMenuQuestionList $canFetchHelpMenuQuestionList
|
|
||||||
* @param SaveHelpMenuAnswerProcessor $saveHelpMenuAnswerProcessor
|
|
||||||
* @param FetchNextHelpMenuQuestionProcessor $fetchNextHelpMenuQuestionProcessor
|
|
||||||
* @param FetchFirstHelpMenuQuestionProcessor $fetchFirstHelpMenuQuestionProcessor
|
|
||||||
* @param DeleteHelpMenuAnswerProcessor $deleteHelpMenuAnswerProcessor
|
|
||||||
*/
|
|
||||||
public function __construct(CanFetchHelpMenuQuestionList $canFetchHelpMenuQuestionList, SaveHelpMenuAnswerProcessor $saveHelpMenuAnswerProcessor, FetchNextHelpMenuQuestionProcessor $fetchNextHelpMenuQuestionProcessor, FetchFirstHelpMenuQuestionProcessor $fetchFirstHelpMenuQuestionProcessor, CreatesPerfexCRMSupportTicket $createsPerfexCRMSupportTicket, FetchesPerfexCRMCustomer $fetchesPerfexCRMCustomer, DeleteHelpMenuAnswerProcessor $deleteHelpMenuAnswerProcessor)
|
|
||||||
{
|
|
||||||
$this->canFetchHelpMenuQuestionList = $canFetchHelpMenuQuestionList;
|
|
||||||
$this->saveHelpMenuAnswerProcessor = $saveHelpMenuAnswerProcessor;
|
|
||||||
$this->fetchNextHelpMenuQuestionProcessor = $fetchNextHelpMenuQuestionProcessor;
|
|
||||||
$this->fetchFirstHelpMenuQuestionProcessor = $fetchFirstHelpMenuQuestionProcessor;
|
|
||||||
$this->createsPerfexCRMSupportTicket = $createsPerfexCRMSupportTicket;
|
|
||||||
$this->fetchesPerfexCRMCustomer = $fetchesPerfexCRMCustomer;
|
|
||||||
$this->deleteHelpMenuAnswerProcessor = $deleteHelpMenuAnswerProcessor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$questionId = 0;
|
|
||||||
$userId = Auth::user()->id;
|
|
||||||
$currentQuestion = $request->question;
|
|
||||||
$questionId = $currentQuestion['id'];
|
|
||||||
$questionType = $currentQuestion['question_type'];
|
|
||||||
|
|
||||||
$this->canFetchHelpMenuQuestionList->passes();
|
|
||||||
|
|
||||||
//Delete answer
|
|
||||||
$this->deleteHelpMenuAnswerProcessor->execute($userId, $questionId, $request);
|
|
||||||
|
|
||||||
//Save answer given by user
|
|
||||||
if (!$request->has('isPrevious')) {
|
|
||||||
$this->saveHelpMenuAnswerProcessor->execute($userId, $questionId, $request);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Create ticket at crm
|
|
||||||
if (!$request->has('isPrevious')) {
|
|
||||||
if($questionType == QAType::TICKET_CRM){
|
|
||||||
$email = Auth::user()->email;
|
|
||||||
$customer = $this->fetchesPerfexCRMCustomer->execute($email);
|
|
||||||
$subject = "test subject 3";
|
|
||||||
$department = 1;
|
|
||||||
$contactid = 0;
|
|
||||||
$userid = 0;
|
|
||||||
if($customer){
|
|
||||||
$contactid = $customer->id;
|
|
||||||
$userid = $customer->userid;
|
|
||||||
}
|
|
||||||
$this->createsPerfexCRMSupportTicket->execute($subject, $department, $contactid, $userid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Get returned question (previous or next)
|
|
||||||
$returnQuestion = $this->fetchNextHelpMenuQuestionProcessor->execute($request);
|
|
||||||
//When a questionnaire ended, return back the first question
|
|
||||||
if(is_null($returnQuestion)){
|
|
||||||
$returnQuestion = $this->fetchFirstHelpMenuQuestionProcessor->execute($request);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->resourceResponse(new HelpMenuQuestionResource($returnQuestion, $userId));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Processors;
|
|
||||||
|
|
||||||
use App\Models\QAUserAnswerSelected;
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuUserAnswerSelected;
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
|
|
||||||
class DeleteHelpMenuAnswerProcessor
|
|
||||||
{
|
|
||||||
/** @var FetchesHelpMenuUserAnswerSelected */
|
|
||||||
private $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
|
|
||||||
/** @var FetchesHelpMenuUserAnswerSelectedList */
|
|
||||||
private $fetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DeleteHelpMenuAnswerProcessor constructor.
|
|
||||||
* @param FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected
|
|
||||||
* @param FetchesHelpMenuUserAnswerSelectedList $fetchesHelpMenuUserAnswerSelectedList
|
|
||||||
*/
|
|
||||||
public function __construct(FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected, FetchesHelpMenuUserAnswerSelectedList $fetchesHelpMenuUserAnswerSelectedList)
|
|
||||||
{
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelected = $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelectedList = $fetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function execute($userId, $questionId, $request){
|
|
||||||
if ($request->has('isPrevious')) {
|
|
||||||
//Get current and previous question's answer
|
|
||||||
try{
|
|
||||||
$selectedAnswer = $this->fetchesHelpMenuUserAnswerSelectedList->execute(['user_id' => $userId, 'question_id' => $questionId, 'order_by' => (object)['column' => 'id','DESC' => true]])[0];
|
|
||||||
} catch (\Exception $exception){
|
|
||||||
$selectedAnswer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($selectedAnswer)
|
|
||||||
{
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelected->execute(['id' => $selectedAnswer['id']])->delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
//Delete all answer's belongs to the user
|
|
||||||
$currentQuestion = $request->question;
|
|
||||||
$isStart = $currentQuestion['is_start'];
|
|
||||||
if($isStart){
|
|
||||||
QAUserAnswerSelected::where('user_id', $userId)->delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Processors;
|
|
||||||
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuQuestion;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
|
|
||||||
class FetchFirstHelpMenuQuestionProcessor
|
|
||||||
{
|
|
||||||
/** @var FetchesHelpMenuQuestion */
|
|
||||||
private $fetchesHelpMenuQuestion;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchFirstHelpMenuQuestionProcessor constructor.
|
|
||||||
* @param FetchesHelpMenuQuestion $fetchesHelpMenuQuestion
|
|
||||||
*/
|
|
||||||
public function __construct(FetchesHelpMenuQuestion $fetchesHelpMenuQuestion)
|
|
||||||
{
|
|
||||||
$this->fetchesHelpMenuQuestion = $fetchesHelpMenuQuestion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function execute(Request $request){
|
|
||||||
try {
|
|
||||||
$query = $this->fetchesHelpMenuQuestion->execute(['questionnaire_set_id' => 1]);
|
|
||||||
return $query;
|
|
||||||
} catch (\Exception $exception){
|
|
||||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Processors;
|
|
||||||
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuQuestion;
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuUserAnswerSelected;
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use App\Classes\ValueObjects\Constants\QAType;
|
|
||||||
|
|
||||||
class FetchNextHelpMenuQuestionProcessor
|
|
||||||
{
|
|
||||||
/** @var FetchesHelpMenuQuestion */
|
|
||||||
private $fetchesHelpMenuQuestion;
|
|
||||||
|
|
||||||
/** @var FetchesHelpMenuUserAnswerSelected */
|
|
||||||
private $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
|
|
||||||
/** @var FetchesHelpMenuUserAnswerSelectedList */
|
|
||||||
private $fetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
/**
|
|
||||||
* FetchNextHelpMenuQuestionProcessor constructor.
|
|
||||||
* @param FetchesHelpMenuQuestion $fetchesHelpMenuQuestion
|
|
||||||
* @param FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected
|
|
||||||
* @param FetchesHelpMenuUserAnswerSelectedList $fetchesHelpMenuUserAnswerSelectedList
|
|
||||||
*/
|
|
||||||
public function __construct(FetchesHelpMenuQuestion $fetchesHelpMenuQuestion, FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected, FetchesHelpMenuUserAnswerSelectedList $fetchesHelpMenuUserAnswerSelectedList)
|
|
||||||
{
|
|
||||||
$this->fetchesHelpMenuQuestion = $fetchesHelpMenuQuestion;
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelected = $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelectedList = $fetchesHelpMenuUserAnswerSelectedList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function execute(Request $request){
|
|
||||||
$isEnd = 0;
|
|
||||||
$questionId = 0;
|
|
||||||
$nextQuestionNumber = 0;
|
|
||||||
$nextNestedQuestion = 0;
|
|
||||||
$nextMainQuestion= 0;
|
|
||||||
$currentQuestion = $request->question;
|
|
||||||
$questionType = QAType::DEFAULT;
|
|
||||||
$returnQuestion = null;
|
|
||||||
|
|
||||||
if ($currentQuestion && array_key_exists('id', $currentQuestion)) {
|
|
||||||
$questionId = $currentQuestion['id'];
|
|
||||||
$isEnd = $currentQuestion['is_end'];
|
|
||||||
$questionType = $currentQuestion['question_type'];
|
|
||||||
$nextNestedQuestion = $currentQuestion['next_nested_question'];
|
|
||||||
$nextMainQuestion = $currentQuestion['next_main_question'];
|
|
||||||
}
|
|
||||||
if ($request->has('answerObj')) {
|
|
||||||
$nextQuestionNumber = $request->answerObj['next_question_number'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->has('isPrevious')) {
|
|
||||||
$userId = Auth::user()->id;
|
|
||||||
$previousAnswer = $this->fetchesHelpMenuUserAnswerSelectedList->execute(['user_id' => $userId, 'order_by' => (object)['column' => 'id','DESC' => true]])[0];
|
|
||||||
|
|
||||||
//Get previous question
|
|
||||||
$previousQuestion = $this->fetchesHelpMenuQuestion->execute(['questionnaire_set_id' => 1, 'id' => $previousAnswer['question_id']]);
|
|
||||||
$returnQuestion = $previousQuestion;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
//Get next question
|
|
||||||
$nextQuestion = null;
|
|
||||||
$question_number = 0;
|
|
||||||
if($nextQuestionNumber != 0){
|
|
||||||
$question_number = $nextQuestionNumber;
|
|
||||||
}
|
|
||||||
else if($nextNestedQuestion != 0){
|
|
||||||
$question_number = $nextNestedQuestion;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$question_number = $nextMainQuestion;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($isEnd){
|
|
||||||
$returnQuestion = null;
|
|
||||||
}
|
|
||||||
else if($question_number != 0){
|
|
||||||
$nextQuestion = $this->fetchesHelpMenuQuestion->execute(['questionnaire_set_id' => 1, 'question_number' => $question_number]);
|
|
||||||
$returnQuestion = $nextQuestion;
|
|
||||||
}
|
|
||||||
else if (array_key_exists('id', $request->input('question'))) {
|
|
||||||
$nextQuestion = $this->fetchesHelpMenuQuestion->execute(['questionnaire_set_id' => 1, 'id_next' => $questionId, 'next_main_question' => null]);
|
|
||||||
$returnQuestion = $nextQuestion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $returnQuestion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Processors;
|
|
||||||
|
|
||||||
use App\Models\QAUserAnswerSelected;
|
|
||||||
use App\Classes\Modules\HelpMenu\Services\FetchesHelpMenuUserAnswerSelected;
|
|
||||||
use App\Classes\Modules\Documents\Processors\UploadDocumentForHelpMenuProcessor;
|
|
||||||
|
|
||||||
|
|
||||||
class SaveHelpMenuAnswerProcessor
|
|
||||||
{
|
|
||||||
/** @var FetchesHelpMenuUserAnswerSelected */
|
|
||||||
private $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
|
|
||||||
/** @var UploadDocumentForHelpMenuProcessor */
|
|
||||||
private $uploadDocumentForHelpMenuProcessor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SaveHelpMenuAnswerProcessor constructor.
|
|
||||||
* @param FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected
|
|
||||||
* @param UploadDocumentForHelpMenuProcessor $uploadDocumentForHelpMenuProcessor
|
|
||||||
*/
|
|
||||||
public function __construct(FetchesHelpMenuUserAnswerSelected $fetchesHelpMenuUserAnswerSelected, UploadDocumentForHelpMenuProcessor $uploadDocumentForHelpMenuProcessor)
|
|
||||||
{
|
|
||||||
$this->fetchesHelpMenuUserAnswerSelected = $fetchesHelpMenuUserAnswerSelected;
|
|
||||||
$this->uploadDocumentForHelpMenuProcessor = $uploadDocumentForHelpMenuProcessor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function execute($userId, $questionId, $request){
|
|
||||||
$filesUpload = $request->input('files');
|
|
||||||
$answer = null;
|
|
||||||
try{
|
|
||||||
// $answer = $this->fetchesHelpMenuUserAnswerSelected->execute(['user_id' => $userId, 'question_id' => $questionId, 'order_by' => ['column' => 'id','DESC' => 1]]);
|
|
||||||
$answer = $this->fetchesHelpMenuUserAnswerSelected->execute(['user_id' => $userId, 'question_id' => $questionId]);
|
|
||||||
} catch (\Exception $exception){
|
|
||||||
$answer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_null($answer))
|
|
||||||
{
|
|
||||||
$answer = new QAUserAnswerSelected;
|
|
||||||
}
|
|
||||||
$answer->user_id = $userId;
|
|
||||||
$answer->question_id = $questionId;
|
|
||||||
if ($request->has('answerObj')) {
|
|
||||||
$answer->answer_option_id = intval($request->answerObj['id']);
|
|
||||||
}
|
|
||||||
$answer->free_text_answer = $request->answer;
|
|
||||||
$answer->save();
|
|
||||||
|
|
||||||
if($filesUpload){
|
|
||||||
$result = $this->uploadDocumentForHelpMenuProcessor->execute($request, $answer);
|
|
||||||
$newData = array_map(function ($item) {
|
|
||||||
return [
|
|
||||||
'document_id' => $item->document_id,
|
|
||||||
'file_id' => $item->id,
|
|
||||||
];
|
|
||||||
}, $result);
|
|
||||||
$answer->free_text_answer = json_encode($newData);
|
|
||||||
$answer->save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Services;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractFetchRecord;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use App\Models\QAQuestions;
|
|
||||||
|
|
||||||
class FetchesHelpMenuQuestion extends AbstractFetchRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var QAQuestions */
|
|
||||||
private $repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchesHelpMenuQuestion constructor.
|
|
||||||
* @param QAQuestions $repository
|
|
||||||
*/
|
|
||||||
public function __construct(QAQuestions $repository)
|
|
||||||
{
|
|
||||||
$this->repository = $repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Builder
|
|
||||||
*/
|
|
||||||
public function getRepository(): Builder
|
|
||||||
{
|
|
||||||
return $this->repository->newQuery();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractFetchRecord;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use App\Models\QAUserAnswerSelected;
|
|
||||||
|
|
||||||
class FetchesHelpMenuUserAnswerSelected extends AbstractFetchRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var QAUserAnswerSelected */
|
|
||||||
private $repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchesHelpMenuUserAnswerSelected constructor.
|
|
||||||
* @param QAUserAnswerSelected $repository
|
|
||||||
*/
|
|
||||||
public function __construct(QAUserAnswerSelected $repository)
|
|
||||||
{
|
|
||||||
$this->repository = $repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Builder
|
|
||||||
*/
|
|
||||||
public function getRepository(): Builder
|
|
||||||
{
|
|
||||||
return $this->repository->newQuery();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Services;
|
|
||||||
|
|
||||||
use App\Classes\General\Eloquent\AbstractListRecord;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use App\Models\QAUserAnswerSelected;
|
|
||||||
|
|
||||||
class FetchesHelpMenuUserAnswerSelectedList extends AbstractListRecord
|
|
||||||
{
|
|
||||||
|
|
||||||
/** @var QAUserAnswerSelected */
|
|
||||||
private $repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchesHelpMenuUserAnswerSelectedList constructor.
|
|
||||||
* @param QAUserAnswerSelected $repository
|
|
||||||
*/
|
|
||||||
public function __construct(QAUserAnswerSelected $repository)
|
|
||||||
{
|
|
||||||
$this->repository = $repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Builder
|
|
||||||
*/
|
|
||||||
public function getRepository(): Builder
|
|
||||||
{
|
|
||||||
return $this->repository->newQuery();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\HelpMenu\Standards\Rules;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractRule;
|
|
||||||
|
|
||||||
class CanFetchHelpMenuQuestionList extends AbstractRule
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
protected function authorized(): bool
|
|
||||||
{
|
|
||||||
// TODO Set Authorization rules
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $object
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
protected function validators($object): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $object
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
protected function criteria($object): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\Orders\Processors\ApproveChangeOrderAddressProcessor;
|
use App\Classes\Modules\Orders\Processors\ApproveChangeOrderAddressProcessor;
|
||||||
use App\Http\Resources\AddressResource;
|
use App\Http\Resources\AddressResource;
|
||||||
use App\Http\Resources\OrderResource;
|
use App\Http\Resources\OrderResource;
|
||||||
use App\Transformers\AddressTransformer;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -40,12 +39,6 @@ class ApproveChangeOrderAddressLogic extends AbstractControllerLogic
|
|||||||
{
|
{
|
||||||
$address = $this->approveChangeOrderAddressProcessor->execute($request);
|
$address = $this->approveChangeOrderAddressProcessor->execute($request);
|
||||||
|
|
||||||
|
|
||||||
//load address with no relationships
|
|
||||||
/* return fractal()
|
|
||||||
->item($address, new AddressTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new AddressResource($address));
|
return $this->resourceResponse(new AddressResource($address));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,28 +4,20 @@ namespace App\Classes\Modules\Orders\ControllersLogic;
|
|||||||
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
use App\Classes\Exceptions\RequestValidationException;
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
|
|
||||||
use App\Classes\Modules\Addresses\Services\CreatesAddress;
|
|
||||||
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
use App\Classes\Modules\Addresses\Services\FetchesAddress;
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\NewLeadTaskToPerfexCRMProcessor;
|
|
||||||
use App\Classes\Modules\Orders\Processors\CreateOrderProcessor;
|
use App\Classes\Modules\Orders\Processors\CreateOrderProcessor;
|
||||||
use App\Classes\Modules\Orders\Services\GeneratesOrderNumber;
|
use App\Classes\Modules\Orders\Services\GeneratesOrderNumber;
|
||||||
use App\Classes\ValueObjects\Constants\AddressType;
|
|
||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
||||||
use App\Classes\ValueObjects\Constants\WarehouseReferences;
|
use App\Classes\ValueObjects\Constants\WarehouseReferences;
|
||||||
use App\Http\Resources\OrderResource;
|
use App\Http\Resources\OrderResource;
|
||||||
use App\Classes\Modules\Addresses\Standards\Rules\CanCreateAddress;
|
|
||||||
use App\Models\Address;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
class CreateOrderLogic extends AbstractControllerLogic
|
class CreateOrderLogic extends AbstractControllerLogic
|
||||||
{
|
{
|
||||||
|
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Created Order',
|
'title' => 'Created Order',
|
||||||
'message' => 'You have successfully created a new Order'
|
'message' => 'You have successfully created a new Order'
|
||||||
@@ -47,14 +39,6 @@ class CreateOrderLogic extends AbstractControllerLogic
|
|||||||
/** @var GeneratesOrderNumber */
|
/** @var GeneratesOrderNumber */
|
||||||
private $generatesOrderNumber;
|
private $generatesOrderNumber;
|
||||||
|
|
||||||
/** @var CreatesAddress */
|
|
||||||
private $createsAddress;
|
|
||||||
|
|
||||||
/** @var CanCreateAddress */
|
|
||||||
private $canCreateAddress;
|
|
||||||
|
|
||||||
/** @var NewLeadTaskToPerfexCRMProcessor */
|
|
||||||
private $newLeadTaskToPerfexCRMProcessor;
|
|
||||||
/**
|
/**
|
||||||
* CreateOrderLogic constructor.
|
* CreateOrderLogic constructor.
|
||||||
* @param FetchesCompany $fetchesCompany
|
* @param FetchesCompany $fetchesCompany
|
||||||
@@ -62,46 +46,28 @@ class CreateOrderLogic extends AbstractControllerLogic
|
|||||||
* @param CreateOrderProcessor $createOrderProcessor
|
* @param CreateOrderProcessor $createOrderProcessor
|
||||||
* @param FetchesCompanyModule $fetchesCompanyModule
|
* @param FetchesCompanyModule $fetchesCompanyModule
|
||||||
* @param GeneratesOrderNumber $generatesOrderNumber
|
* @param GeneratesOrderNumber $generatesOrderNumber
|
||||||
* @param NewLeadTaskToPerfexCRMProcessor $newLeadTaskToPerfexCRMProcessor
|
|
||||||
* @param CreatesAddress $createsAddress
|
|
||||||
* @param CanCreateAddress $canCreateAddress
|
|
||||||
*/
|
*/
|
||||||
public function __construct(FetchesCompany $fetchesCompany, FetchesAddress $fetchesAddress, CreateOrderProcessor $createOrderProcessor, FetchesCompanyModule $fetchesCompanyModule, GeneratesOrderNumber $generatesOrderNumber, CreatesAddress $createsAddress, CanCreateAddress $canCreateAddress, NewLeadTaskToPerfexCRMProcessor $newLeadTaskToPerfexCRMProcessor)
|
public function __construct(FetchesCompany $fetchesCompany, FetchesAddress $fetchesAddress, CreateOrderProcessor $createOrderProcessor, FetchesCompanyModule $fetchesCompanyModule, GeneratesOrderNumber $generatesOrderNumber)
|
||||||
{
|
{
|
||||||
$this->fetchesCompany = $fetchesCompany;
|
$this->fetchesCompany = $fetchesCompany;
|
||||||
$this->fetchesAddress = $fetchesAddress;
|
$this->fetchesAddress = $fetchesAddress;
|
||||||
$this->createOrderProcessor = $createOrderProcessor;
|
$this->createOrderProcessor = $createOrderProcessor;
|
||||||
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
$this->fetchesCompanyModule = $fetchesCompanyModule;
|
||||||
$this->generatesOrderNumber = $generatesOrderNumber;
|
$this->generatesOrderNumber = $generatesOrderNumber;
|
||||||
$this->createsAddress = $createsAddress;
|
|
||||||
$this->canCreateAddress = $canCreateAddress;
|
|
||||||
$this->newLeadTaskToPerfexCRMProcessor = $newLeadTaskToPerfexCRMProcessor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse {
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
$company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]);
|
$company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]);
|
||||||
|
|
||||||
$address = $this->fetchesAddress->execute(['id' => $request->input('address_id')]);
|
$address = $this->fetchesAddress->execute(['id' => $request->input('address_id')]);
|
||||||
|
|
||||||
// todo-new: fix this
|
$originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->input('warehouse_id')]);
|
||||||
// if select warehouse foshan
|
|
||||||
if ($request->input('warehouse_id') === 'foshan') {
|
|
||||||
// 13 - sabah, 14 - sarawak
|
|
||||||
if (in_array($address->state->id, [13, 14])) {
|
|
||||||
$originWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::YD_FS_WEST_MALAYSIA]);
|
|
||||||
} else {
|
|
||||||
$originWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::YD_FS_WEST_MALAYSIA]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->input('warehouse_id')]);
|
|
||||||
|
|
||||||
if (!in_array($company->companyModules()->importers()->first()->id, WarehouseReferences::YD_EXEMPT_LIST)) {
|
if(!in_array($company->companyModules()->importers()->first()->id, WarehouseReferences::YD_EXEMPT_LIST)){
|
||||||
$originWarehouse = $this->fetchesCompanyModule->execute(['reference' => $originWarehouse->reference === WarehouseReferences::VT_GUANG_ZHOU ? WarehouseReferences::YD_GUANG_ZHOU : WarehouseReferences::YD_YIWU]);
|
$originWarehouse = $this->fetchesCompanyModule->execute(['reference' => $originWarehouse->reference === WarehouseReferences::VT_GUANG_ZHOU ? WarehouseReferences::YD_GUANG_ZHOU : WarehouseReferences::YD_YIWU]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($originWarehouse->reference === WarehouseReferences::YD_YIWU && in_array($address->state_id, [5, 13, 14])) {
|
if($originWarehouse->reference === WarehouseReferences::YD_YIWU && in_array($address->state_id, [5, 13, 14])) {
|
||||||
@@ -110,10 +76,6 @@ class CreateOrderLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$order = $this->createOrderProcessor->execute($company, $originWarehouse, $address, $this->generatesOrderNumber->execute());
|
$order = $this->createOrderProcessor->execute($company, $originWarehouse, $address, $this->generatesOrderNumber->execute());
|
||||||
|
|
||||||
if(config('perfexcrm.is_enabled') == 'true'){
|
|
||||||
$this->newLeadTaskToPerfexCRMProcessor->execute($company);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->resourceResponse(new OrderResource($order));
|
return $this->resourceResponse(new OrderResource($order));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Orders\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
|
||||||
use App\Classes\Modules\Orders\Standards\Rules\CanFetchOrder;
|
|
||||||
use App\Http\Resources\OrderV2Resource;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class FetchOrderV2Logic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Retrieved Order',
|
|
||||||
'message' => 'You have successfully retrieved an order'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanFetchOrder */
|
|
||||||
private $canFetchOrder;
|
|
||||||
|
|
||||||
/** @var FetchesOrder */
|
|
||||||
private $fetchesOrder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FetchOrderLogic constructor.
|
|
||||||
* @param CanFetchOrder $canFetchOrder
|
|
||||||
* @param FetchesOrder $fetchesOrder
|
|
||||||
*/
|
|
||||||
public function __construct(CanFetchOrder $canFetchOrder, FetchesOrder $fetchesOrder)
|
|
||||||
{
|
|
||||||
$this->canFetchOrder = $canFetchOrder;
|
|
||||||
$this->fetchesOrder = $fetchesOrder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
|
||||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
|
|
||||||
$this->canFetchOrder->passes();
|
|
||||||
|
|
||||||
$query = $this->fetchesOrder->execute(['reference' => $request->route('id'), 'with_packing_lists' => true]);
|
|
||||||
|
|
||||||
return $this->resourceResponse(new OrderV2Resource($query));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\Orders\ControllersLogic;
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\Orders\Services\ListsOrders;
|
|
||||||
use App\Classes\Modules\Orders\Standards\Rules\CanListOrders;
|
|
||||||
use App\Classes\ValueObjects\Constants\OrderType;
|
|
||||||
use App\Http\Resources\OrderV2Resource;
|
|
||||||
use App\Transformers\DocumentTransformer;
|
|
||||||
use App\Transformers\OrderTransformer;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use League\Fractal\Serializer\ArraySerializer;
|
|
||||||
|
|
||||||
class ListOrdersV2Logic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'title' => 'Retrieved Orders',
|
|
||||||
'message' => 'You have successfully retrieved a list of Orders'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var CanListOrders */
|
|
||||||
private $canListOrders;
|
|
||||||
|
|
||||||
/** @var ListsOrders */
|
|
||||||
private $listsOrders;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ListOrdersLogic constructor.
|
|
||||||
* @param CanListOrders $canListOrders
|
|
||||||
* @param ListsOrders $listsOrders
|
|
||||||
*/
|
|
||||||
public function __construct(CanListOrders $canListOrders, ListsOrders $listsOrders)
|
|
||||||
{
|
|
||||||
$this->canListOrders = $canListOrders;
|
|
||||||
$this->listsOrders = $listsOrders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function logic(Request $request): JsonResponse
|
|
||||||
{
|
|
||||||
$this->canListOrders->passes();
|
|
||||||
|
|
||||||
$query = $this->listsOrders->execute(array_merge($this->listsOrders->deserializeFilters($request->input('filters')), ['with_parcels' => true, 'type_in' => [OrderType::SHARED_CONTAINER, OrderType::DEDICATED_CONTAINER]]));
|
|
||||||
|
|
||||||
|
|
||||||
// return $this->collectionResponse(OrderV2Resource::collection($query));
|
|
||||||
|
|
||||||
return fractal()
|
|
||||||
->parseIncludes(['remarks', 'warehouse', 'address'])
|
|
||||||
->collection($query, new OrderTransformer(), "data")
|
|
||||||
->serializeWith(new ArraySerializer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -16,9 +16,10 @@ class FetchesDataFromYDPortal
|
|||||||
public function clientRequest(string $url, string $method, $body){
|
public function clientRequest(string $url, string $method, $body){
|
||||||
|
|
||||||
$client = new \GuzzleHttp\Client();
|
$client = new \GuzzleHttp\Client();
|
||||||
|
|
||||||
$body['apicode'] = env('YD_API_CODE');
|
$body['apicode'] = env('YD_API_CODE');
|
||||||
|
|
||||||
$request = $client->requestAsync($method, $url, ['query' => $body, 'timeout' => 15]);
|
$request = $client->requestAsync($method, $url, ['query' => $body]);
|
||||||
|
|
||||||
return $request->wait();
|
return $request->wait();
|
||||||
}
|
}
|
||||||
@@ -31,7 +32,6 @@ class FetchesDataFromYDPortal
|
|||||||
$content = $request->getBody()->getContents();
|
$content = $request->getBody()->getContents();
|
||||||
$content = str_replace("\r",'', $content);
|
$content = str_replace("\r",'', $content);
|
||||||
$content = str_replace("\n",'', $content);
|
$content = str_replace("\n",'', $content);
|
||||||
$content = str_replace("\t",'', $content);
|
|
||||||
return json_decode($content);
|
return json_decode($content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-8
@@ -6,7 +6,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -57,13 +56,6 @@ class AssignPackingListContainerLogic extends AbstractControllerLogic
|
|||||||
$container->packingLists()->attach($packing_list_item);
|
$container->packingLists()->attach($packing_list_item);
|
||||||
}
|
}
|
||||||
|
|
||||||
//only return with packing list relationship
|
|
||||||
|
|
||||||
/* return fractal()
|
|
||||||
->item($container, new ContainerTransformer())
|
|
||||||
->parseInclude(['packingLists'])
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
|
|
||||||
} catch (\Exception $exception){
|
} catch (\Exception $exception){
|
||||||
|
|||||||
+2
-10
@@ -8,7 +8,6 @@ use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
|||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
|
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -20,8 +19,7 @@ class CompleteContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Updated Container',
|
'title' => 'Updated Container',
|
||||||
'message' => 'You have successfully updated the Container'
|
'message' => 'You have successfully updated the Container'
|
||||||
@@ -53,16 +51,10 @@ class CompleteContainerLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
$query = $this->updatesContainerStatus->execute($container, ApprovalStatus::COMPLETED);
|
$query = $this->updatesContainerStatus->execute($container, ApprovalStatus::COMPLETED);
|
||||||
|
|
||||||
//no relationships needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($container, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ use App\Classes\Modules\PackingLists\DataTransferObjects\ContainerObject;
|
|||||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
||||||
|
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -71,11 +70,6 @@ class CreateContainerLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$query = $this->createsContainer->execute($object, $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]));
|
$query = $this->createsContainer->execute($object, $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]));
|
||||||
|
|
||||||
//no relationship needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($query));
|
return $this->resourceResponse(new ContainerResource($query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-10
@@ -8,7 +8,6 @@ use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
|||||||
use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject;
|
use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject;
|
||||||
use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor;
|
use App\Classes\Modules\Remarks\Processors\CreateRemarkProcessor;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -19,8 +18,7 @@ class CreateContainerRemarkLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Created Container Remark',
|
'title' => 'Created Container Remark',
|
||||||
'message' => 'You have successfully created a new Container Remark'
|
'message' => 'You have successfully created a new Container Remark'
|
||||||
@@ -52,7 +50,7 @@ class CreateContainerRemarkLogic extends AbstractControllerLogic
|
|||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
@@ -61,12 +59,6 @@ class CreateContainerRemarkLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$this->createRemarkProcessor->execute($container, $object);
|
$this->createRemarkProcessor->execute($container, $object);
|
||||||
|
|
||||||
//load with remarks only
|
|
||||||
/* return fractal()
|
|
||||||
->item($container, new ContainerTransformer())
|
|
||||||
->parseIncludes(['remarks'])
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-17
@@ -17,7 +17,6 @@ use App\Classes\ValueObjects\Constants\TransportType;
|
|||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
|
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -29,8 +28,7 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Created Container',
|
'title' => 'Created Container',
|
||||||
'message' => 'You have successfully created a new Container'
|
'message' => 'You have successfully created a new Container'
|
||||||
@@ -43,7 +41,7 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
|
|||||||
/** @var FetchesPackingList */
|
/** @var FetchesPackingList */
|
||||||
private $fetchesPackingList;
|
private $fetchesPackingList;
|
||||||
|
|
||||||
/** @var FetchesCompanyModule */
|
/** @var FetchesCompanyModule */
|
||||||
private $fetchesCompanyModule;
|
private $fetchesCompanyModule;
|
||||||
|
|
||||||
/** @var CreatesPackingList */
|
/** @var CreatesPackingList */
|
||||||
@@ -56,12 +54,12 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
|
|||||||
private $createsSchedule;
|
private $createsSchedule;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
CanCreateContainer $canCreateContainer,
|
CanCreateContainer $canCreateContainer,
|
||||||
FetchesPackingList $fetchesPackingList,
|
FetchesPackingList $fetchesPackingList,
|
||||||
FetchesCompanyModule $fetchesCompanyModule,
|
FetchesCompanyModule $fetchesCompanyModule,
|
||||||
CreatesContainer $createsContainer,
|
CreatesContainer $createsContainer,
|
||||||
CreatesTransport $createsTransport,
|
CreatesTransport $createsTransport,
|
||||||
CreatesSchedule $createsSchedule
|
CreatesSchedule $createsSchedule
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$this->canCreateContainer = $canCreateContainer;
|
$this->canCreateContainer = $canCreateContainer;
|
||||||
@@ -79,7 +77,7 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
|
|||||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$object = new ContainerObject(
|
$object = new ContainerObject(
|
||||||
$request->input('container_reference'),
|
$request->input('container_reference'),
|
||||||
@@ -106,15 +104,9 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
|
|||||||
Carbon::parse($request->input('etd')),
|
Carbon::parse($request->input('etd')),
|
||||||
Carbon::parse($request->input('eta')),
|
Carbon::parse($request->input('eta')),
|
||||||
ApprovalStatus::APPROVED
|
ApprovalStatus::APPROVED
|
||||||
);
|
);
|
||||||
$schedule = $this->createsSchedule->execute($transport, $scheduleObject);
|
$schedule = $this->createsSchedule->execute($transport, $scheduleObject);
|
||||||
|
|
||||||
//include transport
|
|
||||||
/* return fractal()
|
|
||||||
->item($container, new ContainerTransformer())
|
|
||||||
->parseIncludes(['transport'])
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-10
@@ -7,7 +7,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||||
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanFetchContainer;
|
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanFetchContainer;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -18,8 +17,7 @@ class FetchContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Container',
|
'title' => 'Retrieved Container',
|
||||||
'message' => 'You have successfully retrieved a Container'
|
'message' => 'You have successfully retrieved a Container'
|
||||||
@@ -50,18 +48,12 @@ class FetchContainerLogic extends AbstractControllerLogic
|
|||||||
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canFetchContainer->passes();
|
$this->canFetchContainer->passes();
|
||||||
|
|
||||||
$query = $this->fetchesContainer->execute(['id' => $request->route('id'), 'with_packing_lists' => true]);
|
$query = $this->fetchesContainer->execute(['id' => $request->route('id'), 'with_packing_lists' => true]);
|
||||||
|
|
||||||
//load with packing lists
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->parseIncludes(['packing_lists'])
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($query));
|
return $this->resourceResponse(new ContainerResource($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-9
@@ -9,7 +9,6 @@ use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanListContainer
|
|||||||
use App\Classes\Modules\PackingLists\Processors\FetchInboundCustomClearedProcessor;
|
use App\Classes\Modules\PackingLists\Processors\FetchInboundCustomClearedProcessor;
|
||||||
|
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -20,8 +19,7 @@ class InboundCustomClearedLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Containers',
|
'title' => 'Retrieved Containers',
|
||||||
'message' => 'You have successfully retrieved a list of Containers'
|
'message' => 'You have successfully retrieved a list of Containers'
|
||||||
@@ -54,16 +52,11 @@ class InboundCustomClearedLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$query = $this->fetchInboundCustomCleared->execute();
|
$query = $this->fetchInboundCustomCleared->execute();
|
||||||
|
|
||||||
//no relations required
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->collectionResponse(ContainerResource::collection($query));
|
return $this->collectionResponse(ContainerResource::collection($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-16
@@ -3,14 +3,10 @@
|
|||||||
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
|
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\PackingLists\Services\Containers\ListsContainers;
|
use App\Classes\Modules\PackingLists\Services\Containers\ListsContainers;
|
||||||
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanListContainers;
|
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanListContainers;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -21,8 +17,7 @@ class ListContainersLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved Containers',
|
'title' => 'Retrieved Containers',
|
||||||
'message' => 'You have successfully retrieved a list of Containers'
|
'message' => 'You have successfully retrieved a list of Containers'
|
||||||
@@ -50,22 +45,16 @@ class ListContainersLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canListContainers->passes();
|
$this->canListContainers->passes();
|
||||||
|
|
||||||
$query = $this->listsContainers->execute($this->listsContainers->deserializeFilters($request->input('filters')));
|
$query = $this->listsContainers->execute($this->listsContainers->deserializeFilters($request->input('filters')));
|
||||||
|
|
||||||
//load with no filters, a details page to be added to load one with all related data
|
|
||||||
/* return fractal()
|
|
||||||
->collection($query, new ContainerTransformer)
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->collectionResponse(ContainerResource::collection($query));
|
return $this->collectionResponse(ContainerResource::collection($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-11
@@ -10,7 +10,6 @@ use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject;
|
|||||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||||
|
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -21,8 +20,7 @@ class RescheduleContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Reschedule Container',
|
'title' => 'Reschedule Container',
|
||||||
'message' => 'You have successfully Reschedule Container'
|
'message' => 'You have successfully Reschedule Container'
|
||||||
@@ -56,7 +54,7 @@ class RescheduleContainerLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
@@ -70,17 +68,12 @@ class RescheduleContainerLogic extends AbstractControllerLogic
|
|||||||
Carbon::parse($request->input('etd')),
|
Carbon::parse($request->input('etd')),
|
||||||
Carbon::parse($request->input('eta')),
|
Carbon::parse($request->input('eta')),
|
||||||
ApprovalStatus::APPROVED
|
ApprovalStatus::APPROVED
|
||||||
);
|
);
|
||||||
$schedule = $this->createsSchedule->execute($transport, $scheduleObject);
|
$schedule = $this->createsSchedule->execute($transport, $scheduleObject);
|
||||||
|
|
||||||
//no relationship
|
|
||||||
/* return fractal()
|
|
||||||
->item($container, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
|
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception){
|
||||||
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
throw new ErrorException($exception->getMessage(), $exception->getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-16
@@ -3,16 +3,12 @@
|
|||||||
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
|
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\Exceptions\AccessForbiddenException;
|
|
||||||
use App\Classes\Exceptions\MalformedRequestException;
|
|
||||||
use App\Classes\Exceptions\RequestValidationException;
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\PackingLists\Services\Containers\UpdatesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\UpdatesContainer;
|
||||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||||
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanUpdateContainer;
|
use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanUpdateContainer;
|
||||||
use App\Classes\Modules\PackingLists\DataTransferObjects\ContainerObject;
|
use App\Classes\Modules\PackingLists\DataTransferObjects\ContainerObject;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -23,8 +19,7 @@ class UpdateContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Updated Container',
|
'title' => 'Updated Container',
|
||||||
'message' => 'You have successfully updated the Container'
|
'message' => 'You have successfully updated the Container'
|
||||||
@@ -57,11 +52,11 @@ class UpdateContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws AccessForbiddenException
|
* @throws \App\Classes\Exceptions\AccessForbiddenException
|
||||||
* @throws MalformedRequestException
|
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||||
* @throws RequestValidationException
|
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
@@ -79,12 +74,6 @@ class UpdateContainerLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$query = $this->updatesContainer->execute($container, $object);
|
$query = $this->updatesContainer->execute($container, $object);
|
||||||
|
|
||||||
//no relationships
|
|
||||||
/*
|
|
||||||
return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($query));
|
return $this->resourceResponse(new ContainerResource($query));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-11
@@ -6,7 +6,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\Transports\Services\UpdatesDispatchDateTransport;
|
use App\Classes\Modules\Transports\Services\UpdatesDispatchDateTransport;
|
||||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -18,8 +17,7 @@ class UpdateDispatchDateContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Updated Dispatch Date Container',
|
'title' => 'Updated Dispatch Date Container',
|
||||||
'message' => 'You have successfully updated the Dispatch Date Container'
|
'message' => 'You have successfully updated the Dispatch Date Container'
|
||||||
@@ -51,18 +49,11 @@ class UpdateDispatchDateContainerLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
$transport = $container->transports()->first();
|
$transport = $container->transports()->first();
|
||||||
$query = $this->updatesDispatchDateTransport->execute($transport, Carbon::parse($request->input('dispatch_date')));
|
$query = $this->updatesDispatchDateTransport->execute($transport, Carbon::parse($request->input('dispatch_date')));
|
||||||
|
|
||||||
|
|
||||||
//no relationships queried
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-10
@@ -6,7 +6,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|||||||
use App\Classes\Modules\Transports\Services\UpdatesDropDateTransport;
|
use App\Classes\Modules\Transports\Services\UpdatesDropDateTransport;
|
||||||
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
|
||||||
use App\Http\Resources\ContainerResource;
|
use App\Http\Resources\ContainerResource;
|
||||||
use App\Transformers\ContainerTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -18,8 +17,7 @@ class UpdateDropDateContainerLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Updated Drop Date Container',
|
'title' => 'Updated Drop Date Container',
|
||||||
'message' => 'You have successfully updated the Drop Date Container'
|
'message' => 'You have successfully updated the Drop Date Container'
|
||||||
@@ -51,17 +49,11 @@ class UpdateDropDateContainerLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
$container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
|
||||||
$transport = $container->transports()->first();
|
$transport = $container->transports()->first();
|
||||||
$query = $this->updatesDropDateTransport->execute($transport, Carbon::parse($request->input('drop_date')));
|
$query = $this->updatesDropDateTransport->execute($transport, Carbon::parse($request->input('drop_date')));
|
||||||
|
|
||||||
//no relationship needed
|
|
||||||
/* return fractal()
|
|
||||||
->item($query, new ContainerTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
return $this->resourceResponse(new ContainerResource($container));
|
return $this->resourceResponse(new ContainerResource($container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-10
@@ -14,7 +14,6 @@ use App\Classes\ValueObjects\Constants\OrderRoleTypes;
|
|||||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
use App\Classes\ValueObjects\Constants\PackingListType;
|
||||||
|
|
||||||
use App\Http\Resources\DeliverPackingListResource;
|
use App\Http\Resources\DeliverPackingListResource;
|
||||||
use App\Transformers\DeliverPackingListTransformer;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -25,8 +24,7 @@ class CreateDeliverPackingListLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Created Deliver PackingList',
|
'title' => 'Created Deliver PackingList',
|
||||||
'message' => 'You have successfully created a new Deliver PackingList'
|
'message' => 'You have successfully created a new Deliver PackingList'
|
||||||
@@ -62,7 +60,7 @@ class CreateDeliverPackingListLogic extends AbstractControllerLogic
|
|||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$company_module = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
|
$company_module = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
|
||||||
$packing_list_id = $request->input('packing_list_id');
|
$packing_list_id = $request->input('packing_list_id');
|
||||||
@@ -84,12 +82,6 @@ class CreateDeliverPackingListLogic extends AbstractControllerLogic
|
|||||||
|
|
||||||
$deliverPackingList->packing_list_owner()->sync($packing_list_id);
|
$deliverPackingList->packing_list_owner()->sync($packing_list_id);
|
||||||
|
|
||||||
//no relationships required
|
|
||||||
/* return fractal()
|
|
||||||
->item($deliverPackingList, new DeliverPackingListTransformer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);*/
|
|
||||||
|
|
||||||
|
|
||||||
return $this->resourceResponse(new DeliverPackingListResource($deliverPackingList));
|
return $this->resourceResponse(new DeliverPackingListResource($deliverPackingList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-81
@@ -1,81 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Classes\Modules\PackingLists\ControllersLogic;
|
|
||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
||||||
use App\Classes\Modules\PackingLists\Services\DeletesPackingList;
|
|
||||||
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
|
|
||||||
use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage;
|
|
||||||
use App\Classes\Modules\PackingLists\Standards\Rules\CanDeletePackingList;
|
|
||||||
use App\Classes\ValueObjects\Constants\PackingListType;
|
|
||||||
use App\Models\PackingList;
|
|
||||||
use ErrorException;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class DeletePackingListByPackageIdLogic extends AbstractControllerLogic
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function notification():array {
|
|
||||||
return [
|
|
||||||
'title' => 'Deleted PackingList',
|
|
||||||
'message' => 'You have successfully deleted a PackingList'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** @var CanDeletePackingList */
|
|
||||||
private $canDeletePackingList;
|
|
||||||
|
|
||||||
/** @var DeletesPackingList */
|
|
||||||
private $deletesPackingList;
|
|
||||||
|
|
||||||
/** @var FetchesPackingList */
|
|
||||||
private $fetchesPackingList;
|
|
||||||
|
|
||||||
/** @var FetchesPackage */
|
|
||||||
private $fetchesPackage;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DeletePackingListByPackageIdLogic constructor.
|
|
||||||
* @param CanDeletePackingList $canDeletePackingList
|
|
||||||
* @param DeletesPackingList $deletesPackingList
|
|
||||||
* @param FetchesPackingList $fetchesPackingList
|
|
||||||
* @param FetchesPackage $fetchesPackage
|
|
||||||
*/
|
|
||||||
public function __construct(CanDeletePackingList $canDeletePackingList, DeletesPackingList $deletesPackingList, FetchesPackingList $fetchesPackingList, FetchesPackage $fetchesPackage)
|
|
||||||
{
|
|
||||||
$this->canDeletePackingList = $canDeletePackingList;
|
|
||||||
$this->deletesPackingList = $deletesPackingList;
|
|
||||||
$this->fetchesPackingList = $fetchesPackingList;
|
|
||||||
$this->fetchesPackage = $fetchesPackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Request $request
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws ErrorException
|
|
||||||
*/
|
|
||||||
public function logic(Request $request) : JsonResponse
|
|
||||||
{
|
|
||||||
$this->canDeletePackingList->passes();
|
|
||||||
|
|
||||||
$package = $this->fetchesPackage->execute(['id' => $request->route('id')]);
|
|
||||||
|
|
||||||
$packingList = $package->packingList;
|
|
||||||
|
|
||||||
$packingList = PackingList::where('reference', $packingList->reference)->get();
|
|
||||||
|
|
||||||
$childPackingList = PackingList::where('owner_type', PackingList::class)->whereIn('owner_id', $packingList->pluck('id'))->get();
|
|
||||||
|
|
||||||
$packingList->each->delete();
|
|
||||||
|
|
||||||
$childPackingList->each->delete();
|
|
||||||
|
|
||||||
return $this->response([]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -8,11 +8,9 @@ use App\Classes\Modules\PackingLists\Services\ListsPackingLists;
|
|||||||
use App\Classes\Modules\PackingLists\Standards\Rules\CanListPackingLists;
|
use App\Classes\Modules\PackingLists\Standards\Rules\CanListPackingLists;
|
||||||
use App\Http\Resources\PackingListNullOrderResource;
|
use App\Http\Resources\PackingListNullOrderResource;
|
||||||
use App\Http\Resources\PackingListResource;
|
use App\Http\Resources\PackingListResource;
|
||||||
use App\Transformers\PackageListTransformer;
|
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Spatie\Fractalistic\ArraySerializer;
|
|
||||||
|
|
||||||
class ListPackingListsLogic extends AbstractControllerLogic
|
class ListPackingListsLogic extends AbstractControllerLogic
|
||||||
{
|
{
|
||||||
@@ -20,8 +18,7 @@ class ListPackingListsLogic extends AbstractControllerLogic
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function notification(): array
|
protected function notification():array {
|
||||||
{
|
|
||||||
return [
|
return [
|
||||||
'title' => 'Retrieved PackingLists',
|
'title' => 'Retrieved PackingLists',
|
||||||
'message' => 'You have successfully retrieved a list of PackingLists'
|
'message' => 'You have successfully retrieved a list of PackingLists'
|
||||||
@@ -51,22 +48,13 @@ class ListPackingListsLogic extends AbstractControllerLogic
|
|||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws ErrorException
|
* @throws ErrorException
|
||||||
*/
|
*/
|
||||||
public function logic(Request $request): JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
$this->canListPackingLists->passes();
|
$this->canListPackingLists->passes();
|
||||||
|
|
||||||
$query = $this->listsPackingLists->execute($this->listsPackingLists->deserializeFilters($request->input('filters')));
|
$query = $this->listsPackingLists->execute($this->listsPackingLists->deserializeFilters($request->input('filters')));
|
||||||
|
|
||||||
return fractal()
|
return $this->collectionResponse(PackingListResource::collection($query));
|
||||||
->parseIncludes(['transport', 'packages'])
|
|
||||||
->collection($query, new PackageListTransformer(), "data")
|
|
||||||
->serializeWith(new ArraySerializer())
|
|
||||||
->respond(200, [], JSON_PRETTY_PRINT);
|
|
||||||
|
|
||||||
|
|
||||||
//return $this->collectionResponse(PackingListResource::collection($query));
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ namespace App\Classes\Modules\PackingLists\Processors;
|
|||||||
|
|
||||||
|
|
||||||
use App\Classes\General\Interfaces\Packable;
|
use App\Classes\General\Interfaces\Packable;
|
||||||
use App\Classes\Modules\PerfexCRM\Processors\PackingListToPerfexCRMProcessor;
|
|
||||||
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
|
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
|
||||||
use App\Classes\Modules\PackingLists\Services\CreatesPackingList;
|
use App\Classes\Modules\PackingLists\Services\CreatesPackingList;
|
||||||
use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList;
|
use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList;
|
||||||
@@ -26,20 +25,16 @@ class CreatePackingListProcessor
|
|||||||
/** @var CreatesPackingList */
|
/** @var CreatesPackingList */
|
||||||
private $createsPackingList;
|
private $createsPackingList;
|
||||||
|
|
||||||
/** @var PackingListToPerfexCRMProcessor */
|
|
||||||
private $packingListToPerfexCRMProcessor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CreatePackingListProcessor constructor.
|
* CreatePackingListProcessor constructor.
|
||||||
* @param CanCreatePackingList $canCreatePackingList
|
* @param CanCreatePackingList $canCreatePackingList
|
||||||
* @param CreatesPackingList $createsPackingList
|
* @param CreatesPackingList $createsPackingList
|
||||||
* @param PackingListToPerfexCRMProcessor $packingListToPerfexCRMProcessor
|
|
||||||
*/
|
*/
|
||||||
public function __construct(CanCreatePackingList $canCreatePackingList, CreatesPackingList $createsPackingList, PackingListToPerfexCRMProcessor $packingListToPerfexCRMProcessor)
|
public function __construct(CanCreatePackingList $canCreatePackingList, CreatesPackingList $createsPackingList)
|
||||||
{
|
{
|
||||||
$this->canCreatePackingList = $canCreatePackingList;
|
$this->canCreatePackingList = $canCreatePackingList;
|
||||||
$this->createsPackingList = $createsPackingList;
|
$this->createsPackingList = $createsPackingList;
|
||||||
$this->packingListToPerfexCRMProcessor = $packingListToPerfexCRMProcessor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,7 +51,7 @@ class CreatePackingListProcessor
|
|||||||
/** @var PackingList $packingList */
|
/** @var PackingList $packingList */
|
||||||
$packingList = $this->createsPackingList->execute($object, $packable);
|
$packingList = $this->createsPackingList->execute($object, $packable);
|
||||||
|
|
||||||
$appointee_id = $packingList->owner_id == 1 ? 2307 : $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id;
|
$appointee_id = $packingList->owner_id == 1 ? 2037 : $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id;
|
||||||
|
|
||||||
$type = $object->getType() === PackingListType::SHIPPING_PACKING_LIST ? PackingListType::SHIPPING_PACKING_LIST_REPLICA : PackingListType::WAREHOUSE_RECEIVE_LIST_REPLICA;
|
$type = $object->getType() === PackingListType::SHIPPING_PACKING_LIST ? PackingListType::SHIPPING_PACKING_LIST_REPLICA : PackingListType::WAREHOUSE_RECEIVE_LIST_REPLICA;
|
||||||
|
|
||||||
@@ -64,10 +59,6 @@ class CreatePackingListProcessor
|
|||||||
$object = new PackingListObject($object->getReference().'_01', $appointee_id, $type, ApprovalStatus::PENDING_SUBMISSION);
|
$object = new PackingListObject($object->getReference().'_01', $appointee_id, $type, ApprovalStatus::PENDING_SUBMISSION);
|
||||||
$this->createsPackingList->execute($object, $packingList);
|
$this->createsPackingList->execute($object, $packingList);
|
||||||
|
|
||||||
if(config('perfexcrm.is_enabled') == 'true'){
|
|
||||||
$this->packingListToPerfexCRMProcessor->execute($packingList);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $packingList;
|
return $packingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user