ref #5914 create ticket with new and refactor
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
f64f7a975d
commit
731bad5981
|
@ -1,6 +1,6 @@
|
|||
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
||||
VALUES
|
||||
('CplusRectificationType', '*', 'READ', 'ALLOW', 'ROLE', 'employee'),
|
||||
('CplusInvoiceType477', '*', 'READ', 'ALLOW', 'ROLE', 'employee'),
|
||||
('InvoiceCorrectionType', '*', 'READ', 'ALLOW', 'ROLE', 'employee'),
|
||||
('InvoiceOut', 'transferInvoice', 'WRITE', 'ALLOW', 'ROLE', 'employee');
|
||||
('CplusRectificationType', '*', 'READ', 'ALLOW', 'ROLE', 'administrative'),
|
||||
('CplusInvoiceType477', '*', 'READ', 'ALLOW', 'ROLE', 'administrative'),
|
||||
('InvoiceCorrectionType', '*', 'READ', 'ALLOW', 'ROLE', 'administrative'),
|
||||
('InvoiceOut', 'transferInvoice', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
@ -188,7 +188,7 @@
|
|||
"The ticket doesn't exist.": "The ticket doesn't exist.",
|
||||
"The sales do not exists": "The sales do not exists",
|
||||
"Ticket without Route": "Ticket without route",
|
||||
"Select a different customer": "Select a different customer",
|
||||
"Select a different client": "Select a different client",
|
||||
"Fill all the fields": "Fill all the fields",
|
||||
"Error while generating PDF": "Error while generating PDF",
|
||||
"Can't invoice to future": "Can't invoice to future",
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
"The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado",
|
||||
"Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado",
|
||||
"Can't be blank": "No puede estar en blanco",
|
||||
"Invalid TIN": "NIF/CIF invalido",
|
||||
"Invalid TIN": "NIF/CIF inválido",
|
||||
"TIN must be unique": "El NIF/CIF debe ser único",
|
||||
"A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web",
|
||||
"Is invalid": "Is invalid",
|
||||
"Is invalid": "Es inválido",
|
||||
"Quantity cannot be zero": "La cantidad no puede ser cero",
|
||||
"Enter an integer different to zero": "Introduce un entero distinto de cero",
|
||||
"Package cannot be blank": "El embalaje no puede estar en blanco",
|
||||
|
@ -55,8 +55,8 @@
|
|||
"You must delete the claim id %d first": "Antes debes borrar la reclamación %d",
|
||||
"You don't have enough privileges": "No tienes suficientes permisos",
|
||||
"Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF",
|
||||
"You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos basicos de una orden con artículos",
|
||||
"INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no esta permitido el uso de la letra ñ",
|
||||
"You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos",
|
||||
"INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ",
|
||||
"You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado",
|
||||
"You can't create a ticket for a inactive client": "No puedes crear un ticket para un cliente inactivo",
|
||||
"Tag value cannot be blank": "El valor del tag no puede quedar en blanco",
|
||||
|
@ -65,7 +65,7 @@
|
|||
"NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT",
|
||||
"Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido",
|
||||
"Street cannot be empty": "Dirección no puede estar en blanco",
|
||||
"City cannot be empty": "Cuidad no puede estar en blanco",
|
||||
"City cannot be empty": "Ciudad no puede estar en blanco",
|
||||
"Code cannot be blank": "Código no puede estar en blanco",
|
||||
"You cannot remove this department": "No puedes eliminar este departamento",
|
||||
"The extension must be unique": "La extensión debe ser unica",
|
||||
|
@ -102,8 +102,8 @@
|
|||
"You can't delete a confirmed order": "No puedes borrar un pedido confirmado",
|
||||
"The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto",
|
||||
"Invalid quantity": "Cantidad invalida",
|
||||
"This postal code is not valid": "This postal code is not valid",
|
||||
"is invalid": "is invalid",
|
||||
"This postal code is not valid": "Este código postal no es válido",
|
||||
"is invalid": "es inválido",
|
||||
"The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto",
|
||||
"The department name can't be repeated": "El nombre del departamento no puede repetirse",
|
||||
"This phone already exists": "Este teléfono ya existe",
|
||||
|
@ -112,8 +112,8 @@
|
|||
"You cannot delete a ticket that part of it is being prepared": "No puedes eliminar un ticket en el que una parte que está siendo preparada",
|
||||
"You must delete all the buy requests first": "Debes eliminar todas las peticiones de compra primero",
|
||||
"You should specify a date": "Debes especificar una fecha",
|
||||
"You should specify at least a start or end date": "Debes especificar al menos una fecha de inicio o de fín",
|
||||
"Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fín",
|
||||
"You should specify at least a start or end date": "Debes especificar al menos una fecha de inicio o de fin",
|
||||
"Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin",
|
||||
"You should mark at least one week day": "Debes marcar al menos un día de la semana",
|
||||
"Swift / BIC can't be empty": "Swift / BIC no puede estar vacío",
|
||||
"Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios",
|
||||
|
@ -144,15 +144,15 @@
|
|||
"Unable to clone this travel": "No ha sido posible clonar este travel",
|
||||
"This thermograph id already exists": "La id del termógrafo ya existe",
|
||||
"Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante",
|
||||
"ORDER_ALREADY_CONFIRMED": "ORDER_ALREADY_CONFIRMED",
|
||||
"ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA",
|
||||
"Invalid password": "Invalid password",
|
||||
"Password does not meet requirements": "La contraseña no cumple los requisitos",
|
||||
"Role already assigned": "Role already assigned",
|
||||
"Invalid role name": "Invalid role name",
|
||||
"Role name must be written in camelCase": "Role name must be written in camelCase",
|
||||
"Email already exists": "Email already exists",
|
||||
"User already exists": "User already exists",
|
||||
"Absence change notification on the labour calendar": "Notificacion de cambio de ausencia en el calendario laboral",
|
||||
"Role already assigned": "Rol ya asignado",
|
||||
"Invalid role name": "Nombre de rol no válido",
|
||||
"Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase",
|
||||
"Email already exists": "El correo ya existe",
|
||||
"User already exists": "El/La usuario/a ya existe",
|
||||
"Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral",
|
||||
"Record of hours week": "Registro de horas semana {{week}} año {{year}} ",
|
||||
"Created absence": "El empleado <strong>{{author}}</strong> ha añadido una ausencia de tipo '{{absenceType}}' a <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> para el día {{dated}}.",
|
||||
"Deleted absence": "El empleado <strong>{{author}}</strong> ha eliminado una ausencia de tipo '{{absenceType}}' a <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> del día {{dated}}.",
|
||||
|
@ -317,6 +317,6 @@
|
|||
"Social name should be uppercase": "La razón social debe ir en mayúscula",
|
||||
"Street should be uppercase": "La dirección fiscal debe ir en mayúscula",
|
||||
"Ticket without Route": "Ticket sin ruta",
|
||||
"Select a different customer": "Seleccione un cliente distinto",
|
||||
"Select a different client": "Seleccione un cliente distinto",
|
||||
"Fill all the fields": "Rellene todos los campos"
|
||||
}
|
|
@ -19,18 +19,22 @@ module.exports = Self => {
|
|||
{
|
||||
arg: 'newClientFk',
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
{
|
||||
arg: 'cplusRectificationId',
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
{
|
||||
arg: 'cplusInvoiceType477Id',
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
{
|
||||
arg: 'invoiceCorrectionTypeId',
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
],
|
||||
returns: {
|
||||
|
@ -54,10 +58,7 @@ module.exports = Self => {
|
|||
const {clientFk} = await models.InvoiceOut.findById(args.id);
|
||||
|
||||
if (clientFk == args.newClientFk)
|
||||
throw new UserError(`Select a different customer`);
|
||||
|
||||
if (!args.newClientFk || !args.cplusRectificationId || !args.cplusInvoiceType477Id || !args.invoiceCorrectionTypeId)
|
||||
throw new UserError(`Fill all the fields`);
|
||||
throw new UserError(`Select a different client`);
|
||||
|
||||
if (!myOptions.transaction) {
|
||||
tx = await Self.beginTransaction({});
|
||||
|
@ -77,7 +78,7 @@ module.exports = Self => {
|
|||
const sales = await models.Sale.find(filterTicket, myOptions);
|
||||
const salesIds = sales.map(sale => sale.id);
|
||||
|
||||
const clonedTickets = await models.Sale.clone(salesIds, servicesIds, null, false, false, myOptions);
|
||||
const clonedTickets = await models.Sale.clone(ctx, salesIds, servicesIds, null, false, false, myOptions);
|
||||
const clonedTicketIds = [];
|
||||
|
||||
for (const clonedTicket of clonedTickets) {
|
||||
|
@ -93,7 +94,7 @@ module.exports = Self => {
|
|||
correctedFk: args.id,
|
||||
cplusRectificationTypeFk: args.cplusRectificationId,
|
||||
cplusInvoiceType477Fk: args.cplusInvoiceType477Id,
|
||||
invoiceCorrectionType: args.invoiceCorrectionTypeId
|
||||
invoiceCorrectionTypeFk: args.invoiceCorrectionTypeId
|
||||
}, myOptions);
|
||||
|
||||
if (tx) await tx.commit();
|
||||
|
|
|
@ -44,7 +44,6 @@ module.exports = Self => {
|
|||
Self.makePdf = async function(id, options) {
|
||||
const fields = ['id', 'hasPdf', 'ref'];
|
||||
const invoiceOut = await Self.findById(id, {fields}, options);
|
||||
console.log('Recoge invoiceOut?');
|
||||
const invoiceReport = new print.Report('invoice', {
|
||||
reference: invoiceOut.ref
|
||||
});
|
||||
|
|
|
@ -25,6 +25,6 @@ vn-invoice-out-descriptor-menu {
|
|||
}
|
||||
@media screen and (min-width: 1000px) {
|
||||
.transferInvoice {
|
||||
min-width: 900px;
|
||||
min-width: $width-md;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module.exports = Self => {
|
||||
Self.clone = async(salesIds, servicesIds, withWarehouse, group, negative, options) => {
|
||||
Self.clone = async(ctx, salesIds, servicesIds, withWarehouse, group, negative, options) => {
|
||||
const models = Self.app.models;
|
||||
const myOptions = {};
|
||||
let tx;
|
||||
|
@ -23,32 +23,24 @@ module.exports = Self => {
|
|||
}
|
||||
};
|
||||
const sales = await models.Sale.find(salesFilter, myOptions);
|
||||
const ticketsIds = [...new Set(sales.map(sale => sale.ticketFk))];
|
||||
let ticketsIds = [...new Set(sales.map(sale => sale.ticketFk))];
|
||||
|
||||
const refundTickets = [];
|
||||
const mappedTickets = new Map();
|
||||
const now = Date.vnNew();
|
||||
const [firstTicketId] = ticketsIds;
|
||||
if (group) {
|
||||
|
||||
if (group) ticketsIds = [ticketsIds[0]];
|
||||
|
||||
for (let ticketId in ticketsIds) {
|
||||
await createTicketRefund(
|
||||
firstTicketId,
|
||||
ctx,
|
||||
ticketsIds[ticketId],
|
||||
withWarehouse,
|
||||
refundTickets,
|
||||
mappedTickets,
|
||||
now,
|
||||
myOptions
|
||||
);
|
||||
} else {
|
||||
for (let ticketId of ticketsIds) {
|
||||
await createTicketRefund(
|
||||
ticketId,
|
||||
withWarehouse,
|
||||
refundTickets,
|
||||
mappedTickets,
|
||||
now,
|
||||
myOptions
|
||||
);
|
||||
}
|
||||
mappedTickets.set(ticketsIds[ticketId], refundTickets[ticketId].id);
|
||||
}
|
||||
|
||||
for (const sale of sales) {
|
||||
|
@ -100,47 +92,26 @@ module.exports = Self => {
|
|||
};
|
||||
|
||||
async function createTicketRefund(
|
||||
ctx,
|
||||
ticketId,
|
||||
withWarehouse,
|
||||
refundTickets,
|
||||
mappedTickets,
|
||||
now,
|
||||
myOptions
|
||||
) {
|
||||
const models = Self.app.models;
|
||||
|
||||
const filter = {
|
||||
include: [
|
||||
{
|
||||
relation: 'address'
|
||||
},
|
||||
{
|
||||
relation: 'agencyMode'
|
||||
},
|
||||
{
|
||||
relation: 'zone'
|
||||
}
|
||||
]
|
||||
};
|
||||
const ticket = await models.Ticket.findById(ticketId, filter, myOptions);
|
||||
const refundTicket = await models.Ticket.create({
|
||||
clientFk: ticket.clientFk,
|
||||
shipped: now,
|
||||
addressFk: ticket.address().id,
|
||||
agencyModeFk: ticket.agencyMode().id,
|
||||
nickname: ticket.address().nickname,
|
||||
warehouseFk: withWarehouse ? ticket.warehouseFk : null,
|
||||
companyFk: ticket.companyFk,
|
||||
zonePrice: ticket.zonePrice,
|
||||
zoneBonus: ticket.zoneBonus,
|
||||
weight: ticket.weight,
|
||||
landed: now,
|
||||
zoneFk: ticket.zone().id,
|
||||
}, myOptions);
|
||||
const ticket = await models.Ticket.findById(ticketId, myOptions);
|
||||
ctx.args.clientId = ticket.clientFk;
|
||||
ctx.args.shipped = now;
|
||||
ctx.args.landed = now;
|
||||
ctx.args.warehouseId = withWarehouse ? ticket.warehouseFk : null;
|
||||
ctx.args.companyId = ticket.companyFk;
|
||||
ctx.args.addressId = ticket.addressFk;
|
||||
|
||||
const refundTicket = await models.Ticket.new(ctx, myOptions);
|
||||
|
||||
refundTickets.push(refundTicket);
|
||||
|
||||
mappedTickets.set(ticketId, refundTicket.id);
|
||||
}
|
||||
|
||||
async function getTicketRefundId(group, ticketId, refundTickets, mappedTickets) {
|
||||
|
|
|
@ -43,10 +43,11 @@ module.exports = Self => {
|
|||
|
||||
try {
|
||||
const refundsTicket = await models.Sale.clone(
|
||||
ctx,
|
||||
salesIds,
|
||||
servicesIds,
|
||||
withWarehouse,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
myOptions
|
||||
);
|
||||
|
|
|
@ -136,11 +136,6 @@
|
|||
"type": "belongsTo",
|
||||
"model": "Zone",
|
||||
"foreignKey": "zoneFk"
|
||||
},
|
||||
"sale": {
|
||||
"type": "hasMany",
|
||||
"model": "Sale",
|
||||
"foreignKey": "ticketFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue