Files
CRM-IKZ/app/Services/Google/GoogleExportService.php
T
2026-07-14 08:19:56 +04:00

72 lines
2.3 KiB
PHP

<?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;
}
}