UNPKG

e-commercee

Version:

This package contains a backend of what would be the logic of a e-commercee software, the architecture used is made in 3 layers

101 lines (90 loc) 2.68 kB
import { Article } from "./Article"; import { Client } from "./Client"; import { OrderDetail } from "./OrderDetail"; export class Order { private _id: number = 0; private _date: Date = null;z private _state: string = ""; private _total: number = 0; private _client: Client = null; private _listOrderDetails: OrderDetail[] = []; public get date(): Date { return this._date; } public set date(value: Date) { this._date = value; } public get state(): string { return this._state; } public set state(value: string) { this._state = value; } public get total(): number { return this._total; } public set total(value: number) { this._total = value; } public get client(): Client { return this._client; } public set client(value: Client) { this._client = value; } public get listOrderDetails(): OrderDetail[] { return this._listOrderDetails; } public set listOrderDetails(value: OrderDetail[]) { this._listOrderDetails = value; } public get id(): number { return this._id; } public set id(value: number) { this._id = value; } constructor(pid:number,pdate:Date,pstate:string,ptotal:number ,pclient:Client,plistordersdetails:OrderDetail[]) { this.id=pid; this.date=pdate; this.state=pstate; this.total=ptotal; this.client=pclient; this.listOrderDetails=plistordersdetails; } public quantityofarticles(): number { return this.listOrderDetails.length; } public registerOrderDetail(article:Article, quantity:number) { var detail = new OrderDetail(quantity,article); var odetails=this.listOrderDetails; odetails.push(detail); return detail; } public removeOrderDetail(barcode:string) { var listoodetail = this.listOrderDetails; for (var i =0; i < listoodetail.length; i++) { if (listoodetail[i].article.barcode === barcode) { listoodetail.splice(i,1); break; } } } public close() { var details=this.listOrderDetails; var vtotal=0; for (var d of details) { vtotal += d.getAmount } this.total=vtotal; } public haveOrderDetails() { var varhdetails=this.listOrderDetails; var haveod = varhdetails.length > 0; return haveod; } }