diff --git a/app/Classes/Jobs/InitializePerfexCRM.php b/app/Classes/Jobs/InitializePerfexCRM.php
deleted file mode 100644
index ac77f87e..00000000
--- a/app/Classes/Jobs/InitializePerfexCRM.php
+++ /dev/null
@@ -1,33 +0,0 @@
-initialPerfexCRMObject = $initialPerfexCRMObject;
- }
-
- public function handle()
- {
- (App()->make(InitializePerfexCRMProcessor::class))->execute($this->initialPerfexCRMObject);
- }
-}
diff --git a/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateTaskPerfexCRMObject.php b/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateTaskPerfexCRMObject.php
index 8923ec01..6c6354f1 100644
--- a/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateTaskPerfexCRMObject.php
+++ b/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateTaskPerfexCRMObject.php
@@ -36,7 +36,13 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
/** @var string */
private $department;
- public function __construct(string $email, string $name, string $description, string $leadId, string $projectId, string $milestoneId, string $reference, string $onTaskCompletion, string $status, string $department)
+ /** @var string */
+ private $priority;
+
+ /** @var string */
+ private $duedate;
+
+ public function __construct(string $email, string $name, string $description, string $leadId, string $projectId, string $milestoneId, string $reference, string $onTaskCompletion, string $status, string $department, string $priority, string $duedate)
{
$this->email = $email;
$this->name = $name;
@@ -48,6 +54,8 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
$this->onTaskCompletion = $onTaskCompletion;
$this->status = $status;
$this->department = $department;
+ $this->priority = $priority;
+ $this->duedate = $duedate;
}
/**
@@ -134,4 +142,20 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
{
return $this->department;
}
+
+ /**
+ * @return string
+ */
+ public function getPriority(): string
+ {
+ return $this->priority;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDuedate(): string
+ {
+ return $this->duedate;
+ }
}
diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php
index f70760f8..c16a4e1b 100644
--- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php
+++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php
@@ -35,6 +35,8 @@ class CreatePerfexCRMTaskProcessor
$createTaskPerfexCRMObject->getOnTaskCompletion(),
$createTaskPerfexCRMObject->getDepartment(),
$createTaskPerfexCRMObject->getStatus(),
+ $createTaskPerfexCRMObject->getPriority(),
+ $createTaskPerfexCRMObject->getDuedate()
);
return true;
}
diff --git a/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php
deleted file mode 100644
index 82ef0d36..00000000
--- a/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php
+++ /dev/null
@@ -1,195 +0,0 @@
-convertsPerfexCRMLeadToCustomer = $convertsPerfexCRMLeadToCustomer;
- $this->createsPerfexCRMCustomerProject = $createsPerfexCRMCustomerProject;
- $this->createsPerfexCRMMilestone = $createsPerfexCRMMilestone;
- $this->createsPerfexCRMTask = $createsPerfexCRMTask;
- $this->fetchesPerfexCRMProject = $fetchesPerfexCRMProject;
- $this->fetchesPerfexCRMMilestone = $fetchesPerfexCRMMilestone;
- $this->fetchesPerfexCRMTask = $fetchesPerfexCRMTask;
- $this->createsPerfexCRMCustomer = $createsPerfexCRMCustomer;
- $this->createsPerfexCRMCustomerContact = $createsPerfexCRMCustomerContact;
- $this->updatesPerfexCRMCustomer = $updatesPerfexCRMCustomer;
- }
-
- /**
- * @param InitialPerfexCRMObject $initialPerfexCRMObject
- * @return null|object
- * @throws \App\Classes\Exceptions\MalformedRequestException
- */
- public function execute(InitialPerfexCRMObject $initialPerfexCRMObject) {
-
- // Customer has to exist first before Project can appear under it
- // Check with Perfex CRM, if this user (email) was previously a lead, should automatically now become a customer
- $crmCompany = $initialPerfexCRMObject->getCompanyName();
- $result = $this->convertsPerfexCRMLeadToCustomer->execute($initialPerfexCRMObject->getContactEmail());
- if(isset($result->payload)){
- $crmClientId = $result->payload['client_id'];
- if (isset($result->payload['company'])) {
- $crmCompany = $result->payload['company'];
- }
- }
- else{
- //if reach this point, this means this user is not a official customer nor is a lead in crm
- //Create Customer has 2 parts: Create Company (client), Create Contact
- $result = $this->createsPerfexCRMCustomer->execute($crmCompany);
- if(is_null($result)){
- $crmCompany = $crmCompany." 2";
- $result = $this->createsPerfexCRMCustomer->execute($crmCompany);
- }
-
- $crmClientId = $result->payload['clientId'];
-
- $customerContactObject = new CustomerContactObject(
- $crmClientId,
- $initialPerfexCRMObject->getContactName(),
- $initialPerfexCRMObject->getContactName(),
- $initialPerfexCRMObject->getContactEmail(),
- "pU^T@sC#9Q",
- "on",
- "on"
- );
- $result = $this->createsPerfexCRMCustomerContact->execute($customerContactObject);
- }
-
- //Update custom fields to identify company reference from exchange or shipping portal
- $value_exists = false;
- if (isset($result->payload['customfields'])) {
- foreach ($result->payload['customfields'] as $element) {
- if ($element['value'] === $initialPerfexCRMObject->getCompanyReference()) {
- $value_exists = true;
- break;
- }
- }
- }
- if(!$value_exists);
- {
- $result = $this->updatesPerfexCRMCustomer->execute($crmClientId, $crmCompany, $initialPerfexCRMObject->getCompanyReference());
- }
-
- // Get existing or create project, project has to exist first before milestone can appear under it
- $result = $this->createsPerfexCRMCustomerProject->execute($initialPerfexCRMObject->getProjectName(), $initialPerfexCRMObject->getProjectStatus(), $crmClientId);
- if(isset($result->payload)){ //Here means project creation successful
- $projectId = $result->payload['project_id'];
- }
- else{
- $projectId = $this->fetchesPerfexCRMProject->execute($initialPerfexCRMObject->getProjectName(), $crmClientId)->id;
- }
-
- $tasks = $initialPerfexCRMObject->getTaskNames();
- if(count($tasks) > 0){
-
- //Create tasks with milestone
- for($count=0; $count < count($tasks); $count++) {
- $milestoneId = 0; //By default milestoneId is 0, having this set at individual task is optional
- if($tasks[$count]['milestone'] != "") //Create milestone only if it is defined
- {
- // Get existing or create milestone, milestone has to exist first before task can appear under it
- $result = $this->createsPerfexCRMMilestone->execute($tasks[$count]['milestone'], $projectId, $count);
- if(isset($result->payload)){
- $milestoneId = $result->payload['milestone_id'];
- }
- else{
- $milestone = $this->fetchesPerfexCRMMilestone->execute($tasks[$count]['milestone'], $projectId);
- $array = json_decode(json_encode($milestone), true);
- $milestoneId = $array[0]['id'];
- }
- }
-
- $taskStatus = PerfexCRMTaskStatus::NOT_STARTED;
- if($tasks[$count]['status'] != ''){
- $taskStatus = $tasks[$count]['status'];
- }
-
- // Get existing or create task
- $result = $this->createsPerfexCRMTask->execute($tasks[$count]['name'], $tasks[$count]['description'], '', $milestoneId, $projectId, $tasks[$count]['reference'], $tasks[$count]['on_task_completion'],$tasks[$count]['department'], $taskStatus);
- if(is_null($result)){
- break; //Breaking the rest of the tasks in array assuming that they are all created as a batch previously
- }
- }
- }
- return true;
- }
-
-}
diff --git a/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php
index 0be1cd0d..5445914c 100644
--- a/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php
+++ b/app/Classes/Modules/PerfexCRM/Processors/PackingListToPerfexCRMProcessor.php
@@ -20,7 +20,6 @@ class PackingListToPerfexCRMProcessor
{
try {
if($packingList->owner instanceof \App\Models\Order) {
- Log::error(json_encode($packingList));
$order = $packingList->owner;
$companyModule = $order->companyModule()->first();
$connection = $companyModule->inviters()->withPivot('invitee_reference')->first();
diff --git a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php
index 4e276a47..6049fac0 100644
--- a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php
+++ b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php
@@ -3,7 +3,6 @@
namespace App\Classes\Modules\PerfexCRM\Processors;
use App\Classes\Modules\PerfexCRM\Processors\UpdatePerfexCRMProcessor;
-use App\Classes\Modules\PerfexCRM\Processors\InitializePerfexCRMProcessor;
use App\Classes\Modules\PerfexCRM\Services\Init;
use App\Classes\Modules\Companies\Services\FetchesCompany;
use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject;
@@ -26,19 +25,15 @@ class TransactionToPerfexCRMProcessor
/** @var UpdatePerfexCRMProcessor */
private $updatePerfexCRMProcessor;
- /** @var InitializePerfexCRMProcessor */
- private $initializePerfexCRMProcessor;
/**
* TransactionToPerfexCRMProcessor constructor.
* @param UpdatePerfexCRMProcessor $updatePerfexCRMProcessor
- * @param InitializePerfexCRMProcessor $initializePerfexCRMProcessor
* @param FetchesCompany $fetchesCompany
*/
- public function __construct(UpdatePerfexCRMProcessor $updatePerfexCRMProcessor, InitializePerfexCRMProcessor $initializePerfexCRMProcessor, FetchesCompany $fetchesCompany)
+ public function __construct(UpdatePerfexCRMProcessor $updatePerfexCRMProcessor, FetchesCompany $fetchesCompany)
{
$this->updatePerfexCRMProcessor = $updatePerfexCRMProcessor;
- $this->initializePerfexCRMProcessor = $initializePerfexCRMProcessor;
$this->fetchesCompany = $fetchesCompany;
}
diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php
index 4e9bc015..0e804ea8 100644
--- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php
+++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php
@@ -214,11 +214,11 @@ class UpdatePerfexCRMProcessor
// if($taskStatus != PerfexCRMTaskStatus::NOT_STARTED && $result->payload[0]['status'] == PerfexCRMTaskStatus::NOT_STARTED)
// {
// $task = $result->payload[0];
- // $result = $this->updatesPerfexCRMTask->execute($task['id'], $task['name'], $task['milestone'], $task['rel_id'], $taskStatus);
+ // $result = $this->updatesPerfexCRMTask->execute($task['id'], $task['name'], $task['milestone'], $task['rel_id'], $taskStatus, $task['startdate'], is_null($task['duedate']) ? '': $task['duedate']);
// }
}
else{
- $result = $this->createsPerfexCRMTask->execute($tasks[$count]['name'], $tasks[$count]['description'], '', $milestoneId, $projectId, $tasks[$count]['reference'], $tasks[$count]['on_task_completion'], $tasks[$count]['department'], $taskStatus);
+ $result = $this->createsPerfexCRMTask->execute($tasks[$count]['name'], $tasks[$count]['description'], '', $milestoneId, $projectId, $tasks[$count]['reference'], $tasks[$count]['on_task_completion'], $tasks[$count]['department'], $taskStatus, $tasks[$count]['priority'], $tasks[$count]['duedate']);
}
}
}
diff --git a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php
index 8d75989a..f2f461a4 100644
--- a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php
+++ b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php
@@ -15,13 +15,16 @@ class CreatesPerfexCRMTask
* @param string $leadId
* @param string $milestoneId
* @param string $projectId
- * @param string $reference, default: ''
- * @param string $on_task_completion, default: ''
- * @param string $status, default: 1
+ * @param string $reference
+ * @param string $on_task_completion
+ * @param string $department
+ * @param string $status
+ * @param string $priority
+ * @param string $duedate
* @return null|object
* @throws MalformedRequestException
*/
- public function execute(string $taskName, string $taskDescription, string $leadId, string $milestoneId, string $projectId, string $reference = '', string $on_task_completion = '', string $department = '', string $status = "1") {
+ public function execute(string $taskName, string $taskDescription, string $leadId, string $milestoneId, string $projectId, string $reference, string $on_task_completion, string $department, string $status, string $priority, string $duedate) {
try{
$custom_fields = [];
if($department != ""){
@@ -43,7 +46,9 @@ class CreatesPerfexCRMTask
'is_system_created' => 1,
'reference' => $reference,
'on_task_completion' => $on_task_completion,
- 'custom_fields' => $custom_fields
+ 'custom_fields' => $custom_fields,
+ 'priority' => $priority,
+ 'duedate' => date('Y-m-d', strtotime('+' . $duedate . ' days')),
];
if($leadId != '') {
@@ -58,7 +63,9 @@ class CreatesPerfexCRMTask
'is_system_created' => 1,
'reference' => $reference,
'on_task_completion' => $on_task_completion,
- 'custom_fields' => $custom_fields
+ 'custom_fields' => $custom_fields,
+ 'priority' => $priority,
+ 'duedate' => date('Y-m-d', strtotime('+' . $duedate . ' days')),
];
}
diff --git a/app/Classes/ValueObjects/Constants/PerfexCRMTaskPriority.php b/app/Classes/ValueObjects/Constants/PerfexCRMTaskPriority.php
new file mode 100644
index 00000000..ead37aba
--- /dev/null
+++ b/app/Classes/ValueObjects/Constants/PerfexCRMTaskPriority.php
@@ -0,0 +1,17 @@
+ '',
'on_task_completion' => '',
'department' => '',
- 'status' => PerfexCRMTaskStatus::COMPLETED
+ 'status' => PerfexCRMTaskStatus::COMPLETED,
+ 'priority' => PerfexCRMTaskPriority::DEFAULT,
+ 'duedate' => 0
];
public const TASK_POST_PAYMENT_1 = [
@@ -31,7 +33,9 @@ class PerfexCRMTasks
'reference' => 'TASK_POST_PAYMENT_1',
'on_task_completion' => 'TASK_POST_PAYMENT_2',
'department' => 'Accounts',
- 'status' => PerfexCRMTaskStatus::IN_PROGRESS
+ 'status' => PerfexCRMTaskStatus::IN_PROGRESS,
+ 'priority' => PerfexCRMTaskPriority::HIGH,
+ 'duedate' => 0
];
public const TASK_POST_PAYMENT_2 = [
'name' => 'Approve Payment',
@@ -47,7 +51,9 @@ class PerfexCRMTasks
'reference' => 'TASK_POST_PAYMENT_2',
'on_task_completion' => 'TASK_POST_PAYMENT_3',
'department' => 'Accounts',
- 'status' => ''
+ 'status' => '',
+ 'priority' => PerfexCRMTaskPriority::HIGH,
+ 'duedate' => 0
];
public const TASK_POST_PAYMENT_3 = [
'name' => 'Issue Shipping Autocount Invoince',
@@ -63,7 +69,21 @@ class PerfexCRMTasks
'reference' => 'TASK_POST_PAYMENT_3',
'on_task_completion' => 'TASK_POST_PAYMENT_4',
'department' => 'Accounts',
- 'status' => ''
+ 'status' => '',
+ 'priority' => PerfexCRMTaskPriority::MEDIUM,
+ 'duedate' => 1
+ ];
+ public const TASK_POST_PAYMENT_3_1 = [
+ 'name' => 'Issue Shipping Autocount OR',
+ 'description' => '○ Purpose: To issue an invoice for the customer\'s payment in accounting software.
+ ○ Outcomes: An invoice will be issued in accounting software for the customer\'s payment.
',
+ 'milestone' => '',
+ 'reference' => 'TASK_POST_PAYMENT_3_1',
+ 'on_task_completion' => 'TASK_POST_PAYMENT_4',
+ 'department' => 'Accounts',
+ 'status' => '',
+ 'priority' => PerfexCRMTaskPriority::DEFAULT,
+ 'duedate' => 0
];
public const TASK_POST_PAYMENT_4 = [
'name' => 'Knockoff Invoice',
@@ -79,7 +99,9 @@ class PerfexCRMTasks
'reference' => 'TASK_POST_PAYMENT_4',
'on_task_completion' => '',
'department' => 'Accounts',
- 'status' => ''
+ 'status' => '',
+ 'priority' => PerfexCRMTaskPriority::MEDIUM,
+ 'duedate' => 1
];
public const TASK_LOADED_CONTAINER_1 = [
@@ -94,7 +116,9 @@ class PerfexCRMTasks
'reference' => 'TASK_LOADED_CONTAINER_1',
'on_task_completion' => 'TASK_LOADED_CONTAINER_2',
'department' => 'Operations',
- 'status' => PerfexCRMTaskStatus::IN_PROGRESS
+ 'status' => PerfexCRMTaskStatus::IN_PROGRESS,
+ 'priority' => PerfexCRMTaskPriority::HIGH,
+ 'duedate' => 1
];
public const TASK_LOADED_CONTAINER_2 = [
@@ -108,7 +132,9 @@ class PerfexCRMTasks
'reference' => 'TASK_LOADED_CONTAINER_2',
'on_task_completion' => '',
'department' => 'Customer Services',
- 'status' => ''
+ 'status' => '',
+ 'priority' => PerfexCRMTaskPriority::HIGH,
+ 'duedate' => 1
];
@@ -126,6 +152,8 @@ class PerfexCRMTasks
'reference' => 'TASK_IDENTIFICATION_1',
'on_task_completion' => '',
'department' => 'Operations',
- 'status' => PerfexCRMTaskStatus::IN_PROGRESS
+ 'status' => PerfexCRMTaskStatus::IN_PROGRESS,
+ 'priority' => PerfexCRMTaskPriority::DEFAULT,
+ 'duedate' => 0
];
}
diff --git a/docker-setup/nginx/default.conf b/docker-setup/nginx/default.conf
index 0f052b34..d1392c4d 100644
--- a/docker-setup/nginx/default.conf
+++ b/docker-setup/nginx/default.conf
@@ -23,5 +23,9 @@ server {
fastcgi_intercept_errors on;
fastcgi_keep_conn on;
fastcgi_param PHP_VALUE "auto_prepend_file= \n allow_url_include=Off \n output_buffering=Off \n output_buffering=4096";
+ proxy_send_timeout 3600;
+ proxy_read_timeout 3600;
+ fastcgi_send_timeout 3600;
+ fastcgi_read_timeout 3600;
}
}