update quick add.
ci-cd-vm / ci-cd (push) Successful in 1m40s

This commit is contained in:
Chris Chen
2026-06-24 12:01:55 -07:00
parent e768f53ccc
commit e9aad74df6
3 changed files with 9 additions and 6 deletions
@@ -2,6 +2,7 @@
<div class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3"> <div class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3">
<label class="flex flex-col gap-1">First name (EN) *<kendo-textbox [(ngModel)]="firstName_en"></kendo-textbox></label> <label class="flex flex-col gap-1">First name (EN) *<kendo-textbox [(ngModel)]="firstName_en"></kendo-textbox></label>
<label class="flex flex-col gap-1">Last name (EN) *<kendo-textbox [(ngModel)]="lastName_en"></kendo-textbox></label> <label class="flex flex-col gap-1">Last name (EN) *<kendo-textbox [(ngModel)]="lastName_en"></kendo-textbox></label>
<label class="flex flex-col gap-1 md:col-span-2">暱稱 · Nick name<kendo-textbox [(ngModel)]="nickName"></kendo-textbox></label>
<label class="flex flex-col gap-1">名 (中)<kendo-textbox [(ngModel)]="firstName_zh"></kendo-textbox></label> <label class="flex flex-col gap-1">名 (中)<kendo-textbox [(ngModel)]="firstName_zh"></kendo-textbox></label>
<label class="flex flex-col gap-1">姓 (中)<kendo-textbox [(ngModel)]="lastName_zh"></kendo-textbox></label> <label class="flex flex-col gap-1">姓 (中)<kendo-textbox [(ngModel)]="lastName_zh"></kendo-textbox></label>
<label class="flex flex-col gap-1 md:col-span-2">公司行號 · Company<kendo-textbox [(ngModel)]="entity"></kendo-textbox></label> <label class="flex flex-col gap-1 md:col-span-2">公司行號 · Company<kendo-textbox [(ngModel)]="entity"></kendo-textbox></label>
@@ -19,6 +19,7 @@ export class MemberQuickAddDialogComponent {
firstName_en = ''; firstName_en = '';
lastName_en = ''; lastName_en = '';
nickName: string | null = null;
firstName_zh: string | null = null; firstName_zh: string | null = null;
lastName_zh: string | null = null; lastName_zh: string | null = null;
entity: string | null = null; entity: string | null = null;
@@ -33,7 +34,7 @@ export class MemberQuickAddDialogComponent {
const req: CreateMemberRequest = { const req: CreateMemberRequest = {
firstName_en: this.firstName_en, firstName_en: this.firstName_en,
lastName_en: this.lastName_en, lastName_en: this.lastName_en,
nickName: null, nickName: this.nickName,
firstName_zh: this.firstName_zh, firstName_zh: this.firstName_zh,
lastName_zh: this.lastName_zh, lastName_zh: this.lastName_zh,
entity: this.entity, entity: this.entity,
@@ -62,7 +63,7 @@ export class MemberQuickAddDialogComponent {
id, id,
firstName_en: this.firstName_en, firstName_en: this.firstName_en,
lastName_en: this.lastName_en, lastName_en: this.lastName_en,
nickName: null, nickName: this.nickName,
firstName_zh: this.firstName_zh, firstName_zh: this.firstName_zh,
lastName_zh: this.lastName_zh, lastName_zh: this.lastName_zh,
entity: this.entity, entity: this.entity,
@@ -94,7 +94,7 @@ export class OfferingSessionPageComponent implements OnInit, OnDestroy {
private memberApi: MemberApiService, private memberApi: MemberApiService,
private signalr: OfferingEntrySignalrService, private signalr: OfferingEntrySignalrService,
private mealAttendanceApi: MealAttendanceApiService, private mealAttendanceApi: MealAttendanceApiService,
) {} ) { }
ngOnInit(): void { ngOnInit(): void {
this.categoryApi.getAll(false).subscribe(c => { this.categoryApi.getAll(false).subscribe(c => {
@@ -339,7 +339,7 @@ export class OfferingSessionPageComponent implements OnInit, OnDestroy {
clearAnonymous(): void { clearAnonymous(): void {
this.entry.isAnonymous = false; this.entry.isAnonymous = false;
} }
lastAddedLine: OfferingBufferLine | null = null;
addLine(): void { addLine(): void {
if (this.entry.amount <= 0) return; if (this.entry.amount <= 0) return;
if (this.entry.paymentMethod === 'Check' && !this.entry.checkNumber) return; if (this.entry.paymentMethod === 'Check' && !this.entry.checkNumber) return;
@@ -351,6 +351,7 @@ export class OfferingSessionPageComponent implements OnInit, OnDestroy {
}; };
if (this.editingIndex !== null) { this.buffer[this.editingIndex] = line; this.editingIndex = null; } if (this.editingIndex !== null) { this.buffer[this.editingIndex] = line; this.editingIndex = null; }
else { this.buffer = [...this.buffer, line]; } else { this.buffer = [...this.buffer, line]; }
this.lastAddedLine = line;
this.resetEntry(); this.resetEntry();
} }
@@ -405,7 +406,7 @@ export class OfferingSessionPageComponent implements OnInit, OnDestroy {
switchMap(id => this.pendingProofFiles.length === 0 switchMap(id => this.pendingProofFiles.length === 0
? of(void 0) ? of(void 0)
: from(buildProofPdf(this.pendingProofFiles)).pipe( : from(buildProofPdf(this.pendingProofFiles)).pipe(
switchMap(({ blob }) => this.api.uploadProof(id, blob)))), switchMap(({ blob }) => this.api.uploadProof(id, blob)))),
).subscribe({ ).subscribe({
next: () => { next: () => {
this.submitting = false; this.submitting = false;
@@ -503,7 +504,7 @@ export class OfferingSessionPageComponent implements OnInit, OnDestroy {
private blankEntry(): OfferingBufferLine { private blankEntry(): OfferingBufferLine {
return { return {
memberId: null, givingCategoryId: 0, amount: 0, paymentMethod: 'Cash', memberId: null, givingCategoryId: this.lastAddedLine?.givingCategoryId, amount: 0, paymentMethod: this.lastAddedLine?.paymentMethod ?? 'Cash',
checkNumber: null, zelleReferenceCode: null, payPalTransactionId: null, checkNumber: null, zelleReferenceCode: null, payPalTransactionId: null,
isAnonymous: false, notes: null, memberName: null, categoryName: '', isAnonymous: false, notes: null, memberName: null, categoryName: '',
}; };