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
text/typescript
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;
}
}