Skip to content

Commit 13c20ad

Browse files
committed
fix(tiny-erp): Read last order (bigger ID) on Tiny when more than one is found by number
1 parent b7209d2 commit 13c20ad

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,20 @@ export default async (apiDoc, queueEntry, appData, canCreateNew) => {
7272
}
7373
}
7474
const { pedidos } = tinyData;
75-
let originalTinyOrder;
75+
let originalTinyOrder: undefined | Record<string, any>;
7676
if (Array.isArray(pedidos)) {
77-
originalTinyOrder = pedidos.find(({ pedido }) => {
78-
return order.number === Number(pedido.numero_ecommerce);
79-
});
77+
originalTinyOrder = pedidos
78+
.sort((a: { pedido: Record<string, any> }, b: { pedido: Record<string, any> }) => {
79+
return a.pedido.id < b.pedido.id ? 1 : -1;
80+
})
81+
.find(({ pedido }) => {
82+
return order.number === Number(pedido.numero_ecommerce);
83+
});
8084
if (originalTinyOrder) {
8185
originalTinyOrder = originalTinyOrder.pedido;
8286
}
8387
}
88+
8489
if (!originalTinyOrder) {
8590
if (!canCreateNew) {
8691
return null;

packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default async (apiDoc, queueEntry) => {
4343
fields: ['_id', 'payments_history', 'fulfillments', 'shipping_lines'] as const,
4444
limit: 1,
4545
params: {
46-
number: orderNumber || undefined,
46+
'number': orderNumber || undefined,
4747
'hidden_metafields.value': orderNumber ? undefined : `${tinyOrderId}_tiny`,
4848
},
4949
});
@@ -97,10 +97,13 @@ export default async (apiDoc, queueEntry) => {
9797
prop = 'numero_ecommerce';
9898
tinyOrderNumberSearch = tinyOrderNumber.substring(5);
9999
}
100-
const tinyOrder = pedidos.find(({ pedido }) => {
101-
return Number(tinyOrderNumberSearch) === Number(pedido[prop]);
102-
});
103-
100+
const tinyOrder = pedidos
101+
.sort((a: { pedido: Record<string, any> }, b: { pedido: Record<string, any> }) => {
102+
return a.pedido.id < b.pedido.id ? 1 : -1;
103+
})
104+
.find(({ pedido }) => {
105+
return Number(tinyOrderNumberSearch) === Number(pedido[prop]);
106+
});
104107
if (tinyOrder) {
105108
return getTinyOrder(tinyOrder.pedido.id);
106109
}

0 commit comments

Comments
 (0)