@weiliang79/ubl-builder
Version:
Tool to create xml documents with UBL 2.1 standard
106 lines (105 loc) • 6.05 kB
JavaScript
;
// 'use strict'
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PaymentTerms = void 0;
const GenericAggregateComponent_1 = __importDefault(require("./GenericAggregateComponent"));
const UnqualifiedDataTypes_1 = require("../types/UnqualifiedDataTypes");
const UdtPercent_1 = require("../types/UnqualifiedDataTypes/UdtPercent");
const UdtAmount_1 = require("../types/UnqualifiedDataTypes/UdtAmount");
const PeriodTypeGroup_1 = require("./PeriodTypeGroup");
// const GenericAggregateComponent = require("./GenericAggregateComponent");;
// /* TODO GANERIC CLASSES */
// const { UdtCode, UdtIdentifier, UdtDate, UdtText, UdtTime, UdtName, UdtQuantity, UdtPercent, UdtAmount } = require("../types/UnqualifiedDataTypes");
// /* TODO GANERIC CLASSES */
// const { PeriodType } = require("./PeriodTypeGroup");
/*
http://www.datypic.com/sc/ubl21/e-cac_PaymentTerms.html
1 cbc:ID [0..1] An identifier for this set of payment terms.
2 cbc:PaymentMeansID [0..*] An identifier for a means of payment associated with these payment terms.
3 cbc:PrepaidPaymentReferenceID [0..1] An identifier for a reference to a prepaid payment.
4 cbc:Note [0..*] Free-form text conveying information that is not contained explicitly in other structures.
5 cbc:ReferenceEventCode [0..1] A code signifying the event during which these terms are offered.
6 cbc:SettlementDiscountPercent [0..1] The percentage for the settlement discount that is offered for payment under these payment terms.
7 cbc:PenaltySurchargePercent [0..1] The penalty for payment after the settlement period, expressed as a percentage of the payment.
8 cbc:PaymentPercent [0..1] The part of a payment, expressed as a percent, relevant for these payment terms.
9 cbc:Amount [0..1] The monetary amount covered by these payment terms.
10 cbc:SettlementDiscountAmount [0..1] The amount of a settlement discount offered for payment under these payment terms.
11 cbc:PenaltyAmount [0..1] The monetary amount of the penalty for payment after the settlement period.
12 cbc:PaymentTermsDetailsURI [0..1] The Uniform Resource Identifier (URI) of a document providing additional details regarding these payment terms.
13 cbc:PaymentDueDate [0..1] The due date for these payment terms.
14 cbc:InstallmentDueDate [0..1] The due date for an installment payment for these payment terms.
15 cbc:InvoicingPartyReference [0..1] A reference to the payment terms used by the invoicing party. This may have been requested of the payer by the payee to accompany its remittance.
16 cac:SettlementPeriod [0..1] The period during which settlement may occur.
17 cac:PenaltyPeriod [0..1] The period during which penalties may apply.
18 cac:ExchangeRate [0..1] The currency exchange rate for purposes of these payment terms.
19 cac:ValidityPeriod [0..1] The period during which these payment terms are valid.
*/
const ParamsMap = {
id: { order: 1, attributeName: 'cbc:ID', min: 0, max: 1, classRef: UnqualifiedDataTypes_1.UdtIdentifier },
paymentMeansIDs: { order: 2, attributeName: 'cbc:PaymentMeansID', min: 0, max: undefined, classRef: UnqualifiedDataTypes_1.UdtIdentifier },
prepaidPaymentReferenceID: {
order: 3,
attributeName: 'cbc:PrepaidPaymentReferenceID',
min: 0,
max: 1,
classRef: UnqualifiedDataTypes_1.UdtIdentifier,
},
notes: { order: 4, attributeName: 'cbc:Note', min: 0, max: undefined, classRef: UnqualifiedDataTypes_1.UdtText },
referenceEventCode: { order: 5, attributeName: 'cbc:ReferenceEventCode', min: 0, max: 1, classRef: UnqualifiedDataTypes_1.UdtCode },
settlementDiscountPercent: {
order: 6,
attributeName: 'cbc:SettlementDiscountPercent',
min: 0,
max: 1,
classRef: UnqualifiedDataTypes_1.UdtCode,
},
penaltySurchargePercent: {
order: 7,
attributeName: 'cbc:PenaltySurchargePercent',
min: 0,
max: 1,
classRef: UdtPercent_1.UdtPercent,
},
paymentPercent: { order: 8, attributeName: 'cbc:PaymentPercent', min: 0, max: 1, classRef: UdtPercent_1.UdtPercent },
amount: { order: 9, attributeName: 'cbc:Amount', min: 0, max: 1, classRef: UdtAmount_1.UdtAmount },
settlementDiscountAmount: {
order: 10,
attributeName: 'cbc:SettlementDiscountAmount',
min: 0,
max: 1,
classRef: UdtAmount_1.UdtAmount,
},
penaltyAmount: { order: 11, attributeName: 'cbc:PenaltyAmount', min: 0, max: 1, classRef: UdtAmount_1.UdtAmount },
PaymentTermsDetailsURI: {
order: 12,
attributeName: 'cbc:PaymentTermsDetailsURI',
min: 0,
max: 1,
classRef: UnqualifiedDataTypes_1.UdtIdentifier,
},
paymentDueDate: { order: 13, attributeName: 'cbc:PaymentDueDate', min: 0, max: 1, classRef: UnqualifiedDataTypes_1.UdtDate },
installmentDueDate: { order: 14, attributeName: 'cbc:InstallmentDueDate', min: 0, max: 1, classRef: UnqualifiedDataTypes_1.UdtDate },
invoicingPartyReference: {
order: 15,
attributeName: 'cbc:InvoicingPartyReference',
min: 0,
max: 1,
classRef: UnqualifiedDataTypes_1.UdtText,
},
settlementPeriod: { order: 16, attributeName: 'cac:SettlementPeriod', min: 0, max: 1, classRef: PeriodTypeGroup_1.PeriodType },
penaltyPeriod: { order: 17, attributeName: 'cac:PenaltyPeriod', min: 0, max: 1, classRef: PeriodTypeGroup_1.PeriodType },
// ################################## TODO CAC MISSING ################################################
};
/**
*
*/
class PaymentTermsType extends GenericAggregateComponent_1.default {
constructor(content) {
super(content, ParamsMap, 'cac:PaymentTermsType');
}
}
exports.PaymentTerms = PaymentTermsType;
//# sourceMappingURL=PaymentTermsTypeGroup.js.map