first commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\Google;
|
||||
|
||||
use App\Core\DB;
|
||||
use PDO;
|
||||
|
||||
class GoogleExportService
|
||||
{
|
||||
public function exportTaskById(int $taskId): bool
|
||||
{
|
||||
$pdo = DB::connection();
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT t.*, b.code AS board_code
|
||||
FROM tasks t
|
||||
LEFT JOIN boards b ON b.id = t.board_id
|
||||
WHERE t.id = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$taskId]);
|
||||
$task = $stmt->fetch();
|
||||
|
||||
if (!$task) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Пока экспортируем только задачи доски снабжения
|
||||
if (($task['board_code'] ?? '') !== 'supply') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$sheets = new GoogleSheetsService();
|
||||
|
||||
$row = [
|
||||
$task['name'] ?? '', // A Наименование
|
||||
$task['quantity'] ?? '', // B кол-во, шт
|
||||
$task['balance_tn'] ?? '', // C Остаток, тн
|
||||
$task['order_number'] ?? '', // D Заказ, №
|
||||
$task['order_amount'] ?? '', // E Сумма заказа
|
||||
$task['applicant'] ?? '', // F Фамилия
|
||||
$task['request_date'] ?? '', // G дата заявки
|
||||
$task['transport_company'] ?? '', // H ТК
|
||||
$task['supplier'] ?? '', // I Поставщик
|
||||
$task['invoice_number'] ?? '', // J № счета
|
||||
$task['payment_date'] ?? '', // K Дата оплаты
|
||||
$task['delivery_date'] ?? '', // L дата поставки
|
||||
$task['received_by'] ?? '', // M Груз получил
|
||||
((int)($task['completed_flag'] ?? 0) === 1) ? 'TRUE' : 'FALSE', // N Выполнено
|
||||
];
|
||||
|
||||
$rowNumber = $sheets->findFirstEmptyRow();
|
||||
$sheets->updateRow($rowNumber, $row);
|
||||
|
||||
if ($rowNumber > 0) {
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE tasks
|
||||
SET
|
||||
google_row_id = ?,
|
||||
source_type = 'google',
|
||||
updated_at = NOW()
|
||||
WHERE id = ?
|
||||
");
|
||||
$stmt->execute([(string)$rowNumber, $taskId]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user