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