Skip to content

Commit

Permalink
feat: mail receipt preview
Browse files Browse the repository at this point in the history
  • Loading branch information
abouolia committed Nov 24, 2024
1 parent 3537a05 commit 459bf4c
Show file tree
Hide file tree
Showing 5 changed files with 393 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,149 @@
import { Transformer } from '@/lib/Transformer/Transformer';

export class GetEstimateMailTemplateAttributesTransformer extends Transformer {}
export class GetEstimateMailTemplateAttributesTransformer extends Transformer {
public includeAttributes = (): string[] => {
return [
'companyLogoUri',
'companyName',

'estimateAmount',

'primaryColor',

'estimateAmount',
'estimateMessage',

'dueDate',
'dueDateLabel',

'estimateNumber',
'estimateNumberLabel',

'total',
'totalLabel',

'dueAmount',
'dueAmountLabel',

'viewEstimateButtonLabel',
'viewEstimateButtonUrl',

'items',
];
};

/**
* Exclude all attributes.
* @returns {string[]}
*/
public excludeAttributes = (): string[] => {
return ['*'];
};

/**
* Company logo uri.
* @returns {string}
*/
public companyLogoUri(): string {
return this.options.brandingTemplate?.companyLogoUri;
}

/**
* Company name.
* @returns {string}
*/
public companyName(): string {
return this.context.organization.name;
}

/**
* Primary color
* @returns {string}
*/
public primaryColor(): string {
return this.options?.brandingTemplate?.attributes?.primaryColor;
}

/**
* Estimate number.
* @returns {string}
*/
public estimateNumber(): string {
return this.options.estimate.number;
}

/**
* Estimate number label.
* @returns {string}
*/
public estimateNumberLabel(): string {
return 'Estimate Number';
}

/**
* Expiration date.
* @returns {string}
*/
public expirationDate(): string {
return this.options.estimate.expirationDate;
}

/**
* Expiration date label.
* @returns {string}
*/
public expirationDateLabel(): string {
return 'Expiration Date';
}

/**
* Estimate total.
*/
public total(): string {
return this.options.estimate.totalFormatted;
}

/**
* Estimate total label.
* @returns {string}
*/
public totalLabel(): string {
return 'Total';
}

/**
* Estimate mail items attributes.
*/
public items(): any[] {
return this.item(
this.options.estimate.entries,
new GetEstimateMailTemplateEntryAttributesTransformer()
);
}
}

class GetEstimateMailTemplateEntryAttributesTransformer extends Transformer {
public includeAttributes = (): string[] => {
return ['label', 'quantity', 'rate', 'total'];
};

public excludeAttributes = (): string[] => {
return ['*'];
};

public label(entry): string {
return entry?.item?.name;
}

public quantity(entry): string {
return entry?.quantity;
}

public rate(entry): string {
return entry?.rateFormatted;
}

public total(entry): string {
return entry?.totalFormatted;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export class GetPaymentReceivedMailStateTransformer extends PaymentReceiveTransf
* @returns {string}
*/
protected totalFormatted = (payment) => {
return this.formatMoney(payment.total);
return this.formatMoney(payment.amount);
};

/**
Expand All @@ -125,7 +125,7 @@ export class GetPaymentReceivedMailStateTransformer extends PaymentReceiveTransf
* @returns {string}
*/
protected subtotalFormatted = (payment) => {
return this.formatMoney(payment.total);
return this.formatMoney(payment.amount);
};

/**
Expand Down Expand Up @@ -163,7 +163,7 @@ export class GetPaymentReceivedEntryMailState extends PaymentReceivedEntryTransf
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return ['paymentAmountFormatted'];
return ['paidAmount', 'invoiceNumber'];
};

/**
Expand All @@ -173,4 +173,22 @@ export class GetPaymentReceivedEntryMailState extends PaymentReceivedEntryTransf
public excludeAttributes = (): string[] => {
return ['*'];
};

/**
*
* @param entry
* @returns {string}
*/
public paidAmount = (entry) => {
return this.paymentAmountFormatted(entry);
};

/**
*
* @param entry
* @returns {string}
*/
public invoiceNumber = (entry) => {
return entry.invoice.invoiceNo;
};
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,83 @@
import { Transformer } from '@/lib/Transformer/Transformer';

export class GetPaymentReceivedMailTemplateAttrsTransformer extends Transformer {}
export class GetPaymentReceivedMailTemplateAttrsTransformer extends Transformer {
/**
* Included attributes.
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return [
'companyLogoUri',
'companyName',
'primaryColor',
'total',
'totalLabel',
'paymentNumberLabel',
'paymentNumber',
];
};

/**
* Exclude all attributes.
* @returns {string[]}
*/
public excludeAttributes = (): string[] => {
return ['*'];
};

/**
* Company logo uri.
* @returns {string}
*/
public companyLogoUri(): string {
return this.options.brandingTemplate?.companyLogoUri;
}

/**
* Company name.
* @returns {string}
*/
public companyName(): string {
return this.context.organization.name;
}

/**
* Primary color
* @returns {string}
*/
public primaryColor(): string {
return this.options?.brandingTemplate?.attributes?.primaryColor;
}

/**
* Total.
* @returns {string}
*/
public total(): string {
return this.options.paymentReceived.formattedAmount;
}

/**
* Total label.
* @returns {string}
*/
public totalLabel(): string {
return 'Total';
}

/**
* Payment number label.
* @returns
*/
public paymentNumberLabel(): string {
return 'Payment # {paymentNumber}';
}

/**
* Payment number.
* @returns {string}
*/
public paymentNumber(): string {
return this.options.paymentReceived.paymentReceiveNumber;
}
}
Loading

0 comments on commit 459bf4c

Please sign in to comment.