@placeshakr/config 10.33.0-alpha.2 → 10.33.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSupplierIgnored = exports.findMatchingIgnoredSupplier = exports.normalizeRegNo = exports.normalizeSupplierName = exports.getPennylaneInvoiceUrl = exports.ENTERPRISE_PENNYLANE_COMPANY_IDS = exports.billIssuedToPennylanePayload = exports.billIssuedToPennylaneLines = exports.pennylaneDeadline = exports.formatPennylaneErrorMessage = exports.getBillBlockers = exports.isBillIssuedSentToPennylane = exports.toPennylaneLineAmount = exports.isPennylaneDraftStatus = exports.usesPennylaneNumbering = exports.toVatRateCode = void 0;
|
|
3
|
+
exports.isSupplierIgnored = exports.findMatchingIgnoredSupplier = exports.normalizeRegNo = exports.normalizeSupplierName = exports.getPennylaneInvoiceUrl = exports.ENTERPRISE_PENNYLANE_COMPANY_IDS = exports.getReceivedBillSupplier = exports.billIssuedToPennylanePayload = exports.billIssuedToPennylaneLines = exports.PENNYLANE_DEDUCTION_LABEL = exports.pennylaneDeadline = exports.formatPennylaneErrorMessage = exports.getBillBlockers = exports.isBillIssuedSentToPennylane = exports.toPennylaneLineAmount = exports.isPennylaneDraftStatus = exports.usesPennylaneNumbering = exports.toVatRateCode = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const articho = tslib_1.__importStar(require("../types"));
|
|
6
6
|
const validate_1 = require("./validate");
|
|
@@ -251,28 +251,106 @@ const pennylaneDeadline = (bill, date) => {
|
|
|
251
251
|
return date + termDays * 24 * 60 * 60 * 1000;
|
|
252
252
|
};
|
|
253
253
|
exports.pennylaneDeadline = pennylaneDeadline;
|
|
254
|
+
/** Etiqueta de la línea que descuenta lo ya facturado del devis en una factura de saldo. */
|
|
255
|
+
exports.PENNYLANE_DEDUCTION_LABEL = 'Déduction des acomptes';
|
|
256
|
+
const roundCents = (value) => Math.round((value + Number.EPSILON) * 100) / 100;
|
|
257
|
+
/**
|
|
258
|
+
* Base HT de la factura antes de la remise general, con el signo con el que
|
|
259
|
+
* viaja a PennyLane, o null si la factura no guarda sus precios.
|
|
260
|
+
*
|
|
261
|
+
* `HT + adjustments` es el total antes de la remise general en todos los
|
|
262
|
+
* formularios (ver `setBillIssuedPrices`): en una factura normal suma las
|
|
263
|
+
* líneas con sus remises; en una de saldo ya descuenta lo facturado antes.
|
|
264
|
+
*/
|
|
265
|
+
const baseBeforeGeneralDiscount = (bill) => {
|
|
266
|
+
const HT = bill?.prices?.HT;
|
|
267
|
+
if (typeof HT !== 'number' || !Number.isFinite(HT))
|
|
268
|
+
return null;
|
|
269
|
+
const base = HT + (Number(bill?.prices?.adjustments) || 0);
|
|
270
|
+
return bill?.subType === articho.BillIssuedType.CREDIT_NOTE ? -Math.abs(base) : base;
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Líneas que descuentan lo ya facturado del devis (acomptes, situaciones) en
|
|
274
|
+
* una factura de saldo o en su avoir.
|
|
275
|
+
*
|
|
276
|
+
* Las líneas de una factura de saldo guardan el importe completo del devis y
|
|
277
|
+
* el total de la factura descuenta el porcentaje ya facturado, igual en todas
|
|
278
|
+
* las líneas. Sin este descuento PennyLane facturaría el devis entero. Va una
|
|
279
|
+
* línea por tipo de TVA para que la TVA de cada tipo cuadre con Articho.
|
|
280
|
+
*/
|
|
281
|
+
const deductionLines = (bill, lines) => {
|
|
282
|
+
const isBalance = bill?.subType === articho.BillIssuedType.BALANCE;
|
|
283
|
+
// un avoir copia la factura que anula: solo el de una factura de saldo tiene `isGrouped`
|
|
284
|
+
const isBalanceCreditNote = bill?.subType === articho.BillIssuedType.CREDIT_NOTE && bill?.isGrouped !== undefined;
|
|
285
|
+
if (!isBalance && !isBalanceCreditNote)
|
|
286
|
+
return [];
|
|
287
|
+
const target = baseBeforeGeneralDiscount(bill);
|
|
288
|
+
const sent = lines.reduce((sum, line) => sum + line.quantity * line.unitPrice, 0);
|
|
289
|
+
if (target === null || !sent || Math.abs(target - sent) < 0.01)
|
|
290
|
+
return [];
|
|
291
|
+
const byRate = new Map();
|
|
292
|
+
lines.forEach((line) => {
|
|
293
|
+
byRate.set(line.vatRate, (byRate.get(line.vatRate) ?? 0) + line.quantity * line.unitPrice);
|
|
294
|
+
});
|
|
295
|
+
const ratio = (target - sent) / sent;
|
|
296
|
+
const deductions = [...byRate.entries()]
|
|
297
|
+
.map(([vatRate, amount]) => ({ vatRate, amount: roundCents(amount * ratio) }))
|
|
298
|
+
.filter((deduction) => deduction.amount !== 0);
|
|
299
|
+
if (!deductions.length)
|
|
300
|
+
return [];
|
|
301
|
+
// el redondeo por tipo de TVA no puede mover el total: el resto va al mayor
|
|
302
|
+
const remainder = roundCents(target - sent - deductions.reduce((s, d) => s + d.amount, 0));
|
|
303
|
+
const largest = deductions.reduce((a, b) => (Math.abs(b.amount) > Math.abs(a.amount) ? b : a));
|
|
304
|
+
largest.amount = roundCents(largest.amount + remainder);
|
|
305
|
+
return deductions.map((deduction) => ({
|
|
306
|
+
label: exports.PENNYLANE_DEDUCTION_LABEL,
|
|
307
|
+
quantity: 1,
|
|
308
|
+
unit: 'piece',
|
|
309
|
+
unitPrice: deduction.amount,
|
|
310
|
+
vatRate: deduction.vatRate,
|
|
311
|
+
}));
|
|
312
|
+
};
|
|
254
313
|
/**
|
|
255
314
|
* Líneas de una factura emitida tal como viajan a PennyLane: cada línea con su
|
|
256
315
|
* « Total HT » y su TVA. En un avoir los importes van en negativo.
|
|
316
|
+
*
|
|
317
|
+
* Las líneas no facturadas (`isInvoiced: false`) no cuentan en el total de
|
|
318
|
+
* Articho y no se envían. En una factura de saldo se añade el descuento de lo
|
|
319
|
+
* ya facturado del devis (ver `deductionLines`).
|
|
320
|
+
*
|
|
257
321
|
* @param {articho.BillIssued} bill Factura emitida.
|
|
258
322
|
* @return {PennylaneInvoicePayload['lines']} Líneas.
|
|
259
323
|
*/
|
|
260
324
|
const billIssuedToPennylaneLines = (bill) => {
|
|
261
325
|
const isCreditNote = bill?.subType === articho.BillIssuedType.CREDIT_NOTE;
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
326
|
+
const isDownPayment = bill?.subType === articho.BillIssuedType.DOWN_PAYMENT;
|
|
327
|
+
const elements = [...(bill?.elements ?? [])]
|
|
328
|
+
// los acomptes calculan su total con todas sus líneas
|
|
329
|
+
.filter((element) => isDownPayment || element?.isInvoiced !== false)
|
|
330
|
+
.sort((a, b) => (a?.order ?? 0) - (b?.order ?? 0));
|
|
331
|
+
const amounts = elements.map(exports.toPennylaneLineAmount);
|
|
332
|
+
// Un avoir anula su factura: cada línea cambia de signo, y una línea negativa
|
|
333
|
+
// (commission apporteur, moins-value) pasa a positiva. Solo un avoir cuyas
|
|
334
|
+
// líneas suman en negativo conserva todas sus líneas en negativo.
|
|
335
|
+
const creditNoteOfPositiveBill = isCreditNote && amounts.reduce((sum, a) => sum + a.quantity * a.unitPrice, 0) >= 0;
|
|
336
|
+
const toSentPrice = (unitPrice) => {
|
|
337
|
+
if (!isCreditNote)
|
|
338
|
+
return unitPrice;
|
|
339
|
+
return creditNoteOfPositiveBill ? -unitPrice : -Math.abs(unitPrice);
|
|
340
|
+
};
|
|
341
|
+
const lines = elements.map((element, index) => {
|
|
342
|
+
const amount = amounts[index];
|
|
266
343
|
return {
|
|
267
344
|
label: element.description,
|
|
268
345
|
quantity: amount.quantity,
|
|
269
346
|
unit: 'piece',
|
|
270
|
-
unitPrice:
|
|
347
|
+
unitPrice: toSentPrice(amount.unitPrice),
|
|
271
348
|
// `bill.tva` es la casilla « TVA non applicable »: true = sin IVA.
|
|
272
349
|
vatRate: (0, exports.toVatRateCode)(element.tva, bill?.tva !== true),
|
|
273
350
|
...(amount.discount ? { discount: amount.discount } : {}),
|
|
274
351
|
};
|
|
275
352
|
});
|
|
353
|
+
return [...lines, ...deductionLines(bill, lines)];
|
|
276
354
|
};
|
|
277
355
|
exports.billIssuedToPennylaneLines = billIssuedToPennylaneLines;
|
|
278
356
|
/**
|
|
@@ -361,6 +439,52 @@ const billIssuedToPennylanePayload = (bill, context) => {
|
|
|
361
439
|
};
|
|
362
440
|
};
|
|
363
441
|
exports.billIssuedToPennylanePayload = billIssuedToPennylanePayload;
|
|
442
|
+
/**
|
|
443
|
+
* Quién emitió una factura recibida, es decir, su proveedor en PennyLane.
|
|
444
|
+
*
|
|
445
|
+
* Es el « Émetteur » elegido en la factura, no quien la subió: un
|
|
446
|
+
* administrador sube facturas en nombre de un pro o de un apporteur, y tomar
|
|
447
|
+
* al que la subió mandaba a PennyLane los datos del administrador (o los de la
|
|
448
|
+
* empresa) como si fueran los del proveedor.
|
|
449
|
+
*
|
|
450
|
+
* - `entityPro` / `entityProvider`, si la factura los tiene.
|
|
451
|
+
* - Entidad PRO: el pro elegido (`entityData.id`, con forma `userId-enterpriseId`).
|
|
452
|
+
* - Entidad PROVIDER: el apporteur elegido (`entityData.id`).
|
|
453
|
+
* - Fournisseurs de matériaux o de services y « Autre »: texto libre, sin ficha.
|
|
454
|
+
* - Sin entidad: el pro que subió su propia factura.
|
|
455
|
+
*
|
|
456
|
+
* @param {articho.BillReceived} bill Factura recibida.
|
|
457
|
+
* @return {ReceivedBillSupplier | null} Ficha del proveedor, o null si no tiene.
|
|
458
|
+
*/
|
|
459
|
+
const getReceivedBillSupplier = (bill) => {
|
|
460
|
+
if (!bill)
|
|
461
|
+
return null;
|
|
462
|
+
if (bill.entityPro)
|
|
463
|
+
return { kind: 'profile', id: bill.entityPro };
|
|
464
|
+
if (bill.entityProvider)
|
|
465
|
+
return { kind: 'provider', id: bill.entityProvider };
|
|
466
|
+
const entityId = bill.entityData?.id;
|
|
467
|
+
switch (bill.entity) {
|
|
468
|
+
case articho.BillReceivedEntity.PRO:
|
|
469
|
+
// Strip the enterprise part of `userId-enterpriseId`, if any.
|
|
470
|
+
if (entityId)
|
|
471
|
+
return { kind: 'profile', id: entityId.replace(/-[^-]+$/, '') };
|
|
472
|
+
break;
|
|
473
|
+
case articho.BillReceivedEntity.PROVIDER:
|
|
474
|
+
return entityId ? { kind: 'provider', id: entityId } : null;
|
|
475
|
+
case articho.BillReceivedEntity.MATERIAL_PROVIDER:
|
|
476
|
+
case articho.BillReceivedEntity.SERVICE_PROVIDER:
|
|
477
|
+
case articho.BillReceivedEntity.OTHER:
|
|
478
|
+
return null;
|
|
479
|
+
default:
|
|
480
|
+
break;
|
|
481
|
+
}
|
|
482
|
+
const owner = bill.ownerData;
|
|
483
|
+
return owner?.role === articho.ROLE.PRO && owner.userId
|
|
484
|
+
? { kind: 'profile', id: owner.userId }
|
|
485
|
+
: null;
|
|
486
|
+
};
|
|
487
|
+
exports.getReceivedBillSupplier = getReceivedBillSupplier;
|
|
364
488
|
/** Known PennyLane company IDs mapped by Articho enterprise ID. Used as fallback when not configured in Firestore. */
|
|
365
489
|
exports.ENTERPRISE_PENNYLANE_COMPANY_IDS = {
|
|
366
490
|
'45106373900119': '156553',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pennylane.js","sourceRoot":"","sources":["../../src/billing/pennylane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pennylane.js","sourceRoot":"","sources":["../../src/billing/pennylane.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,9 +149,16 @@ export declare const formatPennylaneErrorMessage: (rawMessage?: string) => strin
|
|
|
149
149
|
* @return {number} Vencimiento (ms).
|
|
150
150
|
*/
|
|
151
151
|
export declare const pennylaneDeadline: (bill: articho.BillIssued, date: number) => number;
|
|
152
|
+
/** Etiqueta de la línea que descuenta lo ya facturado del devis en una factura de saldo. */
|
|
153
|
+
export declare const PENNYLANE_DEDUCTION_LABEL = "D\u00E9duction des acomptes";
|
|
152
154
|
/**
|
|
153
155
|
* Líneas de una factura emitida tal como viajan a PennyLane: cada línea con su
|
|
154
156
|
* « Total HT » y su TVA. En un avoir los importes van en negativo.
|
|
157
|
+
*
|
|
158
|
+
* Las líneas no facturadas (`isInvoiced: false`) no cuentan en el total de
|
|
159
|
+
* Articho y no se envían. En una factura de saldo se añade el descuento de lo
|
|
160
|
+
* ya facturado del devis (ver `deductionLines`).
|
|
161
|
+
*
|
|
155
162
|
* @param {articho.BillIssued} bill Factura emitida.
|
|
156
163
|
* @return {PennylaneInvoicePayload['lines']} Líneas.
|
|
157
164
|
*/
|
|
@@ -179,6 +186,29 @@ export declare const billIssuedToPennylanePayload: (bill: articho.BillIssued, co
|
|
|
179
186
|
draft?: boolean;
|
|
180
187
|
creditedInvoiceId?: string | number | null;
|
|
181
188
|
}) => PennylaneInvoicePayload;
|
|
189
|
+
/** Ficha de Articho del proveedor de una factura recibida. */
|
|
190
|
+
export type ReceivedBillSupplier = {
|
|
191
|
+
kind: 'profile' | 'provider';
|
|
192
|
+
id: string;
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Quién emitió una factura recibida, es decir, su proveedor en PennyLane.
|
|
196
|
+
*
|
|
197
|
+
* Es el « Émetteur » elegido en la factura, no quien la subió: un
|
|
198
|
+
* administrador sube facturas en nombre de un pro o de un apporteur, y tomar
|
|
199
|
+
* al que la subió mandaba a PennyLane los datos del administrador (o los de la
|
|
200
|
+
* empresa) como si fueran los del proveedor.
|
|
201
|
+
*
|
|
202
|
+
* - `entityPro` / `entityProvider`, si la factura los tiene.
|
|
203
|
+
* - Entidad PRO: el pro elegido (`entityData.id`, con forma `userId-enterpriseId`).
|
|
204
|
+
* - Entidad PROVIDER: el apporteur elegido (`entityData.id`).
|
|
205
|
+
* - Fournisseurs de matériaux o de services y « Autre »: texto libre, sin ficha.
|
|
206
|
+
* - Sin entidad: el pro que subió su propia factura.
|
|
207
|
+
*
|
|
208
|
+
* @param {articho.BillReceived} bill Factura recibida.
|
|
209
|
+
* @return {ReceivedBillSupplier | null} Ficha del proveedor, o null si no tiene.
|
|
210
|
+
*/
|
|
211
|
+
export declare const getReceivedBillSupplier: (bill?: articho.BillReceived | null) => ReceivedBillSupplier | null;
|
|
182
212
|
/** Known PennyLane company IDs mapped by Articho enterprise ID. Used as fallback when not configured in Firestore. */
|
|
183
213
|
export declare const ENTERPRISE_PENNYLANE_COMPANY_IDS: Record<string, string>;
|
|
184
214
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pennylane.d.ts","sourceRoot":"","sources":["../../../src/billing/pennylane.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pennylane.d.ts","sourceRoot":"","sources":["../../../src/billing/pennylane.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@placeshakr/config",
|
|
3
3
|
"author": "Tech Placeshaker <tech@placeshaker.fr>",
|
|
4
|
-
"version": "10.33.0-alpha.
|
|
4
|
+
"version": "10.33.0-alpha.4",
|
|
5
5
|
"description": "Articho configuration module",
|
|
6
6
|
"homepage": "https://github.com/placeshaker/articho#readme",
|
|
7
7
|
"license": "ISC",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"lint": "eslint --fix 'src/**/*.{ts,tsx}'",
|
|
30
30
|
"prepare": "npm run build"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "70f5f3ed8d0d019f2729aae60d808b31519810a6"
|
|
33
33
|
}
|
package/src/billing/pennylane.ts
CHANGED
|
@@ -344,9 +344,82 @@ export const pennylaneDeadline = (bill: articho.BillIssued, date: number): numbe
|
|
|
344
344
|
return date + termDays * 24 * 60 * 60 * 1000;
|
|
345
345
|
};
|
|
346
346
|
|
|
347
|
+
/** Etiqueta de la línea que descuenta lo ya facturado del devis en una factura de saldo. */
|
|
348
|
+
export const PENNYLANE_DEDUCTION_LABEL = 'Déduction des acomptes';
|
|
349
|
+
|
|
350
|
+
const roundCents = (value: number) => Math.round((value + Number.EPSILON) * 100) / 100;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Base HT de la factura antes de la remise general, con el signo con el que
|
|
354
|
+
* viaja a PennyLane, o null si la factura no guarda sus precios.
|
|
355
|
+
*
|
|
356
|
+
* `HT + adjustments` es el total antes de la remise general en todos los
|
|
357
|
+
* formularios (ver `setBillIssuedPrices`): en una factura normal suma las
|
|
358
|
+
* líneas con sus remises; en una de saldo ya descuenta lo facturado antes.
|
|
359
|
+
*/
|
|
360
|
+
const baseBeforeGeneralDiscount = (bill: articho.BillIssued): number | null => {
|
|
361
|
+
const HT = bill?.prices?.HT;
|
|
362
|
+
if (typeof HT !== 'number' || !Number.isFinite(HT)) return null;
|
|
363
|
+
const base = HT + (Number(bill?.prices?.adjustments) || 0);
|
|
364
|
+
return bill?.subType === articho.BillIssuedType.CREDIT_NOTE ? -Math.abs(base) : base;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Líneas que descuentan lo ya facturado del devis (acomptes, situaciones) en
|
|
369
|
+
* una factura de saldo o en su avoir.
|
|
370
|
+
*
|
|
371
|
+
* Las líneas de una factura de saldo guardan el importe completo del devis y
|
|
372
|
+
* el total de la factura descuenta el porcentaje ya facturado, igual en todas
|
|
373
|
+
* las líneas. Sin este descuento PennyLane facturaría el devis entero. Va una
|
|
374
|
+
* línea por tipo de TVA para que la TVA de cada tipo cuadre con Articho.
|
|
375
|
+
*/
|
|
376
|
+
const deductionLines = (
|
|
377
|
+
bill: articho.BillIssued,
|
|
378
|
+
lines: PennylaneInvoicePayload['lines']
|
|
379
|
+
): PennylaneInvoicePayload['lines'] => {
|
|
380
|
+
const isBalance = bill?.subType === articho.BillIssuedType.BALANCE;
|
|
381
|
+
// un avoir copia la factura que anula: solo el de una factura de saldo tiene `isGrouped`
|
|
382
|
+
const isBalanceCreditNote =
|
|
383
|
+
bill?.subType === articho.BillIssuedType.CREDIT_NOTE && bill?.isGrouped !== undefined;
|
|
384
|
+
if (!isBalance && !isBalanceCreditNote) return [];
|
|
385
|
+
|
|
386
|
+
const target = baseBeforeGeneralDiscount(bill);
|
|
387
|
+
const sent = lines.reduce((sum, line) => sum + line.quantity * line.unitPrice, 0);
|
|
388
|
+
if (target === null || !sent || Math.abs(target - sent) < 0.01) return [];
|
|
389
|
+
|
|
390
|
+
const byRate = new Map<string, number>();
|
|
391
|
+
lines.forEach((line) => {
|
|
392
|
+
byRate.set(line.vatRate, (byRate.get(line.vatRate) ?? 0) + line.quantity * line.unitPrice);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
const ratio = (target - sent) / sent;
|
|
396
|
+
const deductions = [...byRate.entries()]
|
|
397
|
+
.map(([vatRate, amount]) => ({ vatRate, amount: roundCents(amount * ratio) }))
|
|
398
|
+
.filter((deduction) => deduction.amount !== 0);
|
|
399
|
+
if (!deductions.length) return [];
|
|
400
|
+
|
|
401
|
+
// el redondeo por tipo de TVA no puede mover el total: el resto va al mayor
|
|
402
|
+
const remainder = roundCents(target - sent - deductions.reduce((s, d) => s + d.amount, 0));
|
|
403
|
+
const largest = deductions.reduce((a, b) => (Math.abs(b.amount) > Math.abs(a.amount) ? b : a));
|
|
404
|
+
largest.amount = roundCents(largest.amount + remainder);
|
|
405
|
+
|
|
406
|
+
return deductions.map((deduction) => ({
|
|
407
|
+
label: PENNYLANE_DEDUCTION_LABEL,
|
|
408
|
+
quantity: 1,
|
|
409
|
+
unit: 'piece',
|
|
410
|
+
unitPrice: deduction.amount,
|
|
411
|
+
vatRate: deduction.vatRate,
|
|
412
|
+
}));
|
|
413
|
+
};
|
|
414
|
+
|
|
347
415
|
/**
|
|
348
416
|
* Líneas de una factura emitida tal como viajan a PennyLane: cada línea con su
|
|
349
417
|
* « Total HT » y su TVA. En un avoir los importes van en negativo.
|
|
418
|
+
*
|
|
419
|
+
* Las líneas no facturadas (`isInvoiced: false`) no cuentan en el total de
|
|
420
|
+
* Articho y no se envían. En una factura de saldo se añade el descuento de lo
|
|
421
|
+
* ya facturado del devis (ver `deductionLines`).
|
|
422
|
+
*
|
|
350
423
|
* @param {articho.BillIssued} bill Factura emitida.
|
|
351
424
|
* @return {PennylaneInvoicePayload['lines']} Líneas.
|
|
352
425
|
*/
|
|
@@ -354,21 +427,38 @@ export const billIssuedToPennylaneLines = (
|
|
|
354
427
|
bill: articho.BillIssued
|
|
355
428
|
): PennylaneInvoicePayload['lines'] => {
|
|
356
429
|
const isCreditNote = bill?.subType === articho.BillIssuedType.CREDIT_NOTE;
|
|
430
|
+
const isDownPayment = bill?.subType === articho.BillIssuedType.DOWN_PAYMENT;
|
|
431
|
+
|
|
432
|
+
const elements = [...(bill?.elements ?? [])]
|
|
433
|
+
// los acomptes calculan su total con todas sus líneas
|
|
434
|
+
.filter((element) => isDownPayment || element?.isInvoiced !== false)
|
|
435
|
+
.sort((a, b) => (a?.order ?? 0) - (b?.order ?? 0));
|
|
436
|
+
const amounts = elements.map(toPennylaneLineAmount);
|
|
437
|
+
|
|
438
|
+
// Un avoir anula su factura: cada línea cambia de signo, y una línea negativa
|
|
439
|
+
// (commission apporteur, moins-value) pasa a positiva. Solo un avoir cuyas
|
|
440
|
+
// líneas suman en negativo conserva todas sus líneas en negativo.
|
|
441
|
+
const creditNoteOfPositiveBill =
|
|
442
|
+
isCreditNote && amounts.reduce((sum, a) => sum + a.quantity * a.unitPrice, 0) >= 0;
|
|
443
|
+
const toSentPrice = (unitPrice: number) => {
|
|
444
|
+
if (!isCreditNote) return unitPrice;
|
|
445
|
+
return creditNoteOfPositiveBill ? -unitPrice : -Math.abs(unitPrice);
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
const lines = elements.map((element, index) => {
|
|
449
|
+
const amount = amounts[index];
|
|
450
|
+
return {
|
|
451
|
+
label: element.description,
|
|
452
|
+
quantity: amount.quantity,
|
|
453
|
+
unit: 'piece',
|
|
454
|
+
unitPrice: toSentPrice(amount.unitPrice),
|
|
455
|
+
// `bill.tva` es la casilla « TVA non applicable »: true = sin IVA.
|
|
456
|
+
vatRate: toVatRateCode(element.tva, bill?.tva !== true),
|
|
457
|
+
...(amount.discount ? { discount: amount.discount } : {}),
|
|
458
|
+
};
|
|
459
|
+
});
|
|
357
460
|
|
|
358
|
-
return [...(bill
|
|
359
|
-
.sort((a, b) => (a?.order ?? 0) - (b?.order ?? 0))
|
|
360
|
-
.map((element) => {
|
|
361
|
-
const amount = toPennylaneLineAmount(element);
|
|
362
|
-
return {
|
|
363
|
-
label: element.description,
|
|
364
|
-
quantity: amount.quantity,
|
|
365
|
-
unit: 'piece',
|
|
366
|
-
unitPrice: isCreditNote ? -Math.abs(amount.unitPrice) : amount.unitPrice,
|
|
367
|
-
// `bill.tva` es la casilla « TVA non applicable »: true = sin IVA.
|
|
368
|
-
vatRate: toVatRateCode(element.tva, bill?.tva !== true),
|
|
369
|
-
...(amount.discount ? { discount: amount.discount } : {}),
|
|
370
|
-
};
|
|
371
|
-
});
|
|
461
|
+
return [...lines, ...deductionLines(bill, lines)];
|
|
372
462
|
};
|
|
373
463
|
|
|
374
464
|
/**
|
|
@@ -478,6 +568,56 @@ export const billIssuedToPennylanePayload = (
|
|
|
478
568
|
};
|
|
479
569
|
};
|
|
480
570
|
|
|
571
|
+
/** Ficha de Articho del proveedor de una factura recibida. */
|
|
572
|
+
export type ReceivedBillSupplier = { kind: 'profile' | 'provider'; id: string };
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* Quién emitió una factura recibida, es decir, su proveedor en PennyLane.
|
|
576
|
+
*
|
|
577
|
+
* Es el « Émetteur » elegido en la factura, no quien la subió: un
|
|
578
|
+
* administrador sube facturas en nombre de un pro o de un apporteur, y tomar
|
|
579
|
+
* al que la subió mandaba a PennyLane los datos del administrador (o los de la
|
|
580
|
+
* empresa) como si fueran los del proveedor.
|
|
581
|
+
*
|
|
582
|
+
* - `entityPro` / `entityProvider`, si la factura los tiene.
|
|
583
|
+
* - Entidad PRO: el pro elegido (`entityData.id`, con forma `userId-enterpriseId`).
|
|
584
|
+
* - Entidad PROVIDER: el apporteur elegido (`entityData.id`).
|
|
585
|
+
* - Fournisseurs de matériaux o de services y « Autre »: texto libre, sin ficha.
|
|
586
|
+
* - Sin entidad: el pro que subió su propia factura.
|
|
587
|
+
*
|
|
588
|
+
* @param {articho.BillReceived} bill Factura recibida.
|
|
589
|
+
* @return {ReceivedBillSupplier | null} Ficha del proveedor, o null si no tiene.
|
|
590
|
+
*/
|
|
591
|
+
export const getReceivedBillSupplier = (
|
|
592
|
+
bill?: articho.BillReceived | null
|
|
593
|
+
): ReceivedBillSupplier | null => {
|
|
594
|
+
if (!bill) return null;
|
|
595
|
+
if (bill.entityPro) return { kind: 'profile', id: bill.entityPro };
|
|
596
|
+
if (bill.entityProvider) return { kind: 'provider', id: bill.entityProvider };
|
|
597
|
+
|
|
598
|
+
const entityId = bill.entityData?.id;
|
|
599
|
+
|
|
600
|
+
switch (bill.entity) {
|
|
601
|
+
case articho.BillReceivedEntity.PRO:
|
|
602
|
+
// Strip the enterprise part of `userId-enterpriseId`, if any.
|
|
603
|
+
if (entityId) return { kind: 'profile', id: entityId.replace(/-[^-]+$/, '') };
|
|
604
|
+
break;
|
|
605
|
+
case articho.BillReceivedEntity.PROVIDER:
|
|
606
|
+
return entityId ? { kind: 'provider', id: entityId } : null;
|
|
607
|
+
case articho.BillReceivedEntity.MATERIAL_PROVIDER:
|
|
608
|
+
case articho.BillReceivedEntity.SERVICE_PROVIDER:
|
|
609
|
+
case articho.BillReceivedEntity.OTHER:
|
|
610
|
+
return null;
|
|
611
|
+
default:
|
|
612
|
+
break;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
const owner = bill.ownerData as { role?: string; userId?: string } | undefined;
|
|
616
|
+
return owner?.role === articho.ROLE.PRO && owner.userId
|
|
617
|
+
? { kind: 'profile', id: owner.userId }
|
|
618
|
+
: null;
|
|
619
|
+
};
|
|
620
|
+
|
|
481
621
|
/** Known PennyLane company IDs mapped by Articho enterprise ID. Used as fallback when not configured in Firestore. */
|
|
482
622
|
export const ENTERPRISE_PENNYLANE_COMPANY_IDS: Record<string, string> = {
|
|
483
623
|
'45106373900119': '156553',
|