-
Notifications
You must be signed in to change notification settings - Fork 0
/
01_sistema_de_ventas.js
132 lines (103 loc) · 3.15 KB
/
01_sistema_de_ventas.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class Producto{
static contadorProductos = 0;
constructor(nombre, precio){
this._idProducto = ++Producto.contadorProductos;
this._nombre = nombre;
this._precio = precio;
}
get idProducto(){
return this._idProducto;
}
get nombre(){
return this._nombre;
}
set nombre(nombre){
this._nombre = nombre;
}
get precio(){
return this._precio;
}
set precio(precio){
this._precio = precio
}
toString(){
return `ID Producto: ${this._idProducto}, Nombre: ${this._nombre}, Precio:$${this._precio} `;
}
}
class Orden{
static contadorOrdenes = 0;
static get MAX_PRODUCTOS(){
return 5;
}
constructor(){
this._idOrden = ++Orden.contadorOrdenes;
this._productos = [];
//this._contadorProductosAgregados = 0;
}
get idOrden(){
return this._idOrden;
}
agregarProducto(producto){
if( this._productos.length < Orden.MAX_PRODUCTOS){
this._productos.push(producto);
//this._productos[this._contadorProductosAgregados++] = producto; otro metodo para agregar productos.
}else{
console.log("No se pueden agregar más productos");
}
}
calcularTotal(){
let totalVenta = 0;
for( let producto of this._productos){
totalVenta += producto.precio//totalVenta = totalVenta + producto.precio
}
return totalVenta;
}
mostrarOrden(){
let productosOrden = "";
for( let producto of this._productos){
productosOrden += "\n" + producto.toString() + " ";
}
console.log(`Orden: ${this._idOrden}, Total:$${this.calcularTotal()}, Productos: ${productosOrden}`);
}
}
function imprimir(tipo) {
if( tipo instanceof Producto ){
console.log("Es de tipo Producto");
}
if( tipo instanceof Orden ){
console.log("Es de tipo Orden");
}
if( tipo instanceof Object){
console.log("Es de tipo Object");
}
}
//Prueba de la clase Producto
let producto1 = new Producto("Pantalon", 300);
console.log(producto1.toString());
let producto2 = new Producto("Camisa", 250);
console.log(producto2.toString());
let producto3 = new Producto("Cinturón", 150);
console.log(producto3.toString());
let producto4 = new Producto("Zapatos", 700);
console.log(producto4.toString());
let producto5 = new Producto("Cartera", 350);
console.log(producto5.toString());
let orden1 = new Orden();
orden1.agregarProducto(producto1);
orden1.agregarProducto(producto2);
orden1.mostrarOrden();
let orden2 = new Orden();
orden2.agregarProducto(producto1);
orden2.agregarProducto(producto2);
orden2.agregarProducto(producto3);
orden2.mostrarOrden();
let orden3 = new Orden();
orden3.agregarProducto(producto1);
orden3.agregarProducto(producto2);
orden3.agregarProducto(producto3);
orden3.agregarProducto(producto4);
orden3.agregarProducto(producto5);
orden3.agregarProducto(producto1);//Aqui se muestra la condicion de MAX_PRODUCTOS que ya no se pueden agregar más productos.
orden3.mostrarOrden();
imprimir( producto1 );
imprimir( orden1 );