Programowanie dodatkowych informacji
2024-06-16To zaawansowana funkcja, która pozwala zmieniać pole z dodatkowymi informacjami na fakturze w zależności od tego, co jest wprowadzone w innych polach. Jeśli nie jesteś programistą, sugeruję po prostu przejrzenie poniższych przykładów, wybór tego, który odpowiada Twoim potrzebom i odpowiednie dostosowanie.
Przykłady
Tutaj znajdziesz różne przykłady, których możesz użyć w sekcji “Program dodatkowych informacji” na stronie Ustawień.
Określ termin płatności na podstawie daty faktury
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
globalThis.result = `Proszę zapłacić do ${formatDate(date)}`;
Podczas tworzenia faktury pojawi się przycisk “Uruchom program dodatkowych informacji” obok pola “Dodatkowe informacje”. Po kliknięciu wypełni pole tekstem takim jak “Proszę zapłacić do 2024-06-26”.
Automatyczne określanie terminu płatności
// AUTO
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
globalThis.result = `Proszę zapłacić do ${formatDate(date)}`;
Gdy zmienisz datę faktury lub jakiekolwiek inne pole, pole z dodatkowymi informacjami zaktualizuje się automatycznie. Pamiętaj, że to pole będzie automatycznie nadpisywane, więc Twoje ręczne zmiany mogą zostać utracone. Dlatego używaj automatycznego wariantu (pierwsza linia // AUTO) tylko wtedy, gdy chcesz, aby dodatkowe informacje zawsze wyglądały tak samo.
Określ termin płatności na podstawie daty faktury i języka (automatycznie)
// AUTO
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
if (language == 'lt') {
globalThis.result = `Prašome apmokėti sąskaitą iki ${formatDate(date)}`;
} else if (language === 'en') {
globalThis.result = `Please pay by ${formatDate(date)}`;
} else if (language === 'pl') {
globalThis.result = `Proszę zapłacić do ${formatDate(date)}`;
}
Określ metodę płatności na podstawie kupującego lub kwoty
let result = 'Proszę zapłacić';
if (buyer.includes('Sp. z o.o.') || buyer.includes('S.A.') || price > 50000) {
result += ' PRZELEWEM';
} else {
result += ' GOTÓWKĄ';
}
globalThis.result = result;
W tym przykładzie, jeśli pole kupującego zawiera “Sp. z o.o.” lub “S.A.” lub kwota faktury jest większa niż 500 (kwoty są przekazywane do programu w groszach, więc podano 50000), wtedy żądamy płatności przelewem. W przeciwnym razie żądamy płatności gotówką.
Łączenie informacji
Możesz połączyć te informacje, jeśli chcesz określić zarówno datę płatności, jak i metodę płatności.
const daysUntilDue = 10;
date.setDate(date.getDate() + daysUntilDue);
let result = `Proszę zapłacić do ${formatDate(date)}\n`;
result += 'Metoda płatności: ';
if (buyer.includes('Sp. z o.o.') || buyer.includes('S.A.') || price > 50000) {
result += 'PRZELEW';
} else {
result += 'GOTÓWKA';
}
globalThis.result = result;
Informacje dla programistów
Program dodatkowych informacji jest napisany w języku programowania JavaScript.
Program otrzymuje następujące informacje:
invoiceType- Typ faktury. Może byćstandard,proformalubcredit.seriesName- nazwa seriiseriesId- numer seriidate- data fakturylanguage- językseller- informacje o sprzedawcybuyer- informacje o kupującymissuer- osoba, która utworzyła fakturęitems- tablica usług lub produktówprice- suma pozycji faktury lub usług w groszach
Przykładowe dane przekazane do programu:
const invoiceType = 'standard';
const seriesName = 'INV';
const seriesId = 47;
const date = new Date(1718540924628);
const language = 'pl';
const seller = 'Kupujący';
const buyer = 'Sprzedawca';
const email = '';
const issuer = 'Jan Kowalski';
const items = [{ id: 0, name: '', unit: 'H87', amount: 1, price: 0 }];
const price = 0;
Jeśli pierwsza linia programu to komentarz // AUTO, program będzie wykonywany za każdym razem, gdy zmienią się pola.
// AUTO
Programy oznaczone // AUTO będą również wykonywane podczas wsadowej edycji wielu faktur.
formatDate to funkcja pomocnicza, która formatuje daty w formacie RRRR-MM-DD, np. 2024-06-26