import {Component, EventEmitter, Input, Output} from "@angular/core"; import {RnAnimationSlide} from "../sharedmodules/animations/RnAnimationSlide"; import {FormHandlerBase} from "./FormHandlerBase"; @Component({ selector:'invoice-details-item', template:`
{{Data.Total|formatCurrency}}
Remove Item
`, animations:[RnAnimationSlide.Compile()] }) export class InvoiceDetailsItem extends FormHandlerBase { @Input() Data:InvoiceDetail=null; @Output() public RemoveItem = new EventEmitter(); @Output() public TotalRecalculated = new EventEmitter(); public Services=rnparams.services; public TaxIsEnabled; public IsItemized; public ShowSaveItemBox:boolean=false; constructor(){ super(); debugger; this.TaxIsEnabled=rnparams.settings.TaxesOptions.Enable; this.IsItemized=rnparams.settings.TaxesOptions.TaxType=='itemized'; } public ItemSelected(item:{Text:string,Value:Service}) { if(item.Value!=null) { this.ShowSaveItemBox=false; this.Data.TaxRate=item.Value.TaxRate; this.Data.Taxable=item.Value.Taxable; this.Data.Rate=item.Value.Rate; this.Data.Notes=item.Value.Notes; this.Data.SaveItem=false; }else{ this.ShowSaveItemBox=true; } this.RecalculateTotal(); } public get Title(){ return this.Data.Name==''?'New Item':this.Data.Name; } public Remove(){ this.RemoveItem.emit(this.Data); } RecalculateTotal() { let total=this.Data.Qty*this.Data.Rate; this.Data.SubTotal=total; debugger; if(this.Data.Taxable) { if (rnparams.settings.TaxesOptions.TaxType == "itemized") this.Data.TaxTotal = ((this.Data.TaxRate / 100) * total); else this.Data.TaxTotal = ((rnparams.settings.TaxesOptions.TaxRate / 100) * total); }else this.Data.TaxTotal=0; this.Data.Total=this.Data.SubTotal+this.Data.TaxTotal; this.TotalRecalculated.emit(); } }