commit inicial
This commit is contained in:
188
src/services/envioGuia.js
Normal file
188
src/services/envioGuia.js
Normal file
@@ -0,0 +1,188 @@
|
||||
import ParametrosGuia from '../database/UC/models/central/parametrosNuevaGuiaEntrega.js';
|
||||
import RespuestaGuia from '../database/UC/models/central/respuestaNuevaGuiaEntrega.js';
|
||||
import PedidosHeader from '../database/UC/models/central/pedidosHeader.js';
|
||||
import { sendData } from '../utils/utils.js';
|
||||
import moment from 'moment-timezone';
|
||||
|
||||
|
||||
import config from './config.json' assert {type: 'json'};
|
||||
|
||||
const dataUrbano = config.dataUrbano;
|
||||
|
||||
|
||||
const enviarGuias = async (idGuia) => {
|
||||
|
||||
const url = dataUrbano.url;
|
||||
const idContrato = dataUrbano.id_contrato;
|
||||
const linea = dataUrbano.linea;
|
||||
// console.log(url, idContrato);
|
||||
|
||||
const guias = await ParametrosGuia.findAll({
|
||||
where: {
|
||||
id: idGuia,
|
||||
// estado: 0
|
||||
}
|
||||
});
|
||||
|
||||
if (!guias) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (guias && guias.length > 0) {
|
||||
let date = new Date(guias[0].fecharegistro)
|
||||
let mes = `${date.getMonth() + 1}`.padStart(2, "0")
|
||||
let fecha = `${date.getDate().toString().padStart(2, "0")}/${mes}/${date.getFullYear()}`;
|
||||
|
||||
// let dataDireccion = guias[0].direcciondestinatario.split(':');
|
||||
|
||||
// let direccionEntrega = dataDireccion[0];
|
||||
let direccionEntrega = guias[0].direcciondestinatario;
|
||||
let numeroPedido = guias[0].numeropedido;
|
||||
let cantidad = guias.length;
|
||||
let telefonoMovil = guias[0].telefonodestinatario.slice(-9);
|
||||
let emailDestinatario = guias[0].informacionadicional;
|
||||
|
||||
const dataPedidosHeader = await PedidosHeader.findOne({
|
||||
where: {
|
||||
NROPED_PH: numeroPedido
|
||||
}
|
||||
})
|
||||
|
||||
let referenciaDireccion = '';
|
||||
|
||||
if (dataPedidosHeader) {
|
||||
referenciaDireccion = dataPedidosHeader.referencia_ph;
|
||||
|
||||
}
|
||||
|
||||
let dataGuia = {
|
||||
// Identificador del Servicio
|
||||
linea: linea,
|
||||
id_contrato: idContrato,
|
||||
|
||||
// Identificador del Envío
|
||||
cod_rastreo: `URB${numeroPedido}`,
|
||||
cod_barra: '',//no requerido
|
||||
fech_emi_vent: fecha,//no requerido
|
||||
nro_o_compra: '',//no requerido
|
||||
nro_guia_trans: idGuia,//no requerido
|
||||
|
||||
// Datos del Seller / Vendedor
|
||||
venta_seller: '', //no requerido
|
||||
sell_codigo: '', //no requerido
|
||||
sell_nombre: '', //no requerido
|
||||
sell_direcc: '', //no requerido
|
||||
sell_ubigeo: '', //no requerido
|
||||
|
||||
// Datos del receptor (Cliente)
|
||||
cod_cliente: guias[0].codcliente,
|
||||
nom_cliente: guias[0].nombredestinatario,
|
||||
nom_empresa: '', //no requerido
|
||||
nro_telf: '', //no requerido
|
||||
nro_telf_mobil: telefonoMovil,//no requerido
|
||||
correo_elec: emailDestinatario,//no requerido
|
||||
|
||||
// Dirección de entrega
|
||||
dir_entrega: direccionEntrega,
|
||||
nro_via: '',
|
||||
nro_int: '',
|
||||
nro_urb: '',//no requerido
|
||||
ubi_direc: guias[0].ubigeodestino,
|
||||
ref_direc: referenciaDireccion,//no requerido
|
||||
id_direc: '',//no requerido
|
||||
|
||||
// Datos para despachos
|
||||
peso_total: guias[0].pesopaquetes,
|
||||
// pieza_total: cantidad,
|
||||
pieza_total: 1,
|
||||
urgente: '',//no requerido
|
||||
picking: '',//no requerido
|
||||
asegurado: '',//no requerido
|
||||
monto_asegurado: '',//no requerido
|
||||
via_aereo: '',//no requerido
|
||||
|
||||
// Datos para la entrega
|
||||
// de aqui en adelante no son requeridos
|
||||
fech_pro: '',
|
||||
arco_hor: '',
|
||||
fech_venc: '',
|
||||
|
||||
// Datos autorizados para entrega
|
||||
nom_autorizado: '',
|
||||
nro_doc_autorizado: '',
|
||||
nom_autorizado_2: '',
|
||||
nro_doc_autorizado_2: '',
|
||||
|
||||
// Datos para Cobranza
|
||||
med_pago: '',
|
||||
descripcion: '',
|
||||
anotacion: '',
|
||||
moneda: '',
|
||||
importe: '',
|
||||
tipo_empaque: '',
|
||||
};
|
||||
|
||||
|
||||
guias.forEach(async entry => {
|
||||
entry.set({
|
||||
estado: 1
|
||||
});
|
||||
await entry.save();
|
||||
})
|
||||
|
||||
const payload = dataGuia;
|
||||
|
||||
console.log(JSON.stringify(payload, null, 2))
|
||||
|
||||
try {
|
||||
const res = await sendData(url, null, payload);
|
||||
await guardarRespuesta(idGuia, 1, res, payload);
|
||||
return true;
|
||||
|
||||
} catch (error) {
|
||||
console.error("Error en el envío de guía:", error);
|
||||
await guardarRespuesta(idGuia, 0, { error: -1, mensaje: "Error en el envío de guía" }, payload);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const guardarRespuesta = async (idGuia, estado = 1, respuesta, payloadRequest) => {
|
||||
|
||||
const date = moment().tz("America/Santiago").utc().format();
|
||||
|
||||
let dataRespuesta;
|
||||
if (respuesta.error >= 0) {
|
||||
console.log("aca")
|
||||
console.log(respuesta)
|
||||
dataRespuesta = {
|
||||
numeroguia: respuesta.guia,
|
||||
id: idGuia,
|
||||
fecha: date,
|
||||
descripcion: respuesta.etiqueta,
|
||||
mensajeerror: JSON.stringify(respuesta),
|
||||
json_guia: JSON.stringify(payloadRequest),
|
||||
estado: estado
|
||||
|
||||
}
|
||||
} else {
|
||||
dataRespuesta = {
|
||||
numeroguia: respuesta.numeroguia,
|
||||
id: idGuia,
|
||||
fecha: date,
|
||||
mensajeerror: JSON.stringify(respuesta),
|
||||
estado: estado,
|
||||
json_guia: JSON.stringify(payloadRequest),
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
await RespuestaGuia.create(dataRespuesta);
|
||||
|
||||
}
|
||||
|
||||
export {
|
||||
enviarGuias
|
||||
}
|
||||
Reference in New Issue
Block a user