-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculadora.js
129 lines (101 loc) · 4.16 KB
/
calculadora.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
const arrayOrders = []
const actualOrder = {}
let totalCost = 0
const cantDescuento = [10,50,100,200,300,400,500,1000]
const descuentoAgregadoGremio = [0,0,0,0,0,0,0,0]
function calcularPedido({tamanio,cantidad,tipoPapel,gramaje,tipoImpresion,gremio,dobleFaz,tipoImpresionB}) {
let resultado = 0
let precioPorHoja = 0
let precioPorImpresion = 0
let posCantidadDescuento = 0
let agregarDescuentoGremio = 0
cantDescuento.forEach((cantCopias,index)=>{
if(cantidad >= cantCopias){
let pos = index > descuentoAgregadoGremio.length-1 ? descuentoAgregadoGremio.length-1 : index
agregarDescuentoGremio = descuentoAgregadoGremio[pos]
}
})
console.log(`Descuento por gremio agregado: ${agregarDescuentoGremio}`)
cantDescuento.forEach((cantCopias,index) => {
if(cantidad >= cantCopias){
posCantidadDescuento = index+1
}
});
// if (cantidad < 10){
// posCantidadDescuento = 0
// }else if(cantidad < 50){
// posCantidadDescuento = 1
// }else if(cantidad < 100){
// posCantidadDescuento = 2
// }else if(cantidad < 200){
// posCantidadDescuento = 3
// }else if(cantidad < 300){
// posCantidadDescuento = 4
// }else if(cantidad < 400){
// posCantidadDescuento = 5
// }else if(cantidad < 500){
// posCantidadDescuento = 6
// }else if(cantidad < 1000){
// posCantidadDescuento = 7
// }else{
// posCantidadDescuento = 8
// }
switch (tamanio) {
case 0:
precioPorHoja = precioHojaA3[tipoPapel][gramaje] / 2
break;
case 1:
precioPorHoja = precioHojaA3[tipoPapel][gramaje]
break
case 2:
precioPorHoja = precioHojaA3plus[tipoPapel][gramaje]
break
default:
precioPorHoja = 0
break;
}
let tamanioReal = tamanio
if(gremio){
tamanioReal+=3
if (posCantidadDescuento > 6){
posCantidadDescuento = 6
}
}
precioPorImpresion = impresiones[tamanioReal][tipoImpresion] * dolar
const porcentajeDescuentoHojas = descuentos.cantidadHojas[posCantidadDescuento][gramaje] + agregarDescuentoGremio
const porcentajeDescuentoImpresion = descuentos.cantidadImpresion[posCantidadDescuento][gramaje]
precioPorHoja = precioPorHoja - valorDescuento(precioPorHoja,porcentajeDescuentoHojas)
precioPorImpresion = precioPorImpresion - valorDescuento(precioPorImpresion,porcentajeDescuentoImpresion)
resultado = precioPorHoja * cantidad + precioPorImpresion * cantidad
let precioPorImpresionB
if(dobleFaz){
if (tipoImpresionB === tipoImpresion){
precioPorImpresionB = precioPorImpresion
resultado+= precioPorImpresion*cantidad
}else{
precioPorImpresionB = impresiones[tamanioReal][tipoImpresionB] * dolar
const porcentajeDescuentoImpresionB = descuentos.cantidadImpresion[posCantidadDescuento][gramaje]
precioPorImpresionB = precioPorImpresionB - valorDescuento(precioPorImpresionB,porcentajeDescuentoImpresionB)
resultado += precioPorImpresionB*cantidad
}
precioPorImpresionB = Math.round(precioPorImpresionB)
}
precioPorHoja = Math.round(precioPorHoja)
precioPorImpresion = Math.round(precioPorImpresion)
resultado = Math.round(resultado)
const detalle = `
El precio de cada hoja es $${precioPorHoja} </br>
El precio por impresion es $${precioPorImpresion}</br>
${dobleFaz?'El precio por impresion Lado B es $' + precioPorImpresionB:''}
`
actualOrder.detalleHTML = detalle
actualOrder.subtotal = resultado
actualOrder.sum = `<p><div class="juntis"><strong style="margin-right: 8px">${cantidad}</strong> ${tipoPapel} | ${tipoImpresion} <div class="cuadradito"><strong>${actualOrder.subtotal}</strong></div></div></p>`
actualOrder.precioPorHoja = precioPorHoja
actualOrder.precioPorImpresion = precioPorImpresion
actualOrder.precioPorImpresionB = precioPorImpresionB
return actualOrder
}
function valorDescuento(number,percent){
return ((percent) * (number)) / 100
}