Estou criando uma aplicação composta por um formulário com upload de arquivo CSV padronizado e um grid de consultas. A ideia é que o usuário envie esse documento contendo dados estruturados (como filial, data de nascimento, nota fiscal etc.), e a aplicação:
- Leia o conteúdo do CSV automaticamente após o upload,
- Insira os dados no banco de dados**,
- E redirecione o usuário para uma aplicação de grid para consulta.
O campo de upload está configurado como Documento (Nome do Arquivo), e o processamento ocorre no evento onAfterInsert do formulário.
Estou enfrentando esse erro:
INSERT INTO tabela_documentos (filial, documento, data_nascimento, nota_fiscal, nota_fiscal_serie, chave_nota_fiscal, cod_material, quantidade, nome_documento)
VALUES (0, “”, null, “”, “”, “”, 0, “”).
Aguardo um help no caso, já que ja vi todos as barreiras que tenho conhecimento e nao consigo resolver.
e esse é o codigo que estou usando no evento:
// Nome do arquivo CSV enviado
$nome_arquivo = {documento};
// Caminho absoluto até o arquivo
$caminho_arquivo = $_SERVER[‘DOCUMENT_ROOT’] . $SESSION[‘scriptcase’]['form’ . $this->Ini->nm_cod_apl][‘glo_nm_path_doc’] . “/” . $nome_arquivo;
// Tenta abrir o CSV
$handle = fopen($caminho_arquivo, “r”);
if ($handle !== false) {
// Ignora a primeira linha (cabeçalho)
fgetcsv($handle, 1000, “;”);
// Lê cada linha e insere no banco
while (($linha = fgetcsv($handle, 1000, ";")) !== false) {
$filial = $linha[0];
$data_nascimento = $linha[1];
$nota_fiscal = $linha[2];
$chave_nota_fiscal = $linha[3];
$cod_material = $linha[4];
$quantidade = $linha[5];
// Monta a query de INSERT
$sql = "
INSERT INTO tabela_documentos (
filial,
data_nascimento,
nota_fiscal,
chave_nota_fiscal,
cod_material,
quantidade
) VALUES (
'$filial',
'$data_nascimento',
'$nota_fiscal',
'$chave_nota_fiscal',
'$cod_material',
'$quantidade'
)";
sc_exec_sql($sql);
}
fclose($handle);
// Mensagem de sucesso
sc_alert("Arquivo CSV importado com sucesso!");
} else {
sc_error_message(“Erro ao abrir o arquivo CSV.”);
}