Merge remote-tracking branch 'origin/master'

This commit is contained in:
omair saleh
2021-08-12 15:01:38 +08:00
14 changed files with 95 additions and 34 deletions
@@ -9,8 +9,6 @@ class OrderStepsObject implements DataTransferObject
{
private $id;
private $order_id;
private $appointee_id;
private $reference;
@@ -27,9 +25,8 @@ class OrderStepsObject implements DataTransferObject
private $hash_id;
public function __construct(int $order_id, int $appointee_id, string $reference, bool $primary, float $sequence, int $status, int $contract_status, ?string $completed_date, int $id=0, ?string $hash_id)
public function __construct(int $appointee_id, string $reference, bool $primary, float $sequence, int $status, int $contract_status, ?string $completed_date, int $id=0, ?string $hash_id)
{
$this->order_id = $order_id;
$this->appointee_id = $appointee_id;
$this->reference = $reference;
$this->primary = $primary;
@@ -43,11 +40,6 @@ class OrderStepsObject implements DataTransferObject
$this->hash_id = $hash_id;
}
public function getOrderId(): int
{
return $this->order_id;
}
public function getAppointeeId(): int
{
return $this->appointee_id;
@@ -43,7 +43,7 @@ class CompletesOrderStepProcessor
$orderStep = $this->fetchesOrderStep->getRepository()->where('id', $request->get('id'))->first();
$contractEntity = $orderStep->orderRole()->where('order_id',$orderStep->order_id)->first();
$contractEntity = $orderStep->orderRole()->where('order_id',$orderStep->owner_id)->first();
$obligation_hash_id = $orderStep->unity_hash_id;
$contract_entity_signature = $contractEntity->role_signature;
@@ -53,7 +53,6 @@ class CompletesOrderStepProcessor
//Unity Contract Obligation Completed Status = 3
if(isset($completed->status) && $completed->status == OrderStatus::COMPLETE){
$orderStepObject = new OrderStepsObject(
$orderStep->order->id,
$contractEntity->company_module_id,
$orderStep->reference,
true,
@@ -37,11 +37,11 @@ class CreateOrderStepsProcessor
public function execute(Model $order, string $currentStep, $appointee_id){
$order_steps_object = new OrderStepsObject($order->id, $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null);
$order_steps_object = new OrderStepsObject( $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null);
$this->canCreateOrderStep->passes($order_steps_object);
return $this->createsOrderSteps->execute($order_steps_object);
return $this->createsOrderSteps->execute($order, $order_steps_object);
}
}
@@ -47,8 +47,7 @@ class GenerateOrderStepsProcessor
foreach($obligations as $step){
$orderSteps[] = new OrderStepsObject(
$order->id,
$orderRoles[0]->company_module_id,
$orderRoles[0]->company_module_id,
$step->name,
true,
$step->sequence??0,
@@ -31,7 +31,7 @@ class UpdateOrderStepsProcessor
public function execute(string $currentStep){
$orderStepsObject = new OrderStepsObject(0,0,$currentStep, 0, 0, 1, 1, null, 0, null);
$orderStepsObject = new OrderStepsObject(0,$currentStep, 0, 0, 1, 1, null, 0, null);
$this->canUpdateOrderStep->passes($orderStepsObject);
@@ -3,6 +3,7 @@
namespace App\Classes\Modules\OrderSteps\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
use App\Models\OrderStep;
use App\Models\Order;
@@ -15,7 +16,6 @@ class CreatesManyOrderSteps extends AbstractUpdateRecord
$orderStepsModel=[];
foreach($orderSteps as $step){
$orderStepsModel[]=[
'order_id' => $step->getOrderId(),
'appointee_id' => $step->getAppointeeId(),
'reference' => $step->getReference(),
'primary' => $step->getPrimary(),
@@ -25,7 +25,9 @@ class CreatesManyOrderSteps extends AbstractUpdateRecord
'unity_hash_id' => $step->getHashId(),
];
}
$order->orderSteps()->createMany($orderStepsModel);
OrderStep::insert($orderStepsModel);
//$order->orderSteps()->createMany($orderStepsModel);
}
}
@@ -3,27 +3,27 @@
namespace App\Classes\Modules\OrderSteps\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
use App\Models\OrderStep;
use App\Models\Order;
class CreatesOrderSteps extends AbstractUpdateRecord
class CreatesOrderSteps extends AbstractUpdateRelationshipRecord
{
public function execute(OrderStepsObject $orderSteps) {
public function execute(Order $order, OrderStepsObject $orderSteps) {
$orderStepsModel = new OrderStep();
$orderStepsModel->order_id = $orderSteps->getOrderId();
$orderStepsModel->appointee_id = $orderSteps->getAppointeeId();
$orderStepsModel->reference = $orderSteps->getReference();
$orderStepsModel->primary = $orderSteps->getPrimary();
$orderStepsModel->sequence = $orderSteps->getSequence();
$orderStepsModel->status = 0;
$orderStepsModel->contract_status = 0;
$orderStepsModel->complete_date = null;
$orderStepsModel->appointee_id = $orderSteps->getAppointeeId();
$orderStepsModel->reference = $orderSteps->getReference();
$orderStepsModel->primary = $orderSteps->getPrimary();
$orderStepsModel->sequence = $orderSteps->getSequence();
$orderStepsModel->status = 0;
$orderStepsModel->contract_status = 0;
$orderStepsModel->complete_date = null;
return $this->handler($orderStepsModel);
return $this->handler($order->orderSteps(), $orderStepsModel);
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Classes\Modules\OrderSteps\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
use App\Models\OrderStep;
use App\Models\PackingList;
class CreatesPackingOrderSteps extends AbstractUpdateRelationshipRecord
{
public function execute(PackingList $packingList, OrderStepsObject $orderSteps) {
$orderStepsModel = new OrderStep();
$orderStepsModel->appointee_id = $orderSteps->getAppointeeId();
$orderStepsModel->reference = $orderSteps->getReference();
$orderStepsModel->primary = $orderSteps->getPrimary();
$orderStepsModel->sequence = $orderSteps->getSequence();
$orderStepsModel->status = 0;
$orderStepsModel->contract_status = 0;
$orderStepsModel->complete_date = null;
return $this->handler($packingList->orderSteps(), $orderStepsModel);
}
}
@@ -43,7 +43,6 @@ class ConfirmOrderProcessor
$orderStep = $order->orderSteps[0];
$orderStepObject = new OrderStepsObject(
$order->id,
0,
$orderStep->reference,
true,
@@ -39,7 +39,7 @@ class UpdatesOrderCurrentStepProcessor
$order = $this->fetchesOrder->execute(['id'=>$order_object->getId()]);
//Count steps / obligations that pending
$order_steps_processing = $this->fetchesOrderSteps->getRepository()->where(['order_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING])->count();
$order_steps_processing = $this->fetchesOrderSteps->getRepository()->where(['owner_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING])->count();
//If no more steps / obligations, then update Order status to complete (Contract fullfilled)
if($order_steps_processing==0){
+2 -2
View File
@@ -23,9 +23,9 @@ class Order extends AbstractModel implements Addressable
return $this->belongsTo(CompanyModule::class, 'company_module_id', 'id');
}
public function orderSteps()
public function orderSteps(): morphMany
{
return $this->hasMany(OrderStep::class, 'order_id');
return $this->morphMany(OrderStep::class, 'owner');
}
public function addresses(): morphMany
+1 -1
View File
@@ -28,7 +28,7 @@ class OrderStep extends AbstractModel
public function order(): belongsTo
{
return $this->belongsTo(Order::class, 'order_id', 'id');
return $this->belongsTo(Order::class, 'owner_id', 'id');
}
}
+5
View File
@@ -9,4 +9,9 @@ class PackingList extends AbstractModel
use SoftDeletes;
protected $table = 'packing_lists';
public function orderSteps(): morphMany
{
return $this->morphMany(OrderStep::class, 'owner');
}
}
@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterOrderStepsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('order_steps', function (Blueprint $table) {
$table->dropForeign('order_steps_order_id_foreign');
$table->dropColumn('order_id');
$table->nullableMorphs('owner');
});
Schema::table('order_steps', function (Blueprint $table) {
$table->string('owner_type', 191)->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}