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'}
|
where: {code: 'salesPerson'}
|
||||||
}, myOptions);
|
}, 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({
|
const agencyMode = await models.AgencyMode.findOne({
|
||||||
where: {code: 'refund'}
|
where: {code: 'refund'}
|
||||||
}, myOptions);
|
}, myOptions);
|
||||||
|
|
||||||
const state = await models.State.findOne({
|
|
||||||
where: {code: 'DELIVERED'}
|
|
||||||
}, myOptions);
|
|
||||||
|
|
||||||
const zone = await models.Zone.findOne({
|
const zone = await models.Zone.findOne({
|
||||||
where: {agencyModeFk: agencyMode.id}
|
where: {agencyModeFk: agencyMode.id}
|
||||||
}, myOptions);
|
}, myOptions);
|
||||||
|
|
||||||
const claim = await models.Claim.findOne(filter, myOptions);
|
shipped = today;
|
||||||
const today = Date.vnNew();
|
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({
|
const newRefundTicket = await models.Ticket.create({
|
||||||
clientFk: claim.ticket().clientFk,
|
clientFk: claim.ticket().clientFk,
|
||||||
shipped: today,
|
shipped,
|
||||||
landed: today,
|
landed,
|
||||||
nickname: `Abono del: ${claim.ticketFk}`,
|
nickname,
|
||||||
warehouseFk: claim.ticket().warehouseFk,
|
warehouseFk,
|
||||||
companyFk: claim.ticket().companyFk,
|
companyFk: claim.ticket().companyFk,
|
||||||
addressFk: claim.ticket().addressFk,
|
addressFk: claim.ticket().addressFk,
|
||||||
agencyModeFk: agencyMode.id,
|
agencyModeFk,
|
||||||
zoneFk: zone.id
|
zoneFk
|
||||||
}, myOptions);
|
}, myOptions);
|
||||||
|
|
||||||
await models.TicketRefund.create({
|
await models.TicketRefund.create({
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
"Claim": {
|
"Claim": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"ClaimConfig": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"ClaimContainer": {
|
"ClaimContainer": {
|
||||||
"dataSource": "claimStorage"
|
"dataSource": "claimStorage"
|
||||||
},
|
},
|
||||||
|
|
|
@ -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