mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
CRM add department custom field to task + PDOException fix
This commit is contained in:
@@ -57,3 +57,7 @@ BILLPLZ_API_KEY="d25c6170-dc00-45cd-b226-d702b957870c"
|
||||
BILLPLZ_X_SIGNATURE_KEY="S-HdAU6QDubUrMErxJ-PCpgw"
|
||||
BILLPLZ_COLLECTION_ID="t0cggbdd"
|
||||
BILLPLZ_WALLET_COLLECTION_ID="t0cggbdd"
|
||||
|
||||
PERFEXCRM_BASE_URL=""
|
||||
PERFEXCRM_API_KEY=""
|
||||
PERFEXCRM_IS_ENABLED="false"
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\DataTransferObjects;
|
||||
|
||||
use App\Classes\General\Interfaces\DataTransferObject;
|
||||
use App\Classes\ValueObjects\Constants\Countries;
|
||||
use App\Models\Company;
|
||||
use App\Models\Segment;
|
||||
|
||||
class CompanySegmentObject implements DataTransferObject
|
||||
{
|
||||
/** @var Company */
|
||||
private $company;
|
||||
|
||||
/** @var Segment */
|
||||
private $segment;
|
||||
|
||||
|
||||
/**
|
||||
* CompanySegmentObject constructor.
|
||||
* @param Company $company
|
||||
* @param Segment $segment
|
||||
*/
|
||||
public function __construct(Company $company, Segment $segment)
|
||||
{
|
||||
$this->company = $company;
|
||||
$this->segment = $segment;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Company
|
||||
*/
|
||||
public function getCompany(): Company
|
||||
{
|
||||
return $this->company;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Segment
|
||||
*/
|
||||
public function getSegment(): Segment
|
||||
{
|
||||
return $this->segment;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
namespace App\Classes\Modules\Companies\Processors;
|
||||
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanySegmentObject;
|
||||
use App\Classes\Modules\Companies\Services\AssignsCompanyToSegment;
|
||||
use App\Classes\Modules\Companies\Standards\Rules\CanAssignSegment;
|
||||
use App\Classes\Modules\Segments\Services\FetchesSegment;
|
||||
use App\Classes\ValueObjects\Constants\SegmentConstants;
|
||||
use App\Models\Company;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class AssignSegmentProcessor
|
||||
{
|
||||
@@ -47,7 +49,15 @@ class AssignSegmentProcessor
|
||||
|
||||
$segment = $this->fetchesSegment->execute(['id' => $segmentId]);
|
||||
|
||||
$this->canAssignSegment->passes();
|
||||
$companySegment = new CompanySegmentObject($company, $segment);
|
||||
|
||||
try
|
||||
{
|
||||
$this->canAssignSegment->passes($companySegment);
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return $company;
|
||||
}
|
||||
|
||||
return $this->assignsSegment->execute($company, $segment);
|
||||
|
||||
|
||||
@@ -4,11 +4,22 @@ namespace App\Classes\Modules\Companies\Standards\Rules;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractRule;
|
||||
use App\Classes\Modules\SegmentConstants\DataTransferObjects\SegmentConstantObject;
|
||||
use App\Classes\Modules\Segments\DataTransferObjects\ConstantObject;
|
||||
use App\Classes\Modules\Companies\Standards\Validators\CompanyToSegmentValidation;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanySegmentObject;
|
||||
|
||||
class CanAssignSegment extends AbstractRule
|
||||
{
|
||||
/** @var CompanyToSegmentValidation */
|
||||
private $companyToSegmentValidation;
|
||||
|
||||
/**
|
||||
* CanAssignSegment constructor.
|
||||
* @param CompanyToSegmentValidation $companyToSegmentValidation
|
||||
*/
|
||||
public function __construct(CompanyToSegmentValidation $companyToSegmentValidation)
|
||||
{
|
||||
$this->companyToSegmentValidation = $companyToSegmentValidation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
@@ -20,16 +31,17 @@ class CanAssignSegment extends AbstractRule
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ConstantObject $object
|
||||
* @param CompanySegmentObject $object
|
||||
* @return bool
|
||||
* @throws \App\Classes\Exceptions\RequestValidationException
|
||||
*/
|
||||
protected function validators($object): bool
|
||||
{
|
||||
return true;
|
||||
return $this->companyToSegmentValidation->validate($object);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ConstantObject $object
|
||||
* @param CompanySegmentObject $object
|
||||
* @return bool
|
||||
*/
|
||||
protected function criteria($object): bool
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Companies\Standards\Validators;
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractValidation;
|
||||
use App\Classes\Modules\Companies\DataTransferObjects\CompanySegmentObject;
|
||||
use App\Models\SegmentCompany;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class CompanyToSegmentValidation extends AbstractValidation
|
||||
{
|
||||
/**
|
||||
* @param CompanySegmentObject $object
|
||||
* @return array
|
||||
*/
|
||||
protected function data($object): array
|
||||
{
|
||||
return[
|
||||
'company_segment' => $object
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function rules(): array
|
||||
{
|
||||
return [
|
||||
'company_segment' => [
|
||||
'required',
|
||||
function ($attribute, $obj, $fail) {
|
||||
// $result = SegmentCompany::where('segment_id', $obj->getSegment()->id)->where('company_id', $obj->getCompany()->id)->first();
|
||||
$result = $obj->getCompany()->segments()->where('segment_id', $obj->getSegment()->id)->first();
|
||||
Log::info('SegmentCompany: '.json_encode($result));
|
||||
if (!is_null($result)) {
|
||||
$fail('The segment company already exists');
|
||||
}
|
||||
},
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function messages(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -33,8 +33,10 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
|
||||
/** @var string */
|
||||
private $status;
|
||||
|
||||
/** @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)
|
||||
public function __construct(string $email, string $name, string $description, string $leadId, string $projectId, string $milestoneId, string $reference, string $onTaskCompletion, string $status, string $department)
|
||||
{
|
||||
$this->email = $email;
|
||||
$this->name = $name;
|
||||
@@ -45,6 +47,7 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
|
||||
$this->reference = $reference;
|
||||
$this->onTaskCompletion = $onTaskCompletion;
|
||||
$this->status = $status;
|
||||
$this->department = $department;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -124,4 +127,11 @@ class CreateTaskPerfexCRMObject implements DataTransferObject
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDepartment(): string
|
||||
{
|
||||
return $this->department;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ class CreatePerfexCRMTaskProcessor
|
||||
$createTaskPerfexCRMObject->getProjectId(),
|
||||
$createTaskPerfexCRMObject->getReference(),
|
||||
$createTaskPerfexCRMObject->getOnTaskCompletion(),
|
||||
$createTaskPerfexCRMObject->getDepartment(),
|
||||
$createTaskPerfexCRMObject->getStatus(),
|
||||
);
|
||||
return true;
|
||||
|
||||
@@ -184,7 +184,7 @@ class InitializePerfexCRMProcessor
|
||||
}
|
||||
|
||||
// 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'], $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);
|
||||
if(is_null($result)){
|
||||
break; //Breaking the rest of the tasks in array assuming that they are all created as a batch previously
|
||||
}
|
||||
|
||||
@@ -28,7 +28,8 @@ class NewLeadTaskToPerfexCRMProcessor
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
PerfexCRMTasks::TASK_IDENTIFICATION_1['status']
|
||||
PerfexCRMTasks::TASK_IDENTIFICATION_1['status'],
|
||||
PerfexCRMTasks::TASK_IDENTIFICATION_1['department']
|
||||
);
|
||||
|
||||
CreatePerfexCRMSingleTask::dispatch($createTaskPerfexCRMObject);
|
||||
|
||||
@@ -199,7 +199,7 @@ class UpdatePerfexCRMProcessor
|
||||
}
|
||||
|
||||
// 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'], $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);
|
||||
if(is_null($result)){
|
||||
break; //Breaking the rest of the tasks in array assuming that they are all created as a batch previously
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Classes\Modules\PerfexCRM\Services;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use App\Classes\Exceptions\MalformedRequestException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Classes\ValueObjects\Constants\PerfexCRMCustomFields;
|
||||
|
||||
class CreatesPerfexCRMTask
|
||||
{
|
||||
@@ -20,8 +21,17 @@ class CreatesPerfexCRMTask
|
||||
* @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 $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 = "1") {
|
||||
try{
|
||||
$custom_fields = [];
|
||||
if($department != ""){
|
||||
$custom_fields = [
|
||||
"tasks" => [
|
||||
PerfexCRMCustomFields::TASKS_DEPARTMENT => $department
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
$data = [
|
||||
'name' => $taskName,
|
||||
'description' => $taskDescription,
|
||||
@@ -32,7 +42,8 @@ class CreatesPerfexCRMTask
|
||||
'status' => $status,
|
||||
'is_system_created' => 1,
|
||||
'reference' => $reference,
|
||||
'on_task_completion' => $on_task_completion
|
||||
'on_task_completion' => $on_task_completion,
|
||||
'custom_fields' => $custom_fields
|
||||
];
|
||||
|
||||
if($leadId != '') {
|
||||
@@ -46,7 +57,8 @@ class CreatesPerfexCRMTask
|
||||
'status' => $status,
|
||||
'is_system_created' => 1,
|
||||
'reference' => $reference,
|
||||
'on_task_completion' => $on_task_completion
|
||||
'on_task_completion' => $on_task_completion,
|
||||
'custom_fields' => $custom_fields
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Classes\Modules\PerfexCRM\Services;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use App\Classes\Exceptions\MalformedRequestException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Classes\ValueObjects\Constants\PerfexCRMCustomFields;
|
||||
|
||||
class UpdatesPerfexCRMCustomer
|
||||
{
|
||||
@@ -19,7 +20,7 @@ class UpdatesPerfexCRMCustomer
|
||||
try{
|
||||
$custom_fields = [
|
||||
"customers" => [
|
||||
1 => $companyReference
|
||||
PerfexCRMCustomFields::CUSTOMERS_EXCHANGE_REFERENCE => $companyReference
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Classes\Modules\PerfexCRM\Services;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use App\Classes\Exceptions\MalformedRequestException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Classes\ValueObjects\Constants\PerfexCRMCustomFields;
|
||||
|
||||
class UpdatesPerfexCRMLead
|
||||
{
|
||||
@@ -18,7 +19,7 @@ class UpdatesPerfexCRMLead
|
||||
try{
|
||||
$custom_fields = [
|
||||
"leads" => [
|
||||
3 => $companyReference
|
||||
PerfexCRMCustomFields::LEADS_EXCHANGE_REFERENCE => $companyReference
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\ValueObjects\Constants;
|
||||
|
||||
final class PerfexCRMCustomFields {
|
||||
|
||||
public const CUSTOMERS_EXCHANGE_REFERENCE = 1;
|
||||
|
||||
public const CUSTOMERS_SHIPPING_PORTAL_REFERENCE = 2;
|
||||
|
||||
public const LEADS_EXCHANGE_REFERENCE = 3;
|
||||
|
||||
public const LEADS_SHIPPING_PORTAL_REFERENCE = 4;
|
||||
|
||||
public const TICKETS_CUSTOM_TAGS = 5;
|
||||
|
||||
public const TASKS_DEPARTMENT = 6;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ class PerfexCRMTasks
|
||||
'milestone' => 'MILESTONE 1 - Customer Paid',
|
||||
'reference' => '',
|
||||
'on_task_completion' => '',
|
||||
'department' => '',
|
||||
'status' => PerfexCRMTaskStatus::COMPLETED
|
||||
];
|
||||
|
||||
@@ -26,6 +27,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_1',
|
||||
'on_task_completion' => 'TASK_1_DAY_TRANSFER_2',
|
||||
'department' => 'Accounts',
|
||||
'status' => PerfexCRMTaskStatus::IN_PROGRESS
|
||||
];
|
||||
public const TASK_1_DAY_TRANSFER_2 = [
|
||||
@@ -43,6 +45,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_2',
|
||||
'on_task_completion' => 'TASK_1_DAY_TRANSFER_3',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1_DAY_TRANSFER_3 = [
|
||||
@@ -58,6 +61,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_3',
|
||||
'on_task_completion' => 'TASK_1_DAY_TRANSFER_4',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1_DAY_TRANSFER_4 = [
|
||||
@@ -73,6 +77,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_4',
|
||||
'on_task_completion' => 'TASK_1_DAY_TRANSFER_5',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1_DAY_TRANSFER_5 = [
|
||||
@@ -88,6 +93,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_5',
|
||||
'on_task_completion' => 'TASK_1_DAY_TRANSFER_6',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1_DAY_TRANSFER_6 = [
|
||||
@@ -103,6 +109,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1_DAY_TRANSFER_6',
|
||||
'on_task_completion' => '',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
|
||||
@@ -119,6 +126,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_1',
|
||||
'on_task_completion' => 'TASK_3_DAY_TRANSFER_2',
|
||||
'department' => 'Accounts',
|
||||
'status' => PerfexCRMTaskStatus::IN_PROGRESS
|
||||
];
|
||||
public const TASK_3_DAY_TRANSFER_2 = [
|
||||
@@ -136,6 +144,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_2',
|
||||
'on_task_completion' => 'TASK_3_DAY_TRANSFER_3',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_3_DAY_TRANSFER_3 = [
|
||||
@@ -151,6 +160,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_3',
|
||||
'on_task_completion' => 'TASK_3_DAY_TRANSFER_4',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_3_DAY_TRANSFER_4 = [
|
||||
@@ -166,6 +176,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_4',
|
||||
'on_task_completion' => 'TASK_3_DAY_TRANSFER_5',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_3_DAY_TRANSFER_5 = [
|
||||
@@ -181,6 +192,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_5',
|
||||
'on_task_completion' => 'TASK_3_DAY_TRANSFER_6',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_3_DAY_TRANSFER_6 = [
|
||||
@@ -196,6 +208,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_3_DAY_TRANSFER_6',
|
||||
'on_task_completion' => '',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
|
||||
@@ -214,6 +227,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_1',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_2',
|
||||
'department' => 'Accounts',
|
||||
'status' => PerfexCRMTaskStatus::IN_PROGRESS
|
||||
];
|
||||
public const TASK_1688_PAYMENT_2 = [
|
||||
@@ -231,6 +245,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_2',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_3',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_3 = [
|
||||
@@ -246,6 +261,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_3',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_4',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_4 = [
|
||||
@@ -261,6 +277,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_4',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_5',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_5 = [
|
||||
@@ -277,6 +294,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_5',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_6',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_6 = [
|
||||
@@ -292,6 +310,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_6',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_7',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_7 = [
|
||||
@@ -309,6 +328,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_7',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_8',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_8 = [
|
||||
@@ -324,6 +344,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_8',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_9',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_9 = [
|
||||
@@ -339,6 +360,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_9',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_10',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_10 = [
|
||||
@@ -354,6 +376,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_10',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_11',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_11 = [
|
||||
@@ -369,6 +392,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_11',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_12',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_12 = [
|
||||
@@ -384,6 +408,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_12',
|
||||
'on_task_completion' => 'TASK_1688_PAYMENT_13',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
public const TASK_1688_PAYMENT_13 = [
|
||||
@@ -399,6 +424,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_1688_PAYMENT_13',
|
||||
'on_task_completion' => '',
|
||||
'department' => 'Operations',
|
||||
'status' => ''
|
||||
];
|
||||
|
||||
@@ -417,6 +443,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_PURCHASE_ORDER_1',
|
||||
'on_task_completion' => 'TASK_PURCHASE_ORDER_2',
|
||||
'department' => 'Operations',
|
||||
'status' => PerfexCRMTaskStatus::IN_PROGRESS
|
||||
];
|
||||
|
||||
@@ -433,6 +460,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_PURCHASE_ORDER_2',
|
||||
'on_task_completion' => '',
|
||||
'department' => 'Accounts',
|
||||
'status' => ''
|
||||
];
|
||||
|
||||
@@ -450,6 +478,7 @@ class PerfexCRMTasks
|
||||
'milestone' => '',
|
||||
'reference' => 'TASK_IDENTIFICATION_1',
|
||||
'on_task_completion' => '',
|
||||
'department' => 'Operations',
|
||||
'status' => PerfexCRMTaskStatus::IN_PROGRESS
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user