#1096 back validaciones crear ticket
This commit is contained in:
parent
ffea839250
commit
171716806a
|
@ -24,7 +24,6 @@ class Controller {
|
||||||
this.$state.go('zone.index');
|
this.$state.go('zone.index');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log('res', response);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,9 @@
|
||||||
"CreditInsurance": {
|
"CreditInsurance": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"ClientType": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"Defaulter": {
|
"Defaulter": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"name": "ClientType",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "clientType"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "Number",
|
||||||
|
"id": true
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"type": "String"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"type": "String"
|
||||||
|
},
|
||||||
|
"isCreatedAsServed": {
|
||||||
|
"type": "Number"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -151,7 +151,7 @@
|
||||||
"type": {
|
"type": {
|
||||||
"type": "belongsTo",
|
"type": "belongsTo",
|
||||||
"model": "ClientType",
|
"model": "ClientType",
|
||||||
"foreignKey": "typeFk"
|
"foreignKey": "clientTypeFk"
|
||||||
},
|
},
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
|
@ -178,20 +178,20 @@
|
||||||
"model": "BankEntity",
|
"model": "BankEntity",
|
||||||
"foreignKey": "bankEntityFk"
|
"foreignKey": "bankEntityFk"
|
||||||
},
|
},
|
||||||
"defaulters": {
|
"defaulters": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
"model": "Defaulter",
|
"model": "Defaulter",
|
||||||
"foreignKey": "clientFk"
|
"foreignKey": "clientFk"
|
||||||
},
|
},
|
||||||
"clientRisks": {
|
"clientRisks": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
"model": "ClientRisk",
|
"model": "ClientRisk",
|
||||||
"foreignKey": "clientFk"
|
"foreignKey": "clientFk"
|
||||||
},
|
},
|
||||||
"claimsRatio": {
|
"claimsRatio": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
"model": "ClaimRatio",
|
"model": "ClaimRatio",
|
||||||
"foreignKey": "clientFk"
|
"foreignKey": "clientFk"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,7 +20,22 @@ module.exports = Self => {
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.isEditable = async orderId => {
|
Self.isEditable = async orderId => {
|
||||||
let exists = await Self.app.models.Order.findOne({where: {id: orderId}, fields: ['isConfirmed']});
|
let exists = await Self.app.models.Order.findOne({
|
||||||
|
where: {id: orderId},
|
||||||
|
fields: ['isConfirmed', 'clientFk'],
|
||||||
|
include: [
|
||||||
|
{relation: 'client',
|
||||||
|
scope: {
|
||||||
|
include: {
|
||||||
|
relation: 'type'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
if (exists && exists.client().type().code !== 'normal')
|
||||||
|
return true;
|
||||||
|
|
||||||
if (!exists || exists.isConfirmed === 1)
|
if (!exists || exists.isConfirmed === 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -24,15 +24,23 @@ module.exports = Self => {
|
||||||
where: {id: params.addressFk},
|
where: {id: params.addressFk},
|
||||||
fields: ['clientFk'],
|
fields: ['clientFk'],
|
||||||
include: [
|
include: [
|
||||||
{relation: 'client'}
|
{relation: 'client',
|
||||||
|
scope: {
|
||||||
|
include: {
|
||||||
|
relation: 'type'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
if (address.client().isFreezed)
|
if (address.client().type().code === 'normal') {
|
||||||
throw new UserError(`You can't create an order for a frozen client`);
|
if (address.client().isFreezed)
|
||||||
|
throw new UserError(`You can't create an order for a frozen client`);
|
||||||
|
|
||||||
if (!address.client().isActive)
|
if (!address.client().isActive)
|
||||||
throw new UserError(`You can't create an order for a inactive client`);
|
throw new UserError(`You can't create an order for a inactive client`);
|
||||||
|
}
|
||||||
|
|
||||||
query = `CALL vn.orderListCreate(?, ?, ?, ?);`;
|
query = `CALL vn.orderListCreate(?, ?, ?, ?);`;
|
||||||
[result] = await Self.rawSql(query, [
|
[result] = await Self.rawSql(query, [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const app = require('vn-loopback/server/server');
|
const app = require('vn-loopback/server/server');
|
||||||
|
|
||||||
describe('sale moveToTicket()', () => {
|
describe('sale moveToTicket()', () => {
|
||||||
it('should throw an error if the ticket is not editable', async () => {
|
it('should throw an error if the ticket is not editable', async() => {
|
||||||
let error;
|
let error;
|
||||||
|
|
||||||
let params = {actualTicketFk: 10};
|
let params = {actualTicketFk: 10};
|
||||||
|
@ -15,7 +15,7 @@ describe('sale moveToTicket()', () => {
|
||||||
expect(error).toBeDefined();
|
expect(error).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw an error if the receiving ticket is not editable', async () => {
|
it('should throw an error if the receiving ticket is not editable', async() => {
|
||||||
let error;
|
let error;
|
||||||
|
|
||||||
let params = {actualTicketFk: 1, newTicketFk: 10};
|
let params = {actualTicketFk: 1, newTicketFk: 10};
|
||||||
|
@ -29,7 +29,7 @@ describe('sale moveToTicket()', () => {
|
||||||
expect(error).toBeDefined();
|
expect(error).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should transfer the sales from one ticket to another', async () => {
|
it('should transfer the sales from one ticket to another', async() => {
|
||||||
let senderTicketSales = await app.models.Ticket.getSales(11);
|
let senderTicketSales = await app.models.Ticket.getSales(11);
|
||||||
let receiverTicketSales = await app.models.Ticket.getSales(13);
|
let receiverTicketSales = await app.models.Ticket.getSales(13);
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ describe('sale moveToTicket()', () => {
|
||||||
expect(receiverTicketSales.length).toEqual(2);
|
expect(receiverTicketSales.length).toEqual(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should transfers back the sales', async () => {
|
it('should transfers back the sales', async() => {
|
||||||
let senderTicketSales = await app.models.Ticket.getSales(13);
|
let senderTicketSales = await app.models.Ticket.getSales(13);
|
||||||
let receiverTicketSales = await app.models.Ticket.getSales(11);
|
let receiverTicketSales = await app.models.Ticket.getSales(11);
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,25 @@ module.exports = Self => {
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.isEditable = async ticketFk => {
|
Self.isEditable = async ticketFk => {
|
||||||
let state = await Self.app.models.TicketState.findOne({where: {ticketFk: ticketFk}});
|
let state = await Self.app.models.TicketState.findOne({
|
||||||
|
where: {ticketFk: ticketFk}
|
||||||
|
});
|
||||||
let alertLevel = state ? state.alertLevel : null;
|
let alertLevel = state ? state.alertLevel : null;
|
||||||
let exists = await Self.app.models.Ticket.findOne({where: {id: ticketFk}, fields: 'isDeleted'});
|
let exists = await Self.app.models.Ticket.findOne({
|
||||||
|
where: {id: ticketFk},
|
||||||
|
fields: ['isDeleted', 'clientFk'],
|
||||||
|
include: [{
|
||||||
|
relation: 'client',
|
||||||
|
scope: {
|
||||||
|
include: {
|
||||||
|
relation: 'type'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
|
||||||
|
if (exists && exists.client().type().code !== 'normal')
|
||||||
|
return true;
|
||||||
|
|
||||||
if (!exists || exists.isDeleted == 1 || (alertLevel && alertLevel > 0))
|
if (!exists || exists.isDeleted == 1 || (alertLevel && alertLevel > 0))
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -26,27 +26,27 @@ module.exports = Self => {
|
||||||
where: {id: params.addressFk},
|
where: {id: params.addressFk},
|
||||||
fields: ['clientFk'],
|
fields: ['clientFk'],
|
||||||
include: [
|
include: [
|
||||||
{relation: 'client'}
|
{relation: 'client',
|
||||||
|
scope: {
|
||||||
|
include: {
|
||||||
|
relation: 'type'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!address)
|
{if (!address)
|
||||||
throw new UserError(`This address doesn't exist`);
|
throw new UserError(`This address doesn't exist`);}
|
||||||
|
|
||||||
if (address.client().isFreezed)
|
if (address.client().type().code === 'normal') {
|
||||||
throw new UserError(`You can't create a ticket for a frozen client`);
|
if (address.client().isFreezed)
|
||||||
|
throw new UserError(`You can't create a ticket for a frozen client`);
|
||||||
|
|
||||||
if (!address.client().isActive)
|
if (!address.client().isActive)
|
||||||
throw new UserError(`You can't create a ticket for a inactive client`);
|
throw new UserError(`You can't create a ticket for a inactive client`);
|
||||||
|
|
||||||
let clientFk = address.clientFk;
|
let clientFk = address.clientFk;
|
||||||
let agency;
|
|
||||||
if (params.agencyModeFk)
|
|
||||||
agency = await Self.app.models.AgencyMode.findById(params.agencyModeFk);
|
|
||||||
else
|
|
||||||
agency = {code: null};
|
|
||||||
|
|
||||||
if (agency.name != 'ABONO') {
|
|
||||||
let query = `SELECT vn.clientGetDebt(?, CURDATE()) AS debt`;
|
let query = `SELECT vn.clientGetDebt(?, CURDATE()) AS debt`;
|
||||||
let clientDebt = await Self.rawSql(query, [clientFk]);
|
let clientDebt = await Self.rawSql(query, [clientFk]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue