Programarea Informațiilor Suplimentare
2024-06-16Aceasta este o funcționalitate avansată care îți permite să modifici câmpul de informații suplimentare pe o factură în funcție de ce este introdus în alte câmpuri. Dacă nu ești programator, sugestia mea ar fi să treci în revistă exemplele de mai jos, să alegi una care se potrivește nevoilor tale și să o adaptezi în consecință.
Exemple
Aici vei găsi diverse exemple pe care le poți folosi în secțiunea “Program Informații Suplimentare” din pagina de Setări.
Specifică o dată scadentă pentru plată bazată pe data facturii
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
globalThis.result = `Vă rugăm să plătiți până la ${formatDate(date)}`;
La crearea unei facturi, un buton “Rulează program informații suplimentare” va apărea lângă câmpul “Informații suplimentare”. Când este apăsat, va popula câmpul cu text precum “Vă rugăm să plătiți până la 2024-06-26”.
Specifică o dată scadentă pentru plată automat
// AUTO
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
globalThis.result = `Vă rugăm să plătiți până la ${formatDate(date)}`;
Când modifici data facturii sau orice alt câmp, câmpul de informații suplimentare
se va actualiza automat. Reține că acest câmp va fi
suprascris automat, astfel încât modificările manuale pot fi pierdute. Prin urmare, folosește
varianta automată (prima linie // AUTO) doar când vrei ca informațiile
suplimentare să arate mereu la fel.
Specifică data scadentă pentru plată bazată pe data facturii și limbă (automat)
// AUTO
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
if (language == 'ro') {
globalThis.result = `Vă rugăm să achitați factura până la ${formatDate(date)}`;
} else if (language === 'en') {
globalThis.result = `Please pay by ${formatDate(date)}`;
}
Specifică metoda de plată bazată pe cumpărător sau sumă
let result = 'Vă rugăm să plătiți';
if (buyer.includes('SRL') || buyer.includes('SA') || price > 50000) {
result += ' prin TRANSFER BANCAR';
} else {
result += ' în NUMERAR';
}
globalThis.result = result;
În acest exemplu, dacă câmpul cumpărător conține “SRL” sau “SA” sau suma facturii este mai mare de 500 (sumele sunt furnizate programului în cenți, deci 50000 este specificat), atunci solicităm plata prin transfer bancar. Altfel, solicităm plată în numerar.
Combinarea informațiilor
Poți combina aceste informații dacă vrei să specifici atât data de plată cât și metoda de plată.
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
let result = `Vă rugăm să plătiți până la ${formatDate(date)}\n`;
result += 'Metodă de plată: ';
if (buyer.includes('SRL') || buyer.includes('SA') || price > 50000) {
result += 'TRANSFER BANCAR';
} else {
result += 'NUMERAR';
}
globalThis.result = result;
Informații pentru Programatori
Programul de informații suplimentare este scris în limbajul de programare JavaScript.
Programul primește aceste informații:
invoiceType- Tipul facturii. Poate fistandard,proformasaucredit.seriesName- numele serieiseriesId- numărul serieidate- data facturiilanguage- limbaseller- informații vânzătorbuyer- informații cumpărătorissuer- persoana care a creat facturaitems- array de servicii sau produseprice- suma articolelor sau serviciilor facturii în cenți
Exemplu de date transmise programului:
const invoiceType = 'standard';
const seriesName = 'INV';
const seriesId = 47;
const date = new Date(1718540924628);
const language = 'en';
const seller = 'Cumpărător';
const buyer = 'Vânzător';
const email = '';
const issuer = 'Ion Popescu';
const items = [{ id: 0, name: '', unit: 'H87', amount: 1, price: 0 }];
const price = 0;
Dacă prima linie a programului este comentariul // AUTO, programul va fi
executat de fiecare dată când câmpurile se modifică.
// AUTO
Programele marcate cu // AUTO vor fi, de asemenea, executate la editarea în lot a mai multor
facturi.
formatDate este o funcție helper care formatează datele în format AAAA-LL-ZZ,
de ex., 2024-06-26