Merge pull request 'fix: refs#7748 solicitud de domiciliación bancaria' (!2752) from 7748-Modificar-solicitud-de-domiciliación-bancaria into master
gitea/salix/pipeline/head This commit looks good Details

Reviewed-on: #2752
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
This commit is contained in:
Carlos Andrés 2024-07-19 09:43:15 +00:00
commit d4bbd3530c
7 changed files with 98 additions and 64 deletions

View File

@ -0,0 +1,16 @@
subject: Bank Direct Debit Request
title: SEPA CORE Direct Debit
description:
dear: Dear Customer
instructions: <p>Given the excellent relationship between our two companies
and to facilitate the payment processes of our invoices, we suggest the use
of the SEPA CORE direct debit system.</p>
<p>This service involves issuing our receipts to your company in an automated
and electronic manner, which represents a substantial reduction in costs for you
in terms of fees and bank charges.</p>
<p>If you accept our proposal, on the due date of each payment, it will be automatically
debited from your account through your bank.</p>
<p>This system is based on the electronic transmission of data; the handling of
physical documents has been eliminated.</p>
<p>We appreciate your cooperation,</p>
conclusion: Thank you for your attention!

View File

@ -9,9 +9,7 @@ description:
forma automatizada y electrónicamente, lo que supone para usted una reducción
sustancial de costos en términos de honorarios y gastos bancarios.</p>
<p>En caso de que acepte nuestra propuesta, a la fecha de vencimiento de cada efecto,
se debitará a su cuenta automáticamente a través de su entidad bancaria.
Por tanto, le pedimos que firme y envíe a su banco la autorización original adjunta,
debidamente cumplimentada, y nos devuelva una fotocopia de dicha autorización.</p>
se debitará a su cuenta automáticamente a través de su entidad bancaria.</p>
<p>Este sistema se basa en la transmisión electrónica de datos;
el manejo de documentos físicos ha sido eliminado.</p>
<p>Le agradecemos su cooperación,</p>

View File

@ -14,11 +14,7 @@ description:
et commissions bancaires.</p>
<p>Dans le cas où vous accepteriez notre proposition, à
léchéance de chaque effet, votre compte sera débité
automatiquement par votre Banque.
Ainsi, nous vous demandons de signer et envoyer à votre
Banque l'original de l'autorisation pour débit en annexe,
dûment remplie, et de nous retourner une photocopie de la
dite autorisation.</p>
automatiquement par votre Banque.</p>
<p>Ce système étant basé sur la transmission de données de
manière électronique, le maniement de documents
physiques á été éliminé</p>

View File

@ -0,0 +1,46 @@
reportName: direct-debit-order
title: SEPA CORE Direct Debit Order
description: By signing this direct debit order, the debtor authorizes (A) the creditor
to send instructions to the debtor's bank to debit their account and (B) the bank to debit
their account according to the creditor's instructions. As part of their rights,
the debtor is entitled to a refund by their bank under the terms and conditions
of the contract signed with the bank. The refund request must be made within
eight weeks of the debit. You can obtain additional information about your rights
from your financial institution.
documentCopy: You must take a signed copy of this document to your Bank for registration to avoid returns.
mandatoryFields: ALL FIELDS MUST BE COMPLETED.
sendOrder: ONCE THIS DIRECT DEBIT ORDER IS SIGNED, IT MUST BE SENT TO THE CREDITOR
FOR SAFEGUARDING AND IT IS RECOMMENDED TO PROVIDE A COPY TO YOUR BANK.
supplier:
toCompleteBySupplier: To be completed by the creditor
orderReference: Direct debit order reference
identifier: Creditor identifier
name: Creditor's name
street: Address
location: Postal Code - City - Province
country: Country
client:
toCompleteByClient: To be completed by the debtor
name: Debtor's name(s)
fiscalId: NIF
street: Debtor's address
location: Postal Code - City - Province
country: Debtor's country
swift: Swift BIC
accountNumber: IBAN
accountHolder: "(Account holder(s))"
accountNumberFormat: In {0}, the IBAN consists of {1} characters always starting with {2}
paymentType: Payment type
recurrent: Recurrent
unique: Unique
signLocation: Date - City
sign: Debtor's signature and stamp
order: Direct Debit Order {0}
Francia: France
España: Spain
Portugal: Portugal
instructions:
title: Instructions
accountFields: Fill in the fields related to the bank account
signDocument: Sign and stamp the document. For it to be valid, the stamp must show the CIF/NIF. If not, the request must be accompanied by an account ownership certificate.
thanks: Thank you for your cooperation!

View File

@ -1,13 +1,12 @@
const vnReport = require('../../../core/mixins/vn-report.js');
const db = require('../../../core/database');
module.exports = {
name: 'sepa-core',
mixins: [vnReport],
async serverPrefetch() {
this.client = await this.findOneFromDef('client', [this.companyId, this.companyId, this.id]);
this.client = await this.findOneFromDef('client', [this.id]);
this.checkMainEntity(this.client);
const suppliers = await this.rawSqlFromDef('supplier', [this.companyId, this.companyId, this.id]);
const suppliers = await this.rawSqlFromDef('supplier', [this.companyId, this.id]);
this.supplier = {
...suppliers[0],
accountDetailValue: suppliers.map(val => val?.accountDetailValue)
@ -23,16 +22,5 @@ module.exports = {
type: Number,
required: true
}
},
methods: {
getSupplierCif() {
return db.findOne(`
SELECT DISTINCT ad.value
FROM supplierAccount sa
JOIN accountDetail ad ON ad.supplierAccountFk = sa.id
JOIN accountDetailType adt ON adt.id = ad.accountDetailTypeFk AND adt.id = 3
WHERE sa.supplierFk = ?`) [this.companyId];
}
}
};

View File

@ -1,19 +1,14 @@
SELECT
c.id,
m.code mandateCode,
SELECT c.id,
c.socialName,
c.street,
c.postcode,
c.city,
c.fi,
p.name AS province,
p.name province,
ct.name country,
ct.code AS countryCode,
ct.ibanLength AS ibanLength
FROM client c
JOIN country ct ON ct.id = c.countryFk
LEFT JOIN mandate m ON m.clientFk = c.id
AND m.companyFk = ? AND m.finished IS NULL
LEFT JOIN province p ON p.id = c.provinceFk
WHERE (m.companyFk = ? OR m.companyFk IS NULL) AND c.id = ?
ORDER BY m.created DESC LIMIT 1
ct.code countryCode,
ct.ibanLength ibanLength
FROM client c
JOIN country ct ON ct.id = c.countryFk
JOIN province p ON p.id = c.provinceFk
WHERE c.id = ?

View File

@ -1,29 +1,24 @@
SELECT
m.code mandateCode,
s.name,
s.street,
sc.name country,
s.postCode,
s.city,
sp.name province,
s.nif,
sa.supplierFk,
be.name bankName,
ad.value accountDetailValue
FROM
client c
LEFT JOIN mandate m ON m.clientFk = c.id AND m.companyFk = ? AND m.finished IS NULL
LEFT JOIN supplier s ON s.id = m.companyFk
LEFT JOIN country sc ON sc.id = s.countryFk
LEFT JOIN province sp ON sp.id = s.provinceFk
LEFT JOIN province p ON p.id = c.provinceFk
LEFT JOIN supplierAccount sa ON sa.supplierFk = s.id
LEFT JOIN bankEntity be ON sa.bankEntityFk = be.id
LEFT JOIN accountDetail ad ON ad.supplierAccountFk = sa.id
JOIN accountDetailType adt ON adt.id = ad.accountDetailTypeFk AND adt.id = 3
WHERE
(m.companyFk = ? OR m.companyFk IS NULL)
AND (c.id = ? OR (c.id IS NULL AND c.countryFk = sa.countryFk))
GROUP BY ad.value
ORDER BY
m.created DESC;
SELECT m.code mandateCode,
s.name,
s.street,
sc.name country,
s.postCode,
s.city,
sp.name province,
ad.value accountDetailValue
FROM client c
JOIN mandate m ON m.clientFk = c.id
JOIN mandateType mt ON mt.id = m.mandateTypeFk
JOIN supplier s ON s.id = m.companyFk
LEFT JOIN country sc ON sc.id = s.countryFk
LEFT JOIN province sp ON sp.id = s.provinceFk
JOIN supplierAccount sa ON sa.supplierFk = s.id
JOIN accountDetail ad ON ad.supplierAccountFk = sa.id
JOIN accountDetailType adt ON adt.id = ad.accountDetailTypeFk
WHERE m.companyFk = ?
AND m.finished IS NULL
AND c.id = ?
AND mt.name = 'CORE'
AND adt.description = 'Referencia Remesas'
GROUP BY m.id, ad.value
ORDER BY m.created DESC