zoolserver
Version:
Servidor para la aplicación de Escritorio Zool
197 lines (188 loc) • 10.5 kB
JavaScript
module.exports=function(app){
const Presupuesto = require('./models/Presupuesto')
var spawn = require('child_process').spawn;
var spawnEMail = require('child_process').spawn;
var cp
var cpEMail
function setAndSendEmail(devSending, vdev, v1, v2, v3, v4, v5){
//setAndSendEmail(req.body.devSending, req.body.vdev, presupuesto.tecnico, req.body.cliente, presupuesto.productos, presupuesto.fechaInstalacion, d.getTime())
let d0=new Date(parseInt(v5))
let sd=''+d0.getDate()+'/'+parseInt(d0.getMonth()+1)+'/'+d0.getFullYear()+' '+d0.getHours()+':'+d0.getMinutes()+':'+d0.getSeconds()
//console.log('v5: '+v5)
let d1=new Date(parseInt(v4.getTime()))
let sd1=''+d1.getDate()+'/'+parseInt(d1.getMonth()+1)+'/'+d1.getFullYear()+' '+d1.getHours()+':'+d1.getMinutes()+':'+d1.getSeconds()
console.log("Creando presupuesto: "+sd);
let html1='<html><head><title>Presupuesto Prosegur</title></head><html><body>'
console.log("JSON TEC: "+v1+"\n\n\n")
console.log("JSON CLI: "+v2+"\n\n\n")
let jsonTec=JSON.parse(v1)
let jsonCli=JSON.parse(v2)
let d=''
+'<img src="https://github.com/pizarromario/pizarromario.github.io/blob/master/imgs/logo_cabecera.png?raw=true" style="width: 100%"/><br />'
+'<h2>Técnico</h2>'
+'<b>Nombre: </b>'+jsonTec.tecnico.nombre+'<br />'
+'<b>Teléfono: </b>'+jsonTec.tecnico.telefono+'<br />'
+'<b>E-Mail: </b>'+jsonTec.tecnico.email+'<br />'
+'<h2>Cliente</h2>'
+'<b>Nombre y Apellido: </b>'+jsonCli.cliente.nombre+'<br />'
+'<b>Dirección: </b>'+jsonCli.cliente.direccion+'<br />'
+'<b>Teléfono: </b>'+jsonCli.cliente.telefono+'<br />'
+'<b>E-Mail: </b>'+jsonCli.cliente.email+'<br />'
+'<b>Contrato: </b>'+jsonCli.cliente.contrato+'<br />'
console.log('JSON PRODS: '+v3+"\n\n\n\n")
let json=JSON.parse(v3)
d+='<h2>Productos/Servicios</h2>'
d+='<table border="2"><tr>'
+'<td><b>Descripción</b></td>'
+'<td><b>Código</b></td>'
+'<td><b>Cantidad</b></td>'
+'<td><b>Precio de Instalación</b></td>'
+'<td><b>Precio de Abono</b></td>'
+'<td><b>Adicional Riesgo</b></td>'
+'<td><b>Total Parcial</b></td>'
+'</tr>'
for(var i=0;i<Object.keys(json).length-1;i++){
let precioSubTotalInst=0
if((''+json['item'+i].precioinstalacion).indexOf('-')<0&&parseInt( json['item'+i].cant)>0){
precioSubTotalInst=parseFloat(json['item'+i].precioinstalacion * json['item'+i].cant)
if (isNaN(precioSubTotalInst)) {
precioSubTotalInst=0
}
}
let precioPA=0.00
if((''+json['item'+i].precioabono).indexOf('-')<0&&parseInt( json['item'+i].precioabono)>0){
precioPA=parseFloat(json['item'+i].precioabono)
if (isNaN(precioPA)) {
precioPA=0.00
}
}
let precioAR=0.00
if((''+json['item'+i].adicionalriesgo).indexOf('-')<0&&parseInt( json['item'+i].adicionalriesgo)>0){
precioAR=parseFloat(json['item'+i].adicionalriesgo)
if (isNaN(precioAR)) {
precioAR=0.00
}
}
d+='<tr>'
d+='<td>'+json['item'+i].descripcion+'</td>'
d+='<td style="text-align:center">'+json['item'+i].codigo+'</td>'
d+='<td style="text-align:center">'+json['item'+i].cant+'</td>'
d+='<td style="text-align:center">$'+parseFloat(json['item'+i].precioinstalacion).toFixed(2)+'</td>'
d+='<td style="text-align:center">$'+parseFloat(precioPA).toFixed(2)+'</td>'
d+='<td style="text-align:center">$'+parseFloat(precioAR).toFixed(2)+'</td>'
d+='<td style="text-align:center">$'+parseFloat(precioSubTotalInst).toFixed(2)+'</td>'
d+='</tr>'
}
d+='<tr>'
+'<td colspan=6></td>'
+'<td style="text-align:center"><b>Total</b></td>'
+'</tr>'
d+='<tr>'
+'<td colspan=5></td>'
+'<td style="text-align:center">Total Sin IVA</td>'
+'<td style="text-align:center">$'+parseFloat(json['valores'].totalSinIVA).toFixed(2)+'</td>'
+'</tr>'
d+='<tr>'
+'<td colspan=5></td>'
+'<td style="text-align:center">Total Con IVA</td>'
+'<td style="text-align:center">$'+parseFloat(json['valores'].totalConIVA).toFixed(2)+'</td>'
+'</tr>'
d+='<tr>'
+'<td colspan=5></td>'
+'<td style="text-align:center">Descuento</td>'
+'<td style="text-align:center">%'+json['valores'].descuento+'</td>'
+'</tr>'
d+='<tr>'
+'<td colspan=5></td>'
+'<td style="text-align:center">Total</td>'
+'<td style="text-align:center">$'+parseFloat(json['valores'].totalConDescuento).toFixed(2)+'</td>'
+'</tr>'
d+='</table>'
d+='<br />'
d+='<b>Fecha de Presupuesto: </b>'+sd+' <br />'
d+='<b>Fecha de Instalación: </b>'+sd1+' <br />'
d+='<p>En caso que no pueda recibirnos en la fecha y horario acordado, le solicitamos que se comunique a nuestro Contact Center para reprogramar la visita: 011 4709-8080 / 0800-888-8188.</p>'
d+='<p nombre="normal5">Aprovechamos la ocasión para saludarlo cordialmente.</p>'
d+='<p nombre="normal6">Estamos comprometidos con su seguridad. Para conocer nuestras medidas de prevención por el COVID-19 haga click '
d+='<a href="https://www.prosegur.com.ar/dam/jcr:a6b5d19c-0534-4562-9b03-242fb162a9b5/video-tecnico-Covid--ultima-versi-n.mp4">AQUÍ</a></p>'
d+='<a href="http://www.prosegur.com.ar/">Ir a Prosegur</a><br />'
d+='<a href="https://www.prosegur.com.ar/portal-clientes">Ir a Portal de Clientes</a><br />'
d+='<a href="https://www.facebook.com/ProsegurArgentina/">Ir al Facebook de Prosegur Argentina</a><br />'
d+='<a href="https://twitter.com/ProsegurAR">Ir al Twitter de Prosegur Argentina</a><br />'
d+='<a href="https://www.youtube.com/user/ProseguralarmasArg">Ir al Canal de YouTube de Prosegur Argentina</a><br />'
/*
<from>Visita.Tecnica-Argentina@prosegur.com</from>
<nombreFrom>Prosegur Alarmas</nombreFrom>
<to>SANTI.MARESCA@HOTMAIL.COM</to>
<subject>Visita Técnica Prosegur</subject>
<cc></cc>
<correo2>
<!-- Seccion que cambia con cada envio -->
<imagenToa>
<uriTOA>/resources/AR00122992/XR_FOTO_TECNICO</uriTOA>
<nombreHTML>foto_tecnico</nombreHTML>
<altFile fileType="jpeg">logo_prosegur.jpg</altFile>
</imagenToa>
<texto nombre="saludo">Estimado/a MAS TECHNOLOGY SRL </texto>
<texto nombre="cliente">Cliente 1843700 / INT526166.2</texto>
<texto nombre="texto1">AVENIDA CABILDO, 2120 – (1426-CAPITAL FEDERAL)</texto>
<texto nombre="texto2">09:00 - 10:00 Hs</texto>
<texto nombre="texto3">AR1-44PJFVC</texto>
<texto nombre="texto4">HEREDIA, GONZALO ALBERTO</texto>
<texto nombre="texto5">38403033</texto>
<texto nombre="texto6">AR00122992</texto>
<!-- Fin Seccion que cambia con cada envio -->
<texto nombre="head1">Saber quién hará su visita técnica,</texto>
<texto nombre="head2">también es cuidar su seguridad.</texto>
<texto nombre="normal1">Le recordamos que </texto>
<texto nombre="bold1">el día de hoy, Usted tiene una visita técnica acordada.</texto>
<texto nombre="normal2">A continuación encontrará toda la información necesaria: </texto>
<texto nombre="label1">Domicilio: </texto>
<texto nombre="label2">Franja horaria estimada de llegada del técnico: </texto>
<texto nombre="label3">Número de pedido: </texto>
<texto nombre="normal3">Para su seguridad, le adjuntamos la foto del técnico que concurrirá a su domicilio y sus datos personales:</texto>
<texto nombre="label4">Nombre: </texto>
<texto nombre="label5">DNI: </texto>
<texto nombre="label6">Legajo Nº: </texto>
*/
let asunto=''
let from='Ppres - '+v1
let vdevSending=''+devSending
//console.log('DS:'+vdevSending+' vdev:'+vdev+' email cliente: '+jsonCli.cliente.email)
if(vdevSending==='true'){
asunto='Prueba '+vdev
from='Programador Prueba '+vdev
}else{
asunto='Nuevo Presupuesto'
}
let html2='</html></body></html>'
let df=html1+d+html2
cpEMail = spawnEMail('sh', ['sendEmail.sh', ''+df+'', ""+asunto+"", 'pizarromario@gmail.com', from, "<"+jsonCli.cliente.email+">"]);
cpEMail.on("exit", function(data) {
console.log('Mail enviado: '+sd);
console.log('Datos: '+d.replace(/<b>/g, '').replace(/<\/b>/g, '').replace(/<br \/>/g, '\n'));
});
cpEMail.stderr.on("data", function(data) {
console.error(data.toString());
});
}
nuevoPresupuesto = function(req, res){
console.log('Insertando nuevo presupuesto de usuario '+req.query.usuario)
let d = new Date(Date.now())
let presupuesto = new Presupuesto()
presupuesto.tecnico = req.body.tecnico
presupuesto.cliente = req.body.cliente
presupuesto.productos = req.body.productos
presupuesto.fechaInstalacion = req.body.fechaInstalacion
presupuesto.fechaRegistro = d
//console.log('Creando un nuevo presupuesto de técnico: '+presupuesto.tecnico+' Productos: \n'+presupuesto.productos)
presupuesto.save(function(err, presRegistered){
if(err){
res.status(500).send(`Error al crear presupuesto: ${err}`)
return
}
setAndSendEmail(req.body.devSending, req.body.vdev, presupuesto.tecnico, req.body.cliente, presupuesto.productos, presupuesto.fechaInstalacion, d.getTime())
res.status(200).send({presupuesto: presRegistered}) })
};
app.post('/ppres/nuevopresupuesto', nuevoPresupuesto);
}