fix: resolucao definitiva da extracao e persistencia de comprimento de pecas e componentes
This commit is contained in:
@@ -759,6 +759,7 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
// Aba 3: Formato Plano Oficial para Importação TrackSteel
|
||||
const excelRowsImportacao: any[] = [];
|
||||
extractedData.forEach((item) => {
|
||||
const comprPecaNum = item.comprimentoMax === '-' ? '' : Number(item.comprimentoMax) || '';
|
||||
if (item.components && item.components.length > 0) {
|
||||
item.components.forEach((comp) => {
|
||||
excelRowsImportacao.push({
|
||||
@@ -769,6 +770,8 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
quantidade: Number(item.quantidade),
|
||||
peso_unitario: item.pesoUnit === '-' ? 0 : Number(item.pesoUnit),
|
||||
peso_total: item.pesoTotal === '-' ? 0 : Number(item.pesoTotal),
|
||||
comprimento: comprPecaNum,
|
||||
comprimento_ref: comprPecaNum,
|
||||
tratamento_superficial: item.tratamentoSuperficial || tratamentoGlobal,
|
||||
material: item.material,
|
||||
perfil_principal: item.perfilPrincipal,
|
||||
@@ -777,6 +780,7 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
descricao_componente: comp.perfil || item.descricao,
|
||||
perfil_componente: comp.perfil || item.descricao,
|
||||
peso_unitario_componente: comp.pesoUnitario || 0,
|
||||
comprimento_componente: comp.comprimento || '',
|
||||
quantidade_por_peca: Number(comp.quantidade) || 1
|
||||
});
|
||||
});
|
||||
@@ -789,6 +793,8 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
quantidade: Number(item.quantidade),
|
||||
peso_unitario: item.pesoUnit === '-' ? 0 : Number(item.pesoUnit),
|
||||
peso_total: item.pesoTotal === '-' ? 0 : Number(item.pesoTotal),
|
||||
comprimento: comprPecaNum,
|
||||
comprimento_ref: comprPecaNum,
|
||||
tratamento_superficial: item.tratamentoSuperficial || tratamentoGlobal,
|
||||
material: item.material,
|
||||
perfil_principal: item.perfilPrincipal,
|
||||
@@ -797,6 +803,7 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
descricao_componente: '',
|
||||
perfil_componente: '',
|
||||
peso_unitario_componente: 0,
|
||||
comprimento_componente: '',
|
||||
quantidade_por_peca: 0
|
||||
});
|
||||
}
|
||||
@@ -835,11 +842,11 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
try {
|
||||
const importacaoRows: any[] = [];
|
||||
extractedData.forEach((item) => {
|
||||
const comprPeca = extrairComprimentoSeguro(item.comprimentoMax);
|
||||
const comprPeca = extrairComprimentoSeguro(item.comprimentoMax) ?? extrairComprimentoSeguro(item);
|
||||
|
||||
if (item.components && item.components.length > 0) {
|
||||
item.components.forEach((comp) => {
|
||||
const comprComp = extrairComprimentoComponenteSeguro(comp.comprimento);
|
||||
const comprComp = extrairComprimentoComponenteSeguro(comp.comprimento) ?? extrairComprimentoComponenteSeguro(comp);
|
||||
|
||||
importacaoRows.push({
|
||||
of_number: item.of,
|
||||
@@ -882,6 +889,7 @@ const AdvanceSteelConverterContent: React.FC = () => {
|
||||
descricao_componente: '',
|
||||
perfil_componente: '',
|
||||
peso_unitario_componente: 0,
|
||||
comprimento_componente: null,
|
||||
quantidade_por_peca: 0
|
||||
});
|
||||
}
|
||||
|
||||
@@ -532,11 +532,11 @@ export const BocadConverter: React.FC = () => {
|
||||
try {
|
||||
const importacaoRows: any[] = [];
|
||||
extractedPieces.forEach((item) => {
|
||||
const comprPeca = extrairComprimentoSeguro(item.comprimentoRef);
|
||||
const comprPeca = extrairComprimentoSeguro(item.comprimentoRef) ?? extrairComprimentoSeguro(item);
|
||||
|
||||
if (item.compostoPorComponentes === 'SIM' && item.components && item.components.length > 0) {
|
||||
item.components.forEach((comp) => {
|
||||
const comprComp = extrairComprimentoComponenteSeguro(comp.compr);
|
||||
const comprComp = extrairComprimentoComponenteSeguro(comp.compr) ?? extrairComprimentoComponenteSeguro(comp);
|
||||
|
||||
importacaoRows.push({
|
||||
of_number: item.of,
|
||||
|
||||
@@ -32,23 +32,28 @@ const CAMPOS_MONITORADOS: CampoConfig[] = [
|
||||
* Suporta múltiplos aliases de importação (Bocad, Advance Steel, Excel, CSV) e formatações de string.
|
||||
*/
|
||||
export function extrairComprimentoSeguro(item: any): number | null {
|
||||
if (!item) return null;
|
||||
if (item === undefined || item === null || item === '' || item === '-') return null;
|
||||
|
||||
const raw =
|
||||
item.comprimento ??
|
||||
item.comprimento_ref ??
|
||||
item.comprimentoRef ??
|
||||
item.comprimentoMax ??
|
||||
item.comprimento_max ??
|
||||
item.comprimento_peca ??
|
||||
item['Comprimento'] ??
|
||||
item['Comprimento (mm)'] ??
|
||||
item['Comprimento Ref. (mm)'] ??
|
||||
item['Comprimento Max. (mm)'] ??
|
||||
item['Comp. (mm)'] ??
|
||||
item['Comp (mm)'] ??
|
||||
item.compr ??
|
||||
item.comp;
|
||||
let raw: any;
|
||||
if (typeof item === 'number' || typeof item === 'string') {
|
||||
raw = item;
|
||||
} else if (typeof item === 'object') {
|
||||
raw =
|
||||
item.comprimento ??
|
||||
item.comprimento_ref ??
|
||||
item.comprimentoRef ??
|
||||
item.comprimentoMax ??
|
||||
item.comprimento_max ??
|
||||
item.comprimento_peca ??
|
||||
item['Comprimento'] ??
|
||||
item['Comprimento (mm)'] ??
|
||||
item['Comprimento Ref. (mm)'] ??
|
||||
item['Comprimento Max. (mm)'] ??
|
||||
item['Comp. (mm)'] ??
|
||||
item['Comp (mm)'] ??
|
||||
item.compr ??
|
||||
item.comp;
|
||||
}
|
||||
|
||||
if (raw === undefined || raw === null || raw === '' || raw === '-') return null;
|
||||
|
||||
@@ -76,19 +81,25 @@ export function extrairComprimentoSeguro(item: any): number | null {
|
||||
* Função utilitária resiliente para extrair o comprimento numérico de subcomponentes.
|
||||
*/
|
||||
export function extrairComprimentoComponenteSeguro(item: any): number | null {
|
||||
if (!item) return null;
|
||||
if (item === undefined || item === null || item === '' || item === '-') return null;
|
||||
|
||||
const raw =
|
||||
item.comprimento_componente ??
|
||||
item.comprimentoComponente ??
|
||||
item.comprimento ??
|
||||
item.comprimento_ref ??
|
||||
item.compr ??
|
||||
item.comp ??
|
||||
item['Comprimento Componente'] ??
|
||||
item['Comprimento (mm)'] ??
|
||||
item['Comprimento'] ??
|
||||
item['Comp. (mm)'];
|
||||
let raw: any;
|
||||
if (typeof item === 'number' || typeof item === 'string') {
|
||||
raw = item;
|
||||
} else if (typeof item === 'object') {
|
||||
raw =
|
||||
item.comprimento_componente ??
|
||||
item.comprimentoComponente ??
|
||||
item.comprimento ??
|
||||
item.comprimento_ref ??
|
||||
item.comprimentoRef ??
|
||||
item.compr ??
|
||||
item.comp ??
|
||||
item['Comprimento Componente'] ??
|
||||
item['Comprimento (mm)'] ??
|
||||
item['Comprimento'] ??
|
||||
item['Comp. (mm)'];
|
||||
}
|
||||
|
||||
if (raw === undefined || raw === null || raw === '' || raw === '-') return null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user