Implement tips component
This commit is contained in:
parent
1ba8d2189a
commit
f54cc14e92
12 changed files with 3314 additions and 2564 deletions
5458
package-lock.json
generated
5458
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -32,6 +32,7 @@
|
|||
"async": "^3.2.4",
|
||||
"coingecko-api": "^1.0.10",
|
||||
"easyqrcodejs": "^4.4.13",
|
||||
"hammerjs": "^2.0.8",
|
||||
"material-design-icons": "^3.0.1",
|
||||
"rxjs": "~7.8.0",
|
||||
"sha.js": "^2.4.11",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { BrowserModule, } from '@angular/platform-browser';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
||||
|
@ -52,6 +52,7 @@ import { PmtserviceComponent } from './pmtservice/pmtservice.component';
|
|||
import { XeroRegComponent } from './xeroreg/xeroreg.component';
|
||||
import { DbExportComponent } from './db-export/db-export.component';
|
||||
import { SessionpayComponent } from './sessionpay/sessionpay.component';
|
||||
import { TipsComponent } from './tips/tips.component';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
|
@ -83,9 +84,10 @@ import { SessionpayComponent } from './sessionpay/sessionpay.component';
|
|||
XeroRegComponent,
|
||||
DbExportComponent,
|
||||
SessionpayComponent,
|
||||
TipsComponent,
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
BrowserAnimationsModule,
|
||||
AppRoutingModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
|
@ -108,13 +110,14 @@ import { SessionpayComponent } from './sessionpay/sessionpay.component';
|
|||
MatTabsModule,
|
||||
MatDatepickerModule,
|
||||
MatNativeDateModule,
|
||||
BrowserAnimationsModule,
|
||||
BrowserModule,
|
||||
FontAwesomeModule
|
||||
],
|
||||
exports: [
|
||||
MatIconModule
|
||||
],
|
||||
providers: [],
|
||||
providers: [
|
||||
],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
export class AppModule { }
|
||||
|
|
|
@ -78,13 +78,13 @@
|
|||
<tr *ngIf="tax > 0">
|
||||
<td class="newOrdertbdetail" style="text-align: right;">Sales Tax</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ tax / 100 | percent:'1.2-4'}}</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ total * tax / 100 | currency: getCurrency() }}</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ order.taxAmount | currency: getCurrency() }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr *ngIf="vat > 0">
|
||||
<td class="newOrdertbdetail" style="text-align: right;">Value-Added Tax</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ vat / 100 | percent:'1.2-4' }}</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ total * vat / 100 | currency: getCurrency() }}</td>
|
||||
<td class="newOrdertbdetail" style="text-align: right;">{{ order.vatAmount | currency: getCurrency() }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -21,6 +21,7 @@ import { NotifierService } from '../notifier.service';
|
|||
|
||||
import { LanguageService } from '../language.service';
|
||||
import { LanguageData } from '../language.model';
|
||||
import {TipsComponent} from '../tips/tips.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-order',
|
||||
|
@ -63,11 +64,13 @@ export class OrderComponent implements OnInit{
|
|||
public total: number = 0;
|
||||
public tax: number = 0;
|
||||
public vat: number = 0;
|
||||
public tip: boolean = false;
|
||||
public orderUpdate: Observable<Order>;
|
||||
public priceUpdate: Observable<number>;
|
||||
public totalUpdate: Observable<number>;
|
||||
public taxUpdate: Observable<number>;
|
||||
public vatUpdate: Observable<number>;
|
||||
public tipUpdate: Observable<boolean>;
|
||||
|
||||
// ------------------------------------
|
||||
//
|
||||
|
@ -146,6 +149,10 @@ export class OrderComponent implements OnInit{
|
|||
this.vatUpdate.subscribe((vat) => {
|
||||
this.vat = vat;
|
||||
});
|
||||
this.tipUpdate = orderService.tipUpdate;
|
||||
this.tipUpdate.subscribe((tip) => {
|
||||
this.tip = tip;
|
||||
});
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -182,40 +189,59 @@ export class OrderComponent implements OnInit{
|
|||
}
|
||||
|
||||
checkout() {
|
||||
var zec = this.total/this.price;
|
||||
this.order.totalZec = parseFloat(zec.toFixed(8));
|
||||
const dialogConfig = new MatDialogConfig();
|
||||
|
||||
dialogConfig.disableClose = true;
|
||||
dialogConfig.autoFocus = true;
|
||||
dialogConfig.data = {
|
||||
totalZec: this.order.totalZec,
|
||||
addr: this.order.address,
|
||||
orderId: this.order._id
|
||||
};
|
||||
const dialogConfig3 = new MatDialogConfig();
|
||||
|
||||
const dialogRef = this.dialog.open(CheckoutComponent, dialogConfig);
|
||||
dialogRef.afterClosed().subscribe((val) => {
|
||||
if (val) {
|
||||
const dialogConfig2 = new MatDialogConfig();
|
||||
dialogConfig2.disableClose = true;
|
||||
dialogConfig2.autoFocus = true;
|
||||
dialogConfig2.data = {
|
||||
order: this.order._id
|
||||
};
|
||||
console.log('Payment confirmed!');
|
||||
this.orderService.closeOrder(true);
|
||||
const dialogRef2 = this.dialog.open(ReceiptQRComponent, dialogConfig2);
|
||||
dialogRef2.afterClosed().subscribe( val => {
|
||||
if (val) {
|
||||
console.log('Receipt closed.');
|
||||
this.oLines = [];
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log('Returning to order');
|
||||
}
|
||||
dialogConfig3.disableClose = true;
|
||||
dialogConfig3.autoFocus = true;
|
||||
dialogConfig3.data = {
|
||||
amt: this.total,
|
||||
flag: this.tip
|
||||
};
|
||||
|
||||
|
||||
const dialogRef3 = this.dialog.open(TipsComponent, dialogConfig3);
|
||||
dialogRef3.afterClosed().subscribe((tipVal) => {
|
||||
this.orderService.updateTip(tipVal).then((orderData) => {
|
||||
this.orderService.getOrder().subscribe((oData) => {
|
||||
var zec = this.total/this.price;
|
||||
this.order.totalZec = parseFloat(zec.toFixed(8));
|
||||
const dialogConfig = new MatDialogConfig();
|
||||
dialogConfig.disableClose = true;
|
||||
dialogConfig.autoFocus = true;
|
||||
dialogConfig.data = {
|
||||
totalZec: this.order.totalZec,
|
||||
addr: this.order.address,
|
||||
orderId: this.order._id
|
||||
};
|
||||
const dialogRef = this.dialog.open(CheckoutComponent, dialogConfig);
|
||||
dialogRef.afterClosed().subscribe((val) => {
|
||||
if (val) {
|
||||
const dialogConfig2 = new MatDialogConfig();
|
||||
dialogConfig2.disableClose = true;
|
||||
dialogConfig2.autoFocus = true;
|
||||
dialogConfig2.data = {
|
||||
order: this.order._id
|
||||
};
|
||||
console.log('Payment confirmed!');
|
||||
this.orderService.closeOrder(true);
|
||||
const dialogRef2 = this.dialog.open(ReceiptQRComponent, dialogConfig2);
|
||||
dialogRef2.afterClosed().subscribe( val => {
|
||||
if (val) {
|
||||
console.log('Receipt closed.');
|
||||
this.oLines = [];
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log('Returning to order');
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
}).catch((error) => {
|
||||
console.log('Failed to get promise');
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
invoice() {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { BehaviorSubject, Observable, lastValueFrom } from 'rxjs';
|
||||
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
|
||||
import { Order } from './order.model';
|
||||
import { UserService } from '../user.service';
|
||||
|
@ -79,6 +79,8 @@ export class OrderService {
|
|||
public readonly taxUpdate: Observable<number> = this._taxUpdated.asObservable();
|
||||
private _vatUpdated: BehaviorSubject<number> = new BehaviorSubject(this.dataStore.owner.vatValue);
|
||||
public readonly vatUpdate: Observable<number> = this._vatUpdated.asObservable();
|
||||
private _tipUpdated: BehaviorSubject<boolean> = new BehaviorSubject(this.dataStore.owner.tips);
|
||||
public readonly tipUpdate: Observable<boolean> = this._tipUpdated.asObservable();
|
||||
public userUpdate: Observable<User>;
|
||||
public ownerUpdate: Observable<Owner>;
|
||||
private reqHeaders: HttpHeaders;
|
||||
|
@ -112,6 +114,7 @@ export class OrderService {
|
|||
} else {
|
||||
this._vatUpdated.next(0);
|
||||
}
|
||||
this._tipUpdated.next(Object.assign({}, this.dataStore).owner.tips);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -122,10 +125,6 @@ export class OrderService {
|
|||
if (OrderDataResponse.status == 200) {
|
||||
this.dataStore.order = OrderDataResponse.body!.order;
|
||||
this._orderUpdated.next(Object.assign({}, this.dataStore).order);
|
||||
//this.dataStore.order.total = 0;
|
||||
//for(var line of this.dataStore.order.lines) {
|
||||
//this.dataStore.order.total += line.qty * line.cost;
|
||||
//}
|
||||
this._totalUpdated.next(Object.assign({}, this.dataStore).order.total);
|
||||
} else {
|
||||
console.log('No order found');
|
||||
|
@ -165,14 +164,6 @@ export class OrderService {
|
|||
}
|
||||
|
||||
createOrder(lineItem: LineItem) {
|
||||
let localTax = 0;
|
||||
let localVat = 0;
|
||||
if (this.dataStore.owner.tax) {
|
||||
localTax = lineItem.cost * lineItem.qty * this.dataStore.owner.taxValue / 100;
|
||||
}
|
||||
if (this.dataStore.owner.vat) {
|
||||
localVat = lineItem.cost * lineItem.qty * this.dataStore.owner.vatValue / 100;
|
||||
}
|
||||
var order:Order = {
|
||||
_id: '',
|
||||
address: this.dataStore.user.address,
|
||||
|
@ -187,8 +178,8 @@ export class OrderService {
|
|||
externalInvoice: '',
|
||||
shortCode: '',
|
||||
token: '',
|
||||
taxAmount: localTax,
|
||||
vatAmount: localVat,
|
||||
taxAmount: 0,
|
||||
vatAmount: 0,
|
||||
tipAmount: 0,
|
||||
lines: [lineItem]
|
||||
};
|
||||
|
@ -236,6 +227,13 @@ export class OrderService {
|
|||
return obs;
|
||||
}
|
||||
|
||||
async updateTip(amt: number){
|
||||
this.dataStore.order.tipAmount = amt;
|
||||
let obs = this.http.post(this.beUrl+'api/order', {payload: this.dataStore.order}, {headers: this.reqHeaders, params: this.reqParams, observe: 'response'});
|
||||
const res1 = await lastValueFrom(obs);
|
||||
return res1;
|
||||
}
|
||||
|
||||
closeOrder(paid: boolean){
|
||||
this.fullnodeService.priceUpdate.subscribe((price) => {
|
||||
this.dataStore.order.price = price;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Inject, Component, OnInit, ViewEncapsulation} from '@angular/core';
|
||||
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';
|
||||
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
||||
|
||||
import { NotifierService } from '../notifier.service';
|
||||
|
|
20
src/app/tips/tips.component.css
Normal file
20
src/app/tips/tips.component.css
Normal file
|
@ -0,0 +1,20 @@
|
|||
.mat-mdc-card-title {
|
||||
font-family: 'Spartan', sans-serif;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
color: white;
|
||||
background: #ff5722;
|
||||
}
|
||||
|
||||
.card-contents {
|
||||
font-family: 'Spartan', sans-serif;
|
||||
}
|
||||
|
||||
.card-buttons {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
padding: 20px;
|
||||
}
|
40
src/app/tips/tips.component.html
Normal file
40
src/app/tips/tips.component.html
Normal file
|
@ -0,0 +1,40 @@
|
|||
<mat-card>
|
||||
<mat-card-title class="scan-header">
|
||||
Enter tip:
|
||||
</mat-card-title>
|
||||
<mat-card-content>
|
||||
<br>
|
||||
<div align="center" class="card-contents">
|
||||
<table cellspacing="0">
|
||||
<tr>
|
||||
<th align="center">Subtotal</th>
|
||||
<th align="center"></th>
|
||||
<th align="center">Tip</th>
|
||||
<th align="center"></th>
|
||||
<th align="center">Total</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">{{orderTotal | currency}}</td>
|
||||
<td align="center">+</td>
|
||||
<td align="center">{{orderTotal * value | currency}}</td>
|
||||
<td align="center">=</td>
|
||||
<td align="center">{{orderTotal * (1 + value) | currency}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
<div align="center" class="card-contents">
|
||||
{{value | percent}}
|
||||
<br>
|
||||
<input type="range" min="0" max="1" step="0.01" [(ngModel)]="value">
|
||||
</div>
|
||||
</mat-card-content>
|
||||
<mat-card-actions class="card-buttons">
|
||||
<button mat-raised-button (click)="close()">
|
||||
<mat-icon class="icon">close</mat-icon>No Tip
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="confirm()">
|
||||
<mat-icon class="icon">done</mat-icon>Done
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
</mat-card>
|
21
src/app/tips/tips.component.spec.ts
Normal file
21
src/app/tips/tips.component.spec.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { TipsComponent } from './tips.component';
|
||||
|
||||
describe('TipsComponent', () => {
|
||||
let component: TipsComponent;
|
||||
let fixture: ComponentFixture<TipsComponent>;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [TipsComponent]
|
||||
});
|
||||
fixture = TestBed.createComponent(TipsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
42
src/app/tips/tips.component.ts
Normal file
42
src/app/tips/tips.component.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
import { Inject, Component, OnInit } from '@angular/core';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tips',
|
||||
templateUrl: './tips.component.html',
|
||||
styleUrls: ['./tips.component.css']
|
||||
})
|
||||
|
||||
export class TipsComponent implements OnInit{
|
||||
orderTotal:number = 0;
|
||||
value:number = 0.15;
|
||||
flag:boolean = true;
|
||||
|
||||
constructor(
|
||||
private dialogRef: MatDialogRef<TipsComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) public data: {amt: number, flag: boolean}) {
|
||||
this.orderTotal = data.amt;
|
||||
this.flag = data.flag;
|
||||
if(!data.flag){
|
||||
this.dialogRef.close(0);
|
||||
}
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
if(!this.flag){
|
||||
this.dialogRef.close(0);
|
||||
}
|
||||
}
|
||||
|
||||
formatPercent(v: number) {
|
||||
return (v * 100) + '%';
|
||||
}
|
||||
|
||||
close() {
|
||||
this.dialogRef.close(0);
|
||||
}
|
||||
|
||||
confirm() {
|
||||
this.dialogRef.close(this.orderTotal * this.value);
|
||||
}
|
||||
}
|
|
@ -19,7 +19,162 @@
|
|||
{ "language":"br-US", "component":"receipt", "data" : { "receipt_info_notavail":"Não há informação disponível.","receipt_invalid_id":"ID do comprovante incorreto.","receipt_order_date":"Data:","receipt_order_id":"ID do Pedido:","receipt_order_price":"Preço:","receipt_order_total":"Total:","receipt_qty_lbl":"Qtde.","receipt_receipt_lbl":"Comprovante","receipt_zcash_price":"Preço da Zcash:"}},
|
||||
{ "language":"br-US", "component":"receiptqr", "data" : { "receiptqr_close_btn":"Fechar","receiptqr_scan_receipt":"Escaneie para o seu comprovante"}},
|
||||
{ "language":"br-US", "component":"scan", "data" : { "scan_cant_scan":"Não consegue escanear? ","scan_close_btn":"Fechar","scan_copy_address":"Copiar Endereço","scan_copy_amount":"Copiar Valor","scan_copy_error":"Falha ao copiar o valor","scan_copy_memo":"Copiar Memo","scan_fail_payment":"Erro ao verificar o pagamento","scan_func_notavail":"Funcionalidade de cópia não suportada","scan_memo_sent":"Memo enviado!","scan_notserv_close":"Fechar","scan_notserv_error":"Erro","scan_or_button":"o","scan_scanqr_code":"Scanei o QR Code","scan_text_info":"Certifique-se de selecionar \"Incluir Responder-A\" na sua carteira antes de enviar o seu memorando.","scan_use_this":"Use isso ","scan_wallet_link":"Link de carteira"}},
|
||||
{ "language":"br-US", "component":"settings", "data" : { "settings_acode_invalid":"Número da Conta inválido (10 caracteres no máximo)","settings_acode_lbl":"Número da conta:","settings_acode_notsaved":"Número da Conta não salvo!!","settings_acode_saved":"Número da conta Salvo!!","settings_close_btn":"Cancelar","settings_confirm_payments":"Confirmar pagamentos?","settings_copy_notavail":"Funcionalidade não disponível para o seu navegador. Use o botão enviar ao invés disso","settings_currency_lbl":"Moeda","settings_link_2xero":"Conectar-se ao Xero","settings_name_lbl":"Nome","settings_name_placeholder":"Seu nome","settings_notserv_close":"Fechar","settings_notserv_error":"Erro","settings_notserv_success":"Sucesso","settings_notserv_warning":"Aviso","settings_ownerid_copied":"ID do proprietário copiado para a prancheta","settings_ownerid_notcopied":"Cópia não disponível em seu navegador","settings_pmtserv_url":"URL de Serviço de Pagamento:","settings_relink_2xero":"Reconectar-se ao Xero ","settings_save_btn":"Salvar","settings_tab_integrations":"Integrações","settings_tab_mainlbl":"Principal","settings_url_copied":"URL ZGo copiado para a prancheta!!","settings_use_satoshi":"Usar zatoshis?","settings_view_title":"Definições","settings_vkey_lbl":"Chave de visualização","settings_vkey_placeholder":"Sua chave de visualização da carteira","settings_wctoken_copied":"Token WooCommerce copiado para a prancheta","settings_wctoken_generated":"Token da WoCommerce gerado","settings_wctoken_genfail":"Geração do token da WooCommerce falhou","settings_wctoken_notcopied":"Cópia não disponível no seu navegador","settings_wc_closebtn":"Fechar","settings_wc_gentoken":"Gerar Token","settings_wc_lbl":"WooCommerce","settings_wc_ownerlbl":"Proprietário:","settings_xeropmt_confirmdis":"Confirmação de pagamentos Xero desativada!! ","settings_xero_closebtn":"Fechar","settings_xero_lbl":"Xero","settings_xero_savebtn":"Salvar código"}},
|
||||
{
|
||||
"language": "en-US",
|
||||
"component": "settings",
|
||||
"data": {
|
||||
"settings_acode_invalid": "Invalid Account code (10 chars max.)",
|
||||
"settings_acode_lbl": "Account Code:",
|
||||
"settings_acode_notsaved": "Account Code not saved",
|
||||
"settings_acode_saved": "Account Code saved!!",
|
||||
"settings_close_btn": "Cancel",
|
||||
"settings_confirm_payments": "Confirm payments?",
|
||||
"settings_copy_notavail": "Functionality not available for your browser. Use send button instead.",
|
||||
"settings_currency_lbl": "Currency",
|
||||
"settings_link_2xero": "Link to Xero",
|
||||
"settings_name_lbl": "Name",
|
||||
"settings_name_placeholder": "Your Name",
|
||||
"settings_notserv_close": "Close",
|
||||
"settings_notserv_error": "Error",
|
||||
"settings_notserv_success": "Success",
|
||||
"settings_notserv_waring": "Warning",
|
||||
"settings_ownerid_copied": "Owner ID copied to clipboard",
|
||||
"settings_ownerid_notcopied": "Copying not available in your browser",
|
||||
"settings_pmtserv_url": "Payment Service URL:",
|
||||
"settings_relink_2xero": "Relink to Xero",
|
||||
"settings_save_btn": "Save",
|
||||
"settings_tab_integrations": "Integrations",
|
||||
"settings_tab_mainlbl": "Main",
|
||||
"settings_URL_copied": "ZGo URL copied to Clipboard!!",
|
||||
"settings_use_satoshi": "Use zatoshis?",
|
||||
"settings_view_title": "Settings",
|
||||
"settings_vkey_lbl": "Viewing key",
|
||||
"settings_vkey_placeholder": "Your wallet viewing key",
|
||||
"settings_wctoken_copied": "WooCommerce Token copied to clipboard",
|
||||
"settings_wctoken_generaged": "WooCommerce Token generated!",
|
||||
"settings_wctoken_genfail": "WooCommerce Token generation failed",
|
||||
"settings_wctoken_notcopied": "Copying not available in your browser",
|
||||
"settings_wc_closebtn": "Close",
|
||||
"settings_wc_gentoken": "Generate Token",
|
||||
"settings_wc_lbl": "WooCommerce",
|
||||
"settings_wc_ownerlbl": "Owner:",
|
||||
"settings_xeropmt_confirmdis": "Xero Payment confirmation disabled!!",
|
||||
"settings_xero_closebtn": "Close",
|
||||
"settings_xero_lbl": "Xero",
|
||||
"settings_xero_savebtn": "Save Code",
|
||||
"settings_use_tips" : "Use Tips?",
|
||||
"settings_use_tax" : "Use Tax?",
|
||||
"settings_use_vat" : "Use VAT?",
|
||||
"settings_sales_tax_rate_lbl" : "Sales Tax Rate (%)",
|
||||
"settings_sales_tax_rate_txt" : "Sales Tax Rate (%)",
|
||||
"settings_sales_vat_rate_lbl" : "VAT Rate (%)",
|
||||
"settings_sales_vat_rate_txt" : "Value Added Tax Rate (%)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"language": "es-US",
|
||||
"component": "settings",
|
||||
"data": {
|
||||
"settings_acode_invalid": "Código de Cuenta inválido (10 caracteres max.)",
|
||||
"settings_acode_lbl": "Código de Cuenta:",
|
||||
"settings_acode_notsaved": "Código de cuenta no guardado!",
|
||||
"settings_acode_saved": "Código de cuenta guardado!!",
|
||||
"settings_close_btn": "Cancelar",
|
||||
"settings_confirm_payments": "Confirmar pagos?",
|
||||
"settings_copy_notavail": "Funcionalidad no disponible para su navegador. Use el botón de enviar.",
|
||||
"settings_currency_lbl": "Moneda",
|
||||
"settings_link_2xero": "Enlazar a Xero",
|
||||
"settings_name_lbl": "Nombre",
|
||||
"settings_name_placeholder": "Su nombre",
|
||||
"settings_notserv_close": "Cerrar",
|
||||
"settings_notserv_error": "Error",
|
||||
"settings_notserv_success": "Suceso",
|
||||
"settings_notserv_warning": "Advertencia",
|
||||
"settings_ownerid_copied": "ID del propietario copiado a la papelera",
|
||||
"settings_ownerid_notcopied": "Copiar no disponible en su navegador",
|
||||
"settings_pmtserv_url": "URL del Servicio de Pago:",
|
||||
"settings_relink_2xero": "Reconectar a Xero",
|
||||
"settings_save_btn": "Salvar",
|
||||
"settings_tab_integrations": "Integraciones",
|
||||
"settings_tab_mainlbl": "Principal",
|
||||
"settings_URL_copied": "URL de ZGo copiado a la papelera!!",
|
||||
"settings_use_satoshi": "Usar zatoshis?",
|
||||
"settings_view_title": "Configuración",
|
||||
"settings_vkey_lbl": "Clave de visualización",
|
||||
"settings_vkey_placeholder": "Clave de visualización de su billetera",
|
||||
"settings_wctoken_copied": "Token de WooCommerce copiado a la papelera",
|
||||
"settings_wctoken_generated": "Token de WooCommerce generado!",
|
||||
"settings_wctoken_genfail": "Falla generación de Token de WooCommerce",
|
||||
"settings_wctoken_notcopied": "Copiar no disponible en su navegador",
|
||||
"settings_wc_closebtn": "Cerrar",
|
||||
"settings_wc_gentoken": "Generar Token",
|
||||
"settings_wc_lbl": "WooCommerce",
|
||||
"settings_wc_ownerlbl": "Propietario:",
|
||||
"settings_xeropmt_confirmdis": "Confirmación de pagos de Xero desactivada!!",
|
||||
"settings_xero_closebtn": "Cerrar",
|
||||
"settings_xero_lbl": "Xero",
|
||||
"settings_xero_savebtn": "Guardar Código",
|
||||
"settings_use_tips" : "Usar Propinas?",
|
||||
"settings_use_tax" : "Usar Impuesto a la Venta?",
|
||||
"settings_use_vat" : "Usar IVA?",
|
||||
"settings_sales_tax_rate_lbl" : "Tasa de Impuesto a la Venta (%)",
|
||||
"settings_sales_tax_rate_txt" : "Tasa de Impuesto a la Venta (%)",
|
||||
"settings_sales_vat_rate_lbl" : "Tasa IVA(%)",
|
||||
"settings_sales_vat_rate_txt" : "Tasa IVA (%)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"language": "br-US",
|
||||
"component": "settings",
|
||||
"data": {
|
||||
"settings_acode_invalid": "Número da Conta inválido (10 caracteres no máximo)",
|
||||
"settings_acode_lbl": "Número da conta:",
|
||||
"settings_acode_notsaved": "Número da Conta não salvo!!",
|
||||
"settings_acode_saved": "Número da conta Salvo!!",
|
||||
"settings_close_btn": "Cancelar",
|
||||
"settings_confirm_payments": "Confirmar pagamentos?",
|
||||
"settings_copy_notavail": "Funcionalidade não disponível para o seu navegador. Use o botão enviar ao invés disso",
|
||||
"settings_currency_lbl": "Moeda",
|
||||
"settings_link_2xero": "Conectar-se ao Xero",
|
||||
"settings_name_lbl": "Nome",
|
||||
"settings_name_placeholder": "Seu nome",
|
||||
"settings_notserv_close": "Fechar",
|
||||
"settings_notserv_error": "Erro",
|
||||
"settings_notserv_success": "Sucesso",
|
||||
"settings_notserv_warning": "Aviso",
|
||||
"settings_ownerid_copied": "ID do proprietário copiado para a prancheta",
|
||||
"settings_ownerid_notcopied": "Cópia não disponível em seu navegador",
|
||||
"settings_pmtserv_url": "URL de Serviço de Pagamento:",
|
||||
"settings_relink_2xero": "Reconectar-se ao Xero ",
|
||||
"settings_save_btn": "Salvar",
|
||||
"settings_tab_integrations": "Integrações",
|
||||
"settings_tab_mainlbl": "Principal",
|
||||
"settings_url_copied": "URL ZGo copiado para a prancheta!!",
|
||||
"settings_use_satoshi": "Usar zatoshis?",
|
||||
"settings_view_title": "Definições",
|
||||
"settings_vkey_lbl": "Chave de visualização",
|
||||
"settings_vkey_placeholder": "Sua chave de visualização da carteira",
|
||||
"settings_wctoken_copied": "Token WooCommerce copiado para a prancheta",
|
||||
"settings_wctoken_generated": "Token da WoCommerce gerado",
|
||||
"settings_wctoken_genfail": "Geração do token da WooCommerce falhou",
|
||||
"settings_wctoken_notcopied": "Cópia não disponível no seu navegador",
|
||||
"settings_wc_closebtn": "Fechar",
|
||||
"settings_wc_gentoken": "Gerar Token",
|
||||
"settings_wc_lbl": "WooCommerce",
|
||||
"settings_wc_ownerlbl": "Proprietário:",
|
||||
"settings_xeropmt_confirmdis": "Confirmação de pagamentos Xero desativada!! ",
|
||||
"settings_xero_closebtn": "Fechar",
|
||||
"settings_xero_lbl": "Xero",
|
||||
"settings_xero_savebtn": "Salvar código",
|
||||
"settings_use_tips" : "Utiliza Propinas?",
|
||||
"settings_use_tax" : "Usar Imposto sobre vendas?",
|
||||
"settings_use_vat" : "Usar ICM?",
|
||||
"settings_sales_tax_rate_lbl" : "Taxa imposto sobre vendas (%)",
|
||||
"settings_sales_tax_rate_txt" : "Taxa imposto sobre vendas (%)",
|
||||
"settings_sales_vat_rate_lbl" : "Taxa ICM (%)",
|
||||
"settings_sales_vat_rate_txt" : "Imposto sobre Circulação de Mercadorias (%)"
|
||||
}
|
||||
},
|
||||
{ "language":"br-US", "component":"viewer", "data" : { "viewer_view_orders":"Ver Pedidos"}},
|
||||
{ "language":"br-US", "component":"xero", "data" : { "xero_connected_2xero":"Conectado ao Xero!","xero_connecting_2xero":"Conectando ao Xero.."}},
|
||||
{ "language":"en-US", "component":"business", "data" : { "business_accept_terms":"I accept the ","business_addrs_nobiz":"We do not have a business associated with this Zcash address, please enter your information below:","business_biz_addressholder":"Address","business_biz_addresslbl":"Address:","business_biz_cityholder":"City","business_biz_citylbl":"City:","business_biz_countryholder":"Country","business_biz_countrylbl":"Country:","business_biz_info":"Provide business info","business_biz_mailholder":"example@domain.com","business_biz_maillbl":"E-mail:","business_biz_nameholder":"Business name","business_biz_namelbl":"Business Name:","business_biz_pcodeholder":"Postal code","business_biz_pcodelbl":"Postal Code:","business_biz_stateholder":"State or Province","business_biz_statelbl":"State/Province:","business_biz_websiteholder":"website","business_biz_websitelbl":"Website:","business_contact_fnamelbl":"Contact First name:","business_contact_fnholder":"First name","business_contact_lnamelbl":"Contact Last Name:","business_contact_lnholder":"Last Name","business_save_btn":"Save","business_select_session ":"Please select the length of session that you need:","business_session_label":"Session:","business_session_lengthlbl":"Session Length","business_session_paylbl":"Pay","business_signup_title":"Business sign-up","business_terms_ofuse":"Terms of Use","business_zgo_confirmlbl":"ZGo confirms your payment"}},
|
||||
|
@ -43,7 +198,6 @@
|
|||
{ "language":"en-US", "component":"receipt", "data" : { "receipt_info_notavail":"No information available.","receipt_invalid_id":"Incorrect receipt ID.","receipt_order_date":"Date: ","receipt_order_id":"Order ID: ","receipt_order_price":"Price: ","receipt_order_total":"Total: ","receipt_qty_lbl":"Qty.","receipt_receipt_lbl":"Receipt","receipt_zcash_price":"Zcash Price: "}},
|
||||
{ "language":"en-US", "component":"receiptqr", "data" : { "receiptqr_close_btn":"Close","receiptqr_scan_receipt":"Scan for your Receipt"}},
|
||||
{ "language":"en-US", "component":"scan", "data" : { "scan_cant_scan":"Can't scan? ","scan_close_btn":"Close","scan_copy_address":"Copy Address","scan_copy_amount":"Copy Amount","scan_copy_error":"Error while copying ammount","scan_copy_memo":"Copy Memo","scan_fail_payment":"Error while verifying payment","scan_func_notavail":"Copy functionality not supported","scan_memo_sent":"Memo Sent!","scan_notserv_close":"Close","scan_notserv_error":"Error","scan_or_button":"or","scan_scanqr_code":"Scan the QR code","scan_text_info":"Ensure to check the \"Include Reply-To\" box in your wallet before sending your memo.","scan_use_this":"Use this ","scan_wallet_link":"wallet link"}},
|
||||
{ "language":"en-US", "component":"settings", "data" : { "settings_acode_invalid":"Invalid Account code (10 chars max.)","settings_acode_lbl":"Account Code:","settings_acode_notsaved":"Account Code not saved","settings_acode_saved":"Account Code saved!!","settings_close_btn":"Cancel","settings_confirm_payments":"Confirm payments?","settings_copy_notavail":"Functionality not available for your browser. Use send button instead.","settings_currency_lbl":"Currency","settings_link_2xero":"Link to Xero","settings_name_lbl":"Name","settings_name_placeholder":"Your Name","settings_notserv_close":"Close","settings_notserv_error":"Error","settings_notserv_success":"Success","settings_notserv_warning":"Warning","settings_ownerid_copied":"Owner ID copied to clipboard","settings_ownerid_notcopied":"Copying not available in your browser","settings_pmtserv_url":"Payment Service URL:","settings_relink_2xero":"Relink to Xero","settings_save_btn":"Save","settings_tab_integrations":"Integrations","settings_tab_mainlbl":"Main","settings_URL_copied":"ZGo URL copied to Clipboard!!","settings_use_satoshi":"Use zatoshis?","settings_view_title":"Settings","settings_vkey_lbl":"Viewing key","settings_vkey_placeholder":"Your wallet viewing key","settings_wctoken_copied":"WooCommerce Token copied to clipboard","settings_wctoken_generated":"WooCommerce Token generated!","settings_wctoken_genfail":"WooCommerce Token generation failed","settings_wctoken_notcopied":"Copying not available in your browser","settings_wc_closebtn":"Close","settings_wc_gentoken":"Generate Token","settings_wc_lbl":"WooCommerce","settings_wc_ownerlbl":"Owner:","settings_xeropmt_confirmdis":"Xero Payment confirmation disabled!!","settings_xero_closebtn":"Close","settings_xero_lbl":"Xero","settings_xero_savebtn":"Save Code"}},
|
||||
{ "language":"en-US", "component":"viewer", "data" : { "viewer_view_orders":"View Orders"}},
|
||||
{ "language":"en-US", "component":"xero", "data" : { "xero_connected_2xero":"Connected to Xero!","xero_connecting_2xero":"Connecting to Xero.."}},
|
||||
{ "language":"es-US", "component":"business", "data" : { "business_accept_terms":"Acepto los ","business_addrs_nobiz":"No tenemos un negocio asociado a esta dirección de Zcash, por favor ingrese su información abajo:","business_biz_addressholder":"Dirección","business_biz_addresslbl":"Dirección:","business_biz_cityholder":"Ciudad","business_biz_citylbl":"Ciudad:","business_biz_countryholder":"País","business_biz_countrylbl":"País:","business_biz_info":"Ingrese datos del negocio","business_biz_mailholder":"ejemplo@dominio.com","business_biz_maillbl":"E-mail:","business_biz_nameholder":"Nombre del negocio","business_biz_namelbl":"Nombre del Negocio:","business_biz_pcodeholder":"Código Postal","business_biz_pcodelbl":"Código Postal:","business_biz_stateholder":"Estado o Provincia","business_biz_statelbl":"Estado/Provincia:","business_biz_websiteholder":"Sitio web","business_biz_websitelbl":"Sitio Web:","business_contact_fnamelbl":"Nombre del Contacto:","business_contact_fnholder":"Nombre","business_contact_lnamelbl":"Apellido del Contacto:","business_contact_lnholder":"Apellido","business_save_btn":"Salvar","business_select_session":"Seleccione la duración de la sessión que necesita:","business_session_label":"Sesión:","business_session_lengthlbl":"Duración de la Sesión","business_session_paylbl":"Pagar","business_signup_title":"Registrar Negocio","business_terms_ofuse":"Términos de Uso","business_zgo_confirmlbl":"ZGo confirma su pago"}},
|
||||
|
@ -67,7 +221,6 @@
|
|||
{ "language":"es-US", "component":"receipt", "data" : { "receipt_info_notavail":"No hay información disponible.","receipt_invalid_id":"ID de Recibo incorrecto.","receipt_order_date":"Fecha: ","receipt_order_id":"ID de Orden:","receipt_order_price":"Precio: ","receipt_order_total":"Total: ","receipt_qty_lbl":"Cant.","receipt_receipt_lbl":"Recibo ","receipt_zcash_price":"Precio de Zcash: "}},
|
||||
{ "language":"es-US", "component":"receiptqr", "data" : { "receiptqr_close_btn":"Cerrar","receiptqr_scan_receipt":"Escanee para obtener su Recibo"}},
|
||||
{ "language":"es-US", "component":"scan", "data" : { "scan_cant_scan":"No puede escanear? ","scan_close_btn":"Cerrar","scan_copy_address":"Copiar Dirección","scan_copy_amount":"Copiar Valor","scan_copy_error":"Error al copiar valor","scan_copy_memo":"Copiar Memo","scan_fail_payment":"Error al verificar pago","scan_func_notavail":"Funcionalidad de copia no soportada","scan_memo_sent":"Memo enviado!","scan_notserv_close":"Cerrar","scan_notserv_error":"Error","scan_or_button":"ó","scan_scanqr_code":"Escanee el código QR","scan_text_info":"Asegúrese de marcar la caja \"Incluir Responder-A\" en su billetera antes de enviar su memo","scan_use_this":"Use este ","scan_wallet_link":"Link de billetera"}},
|
||||
{ "language":"es-US", "component":"settings", "data" : { "settings_acode_invalid":"Código de Cuenta inválido (10 caracteres max.)","settings_acode_lbl":"Código de Cuenta:","settings_acode_notsaved":"Código de cuenta no guardado!","settings_acode_saved":"Código de cuenta guardado!!","settings_close_btn":"Cancelar","settings_confirm_payments":"Confirmar pagos?","settings_copy_notavail":"Funcionalidad no disponible para su navegador. Use el botón de enviar.","settings_currency_lbl":"Moneda","settings_link_2xero":"Enlazar a Xero","settings_name_lbl":"Nombre","settings_name_placeholder":"Su nombre","settings_notserv_close":"Cerrar","settings_notserv_error":"Error","settings_notserv_success":"Suceso","settings_notserv_warning":"Advertencia","settings_ownerid_copied":"ID del propietario copiado a la papelera","settings_ownerid_notcopied":"Copiar no disponible en su navegador","settings_pmtserv_url":"URL del Servicio de Pago:","settings_relink_2xero":"Reconectar a Xero","settings_save_btn":"Salvar","settings_tab_integrations":"Integraciones","settings_tab_mainlbl":"Principal","settings_URL_copied":"URL de ZGo copiado a la papelera!!","settings_use_satoshi":"Usar zatoshis?","settings_view_title":"Configuración","settings_vkey_lbl":"Clave de visualización","settings_vkey_placeholder":"Clave de visualización de su billetera","settings_wctoken_copied":"Token de WooCommerce copiado a la papelera","settings_wctoken_generated":"Token de WooCommerce generado!","settings_wctoken_genfail":"Falla generación de Token de WooCommerce","settings_wctoken_notcopied":"Copiar no disponible en su navegador","settings_wc_closebtn":"Cerrar","settings_wc_gentoken":"Generar Token","settings_wc_lbl":"WooCommerce","settings_wc_ownerlbl":"Propietario:","settings_xeropmt_confirmdis":"Confirmación de pagos de Xero desactivada!!","settings_xero_closebtn":"Cerrar","settings_xero_lbl":"Xero","settings_xero_savebtn":"Guardar Código"}},
|
||||
{ "language":"es-US", "component":"viewer", "data" : { "viewer_view_orders":"Ver Ordenes"}},
|
||||
{ "language":"es-US", "component":"xero", "data" : { "xero_connected_2xero":"Conectado a Xero!","xero_connecting_2xero":"Conectando a Xero.."}}
|
||||
]
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue