Implement the paid field in Order
This commit is contained in:
parent
796c39bec2
commit
e9682c1871
8 changed files with 41 additions and 7 deletions
24
CHANGELOG.md
Normal file
24
CHANGELOG.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- Invoice display via URL
|
||||
- Invoice button for closing order
|
||||
- Field `paid` for Order type
|
||||
|
||||
## [1.1.0] - 2022-05-20
|
||||
|
||||
### Changed
|
||||
|
||||
- Services interacting with backend API were modified to support the new [ZGo Backend](https://gitlabl.com/pitmutt/zgo-backend).
|
||||
|
||||
### Removed
|
||||
|
||||
- NodeJS back-end
|
||||
|
||||
|
|
@ -18,8 +18,6 @@
|
|||
<mat-card-content>
|
||||
<p class="small">Order ID: {{orderId}}</p>
|
||||
<p class="small">Zcash Price: {{order.price | currency: order.currency.toUpperCase()}}</p>
|
||||
<span *ngIf="order.closed"><fa-icon [icon]="faCheck"></fa-icon>Payment confirmed</span>
|
||||
<span *ngIf="!order.closed"><fa-icon [icon]="faHourglass"></fa-icon>Payment pending</span>
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
|
@ -39,7 +37,9 @@
|
|||
<td align="right">{{(item.qty * item.cost) | currency: order.currency.toUpperCase()}} </td>
|
||||
<tr>
|
||||
</table>
|
||||
<div class="qrcode" id="payment-qr"></div>
|
||||
<div class="qrcode" id="payment-qr" *ngIf="!order.paid"></div>
|
||||
<span *ngIf="order.paid"><fa-icon [icon]="faCheck" color="primary"></fa-icon>Payment confirmed</span>
|
||||
<span *ngIf="!order.paid"><fa-icon [icon]="faHourglass" color="primary"></fa-icon>Payment pending</span>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
|
|
|
@ -33,6 +33,7 @@ export class InvoiceComponent implements OnInit {
|
|||
price: 0,
|
||||
total: 0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
|
|
@ -27,6 +27,7 @@ export class OrderComponent implements OnInit{
|
|||
price:0,
|
||||
total:0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
@ -107,7 +108,7 @@ export class OrderComponent implements OnInit{
|
|||
order: this.order._id
|
||||
};
|
||||
console.log('Payment confirmed!');
|
||||
this.orderService.closeOrder();
|
||||
this.orderService.closeOrder(true);
|
||||
const dialogRef2 = this.dialog.open(ReceiptQRComponent, dialogConfig2);
|
||||
dialogRef2.afterClosed().subscribe( val => {
|
||||
if (val) {
|
||||
|
@ -134,7 +135,7 @@ export class OrderComponent implements OnInit{
|
|||
const dialogRef = this.dialog.open(PromptInvoiceComponent, dialogConfig);
|
||||
dialogRef.afterClosed().subscribe((val) => {
|
||||
if (val) {
|
||||
this.orderService.closeOrder();
|
||||
this.orderService.closeOrder(false);
|
||||
} else {
|
||||
console.log('Returning to order');
|
||||
}
|
||||
|
|
|
@ -10,5 +10,6 @@ export interface Order {
|
|||
price?: number,
|
||||
total: number,
|
||||
totalZec: number,
|
||||
lines: LineItem[]
|
||||
lines: LineItem[],
|
||||
paid: boolean
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ export class OrderService {
|
|||
price: 0,
|
||||
total: 0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
@ -157,6 +158,7 @@ export class OrderService {
|
|||
totalZec: 0,
|
||||
price: 0,
|
||||
total: 0,
|
||||
paid: false,
|
||||
lines: [lineItem]
|
||||
};
|
||||
let obs = this.http.post<{message: string, order: Order}>(this.beUrl+'api/order', {payload: order}, { headers: this.reqHeaders });
|
||||
|
@ -183,6 +185,7 @@ export class OrderService {
|
|||
total: 0,
|
||||
totalZec: 0,
|
||||
price: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
@ -197,11 +200,12 @@ export class OrderService {
|
|||
return obs;
|
||||
}
|
||||
|
||||
closeOrder(){
|
||||
closeOrder(paid: boolean){
|
||||
this.fullnodeService.priceUpdate.subscribe((price) => {
|
||||
this.dataStore.order.price = price;
|
||||
});
|
||||
this.dataStore.order.closed = true;
|
||||
this.dataStore.order.paid = paid;
|
||||
let obs = this.http.post(this.beUrl+'api/order', {payload: this.dataStore.order}, { headers: this.reqHeaders });
|
||||
obs.subscribe((orderData) => {
|
||||
console.log('Closed order', orderData);
|
||||
|
@ -214,6 +218,7 @@ export class OrderService {
|
|||
price: 0,
|
||||
total: 0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
|
|
@ -46,6 +46,7 @@ export class ReceiptService {
|
|||
price: 0,
|
||||
total: 0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
|
|
@ -23,6 +23,7 @@ export class ReceiptComponent implements OnInit {
|
|||
price: 0,
|
||||
total: 0,
|
||||
totalZec: 0,
|
||||
paid: false,
|
||||
lines: [
|
||||
{
|
||||
qty: 1,
|
||||
|
|
Loading…
Reference in a new issue