Haiku.lt

Programarea Informațiilor Suplimentare

2024-06-16
Acest articol a fost tradus de IA

Aceasta 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 fi standard, proforma sau credit.
  • seriesName - numele seriei
  • seriesId - numărul seriei
  • date - data facturii
  • language - limba
  • seller - informații vânzător
  • buyer - informații cumpărător
  • issuer - persoana care a creat factura
  • items - array de servicii sau produse
  • price - 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