UNPKG

@gorgo/medusa-payment-tkassa

Version:
114 lines 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateReceipt = generateReceipt; exports.generateRefundReceipt = generateRefundReceipt; const get_smallest_unit_1 = require("./get-smallest-unit"); function generateReceiptFfd105(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, email, phone) { const res = {}; res.FfdVersion = "1.05"; res.Taxation = taxation; if (email) res.Email = email; if (phone) res.Phone = phone; const Items = items.map(i => ({ Name: i.variant_title ? `${i.product_title} (${i.variant_title})` : i.product_title, Price: (0, get_smallest_unit_1.getSmallestUnit)(i.unit_price, currencyCode), Quantity: i.quantity, Amount: (0, get_smallest_unit_1.getSmallestUnit)(i.total, currencyCode), Tax: taxItem, PaymentMethod: 'full_payment', PaymentObject: 'commodity', })); if (shippingTotal > 0) { const name = shippingMethods?.[0]?.name ?? 'Shipping'; const amt = (0, get_smallest_unit_1.getSmallestUnit)(shippingTotal, currencyCode); Items.push({ Name: name.length > 128 ? name.slice(0, 125) + '…' : name, Price: amt, Quantity: 1, Amount: amt, Tax: taxShipping, PaymentMethod: 'full_payment', PaymentObject: 'service', }); } res.Items = Items; return res; } function generateReceiptFfd12(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, shippingAddress, email, phone) { const res = {}; res.FfdVersion = "1.2"; res.Taxation = taxation; if (email) res.Email = email; if (phone) res.Phone = phone; if (shippingAddress.first_name && shippingAddress.last_name) res.Customer = `${shippingAddress.last_name} ${shippingAddress.first_name}`; const Items = items.map(i => ({ Name: i.variant_title ? `${i.product_title} (${i.variant_title})` : i.product_title, Price: (0, get_smallest_unit_1.getSmallestUnit)(i.unit_price, currencyCode), Quantity: i.quantity, Amount: (0, get_smallest_unit_1.getSmallestUnit)(i.total, currencyCode), Tax: taxItem, PaymentMethod: 'full_payment', // TODO: to be prepayment and payment receipts? PaymentObject: 'commodity', // TODO: to be dynamic? MeasurementUnit: 'шт' // TODO: to be dynamic? })); if (shippingTotal > 0) { const name = shippingMethods?.[0]?.name ?? 'Shipping'; const amt = (0, get_smallest_unit_1.getSmallestUnit)(shippingTotal, currencyCode); Items.push({ Name: name.length > 128 ? name.slice(0, 125) + '…' : name, Price: amt, Quantity: 1, Amount: amt, Tax: taxShipping, PaymentMethod: 'full_payment', // TODO: to be prepayment and payment receipts? PaymentObject: 'service', MeasurementUnit: 'шт' // TODO: to be dynamic? }); } res.Items = Items; return res; } function generateReceipt(ffdVersion, taxation, taxItem, taxShipping, cart) { const Email = cart?.email; const Phone = cart?.shipping_address.phone; const items = cart?.items; const currencyCode = cart?.currency_code; const shippingTotal = cart?.shipping_total; const shippingMethods = cart?.shipping_methods; const shippingAddress = cart?.shipping_address; let receipt = {}; switch (ffdVersion) { case "1.05": receipt = generateReceiptFfd105(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, Email, Phone); break; case "1.2": receipt = generateReceiptFfd12(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, shippingAddress, Email, Phone); break; } return receipt; } function generateRefundReceipt(amount, orderId, initialReceipt) { const receipt = { ...initialReceipt }; if (initialReceipt.FfdVersion === "1.2") { receipt.Items = [initialReceipt.Items[0]]; } else { receipt.Items = [initialReceipt.Items[0]]; } // TODO: to be specific receipts for items and shipping refunds? receipt.Items[0].Name = `Refund for Order ${orderId}`; receipt.Items[0].Quantity = 1; receipt.Items[0].Amount = (0, get_smallest_unit_1.getSmallestUnit)(amount, 'RUB'); receipt.Items[0].Price = (0, get_smallest_unit_1.getSmallestUnit)(amount, 'RUB'); return receipt; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5bWVudC10a2Fzc2EvdXRpbHMvZ2VuZXJhdGUtcmVjZWlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFIQSwwQ0FpREM7QUFFRCxzREFtQkM7QUExTEQsMkRBRTRCO0FBSzVCLFNBQVMscUJBQXFCLENBQzVCLFFBQThELEVBQzlELE9BQXFHLEVBQ3JHLFdBQXlHLEVBQ3pHLEtBQWlDLEVBQ2pDLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLGVBQTJDLEVBQzNDLEtBQWMsRUFDZCxLQUFjO0lBRWQsTUFBTSxHQUFHLEdBQUcsRUFBOEMsQ0FBQTtJQUUxRCxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtJQUN2QixHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUV2QixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixNQUFNLEtBQUssR0FBNkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhO1lBQ25CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRztZQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQXVCO1FBQzdCLEtBQUssRUFBRSxJQUFBLG1DQUFlLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7UUFDbEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ3BCLE1BQU0sRUFBRSxJQUFBLG1DQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7UUFDOUMsR0FBRyxFQUFFLE9BQU87UUFDWixhQUFhLEVBQUUsY0FBYztRQUM3QixhQUFhLEVBQUUsV0FBVztLQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNILElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxVQUFVLENBQUE7UUFDckQsTUFBTSxHQUFHLEdBQUcsSUFBQSxtQ0FBZSxFQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUN4RCxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDekQsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxHQUFHO1lBQ1gsR0FBRyxFQUFFLFdBQVc7WUFDaEIsYUFBYSxFQUFFLGNBQWM7WUFDN0IsYUFBYSxFQUFFLFNBQVM7U0FDekIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2pCLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLFFBQTZELEVBQzdELE9BQXFHLEVBQ3JHLFdBQXlHLEVBQ3pHLEtBQWlDLEVBQ2pDLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLGVBQTJDLEVBQzNDLGVBQW9DLEVBQ3BDLEtBQWMsRUFDZCxLQUFjO0lBRWQsTUFBTSxHQUFHLEdBQUcsRUFBNkMsQ0FBQTtJQUV6RCxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN0QixHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUV2QixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixJQUFJLGVBQWUsQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDLFNBQVM7UUFDekQsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLGVBQWUsQ0FBQyxTQUFTLElBQUksZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBRTdFLE1BQU0sS0FBSyxHQUE0QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDbkIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHO1lBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBdUI7UUFDN0IsS0FBSyxFQUFFLElBQUEsbUNBQWUsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztRQUNsRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsTUFBTSxFQUFFLElBQUEsbUNBQWUsRUFBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUM5QyxHQUFHLEVBQUUsT0FBTztRQUNaLGFBQWEsRUFBRSxjQUFjLEVBQUUsK0NBQStDO1FBQzlFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUJBQXVCO1FBQ25ELGVBQWUsRUFBRSxJQUFJLENBQUMsdUJBQXVCO0tBQzlDLENBQUMsQ0FBQyxDQUFBO0lBQ0gsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLFVBQVUsQ0FBQTtRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFBLG1DQUFlLEVBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3hELEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN6RCxLQUFLLEVBQUUsR0FBRztZQUNWLFFBQVEsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLEdBQUc7WUFDWCxHQUFHLEVBQUUsV0FBVztZQUNoQixhQUFhLEVBQUUsY0FBYyxFQUFFLCtDQUErQztZQUM5RSxhQUFhLEVBQUUsU0FBUztZQUN4QixlQUFlLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUM5QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFFakIsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUM3QixVQUEwQixFQUMxQixRQUFvSCxFQUNwSCxPQUFxRyxFQUNyRyxXQUF5RyxFQUN6RyxJQUF5QjtJQUd6QixNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBZSxDQUFBO0lBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxLQUFlLENBQUE7SUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQW1DLENBQUE7SUFDdkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxFQUFFLGFBQXVCLENBQUE7SUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxFQUFFLGNBQXdCLENBQUE7SUFDcEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLGdCQUE4QyxDQUFBO0lBQzVFLE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxnQkFBOEMsQ0FBQTtJQUU1RSxJQUFJLE9BQU8sR0FBRyxFQUF3RixDQUFBO0lBRXRHLFFBQVEsVUFBVSxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxHQUFHLHFCQUFxQixDQUM3QixRQUFRLEVBQ1IsT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixlQUFlLEVBQ2YsS0FBSyxFQUNMLEtBQUssQ0FDTixDQUFBO1lBQ0QsTUFBSztRQUNQLEtBQUssS0FBSztZQUNSLE9BQU8sR0FBRyxvQkFBb0IsQ0FDNUIsUUFBUSxFQUNSLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLEVBQ0wsS0FBSyxDQUNOLENBQUE7WUFDRCxNQUFLO0lBQ1QsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FDbkMsTUFBc0IsRUFDdEIsT0FBZSxFQUNmLGNBQWtHO0lBRWxHLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQTtJQUNyQyxJQUFJLGNBQWMsQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUE2RCxDQUFDLENBQUE7SUFDdkcsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQThELENBQUMsQ0FBQTtJQUN4RyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLG9CQUFvQixPQUFPLEVBQUUsQ0FBQTtJQUNyRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7SUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBQSxtQ0FBZSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFBLG1DQUFlLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBRXZELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMifQ==