From c2c3684fb2a1f0d7d2d72d4090a985f229303cfc Mon Sep 17 00:00:00 2001 From: Andrey Dmitrakovich Date: Sat, 1 Jun 2024 22:35:20 +0300 Subject: [PATCH] 14. add `one_c_id` field --- src/app/Jobs/OneC/UpdateOfflineOrdersJob.php | 11 ++++------- src/app/Models/OneC/OfflineOrder.php | 8 -------- src/app/Models/Orders/OfflineOrder.php | 1 + ...24_remove_unique_key_from_offline_orders_table.php | 2 ++ 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/app/Jobs/OneC/UpdateOfflineOrdersJob.php b/src/app/Jobs/OneC/UpdateOfflineOrdersJob.php index f7efa341..eeb22f2b 100644 --- a/src/app/Jobs/OneC/UpdateOfflineOrdersJob.php +++ b/src/app/Jobs/OneC/UpdateOfflineOrdersJob.php @@ -29,8 +29,7 @@ class UpdateOfflineOrdersJob extends AbstractJob */ public function handle(): void { - $latestCode = $this->getLatestCode(); - $orders = $this->getNewOrders($latestCode); + $orders = $this->getNewOrders(); $returnOrders = $this->getOrdersForReturn($orders); foreach ($orders as $order) { @@ -75,9 +74,7 @@ public function handle(): void */ private function getLatestCode(): int { - $receiptNumber = OfflineOrder::query()->latest('id')->value('receipt_number'); - - return OfflineOrder1C::getLatestCodeByReceiptNumber($receiptNumber); + return OfflineOrder::query()->latest('id')->value('one_c_id'); } /** @@ -85,11 +82,11 @@ private function getLatestCode(): int * * @return Collection|OfflineOrder1C[] */ - private function getNewOrders(int $latestCode): Collection + private function getNewOrders(): Collection { return OfflineOrder1C::query() ->with(['stock', 'product', 'size']) - ->where('CODE', '>', $latestCode) + ->where('CODE', '>', $this->getLatestCode()) ->limit(self::NEW_ORDERS_LIMIT) ->orderBy('CODE') ->get(); diff --git a/src/app/Models/OneC/OfflineOrder.php b/src/app/Models/OneC/OfflineOrder.php index a761f024..06da32d6 100644 --- a/src/app/Models/OneC/OfflineOrder.php +++ b/src/app/Models/OneC/OfflineOrder.php @@ -64,14 +64,6 @@ class OfflineOrder extends AbstractOneCModel 'SP6101' => 'float', ]; - /** - * Get the latest code by receipt number from the offline orders. - */ - public static function getLatestCodeByReceiptNumber(?string $receiptNumber): int - { - return (int)self::query()->where('SP6098', $receiptNumber)->value('CODE'); - } - /** * Check if the order is a return. */ diff --git a/src/app/Models/Orders/OfflineOrder.php b/src/app/Models/Orders/OfflineOrder.php index df8720da..9bd36649 100644 --- a/src/app/Models/Orders/OfflineOrder.php +++ b/src/app/Models/Orders/OfflineOrder.php @@ -11,6 +11,7 @@ /** * @property int $id + * @property int $one_c_id CODE field from 1C DB * @property string $receipt_number Receipt number * @property int|null $stock_id * @property int|null $product_id diff --git a/src/database/migrations/2024_06_01_184624_remove_unique_key_from_offline_orders_table.php b/src/database/migrations/2024_06_01_184624_remove_unique_key_from_offline_orders_table.php index 6793054b..7adb816f 100644 --- a/src/database/migrations/2024_06_01_184624_remove_unique_key_from_offline_orders_table.php +++ b/src/database/migrations/2024_06_01_184624_remove_unique_key_from_offline_orders_table.php @@ -14,6 +14,7 @@ public function up(): void Schema::table('offline_orders', function (Blueprint $table) { $table->dropUnique(['receipt_number']); $table->index(['receipt_number']); + $table->foreignId('one_c_id')->unique()->after('id')->comment('CODE field from 1C DB'); $table->foreignId('one_c_product_id')->index()->after('product_id')->comment('External product id from 1C'); }); } @@ -26,6 +27,7 @@ public function down(): void Schema::table('offline_orders', function (Blueprint $table) { $table->dropIndex(['receipt_number']); $table->unique(['receipt_number']); + $table->dropColumn('one_c_id'); $table->dropColumn('one_c_product_id'); }); }