feat: refs #7937 add ClaimConfig model and update refund ticket logic
This commit is contained in:
parent
f9666b8e60
commit
190731899e
|
@ -0,0 +1,13 @@
|
|||
ALTER TABLE `vn`.`claimConfig`
|
||||
ADD COLUMN `pickupAgencyFk` INT(11) DEFAULT 6
|
||||
COMMENT 'Agencia utilizada para las recogidas mediante agencia',
|
||||
ADD COLUMN `pickupDeliveryFk` INT(11) DEFAULT 847
|
||||
COMMENT 'Agencia utilizada para las recogidas mediante reparto',
|
||||
|
||||
ADD CONSTRAINT `fk_claimConfig_pickupAgencyFk`
|
||||
FOREIGN KEY (`pickupAgencyFk`)
|
||||
REFERENCES `agencyMode` (`id`),
|
||||
|
||||
ADD CONSTRAINT `fk_claimConfig_pickupdeliveryFk`
|
||||
FOREIGN KEY (`pickupdeliveryFk`)
|
||||
REFERENCES `agencyMode` (`id`);
|
|
@ -82,31 +82,64 @@ module.exports = Self => {
|
|||
where: {code: 'salesPerson'}
|
||||
}, myOptions);
|
||||
|
||||
const agencyMode = await models.AgencyMode.findOne({
|
||||
where: {code: 'refund'}
|
||||
}, myOptions);
|
||||
|
||||
const state = await models.State.findOne({
|
||||
where: {code: 'DELIVERED'}
|
||||
}, myOptions);
|
||||
|
||||
const zone = await models.Zone.findOne({
|
||||
where: {agencyModeFk: agencyMode.id}
|
||||
}, myOptions);
|
||||
|
||||
const claim = await models.Claim.findOne(filter, myOptions);
|
||||
const today = Date.vnNew();
|
||||
let shipped;
|
||||
let landed;
|
||||
let warehouseFk;
|
||||
let agencyModeFk;
|
||||
let zoneFk;
|
||||
let nickname;
|
||||
let state;
|
||||
|
||||
if (claim.pickup === null) {
|
||||
state = await models.State.findOne({
|
||||
where: {code: 'DELIVERED'}
|
||||
}, myOptions);
|
||||
const agencyMode = await models.AgencyMode.findOne({
|
||||
where: {code: 'refund'}
|
||||
}, myOptions);
|
||||
const zone = await models.Zone.findOne({
|
||||
where: {agencyModeFk: agencyMode.id}
|
||||
}, myOptions);
|
||||
|
||||
shipped = today;
|
||||
landed = today;
|
||||
warehouseFk = claim.ticket().warehouseFk;
|
||||
agencyModeFk = agencyMode.id;
|
||||
zoneFk = zone.id;
|
||||
nickname = `Abono del: ${claim.ticketFk}`;
|
||||
} else {
|
||||
state = await models.State.findOne({
|
||||
where: {code: 'WAITING_FOR_PICKUP'}
|
||||
}, myOptions);
|
||||
const warehouse = await models.Warehouse.findOne({
|
||||
where: {code: 'rcl'}
|
||||
}, myOptions);
|
||||
warehouseFk = warehouse.id;
|
||||
nickname = `Recogida pendiente del: ${claim.ticketFk}`;
|
||||
zoneFk = zone.id;
|
||||
const claimConfig = await models.claimConfig.findOne();
|
||||
if (claim.pickup == 'delivery') {
|
||||
shipped = today;
|
||||
landed = today;
|
||||
agencyModeFk = claimConfig.pickupDeliveryFk;
|
||||
} else {
|
||||
shipped = null;
|
||||
landed = null;
|
||||
agencyModeFk = claimConfig.pickupAgencyFk;
|
||||
}
|
||||
}
|
||||
const newRefundTicket = await models.Ticket.create({
|
||||
clientFk: claim.ticket().clientFk,
|
||||
shipped: today,
|
||||
landed: today,
|
||||
nickname: `Abono del: ${claim.ticketFk}`,
|
||||
warehouseFk: claim.ticket().warehouseFk,
|
||||
shipped,
|
||||
landed,
|
||||
nickname,
|
||||
warehouseFk,
|
||||
companyFk: claim.ticket().companyFk,
|
||||
addressFk: claim.ticket().addressFk,
|
||||
agencyModeFk: agencyMode.id,
|
||||
zoneFk: zone.id
|
||||
agencyModeFk,
|
||||
zoneFk
|
||||
}, myOptions);
|
||||
|
||||
await models.TicketRefund.create({
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
"Claim": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ClaimConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ClaimContainer": {
|
||||
"dataSource": "claimStorage"
|
||||
},
|
||||
|
@ -43,5 +46,5 @@
|
|||
},
|
||||
"ClaimObservation": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
{
|
||||
"name": "ClaimConfig",
|
||||
"base": "VnModel",
|
||||
"mixins": {
|
||||
"Loggable": true
|
||||
},
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "claimConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true,
|
||||
"description": "Identifier"
|
||||
},
|
||||
"maxResponsibility": {
|
||||
"type": "number"
|
||||
},
|
||||
"monthsToRefund": {
|
||||
"type": "number"
|
||||
},
|
||||
"minShipped": {
|
||||
"type": "date"
|
||||
},
|
||||
"pickupAgencyFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"pickupdeliveryFk": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"pickupAgency": {
|
||||
"type": "belongsTo",
|
||||
"model": "AgencyMode",
|
||||
"foreignKey": "pickupAgencyFk"
|
||||
},
|
||||
"pickupDelivery": {
|
||||
"type": "belongsTo",
|
||||
"model": "AgencyMode",
|
||||
"foreignKey": "pickupdeliveryFk"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue