Files
tracksteel_app/scripts/update_apontamentos_b101_fase9_auto.js

71 lines
2.6 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const { createClient } = require('@supabase/supabase-js');
// Configuração do Supabase
const supabaseUrl = 'https://lwjppiicofojfcdfjsto.supabase.co';
const supabaseServiceKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imx3anBwaWljb2ZvamZjZGZqc3RvIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc1MDQ2MzA1MywiZXhwIjoyMDY2MDM5MDUzfQ.t9vlXHQH4ou2S-CKSeDYSnAeMDYpmkklqlwyGDvpocI';
// Inicializar cliente Supabase com service role para operações administrativas
const supabase = createClient(supabaseUrl, supabaseServiceKey);
// Função principal
async function updateApontamentosB101Fase9Auto() {
console.log('🔧 Script de Atualização Automática - OF B101 Fase 9');
console.log('=' .repeat(60));
console.log('Objetivo: Alterar data de 08/09/2025 para 10/09/2025');
console.log('Filtro: Apenas peças com marca entre 10 e 70');
console.log('');
try {
// Passo 1: Buscar registros que serão afetados
console.log('📋 Passo 1: Identificando registros a serem atualizados...');
const { data: registrosParaAtualizar, error: selectError } = await supabase
.from('apontamentos_producao')
.select(`
id,
of_number,
data_apontamento,
quantidade_produzida,
observacoes,
pecas!inner(
id,
of_number,
etapa_fase,
marca,
descricao
)
`)
.eq('pecas.of_number', 'B101')
.eq('pecas.etapa_fase', '9')
.gte('pecas.marca', '10')
.lte('pecas.marca', '70')
.eq('data_apontamento', '2025-09-08');
if (selectError) {
console.error('❌ Erro ao buscar registros:', selectError.message);
return;
}
if (!registrosParaAtualizar || registrosParaAtualizar.length === 0) {
console.log(' Nenhum registro encontrado com os critérios especificados.');
console.log(' - OF: B101');
console.log(' - Fase: 9');
console.log(' - Marca: entre 10 e 70');
console.log(' - Data atual: 08/09/2025');
return;
}
console.log(`✅ Encontrados ${registrosParaAtualizar.length} registro(s) para atualização.`);
console.log('');
// Passo 2: Executar a atualização automaticamente
console.log('🔄 Passo 2: Executando atualização automaticamente...');
// Extrair IDs dos registros para atualização
const idsParaAtualizar = registrosParaAtualizar.map(r => r.id);
const { data: registrosAtualizados, error: updateError } = await supabase
.from('apontamentos_producao')
.update({
data_apontamento: '2025-09-10',
updated_at: new Date().toISOString(